You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Timer criado durante gravação de vídeo no Youtube
2
2
3
-
Este é um projeto de timer (cronômetro) desenvolvido com HTML, CSS e JavaScript. Originalmente criado para os vídeos da Codecon, este timer foi aprimorado com diversas melhorias que otimizam a usabilidade e a experiência do usuário.
3
+
Este é um aplicativo simples de timer que foi usado durante a [gravação deste vídeo](https://www.youtube.com/watch?v=ir8MIBhGbcA).
4
4
5
-
O timer pode ser acessado em:
6
-
7
-
[Github Pages](https://codecon-dev.github.io/code-kata-timer/) ou [Domínio da a8z](https://timer.a8z.com.br/).
8
-
9
-
## Funcionalidades
10
-
11
-
-**Exibição de Tempo Personalizada:**
12
-
Exibe o tempo em horas, minutos e segundos com formatação padronizada, garantindo clareza na visualização.
13
-
14
-
-**Contagem Regressiva com Alerta Visual:**
15
-
Quando o tempo estiver próximo de zerar, o layout muda para um alerta visual com efeito blink, chamando a atenção do usuário.
16
-
17
-
-**Controles de Operação Intuitivos:**
18
-
Permite iniciar, pausar, resetar e editar o tempo do cronômetro por meio de botões com feedback visual e animações.
19
-
20
-
-**Bloqueio de Ações Durante Execução:**
21
-
Se o timer estiver rodando, os botões de reprodução e edição ficam desabilitados, evitando cliques acidentais e alterações indesejadas.
22
-
23
-
-**Modo de Edição Seguro:**
24
-
Permite alterar os valores de horas, minutos e segundos somente quando o timer está pausado, assegurando a consistência da contagem.
25
-
26
-
-**Tooltips Informativas Customizadas:**
27
-
Todos os botões exibem breves descrições ao posicionar o cursor, facilitando o entendimento das funcionalidades.
28
-
29
-
-**Adição de Tempo Simplificada:**
30
-
Inclui botões para adicionar 30 segundos ao cronômetro. Há controles específicos para estados pausado, parado e em execução.
31
-
32
-
-**Alternância de Tema (Dark/Light):**
33
-
Permite alternar entre temas escuro e claro, alterando dinamicamente a paleta de cores e o ícone do tema.
34
-
35
-
-**Suporte a Tela Cheia (Fullscreen):**
36
-
Oferece a opção de alternar para o modo tela cheia, proporcionando uma experiência imersiva.
37
-
38
-
-**Feedback Visual e Animações:**
39
-
Animações e efeitos de feedback, como o “pulse” nos botões e o efeito blink durante a contagem regressiva, enriquecem a interatividade.
40
-
41
-
-**Validação e Formatação de Entradas:**
42
-
Os campos de entrada para horas, minutos e segundos são validados e formatados automaticamente para garantir valores corretos.
43
-
44
-
-**Overlay para Encerramento do Modo de Edição:**
45
-
Ao entrar no modo de edição, um overlay permite encerrar a edição ao clicar fora dos campos, aumentando a usabilidade.
46
-
47
-
-**Favicon Personalizado:**
48
-
O projeto inclui um favicon (`clock-regular.svg`) para reforçar a identidade visual.
49
-
50
-
## Tecnologias Utilizadas
51
-
52
-
-**HTML5:** Estrutura e marcação da interface.
53
-
-**CSS3:** Estilização com transições, efeitos de hover, animações e variáveis CSS.
54
-
-**JavaScript:** Lógica do cronômetro, manipulação do DOM e gerenciamento dos diversos estados (rodando, pausado, editando, countdown, etc).
Abra o arquivo `index.html` em seu navegador preferido.
74
-
75
-
## Customizações
76
-
77
-
-**Estilização:**
78
-
O design segue um padrão definido no [Figma](https://www.figma.com/design/97maginjN0aHjiQPy3dCDS/%231---Timer?m=auto&t=B8ND36dunZtQcZQe-1).
79
-
Você pode ajustar as cores e demais estilos editando o arquivo `style.css`, onde as variáveis CSS (como `--primary-bg-color` e `--primary-text-color`) são definidas.
80
-
81
-
-**Tooltips:**
82
-
As tooltips foram implementadas utilizando atributos `data-tooltip` e manipulação via JavaScript, possibilitando customizações avançadas para cores e formatos.
83
-
84
-
-**Lógica do Timer e Gerenciamento de Estados:**
85
-
Toda a lógica do cronômetro e o gerenciamento dos estados (STOPPED, PAUSED, RUNNING, COUNTDOWN e EDITING) estão implementados em `script.js`, proporcionando uma experiência fluida e intuitiva.
86
-
87
-
## Contribuições
88
-
89
-
Contribuições são bem-vindas! Se você tiver sugestões, melhorias ou correções, sinta-se à vontade para abrir uma issue ou enviar um pull request. Sua colaboração ajudará a tornar este projeto ainda melhor.
90
-
91
-
## Licença
92
-
93
-
Distribuído sob a licença MIT. Consulte o arquivo `LICENSE` para mais detalhes.
0 commit comments