O objetivo deste aplicativo é fornecer um temporizador (timer) simples, robusto e esteticamente marcante para uso diário. Ele foi projetado para ser "Brutalista", priorizando a função, o alto contraste e uma aparência crua e industrial, evitando tendências modernas de design excessivamente suaves ("vibe code"). O foco é a utilidade imediata, estabilidade e uma experiência de usuário direta, sem distrações.
Este projeto foi completamente refatorado da versão 1.0 para aderir a padrões profissionais de engenharia de software, garantindo manutenibilidade e escalabilidade.
- Linguagens: HTML5, CSS3, JavaScript (ES6+).
- Arquitetura: MVC (Model-View-Controller). A lógica de negócio, a interface do usuário e o controle de interação estão estritamente separados.
- Design System: "Neo-Brutalismo".
- Cores de alto contraste (Preto, Branco, Amarelo Neon).
- Ausência de bordas arredondadas (border-radius: 0).
- Sombras duras e sólidas.
- Tipografia Monospaced (Courier New).
- Layout responsivo e "No-Scroll" (travado na viewport para parecer um app nativo).
- POO (Programação Orientada a Objetos): O código é organizado em classes (
Timer,TimerView,TimerController,Validator), facilitando a reutilização e o encapsulamento. - SOLID:
- S (Single Responsibility): Cada classe tem uma única função (ex:
Validatorapenas valida,Timerapenas conta o tempo). - O (Open/Closed): O
Timeremite eventos (timer-update), permitindo que a interface reaja a mudanças sem modificar a lógica interna do timer.
- S (Single Responsibility): Cada classe tem uma única função (ex:
- Componentização: O código JavaScript foi separado em arquivos distintos (
utils,models,views,controllers) e carregado ordenadamente para evitar dependências cíclicas e facilitar a leitura. - Segurança (OWASP):
- Validação de Entrada: O input aceita estritamente números. Tentativas de inserir letras são bloqueadas imediatamente via JavaScript.
- Prevenção de XSS: O uso de
textContentao invés deinnerHTMLprevine injeção de scripts maliciosos.
The objective of this application is to provide a simple, robust, and aesthetically striking timer for daily use. It is designed to be "Brutalist", prioritizing function, high contrast, and a raw, industrial look, avoiding overly soft modern design trends ("vibe code"). The focus is on immediate utility, stability, and a direct user experience without distractions.
This project was completely refactored from version 1.0 to adhere to professional software engineering standards, ensuring maintainability and scalability.
- Languages: HTML5, CSS3, JavaScript (ES6+).
- Architecture: MVC (Model-View-Controller). Business logic, user interface, and interaction control are strictly separated.
- Design System: "Neo-Brutalism".
- High contrast colors (Black, White, Neon Yellow).
- No rounded corners (border-radius: 0).
- Hard, solid shadows.
- Monospaced typography (Courier New).
- Responsive "No-Scroll" layout (locked to viewport to feel like a native app).
- OOP (Object-Oriented Programming): Code is organized into classes (
Timer,TimerView,TimerController,Validator), facilitating reuse and encapsulation. - SOLID:
- S (Single Responsibility): Each class has a single function (e.g.,
Validatoronly validates,Timeronly counts time). - O (Open/Closed): The
Timeremits events (timer-update), allowing the interface to react to changes without modifying the timer's internal logic.
- S (Single Responsibility): Each class has a single function (e.g.,
- Componentization: JavaScript code was separated into distinct files (
utils,models,views,controllers) and loaded in order to avoid cyclic dependencies and improve readability. - Security (OWASP):
- Input Validation: Input strictly accepts numbers. Attempts to enter letters are blocked immediately via JavaScript.
- XSS Prevention: Using
textContentinstead ofinnerHTMLprevents malicious script injection.
Version: 2.0 Author: Andre Maurell Year: 2026
