Projeto.Arte.com.Pixels.1.mp4
Implementação de um editor de arte com pixels em que a pessoa usuária poderá escolher uma cor em uma paleta de cores e poderá pintar o que quiser em um quadro branco art artist
Habilidades desenvolvidas
- Javascript: DOM, seletores, elementos, eventos e web storage;
- Antes de começar, você vai precisar ter instalado em sua máquina a ferramenta Git.
- Além disto é bom ter um editor para trabalhar com o código como VSCode.
-
Clone este repositório:
git clone git@github.com:priscilaSartori/project-pixels-art.git -
Acesse a pasta do projeto no terminal/cmd:
cd project-pixels-art -
Instale as dependências:
npm install -
Para acessar a aplicação, utilize o "Go Live" e o localhost (atribuído a um número de porta) deverá iniciar em seu navegador padrão.
-
Execute os testes:
Para executar os testes apenas no terminal:
npm testPara executar os testes e vê-los rodando em uma janela de navegador:
npm run cypress:openounpx cypress openO Cypress é uma ferramenta de teste de front-end desenvolvida para a web. Após executar um dos comandos acima, uma janela de navegador será aberta e, então, você poderá escolher o teste a ser executado (project.spec.js) ou escolher Run all specs para executar todos os testes.
A página deve conter o título "Paleta de Cores"
-
O título deverá ficar dentro de uma tag
h1com oIDdenominadotitle; -
O texto do título deve ser exatamente "Paleta de Cores".
O que será testado:
- O título deve possuir a tag
h1; - O título deve possuir o
IDtitle; - O título deve ser
Paleta de Cores.
A página deve conter uma paleta com quatro opções de cores
-
A paleta de cores deve ser um elemento com
IDdenominadocolor-palette, e cada cor individual contida na paleta de cores deve possuir aclassechamadacolor; -
A cor de fundo de cada elemento da paleta deverá ser a cor que o elemento representa. A única cor não permitida na paleta é a cor branca;
-
Cada elemento da paleta de cores deverá ter uma borda preta, sólida e com 1 pixel de largura;
-
A paleta de cores deverá listar todas as cores disponíveis para utilização lado a lado, e deverá ser posicionada abaixo do título
Paleta de Cores; -
A paleta de cores não deve conter cores repetidas.
O que será testado:
-
A paleta de cores deve possuir o
IDcolor-palette; -
As cores individuais da paleta devem possuir a
classecolor; -
A cor de fundo de cada elemento da paleta é a cor que o elemento representa
⚠️ A única cor não permitida na paleta é a cor branca⚠️ ; -
Os elementos da paleta de cores devem ter borda preta, sólida e com 1 pixel de largura;
-
As cores da paleta devem estar lado a lado;
-
A paleta de cores deve estar posicionada abaixo do título
Paleta de Cores; -
A paleta de cores não pode conter cores repetidas.
A primeira cor na paleta criada no requisito 2 deve ser preta. As demais cores podem ser escolhidas livremente.
O que será testado:
- A primeira cor da paleta deve possuir
background-colorpreto;
Sua página deve conter um quadro de pixels 5x5
-
O quadro de "pixels" deve ter 5 elementos de largura e 5 elementos de comprimento;
-
O quadro de "pixels" deve possuir o
IDdenominadopixel-board, e cada "pixel" individual dentro do quadro deve possuir aclassedenominadapixel; -
A cor inicial dos "pixels" que compõem o quadro de pixels deve ser branca;
-
O quadro de "pixels" deve aparecer abaixo da paleta de cores.
O que será testado:
-
O quadro de "pixels" deve possuir o
IDpixel-board; -
Cada pixel individual dentro do quadro deve possuir a
classepixel; -
A cor inicial dos "pixels" dentro do quadro deve ser branca;
-
O quadro de "pixels" deve aparecer abaixo da paleta de cores.
5 - Faça com que cada pixel do quadro tenha largura e altura de 40 pixels e borda preta de 1 pixel de espessura.
Cada pixel do quadro deve possuir 40px de largura e 40px de altura e uma borda preta sólida de 1px de espessura
O que será testado:
-
O quadro de "pixels" deve possuir altura e comprimento de 5 elementos;
-
Os elementos do quadro devem possuir 40 px de altura e 40 px de largura, incluindo o seu conteúdo e excluindo a borda preta;
-
Os elementos do quadro devem possuir borda preta sólida de 1px de espessura.
A cor preta já deve estar selecionada na paleta para pintar os pixels do quadro ao iniciar a página.
-
O elemento que posteriormente deverá receber a classe selected deve ser um dos elementos que possuem a classe color, como especificado no requisito 2.
-
O elemento da cor preta deve possuir inicialmente a classe
selected.
O que será testado:
-
O elemento da cor preta possui, inicialmente, a classe
selected; -
Nenhuma outra cor da paleta pode ter a classe
selectedao carregar a página.
A cor clicada deve ser selecionada e poderá ser utilizada para preencher os quadros
-
A cor clicada deve receber a
classeselectede a cor previamente selecionada deve perder estaclasse; -
Somente uma das cores da paleta pode ter a classe
selectedde cada vez; -
Os elementos que deverão receber a
classeselecteddevem ser os mesmos elementos que possuem a classecolor, como especificado no requisito 2.
O que será testado:
-
Somente uma cor da paleta de cores pode ter a classe
selectedde cada vez; -
Os pixels dentro do quadro não devem ter a classe
selectedquando são clicados.
8 - Crie uma função que permita preencher um pixel do quadro com a cor selecionada na paleta de cores.
O pixel do quadro clicado deve ter sua cor alterada para a cor selecionada na paleta de cores
O que será testado:
-
Ao carregar a página deve ser possível pintar os pixels do quadro de preto;
-
Após selecionar outra cor na paleta de cores, é possível pintar os pixels do quadro com essa cor;
-
Somente o pixel que foi clicado deve ter a cor alterada, sem influenciar na cor dos demais pixels.
Sua página deve ter um botão que, ao ser clicado, deixe todos os pixels do quadro com a cor branca
O que será testado:
-
O botão deve possuir o
IDclear-board; -
O botão deve estar posicionado entre a paleta de cores e o quadro de pixels;
-
O botão deve possuir o texto
Limpar; -
O botão ao ser clicado, deve deixar todos os pixels do quadro preenchidos de branco.
A página deve conter um input para que a pessoa usuária possa definir o tamanho do quadro de pixels
-
Crie um input com
IDboard-sizeposicionado entre a paleta de cores e o quadro de pixels para receber um valor maior que zero para definir o tamanho do quadro de pixels. -
Crie um botão que deve conter o texto "VQV" e
IDgenerate-board; -
O botão deve estar posicionado ao lado do input;
-
O botão, ao ser clicado, deve alterar o tamanho do quadro para N pixels de largura e N pixels de altura, em que N é o número inserido no input. Ou seja, se o valor passado para o input for igual a 7, ao clicar no botão, será gerado um quadro de 49 pixels (7 pixels de largura x 7 pixels de altura);
-
O input só deve aceitar número maiores que zero. Essa restrição deve ser feita usando os atributos do elemento
input; -
Se nenhum valor for colocado no input ao clicar no botão, mostre um
alertcom o texto: "Board inválido!"; -
O novo quadro deve ter todos os pixels preenchidos com a cor branca.
O que será testado:
-
O input deve possuir o
IDboard-size; -
O input deve aceitar apenas números maiores que zero. Essa restrição deve ser feita usando os atributos do elemento
input; -
O input deve estar posicionado entre a paleta de cores e o quadro de pixels;
-
O botão deve possuir o
IDgenerate-board; -
O botão deve possuir o texto
VQV; -
O botão deve estar posicionado ao lado direito do input;
-
O botão, ao ser clicado, deve mudar o tamanho do board usando o valor do input;
-
O botão, ao ser clicado sem valor definido no input, deve emitir um
alertcom o texto:Board inválido!; -
O quadro gerado deve ter todos os pixels preenchidos com a cor branca.
O quadro não pode ser definido com menos de 5 ou mais de 50 pixels
-
Caso o valor digitado no input
board-sizeesteja fora do intervalo de 5 a 50, faça:-
Para um valor de
board-sizemenor que 5, considere 5pixelscomo o valor padrão; -
Para um valor de
board-sizemaior que 50, considere 50pixelscomo o valor padrão.
-
O que será testado:
-
A altura do board pode ser igual a 50;
-
A altura do board é 5 pixels quando um valor menor que 5 é colocado no input;
-
A altura do board é 50 pixels quando um valor maior que 50 é colocado no input.
12 - Crie uma função para gerar as cores aleatoriamente, com exceção da cor preta, ao carregar a página.
A primeira cor da sua paleta deve ser a cor preta, e as outras três cores deve ser geradas aleatoriamente.
O que será testado:
-
A cor preta é a primeira na sua paleta de cores;
-
As cores geradas na paleta são diferentes a cada carregamento da página.