Crea, personaliza e implementa tu propio portafolio web en minutos. ✨
En esta plantilla tenemos el entorno de desarrollo y una base predeterminada lista para usar. Con todo esto, podrás iniciar inmediatamente tu [Codespace](https://github.com/features/codespaces/ y personalizar tu página web usando Copilot para que puedas escribir código de forma más rápida.
En esta plantilla podrás “elegir tu propia aventura”: tenemos una aplicación web basada en React lista para que puedas personalizarla e implementarla fácilmente utilizando solo tu navegador web.
Este repositorio es una plantilla de GitHub para crear una aplicación web frontend de portafolio personal utilizando el framework React. El objetivo es darte una plantilla que puedas utilizarla inmediatamente para crear tu propia página web a través de Codespaces.
El repositorio contiene lo siguiente:
/.devcontainer
.devcontainer/Dockerfile
: Archivo de configuración utilizado por Codespaces para determinar el sistema operativo y otros detalles..devcontainer/devcontainer.json
: Archivo de configuración utilizado por Codespaces para configurar las opciones de Visual Studio Code, como la habilitación de extensiones adicionales./src
: Archivos HTML, JS y CSS utilizados para construir tu Portafolio web..eslintrc
: Configuración de ESLint</a> que se incluye para la coherencia y la calidad del código..prettierrc
: Configuración de Prettier que se utiliza para dar formato al código.package.json
y package-lock.json
: Define la información del proyecto para Node.js, los paquetes dependientes y las versiones necesarias de cada uno.Este portafolio web está lleno de datos de ejemplo para que puedas abrirlo inmediatamente en Codespaces, verlo en ejecución y subirlo a la nube en cualquier momento.
Tu entorno de desarrollo está listo para que pueda comenzar. Basado en nuestra Plantilla de JavaScript (React) con Codespace, esto es lo que ya está configurado y listo para su uso:
Debajo del nombre del repositorio, usa el menú desplegable del Código y, en la pestaña de Codespaces selecciona “Create codespace on main”.
Espera mientras GitHub inicializa el Codespace.
Cuando haya terminado, verás que tu Codespace comenzará con una sección de terminal en la parte inferior. Codespaces instalará todas las extensiones requeridas en tu contenedor, luego verás npm install
ejecutando. Después de que se complete la instalación de paquetes, ve a la terminal y escribe npm run start
para iniciar tu aplicación web en tu Codespace.
Cuando se inicie la aplicación web, verás un mensaje que te indicará que se inició correctamente en el puerto 1234 dentro de tu Codespace:
Este proyecto está diseñado para ser fácilmente personalizable. Cada sección del sitio es un componente separado, y tu información debe establecerse en un solo lugar. Esto no es solo para facilitar la actualización, sino para que puedas ver cómo se pasan los Prop values a los componentes de React.
Para cada paso, abre el proyecto en Codespaces, luego puedes realizar y confirmar cambios mientras estás dentro de tu Codespace.
Consulta el uso del control de código fuente en tu codespace para obtener más instrucciones sobre el control de código fuente de Codespaces.
Dentro de App.jsx
verás una variable llamada siteProps
. Este es un objeto JavaScript que contiene los pares de valores clave necesarios para personalizar tu nombre, título, correo electrónico y cuentas de redes sociales.
const siteProps = {
name: "Alexandrie Grenier",
title: "Web Designer & Content Creator",
email: "alex@example.com",
gitHub: "microsoft",
instagram: "microsoft",
linkedIn: "satyanadella",
medium: "",
twitter: "microsoft",
youTube: "microsoft",
};
Actualiza el nombre y el título que quieras que aparezcan en la parte superior de tu sitio web.
Optional values (valores opcionales) son la dirección de correo electrónico y redes sociales. Estos se utilizan en el componente ‘Pie de página’. Si algún elemento no está incluido en la lista, o establecido en una cadena vacía (“”), no mostrará el ícono y el vínculo.
Este portafolio web incluye 3 imágenes: un fondo para la sección superior, un fondo para la sección “Sobre mí” y uno para la sección de portafolio (escritorio). Estas pueden ser cualquier imagen de tamaño horizontal a tu elección de tu propia colección, o que tenga una licencia que le permita usar sin atribución.
Un par de sitios posibles para encontrar fotos son Pixabay y Unsplash. Fotos, ilustraciones, vectores, ¡tú eliges! Cuando encuentres tus imágenes, guarda cada una en /src/images
con un nombre de archivo corto y significativo.
Ve a los siguientes componentes para actualizar la línea import image...
haciendo referencia a la nueva imagen que descargaste para esa sección:
Home.jsx
- es la parte superior de la página, la imagen principal que verás cuando se cargue el sitio (mujer de pie junto a la pared del servidor en la muestra)
import image from "../images/server-wall.jpg";
About.jsx
- fondo detrás de la sección detallada “Sobre mí” (mosaico abstracto en la muestra)
import image from "../images/mosaic.svg";
Portfolio.jsx
- Imagen resaltada en el lado izquierdo de la sección (foto de escritorio de diseño en muestra)
import image from "../images/design-desk.jpeg";
La sección ‘About’ (sobre mi) ayuda a dar a las personas un poco más de información acerca de tus habilidades y pasiones. En /src/Components/About.jsx
encontrarás dos valores que deben ser actualizados:
description
: una o dos oraciones cortas describiendote, tus metas en la carrera y/o pasiones.detailOrQuote
: un bloque más largo para añadir más detalles sobre tí, om si gustas, citar una frase que te guste.La segunda sección que deberás actualizar es la sección del Portafolio, donde resaltarás los proyectos que realizaste. Pueden ser artículos, videos. diseño de logos, poyectos de GitHub, ¡todo lo que te haga resaltar!
Ve a /src/Components/Portfolio.jsx
a la variable projectList
. Este es un arreglo de objetos de JavaScript. Cada cosa que quieras resaltar necesita: título, descripción y una URL.
Este ejemplo tiene 4, pero la cantidad que incluyas depende de ti.
const projectList = [
{
title: "10 Things to know about Azure Static Web Apps 🎉",
description: "Collaboration to create a beginner friendly....",
url: "https://dev.to/azure/10-things-to-know-about-azure-static-web-apps-3n4i",
},
{
title: "Web Development for Beginners",
description: "Contributed sketch note imagery to accompany...",
url: "https://github.com/microsoft/web-dev-for-beginners",
},
{
title: "My Resume Site",
description: "Created from Microsoft's resume workshop...",
url: "https://github.com/microsoft/workshop-library/tree/main/full/build-resume-website",
},
{
title: "GitHub Codespaces and GitHub.dev",
description: "Video interview to explain when to use GitHub.dev...",
url: "https://www.youtube.com/watch?v=c3hHhRME_XI",
},
];
El proyecto incluye la configuración necesaria para implementar gratis en Azure Static Web Apps o GitHub Pages</a>. Las instrucciones para ambas se encuentran a continuación:
Azure Static Web Apps es la solución de hospedaje de Microsoft para sitios estáticos (o sitios que se representan en el navegador del usuario, no en un servidor) a través de Azure. Este servicio ofrece oportunidades adicionales para expandir tu sitio a través de Azure Functions, autenticación, versiones provisionales y ¡mucho más!.
Necesitarás cuentas de Azure y GitHub para implementar la aplicación web. Si aún no tienes una cuenta de Azure, puedes crearla durante el proceso de implementación o desde los siguientes vínculos:
Con tu proyecto abierto en Codespaces:
/
dist
¿Problemas? Cuando creas tu Static Web App, si te piden seleccionar una suscripción de Azure y no puedes hacerlo, revisa la pestaña “Accounts” (Cuentas) en VS Code. Asegúrate de escoger las opciones “Permitir acceso a…” si es que aparecen. En caso de recibir el mensaje “RepositoryToken is invalid. …” (El token del repositorio es inválido…), cambia al Visual Studio Code para web (vscode.dev) y repite los pasos.
🤩 Bonus: Crea un dominio personalizado para tu Azure Static Web App
GitHub Pages te permite alojar sitios web directamente desde tu repositorio de GitHub. Este proyecto ya está configurado para que puedas subir tu portafolio en GitHub Pages con muy pocos pasos.
Con tu proyecto abierto en Codespaces:
package.json
y actualiza los siguientes valores:
http://{github-username}.github.io/{repo-name}
, donde github-username
es tu nombre de usuario de GitHub y repo-name
es el nombre que del repositorio donde se encuentra tu portafolio.github-username
con tu nombre de usuario de GitHub y repo-name
con el nombre del repositorio.package.json
en tu repositorio remoto de GitHub.crtl
+ shift
(o abra el menú superior izquierdo, seleccione “Terminal” y “Nuevo terminal”)`npm run deploy
. Esto primero ejecutará el script previo a la implementación para compilar el proyecto, seguido del script de implementación que enviará esos archivos empaquetados a una nueva rama en su repositorio (gh-pages) que se usará para tu sitio de GitHub Pages.A continuación, se presentan 4 formas adicionales en que puede continuar personalizando el sitio de tu portafolio y aprender algunos Codespaces, CSS, HTML y JavaScript en el camino.
👋 Obteniendo el acceso a Copilot
Si aún no tienes Copilot, puedes solicitarlo aquí. Si eres estudiante, puedes obtener acceso de forma GRATUITA siguiendo estas instrucciones:.
Para asegurarse que Copilot está funcionando correctamente, navega hasta la pestaña de extensión de tu Codespace y fíjate el estado de la extensión de Copilot. Si el estado es inactivo, vuelve a crear el Codespace y habilita la extensión para asegurarte de que esté activada.
Tu entorno viene con extensiones preinstaladas. Puedes cambiar con qué extensiones comienza tu entorno de Codespaces, aquí te mostramos cómo:
Abre el archivo .devcontainer/devcontainer.json y encuentra el siguiente elemento JSON extensions
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"ms-vscode.azure-account",
"ms-azuretools.vscode-azurestaticwebapps"
]
Agreguemos la extensión indent-rainbow
. Para ello, ve a la lista extensions y agrega:
"oderwat.indent-rainbow"
Lo que hiciste anteriormente fue agregar el identificador único de la extensión indent-rainbow. Esto permitirá que Codespaces sepa que esta extensión debe estar preinstalada al inicio.
Para encontrar el identificador único de una extensión:
⭐ COPILOT BONUS ⭐
En devcontainer.json
, ve a la siguiente línea en los valores de settings
: "emmet.triggerExpansionOnTab": true
. Añade una coma al final de la línea y presiona enter. Revisa que otra configuración recomienda Copilot y si estas te ayudarán en tu Codespace.
💡 Aprende más sobre Personalizar tu GitHub Codespace.
En el encabezado de tu sitio tienes enlaces a cada siguiente sección. Haz clic en uno de estos enlaces y observa cómo se desplaza por la página hasta esa sección. No es realmente un desplazamiento, ¿verdad?
Hagamos una mejor experiencia de usuario para que el usuario tenga una idea de lo que está sucediendo y hacia dónde está navegando en la página.
Abre styles.css
, que es la hoja de estilo para tu portafolio. Necesitamos agregar un estilo para html
. Si te fijas, verás que ahora mismo los estilos html
y body
se están configurando juntos, sin un estilo definido para scroll-behavior
. Vamos a darle a Copilot una instrucción para que lo añada por nosotros:
html {
scroll-behavior: smooth;
}
Tu sitio ya debería estar ejecutándose en tu Codespace, y el cambio se volverá a cargar en la página automáticamente. Haz click en un link en el encabezado superior para ver el desplazamiento suave en acción.
Las animaciones son una forma de agregar fácilmente algo de movimiento a los elementos de tu página para aumentar la interactividad del usuario y resaltar los elementos que deseas que se noten. Vamos a animar la foto de escritorio en la sección de portafolio.
Abre la hoja de estilos de tu sitio, styles.css
dentro de tu Codespace. Usando Copilot, en el final de tu styles.css
cita a Copilot con el siguiente comentario:
/* add a slide in animation */
Esto debería sugerirte la siguiente secuencia animada. Presiona la tecla tab para aceptarla o continúa escribiendo hasta que Copilot complete la sugerencia, y ya tendrás una animación lista para usar.
@keyframes slideInLeft {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(0);
}
}
Ahora que hemos definido nuestra secuencia de animación slideIn
, podemos decirle a nuestra foto de escritorio que se anime con esa secuencia. Abre Portfolio.jsx
y busca la etiqueta img
. Verás que utiliza inline CSS para establecer su estilo. Dentro de su definición de estilo, agrega lo siguiente:
animation: "1s ease-out 0s 1 slideInLeft";
Tu etiqueta se debería ver similar a esto:
<img src={image} style= />
Tu sitio web ya debería estar ejecutándose en tu Codespace, y el cambio se volverá a cargar en la página automáticamente. Desplázate hacia arriba y hacia abajo en la página y observa cómo la foto de tu escritorio se desliza sobre la página.
⭐ COPILOT BONUS ⭐
Usa Copilot para animar la flecha de desplazarse hacia abajo en tu componente Home
para rebotar de arriba a abajo en tu página.
Ayuda: En tu archivo styles.css
, usa comentarios para decirle a Copilot lo que quieres que haga. Revisa lo que te sugiere, complementa tus instrucciones, y fíjate como te guía en conseguir crear tu flecha para rebotar.
Comenzamos con algunas secciones básicas para tu portafolio web, pero tienes libertad creativa para hacerlo tuyo y agregar nuevas secciones relevantes para lo que deseas en tu página.
Por ejemplo, agreguemos una sección de educación a tu portafolio.
Crea un nuevo componente para la sección dentro de la carpeta Components
. Agrega un nuevo archivo llamado Education.jsx
.
Education.jsx
con:
import React from "react";
Mientras comiences a escribir, este tomará lo que haces y te ofrecerá un autocompletado para esa línea.
Presiona enter
luego de la línea para que Copilot sugiera el código para crear tu componente Education
. Presiona tab
para aceptar la solución o crtl
+ enter
para ver todas las sugerencias de Copilot y seleccionar la que mejor funcione para tí.
Al menos, necesitarás un const
definido y el componente Education
exportado (un ejemplo abajo). El resto depende de tí. Experimenta con Copilot, enlazándolo con lo que tu desees construir.
import React from "react";
const Education = () => {
return(
<section className="light" id="education">
<h2>Education</h2>
</section>
)
}
export default Education;
En App.jsx
, importa tu nuevo componente Education
en la parte superior y observa que Copilot empieza a ver que estás haciendo y dando sugerencias de autocompletado:
import Footer from "./Components/Footer";
Education
donde deseas que se encuentre dentro de la página. Observa que Copilot sabe que deseas añadir en el componente Education
. Este debería sugerir lo siguiente que podrás aceptar y se añadirá en tu nuevo componente:
<Education />
En tu Codespace, tu aplicación con tu portafolio debe estar ejecutándose y volverá a cargar tu sitio web con los cambios.
⭐ COPILOT BONUS ⭐
Ahora sabes que GitHub Copilot puede escribir código rápido y también te da unas sugerencias para ahorrar tiempo buscando soluciones.
Revisa como puedes usar Copilot para ayudarte:
Aplicación de navegador Codespaces
Si estás utilizando Edge o Chrome, verás una opción para instalar la aplicación Codespaces cuando inicies tu Codespace. La aplicación Codespaces te permite iniciar tu Codespace dentro de la aplicación para que puedas trabajar fuera del navegador. Busca el icono de la aplicación e instalalo con la ventana emergente para probarla.
Ayúdanos a mejorar este repositorio al ¡Déjanos saber abriendo un issue!.