Crie, personalize e publique seu próprio portifólio web em minutos. ✨
Neste repositório de modelo temos o ambiente de desenvolvimento e uma base de código definida e preparada para execução. Para que você possa iniciar imediatamente seu ambiente Codespace e começar a personalizar seu site usando o Copilot para ajudá-lo a escrever código mais rápido.
- Para quem é isso? Para qualquer pessoa que está buscando criar seu portifólio web, deseja aprender desenvolvimento web ou testar o Codespaces.
- Quanta experiência precisa? Zero. Você decide quanto deseja personalizar baseado em sua experiência e tempo disponível.
- Ferramentas necessárias: Nenhuma. Não é preciso instalar nada! Tudo está no navegador web.
- Pré-requisitos: Nenhum. Esse template já tem o ambiente de desenvolvimento e o aplicativo web para você criar seu próprio site.
Neste template de portfólio, você poderá "escolher sua própria aventura", temos um aplicativo web baseado em React pronto para você personalizar e implantar facilmente usando apenas seu navegador web.
- Clique no botão Usar este modelo (Use this Template) e em Criar um novo repositório (Create a new repository)
- Selecione o proprietário do repositório (por exemplo, sua conta gitHub)
- Digite um nome único para o novo repositório
- Clique no botão Code
- Clique no botão Criar codespace na main
- Personalize seu site de portfólio
- Faça deploy (publicação) na nuvem
Este repositório é um modelo do GitHub para criar um aplicativo da Web de front-end de portfólio pessoal JavaScript usando a estrutura React. O objetivo é fornecer a você um modelo que você possa utilizar imediatamente para criar seu próprio site através do Codespaces.
O repositorio contém:
/.devcontainer
.devcontainer/Dockerfile
: Arquivo de configuração usado por Codespaces para determinar o sistema operacional e outros detalhes..devcontainer/devcontainer.json
: Arquivo de configuração utilizado pelo Codespaces para definir as configurações do Visual Studio Code, como habilitar extensões adicionais.
/src
: Arquivos HTML, JS e CSS utilizados para construir seu portifólio web..eslintrc
: Configuração do ESLint para validar a consistência e qualidade do código..prettierrc
: Configuração do Prettier, que é utilizado para formatar o código.package.json
epackage-lock.json
: Define as informações do projeto para o Node.js, dependências de pacotes e as versões necessárias de cada um
Este projeto está preenchido com dados de amostra para que você possa abrir imediatamente no Codespaces, vê-los em execução e implantar (publicar) a qualquer momento.
Seu ambiente de desenvolvimento está pronto para que você possa começar. Com base em nosso Template de JavaScript (React) com Codespace, aqui está configurado e pronto para utilizar:
- Um simples aplicativo em React com componentes para cada seção do Portfólio Web
- Parcel para criar seu site quando der deploy.
- Sublinhando e formatando código usando ESLint e Prettier para consistência de código.
-
Crie um repositório a partir deste modelo. Use este link para criar o repositório. Selecione o proprietário do repositório, defina um nome, descrição, se desejar, e selecione se seu novo repositório é público ou privado.
-
Antes de criar o Codespace, habilite o GitHub Copilot para sua conta. Se não estiver habilitado, dê uma olhada em Personalizar seu site de portfólio usando o Copilot.
-
Vá para a página principal do repositório recém-criado.
-
Sob o nome do repositório, use o menu "Code" e, na guia Codespaces, selecione "Create codespace on main".
-
Espere enquanto o GitHub inicializa o Codespace.
-
Quando terminar, verá seu Codespace começar com uma seção terminal na parte inferior. Aqui você verá
npm install
em execução. Após o término do NPM, vá para o terminal onde você pode executar o aplicativo web com o seguinte comandondo:npm run start
Quando o aplicativo da Web for iniciado, você verá uma mensagem dizendo que ela começou com sucesso na porta 1234, e você pode abrir esse site dentro do seu navegador:
Este projeto foi desenvolvido para ser facilmente personalizável. Cada seção do site é um componente separado e suas informações precisam ser definidas em apenas um local. Isso não é apenas para facilitar a atualização, mas também para que você possa ver como os valores prop são passados para os componentes React.
Para cada etapa, abra o projeto em Codespaces, então você pode fazer e confirmar suas alterações enquanto estiver dentro do seu Codespace.
Veja Utilizando source control em seu Codespace para mais tutoriais de Codespaces usando source control
Dentro do App.jsx
você verá uma variável chamada siteProps
. Este é um objeto JavaScript que detém os principais pares de valores necessários para personalizar seu nome, título, e-mail e contas de mídias sociais.
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",
};
Atualize o nome e o título que você gostaria de exibir na parte superior do seu site.
Alguns valores opcionais são endereço de e-mail e contas sociais. Estes são usados no componente 'footer'. Se qualquer item não estiver incluído na lista ou definido como uma sequência vazia (""), ele não exibirá o ícone e o link.
Este site de portfólio inclui 3 imagens: seção superior, seção "Sobre mim" e a seção de portfólio. Podem ser imagens de formato paisagem de sua escolha, de sua própria coleção ou encontradas que tenham uma licença que permita o uso sem atribuição.
Dois sites para encontrar fotos são Pixabay e Unsplash. Fotos, ilustrações, vetores, você decide! Quando achar suas imagens, guarde cada uma em /src/images
com um nome de arquivo curto e significativo.
Vá para os seguintes componentes para atualizar a linha import image...
para referenciar a nova imagem que você baixou para essa seção, bem como o imageAltText
para cada imagem:
-
/src/Components/Home.jsx
- Seção na parte superior da página, imagem principal que você verá quando o site é carregado (mulher parada na parede do servidor no exemplo)import image from "../images/server-wall.jpg"; const imageAltText = "woman holding laptop standing by server room with glass wall";
-
/src/Components/About.jsx
- Fundo por trás da seção detalhada "sobre mim" (mosaico abstrato no exemplo)import image from "../images/mosaic.svg"; const imageAltText = "purple and blue abstract background";
-
/src/Components/Portfolio.jsx
- Imagem destacada no lado esquerdo da seção (foto de mesa de design no exemplo)import image from "../images/design-desk.jpeg"; const imageAltText = "desktop with books and laptop";
A seção "Sobre" ajuda a fornecer às pessoas um pouco mais de informações sobre suas habilidades e paixões. Dentro de /src/Components/About.jsx
você encontrará 2 valores para atualizar:
description
: uma ou duas frases curtas, descrevendo a si mesmo, objetivos de carreira e/ou paixõesdetailOrQuote
: bloco mais longo para você adicionar mais detalhes sobre você, ou até mesmo uma citação que você gosta
A segunda seção a ser atualizada é a seção "Portfólio", onde você destaca os itens nos quais trabalhou. Estes seriam artigos, vídeos, designs de logo, projetos do GitHub, qualquer coisa que destaque você!
Vá para /src/Components/Portfolio.jsx
e localize a variável projectList
. Este é um array de objetos em JavaScript. Cada item que você deseja destacar precisa: título, descrição e URL.
O exemplo tem 4, mas o número que você inclui depende de você.
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",
},
];
O projeto inclui a configuração necessária para dar fazer deploy (publicação) gratuitamente no Azure Static Web Apps ou GitHub Pages. Abaixo, você encontra o passo a passo para ambos:
Azure Static Web Apps é a solução de hospedagem da Microsoft para sites estáticos (ou sites renderizados no navegador do usuário, não em um servidor) por meio do Azure. Este serviço oferece oportunidades adicionais para expandir seu site por meio do Azure Functions, autenticação, versões de preparação (stating ou em português, pré-produção) e muito mais.
Você precisará de contas no Azure e no GitHub para publicar (implantar) seu aplicativo Web. Se você ainda não tem uma conta do Azure, pode criá-la durante o processo de implantação ou nos links abaixo:
- Crie uma conta do Azure para estudantes (sem necessidade de cartão de crédito)
- Crie uma nova conta do Azure (requer cartão de crédito)
Com seu projeto aberto no Codespaces:
- Clique no ícone do Azure na barra lateral esquerda. Faça logon se ainda não o fez e, se for novo no Azure, siga as instruções para criar sua conta.
- No menu do Azure, clique no sinal “+” e depois em "Criar aplicativo Web estático" (Create Static Web App).
- Se você não estiver logado no GitHub, você deverá fazer o login. Se você tiver alguma alteração de arquivo pendente, será solicitado que você confirme essas alterações.
- Defina as informações do seu aplicativo quando solicitado:
- Region: Coloque a regição mais próxima
- Project structure: Selecione "React"
- Location of application code:
/
- Build location:
dist
- Ao concluir, você verá uma notificação na parte inferior da tela e um novo fluxo de trabalho do GitHub Action será adicionado ao seu projeto. Se você clicar em "Abrir Action no GitHub", verá a ação que foi criada para você, que estará em execução.
- Para visualizar o status de sua publicação (implantação), localize seu recurso Static Web App na guia Azure na barra lateral esquerda do VS Code.
- Após a conclusão da publicação (implantação), você pode visualizar seu novo aplicativo, acessível ao público clicando com o botão direito do mouse no recurso Static Web App e selecionando "Browse Site".
Issues? Ao criar seu Static Web app, se você for solicitado a selecionar uma assinatura do Azure e não puder selecionar uma assinatura, verifique a guia "Accounts" no VS Code. Certifique-se de escolher as opções "Grant access to ..." (em português, "Conceder acesso a") se essas opções aparecerem. Se você receber a mensagem de erro "RepositoryToken is invalid. ..." (em português, "RepositoryToken é inválido") mude para o Visual Studio Code para a Web (vscode.dev) e repita as etapas lá.
🤩 Bônus: Configurar um domínio personalizado para seu aplicativo Web estático do Azure
GitHub Pages permite hospedar sites diretamente do repositório do GitHub. Este projeto já está configurado para que você possa dar deploy seu portfólio para páginas do GitHub em poucos passos.
Com seu projeto aberto em Codespaces:
- Abre
package.json
e atualize os seguintes valores:- homepage: defina para
http://{github-username}.github.io/{repo-name}
, ondegithub-username
é seu nome de usuário GitHub erepo-nome
é o nome que você deu a este repositório de portfólio quando o criou - build-gh: substitua o
github-username
pelo seu nome de usuário no GitHub erepo-name
por nome do repositório
- homepage: defina para
- Faça um
commit
epush
destas alterações nopackage.json
para seu repositório remoto. - Abra um novo terminal pelo menu ou pressionando
crtl
+shift
+ ` (ou abrir o menu superior esquerdo, selecione "Terminal" e "Novo terminal") - Na janela do terminal, execute o comando
npm run deploy
. Isso executará primeiro o script de pré-implantação para criar o projeto, seguido pelo script de implantação, que enviará esses arquivos agrupados para uma nova branch em seu repositório (gh-pages) que será usado para seu site GitHub Pages. - Quando concluído, em seu repositório, vá para Configurações e Pages. Lá você verá que uma página foi configurada para você na branch gh-pages e deverá ver a URL (que deve corresponder ao valor "homepage" definido em package.json)
🤩 Bônus: Configure um domínio personalizado para o site no GitHub Pages
Abaixo estão 4 maneiras adicionais para você continuar personalizando seu site de portfólio e Codespace. Mostraremos como usar o Copilot para fazer sugestões de código para um desenvolvimento mais rápido e ajudá-lo a aprender mais HTML, CSS e JavaScript ao longo do caminho.
- Personalizar seu Codespace
- Atualizar a navegação entre seções com smooth scroll
- Animar a imagem fundo
- Adicionar uma nova seção
👋 Obtendo acesso ao GitHub Copilot
Se você ainda não tem acesso ao Copilot, pode solicitar aqui. Se você é estudante, pode obter o Copilot GRÁTIS seguindo estas instruções.
Para garantir que o Copilot esteja sendo executado corretamente, navegue até a guia de extensão em seu Codespace e verifique o status da extensão do Copilot. Se o status for inativo, recrie o Codespace e habilite a extensão para garantir que ela esteja ativada.
Seu ambiente vem com extensões pré-instaladas. Você pode alterar quais extensões o ambiente codespaces começa, veja como:
-
Abre o arquivo .devcontainer/devcontainer.json e encontre o seguinte elemento JSON extensions
"extensions": [ "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "gitHub.copilot", "ms-vscode.azure-account", "ms-azuretools.vscode-azurestaticwebapps" ]
-
Vamos adicionar a extensão "indent-rainbow". Para fazer isso, vá para a lista extensions e adicione:
"oderwat.indent-rainbow"
O que você fez anteriormente foi adicionar o identificador único de uma extensão do indent-rainbow. Isso permitirá que o Codespaces saiba que essa extensão deve ser pré-instalada na inicialização.
Como encontrar o identificador único de uma extensão:
- Navegue a página web da extensão: marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow
- Localize o campo Unique Identifier na seção More info a direita.
⭐ BÔNUS COPILOT ⭐
Em devcontainer.json
, vá para a seguinte linha settings
: "emmet.triggerExpansionOnTab": true
. Adicione uma vírgula no final da linha e pressione enter. Veja quais outras configurações o Copilot recomenda e se elas podem ajudá-lo em seu Codespace.
💡 Saiba mais aqui, Personalizar seu GitHub Codespace
In devcontainer.json
, go to the following line in the settings
values: "emmet.triggerExpansionOnTab": true
. Add a comma at the end of the line and press enter. See what other settings Copilot recommeneds and if they'd help you in your Codespace.
No cabeçalho do seu site você tem links para cada seção abaixo. Clique em um desses links e observe-o rolar a página até essa seção. Não é realmente um scroll, né?
Vamos melhorar a experiência do usuário diminuindo a velocidade para que o usuário tenha uma noção do que está acontecendo e para onde está navegando na página.
-
Abra
styles.css
, que é a folha de estilo para seu site de portfólio. Precisamos adicionar um estilo parahtml
. Se você olhar, verá agora que os estiloshtml
ebody
estão sendo definidos juntos, sem nenhum estilo definido parascroll-behavior
. Vamos dar ao Copilot um prompt para adicionar isso para nós. -
Abaixo do estilo de
html
ebody
, comece a instruir o Copilot com um comentário de:/* adiciona uma rolagem suave */
-
O Copilot irá então sugerir o CSS abaixo:
html { scroll-behavior: smooth; }
-
Pressione a tecla tab para aceitar a sugestão. (Nota: Se você não vir esta sugestão exata do Copilot, continue digitando para que a sugestão apareça.)
Seu site já deve estar em execução no seu Codespace e a alteração será recarregada na página automaticamente. Clique em um link no cabeçalho superior para ver a rolagem suave em ação.
As animações são uma maneira fácil de adicionar algum movimento aos elementos da sua página para aumentar a interatividade do usuário e destacar os itens que você deseja garantir que eles notem. Vamos animar a foto da mesa na seção de portfólio.
-
Abra a folha de estilo do seu site,
styles.css
dentro do seu Codespace. Usando o Copilot, na parte inferior do promptstyles.css
Copilot com o seguinte comentário:/* adicionar um slide na animação */
Ele deve então sugerir a seguinte sequência de animação para você. Pressione a tecla tab para aceitar ou continue digitando até que o Copilot conclua as sugestões e você tenha sua animação pronta para uso.
@keyframes slideInLeft { 0% { transform: translateX(-100%); } 100% { transform: translateX(0); } }
-
Com a sequência de animação definida, agora podemos dizer à nossa foto de mesa para se animar com nossa nova sequência de animação
slideIn
. AbraPortfolio.jsx
e localize a tagimg
. Você verá que ele utiliza CSS embutido para definir seu estilo. Dentro de sua definição de estilo, adicione o seguinte:animation: "1s ease-out 0s 1 slideIn";
Sua tag de imagem deve se parecer com algo como:
<img src={image} style={{ height: "90%", width: "100%", objectFit: "cover", animation: "1s ease-out 0s 1 slideInLeft" }} />
Seu site já deve estar sendo executado no seu Codespace e a alteração será recarregada automaticamente na página. Role para cima e para baixo na página e veja sua foto de desktop deslizar sobre a página.
⭐ BÔNUS COPILOT ⭐
Use o Copilot para ajudá-lo a animar a seta de rolagem para baixo, em seu componente Home
, para saltar para cima e para baixo em sua página.
Dica: Em seu arquivo styles.css
, use comentários para começar a dizer ao Copilot o que você quer fazer. Veja o que é sugerido, ajuste seus prompts e veja como isso o orienta para que sua flecha salte.
Começamos com algumas seções básicas para o seu portfólio web, mas você tem liberdade criativa para torná-lo seu e adicionar novas seções relevantes para o que você quer em seu site.
Por exemplo, vamos adicionar uma seção de educação ao site do seu portfólio.
-
Crie um novo componente para a seção dentro da pasta
Components
. Adicione um novo arquivo chamadoEducation.jsx
. -
Vamos pedir ajuda ao Copilot para começar. Em vez de solicitar um comentário, inicie seu arquivo
Education.jsx
com:import React from "react";
Conforme você começa a digitar, ele capta o que você está fazendo e pode oferecer um preenchimento automático dessa linha.
-
Pressione
enter
após a linha de importação para que o Copilot sugira o código para criar seu componenteEducation
. Pressionetab
para aceitar a solução oucrtl
+enter
para ver todas as sugestões do Copilot e selecione aquela que funciona para você.
No mínimo, você precisa de um const
definido e o componente Education
exportado (exemplo abaixo). O resto é com você. Experimente o Copilot, ajustando-o junto com o que você gostaria que ele construísse.
import React from "react";
const Education = () => {
return(
<section className="light" id="education">
<h2>Education</h2>
</section>
)
}
export default Education;
-
Em
App.jsx
, importe seu novo componenteEducation
na parte superior adicionando o seguinte e observe como o Copilot começa a ver o que você está fazendo e a fornecer sugestões de preenchimento automático:import Education from "./Components/Education";
-
Agora adicione o componente
Education
indo para uma nova linha onde você deseja renderizá-lo. O Watch Copilot já sabe que você deseja renderizar o componente 'Educação'. Ele deve sugerir o seguinte que você pode aceitar e renderizar seu novo componente:<Education />
Em seu Codespace, seu aplicativo de portfólio deve estar em execução e recarregará seu site com as alterações.
⭐ BÔNUS COPILOT ⭐
Agora que você sabe como o Copilot pode não apenas ajudá-lo a codificar mais rapidamente, mas também dar sugestões para economizar seu tempo procurando soluções.
Explore como você pode usar o Copilot para ajudá-lo a:
- adicione Educação à sua navegação superior
- inclua detalhes de educação usando o Copilot (Dica: adicione o comentário de "grade de 4 células de educação")
- Visão Geral do GitHub Codespaces
- Guia GitHub Codespaces
- Documentação GitHub Copilot
- Use contêineres de desenvolvimento localmente com VS Code e Docker
- Desenvolvimento Web para Iniciantes
- Comece a usar o React
Se você estiver usando Edge ou Chrome, verá uma opção para instalar o aplicativo Codespaces ao iniciar seu Codespace. O aplicativo Codespaces permite que você inicie seu Codespace dentro do aplicativo para que você possa trabalhar fora do navegador. Encontre o ícone do aplicativo e instale-o com a janela pop-up para testá-lo.
Ajude-nos a melhorar este repositório nos informando e abrindo uma issue!.