Aqui você vai encontrar os detalhes de como foi o desenvolvimento do projeto.
- Criar formulários em HTML;
- Utilizar CSS Flexbox para criar layouts flexíveis;
- Criar regras CSS específicas para serem aplicadas a dispositivos móveis;
- Construir páginas que alteram o seu layout de acordo com a orientação da tela;
Neste projeto, nós criamos uma forma de cadastro em uma escola de bruxo, inspirada em uma saga de bruxos muito famosa. Além de fornecer algumas informações pessoais, também é possível deixar um comentário e fazer com que todas as informações fiquem salvas, ao concordar com os termos e enviar o formulário.
- Esta barra deve possuir a classe
header
- A classe
header
deve determinar que o elemento é um flex container - A classe
header
deve possuir a propriedadebackground-color: rgb(50, 167, 145)
- Existe um elemento com a classe
header
- O elemento possui a propriedade CSS
display: flex
- O elemento possui a propriedade CSS
background-color: rgb(50, 167, 145)
- Deve existir um elemento img com a classe
trybewarts-header-logo
- O atributo
src
do logotipo deve apontar paraimages/trybewarts-header-logo.svg
- Existe um elemento
img
com a classetrybewarts-header-logo
- O elemento possui o atributo
src
apontando paraimages/trybewarts-header-logo.svg
3. Acrescente um formulário de login no canto direito da barra superior contendo os inputs de email, senha e um botão de login
- O formulário deve ter a classe
trybewarts-login
- O input de email deverá ter o atributo
name
igual a email e oplaceholder
igual a Email - O input de senha deverá ter o atributo
name
igual a password e oplaceholder
igual a Senha - O botão deverá ter o texto "Entrar"
- O formulário deve ser um flex container
- O formulário deve estar a direita da logo
- Dica: adicione a propriedade flex que faz os elementos terem o espaçamento máximo entre eles no header
- Ao preencher o formulário e clicar no botão, será validado que:
- Caso o email seja "tryber@teste.com" e a senha seja "123456" será emitido um alerta contendo o texto "Olá, Tryber!"
- Em todos os outro casos deverá ser emitido um alerta contendo o texto "Email ou senha inválidos."
- Existe um elemento
form
com a classetrybewarts-login
- Existe um input com o atributo
name
igual a email e oplaceholder
igual a Email - Existe um input com o atributo
name
igual a password e oplaceholder
igual a Senha - Existe um botão com o texto "Entrar"
- O formulário possui a propriedade CSS
display: flex
- O elemento
form
está à direita da logo - Ao clicar no botão de login dispara um alert com o texto "Email ou senha inválidos", no caso de erro de preenchimento dos dados
- Ao clicar no botão de login dispara um alert com o texto "Olá, Tryber!", no caso de preenchimento correto dos dados.
- Deve existir um elemento
<h1>
com o idtrybewarts-header-title
e com o texto "Trybewarts" - O título deverá estar centralizado na barra verde
- O header deve ter exatamente três elementos filhos
- O filho do meio deve ser o título
- Existe um elemento
h1
com o idtrybewarts-header-title
e com o textoTrybewarts
- O elemento com a classe
header
deve possuir exatos3
elementos filhos - O filho do meio do elemento com a classe
header
deve ser o título h1Trybewarts
- Deve existir um formulário com o id
evaluation-form
- O formulário deve estar inserido dentro de uma tag
main
- Tanto o formulário quanto o
main
devem ser flex containers - O formulário deve ter uma largura de 675px
- Existe um elemento
form
com o idevaluation-form
- O elemento
form
está dentro da tagmain
- O elemento
main
e oform
possuem a propriedade CSSdisplay: flex
- O elemento
form
possui a propriedade CSSwidth: 675px
- Mude o eixo principal do formulário com id
evaluation-form
para vertical
- O elemento
evaluation-form
possui a propriedade CSSflex-direction: column
- Crie um elemento
img
com o idtrybewarts-forms-logo
- O atributo
src
deve apontar paraimages/trybewarts-colored.svg
- A imagem deve possuir o estilo css
height
de500px
- Existe um elemento
img
com o idtrybewarts-forms-logo
- O elemento possui o atributo
src
apontando paraimages/trybewarts-colored.svg
- A imagem possui o estilo css
height
igual a500px
- Deverá haver um input com o id input-name e placeholder Nome
- Deverá haver um input com o id input-lastname e placeholder Sobrenome
- Deverá haver um input com o id input-email e placeholder Email
- Existe um input com o id input-name e placeholder Nome
- Existe um input com o id input-lastname e placeholder Sobrenome
- Existe um input com o id input-email e placeholder Email
9. Acrescente ao formulário um select com o id house
contendo as opções Gitnória
, Reactpuff
, Corvinode
e Pytherina
- Deverá conter a opção com
text
evalue
igual aGitnória
e com oid
igual agitnoria-house
- Deverá conter a opção com
text
evalue
igual aReactpuff
e com oid
igual areactpuff-house
- Deverá conter a opção com
text
evalue
igual aCorvinode
e com oid
igual acorvinode-house
- Deverá conter a opção com
text
evalue
igual aPytherina
e com oid
igual apytherina-house
- Existe um elemento
select
com o idhouse
- Existe um elemento
option
comtext
evalue
igual aGitnória
e com oid
igual agitnoria-house
- Existe um elemento
option
comtext
evalue
igual aReactpuff
e com oid
igual areactpuff-house
- Existe um elemento
option
comtext
evalue
igual aCorvinode
e com oid
igual acorvinode-house
- Existe um elemento
option
comtext
evalue
igual aPytherina
e com oid
igual apytherina-house
- Os campos de
Nome
eSobrenome
devem estar lado a lado
- O campo de
Sobrenome
está à direita do campo deNome
- Os campos de
Email
eCasa
devem estar lado a lado
- O campo de
Casa
está à direita do campo deEmail
- Crie um elemento com o id
label-family
e o texto "Qual sua família?" deverá ser criado - Crie um
input
do tiporadio
com o atributoname
igual a family evalue
igual a Frontend - Crie um
input
do tiporadio
com o atributoname
igual a family evalue
igual a Backend - Crie um
input
do tiporadio
com o atributoname
igual a family evalue
igual a FullStack - Posicione os radio buttons para ficar abaixo um do outro, na sequência Frontend, Backend e Fullstack
- Posicione os radio buttons abaixo do label
- Existe um elemento
label
com oid
label-family que possui o conteúdo de textoQual sua família?
- Existe um
input
do tiporadio
com o atributoname
igual a family evalue
igual a Frontend - Existe um
input
do tiporadio
com o atributoname
igual a family evalue
igual a Backend - Existe um
input
do tiporadio
com o atributoname
igual a family evalue
igual a FullStack - Os inputs do tipo
radio
estão um abaixo do outro na sequência Frontend, Backend e Fullstack - Os inputs do tipo
radio
estão abaixo do texto da label
- Crie um elemento com o
id
label-content e o texto "Qual conteúdo você está com mais vontade de aprender?" - Crie um input do tipo
checkbox
com o value igual a HoFs - Crie um input do tipo
checkbox
com o value igual a Jest - Crie um input do tipo
checkbox
com o value igual a Promises - Crie um input do tipo
checkbox
com o value igual a React - Crie um input do tipo
checkbox
com o value igual a SQL - Crie um input do tipo
checkbox
com o value igual a Python - Posicione as checkboxes abaixo do label
- Existe um elemento
label
com oid
label-content que possui um conteúdo de textoQual conteúdo você está com mais vontade de aprender?
- Existe um
input
do tipocheckbox
com o atributo value igual a HoFs - Existe um
input
do tipocheckbox
com o atributo value igual a Jest - Existe um
input
do tipocheckbox
com o atributo value igual a Promises - Existe um
input
do tipocheckbox
com o atributo value igual a React - Existe um
input
do tipocheckbox
com o atributo value igual a SQL - Existe um
input
do tipocheckbox
com o atributo value igual a Python - Os elementos
checkbox
então posicionados abaixo da label
- Um elemento com o
id
label-rate e o texto "Como você avalia a Trybewarts?" deverá ser criado - O campo deve ser formado por dez radio buttons, contendo as opções de 1 a 10
- Os radio buttons devem ter o atributo
value
com o valor de suas opções de 1 a 10. - Os radio buttons devem ter o atributo
name
com o valor "rate" - Posicione os radio buttons para ficar lado a lado
- Posicione os radio buttons à direita da label
- Existe um elemento
label
com oid
label-rate que possui um conteúdo de textoComo você avalia a Trybewarts?
- Existem 10
radio-buttons
com o atributoname="rate"
- Existem 10
radio-buttons
contendo o atributovalue
de 1 a 10 - Os
radio-buttons
estão à direita do texto da label
15. Crie uma textarea com o id textarea
e uma label com a classe textarea
contendo o número máximo de caracteres igual à 500
- Uma label com a classe
textarea
e o texto "Deixe seu comentário:" deverá ser criado - O campo
textarea
deverá ter o máximo de 500 caracteres
- Existe uma
label
com a classetextarea
e o textoDeixe seu comentário:
- O elemento
textarea
possui um limite de 500 caracteres
- Um rótulo (label) com o id
label-infos
e o texto "Você concorda com o uso das informações acima?" deverá ser criado - O campo deve ser formado por um checkbox
- O campo de 'checkbox' deve possuir o ID
agreement
- Posicione a checkbox ao lado da label
- Existe uma label com o id
label-infos
que possui o textoVocê concorda com o uso das informações acima?
- Existe um input do tipo
checkbox
com o idagreement
- Um botão do tipo
submit
deverá ser criado - O botão deve possuir o ID
submit-btn
- Deverá conter o texto "Enviar"
- Existe um botão do tipo
submit
com o idsubmit-btn
e o textoEnviar
18. Faça com que o botão Enviar
seja habilitado somente após a checkbox do requisito 16 ser selecionada
- O botão deverá estar desabilitado caso a checkbox não esteja selecionada
- O botão deverá ser habilitado caso a checkbox seja selecionada
- O botão está inicialmente desabilitado
- O botão torna-se habilitado, ao marcar o campo com id
agreement
- O rodapé deverá conter o texto "Direitos reservados à Trybewarts©"
- Existe um elemento
footer
deve possuir o textoDireitos reservados à Trybewarts©
20. Crie um contador com o ID counter
contendo o número de caracteres disponíveis no textarea, variando de 500 até 0, que deverá ser atualizado a medida que algo for digitado na textarea
- O contador deverá possuir o ID
counter
- O contador inicialmente deve possuir o valor
500
- O contador deverá decrementar a medida que algo for escrito no campo
textarea
- O contador deverá incrementar a medida que algo for deletado no campo
textarea
- O elemento
textarea
deverá possuirid="textarea"
- Existe um elemento com o id
counter
- Existe um elemento com o id
textarea
- O preenchimento do campo de
textarea
altera o número apresentado no elemento#counter
21. Faça com que, ao clicar no botão Enviar
, o conteúdo dentro da tag <form>
seja substituído pelas informações preenchidas pela pessoa usuária
- Todos os campos do formulário devem ser substituídos pelas informações da pessoa usuária.
- Deve haver um campo com o formato "Nome: Alguem Aqui"
- Deve haver um campo com o formato "Email: email@mail.com"
- Deve haver um campo com o formato "Casa: Casa Escolhida"
- Deve haver um campo com o formato "Família: Família Escolhida"
- Deve haver um campo com o formato "Matérias: Matérias, Marcadas, Aqui"
- Deve haver um campo com o formato "Avaliação: NotaAqui"
- Deve haver um campo com o formato "Observações: Observações aqui"
- A tag
<form>
com o idevaluation-form
deve ser exibida na tela - Os
inputs
tipocheckbox
referentes à lista de conteúdo possuemclass="subject"
- Ao clicar no botão de enviar, existe um texto no formato
Nome: -Nome- -Sobrenome-
- Ao clicar no botão de enviar, existe um texto no formato
Email: -Email-
- Ao clicar no botão de enviar, existe um texto no formato
Casa: -Casa-
- Ao clicar no botão de enviar, existe um texto no formato
Família: -Família-
- Ao clicar no botão de enviar, existe um texto no formato
Matérias: -Matérias Selecionadas-
- Ao clicar no botão de enviar, existe um texto no formato
Avaliação: -Avaliação-
- Ao clicar no botão de enviar, existe um texto no formato
Observações: -Observações-
Esses requisitos não são verificáveis pelo avaliador automático.
- Utilize o arquivo feedback.md para deixar comentários e sugestões sobre o projeto! Para nós, é muito importante saber se vocês tiveram uma boa experiência e se foi praticar seus conhecimentos com o Trybewarts!
- Utilize media queries para inserir breakpoints para telas de diferentes tamanhos.
- Leve em conta a largura da tela e a experiência do usuário ao reorganizar o layout para dispositivos menores.
- Tente inserir um 'menu hambúrguer' na barra superior para lidar com o login usando javascript. Se não conseguir, tente criar uma página separada de login, uma prática muito comum.
- Deixe sua criatividade fluir! Preferimos não avaliar esse requisito justamente pra que você tenha liberdade para executar a responsividade da maneira que você achar mais agradável!
A pessoa dona da branch deve garantir que o último commit nessa branch é seu. Pode ser feita alguma alteração que não afete o cumprimento dos requisitos para realizar o commit.
A outra pessoa integrante da dupla deve criar uma nova branch
a partir da branch
de trabalho (a primeira branch criada pela equipe).
Exemplo:
- Use
git branch
para ter certeza de que está na branch de trabalho; - Caso não esteja use
git checkout joaozinho-trybewarts-project
para trocar debranch
; - User
git checkout -b mariazinha-trybewarts-project
para criar uma nova branch a partir da branch anterior (joaozinnho-trybewarts-project
);
Garanta que o último commit da branch é de autoria da pessoa dona de cada branch. Novamente pode ser feita alguma alteração que não afete o cumprimento dos requisitos para realizar o commit.
- Adicione sua branch com o novo
commit
ao repositório remoto
- Usando o exemplo anterior:
git push -u origin mariazinha-trybewarts-project
- Crie um novo
Pull Request
(PR)
- Vá até a página de Pull Requests do repositório no GitHub
- Clique no botão verde "New pull request"
- Clique na caixa de seleção "Compare" e escolha a sua branch com atenção
- Clique no botão verde "Create pull request"
- Adicione uma descrição para o Pull Request, um título claro que o identifique, e clique no botão verde "Create pull request"
- Não se preocupe em preencher mais nada por enquanto!
- Volte até a página de Pull Requests do repositório e confira que o seu Pull Request está criado