- Introduced DrawLine component for drawing animations. - Added LazyRevealImage component for lazy loading images with reveal animations. - Implemented TextDiffuseReveal for animated text reveals with staggered effects. - Created TopProgressBar for a dynamic loading indicator. - Added PointCloud mock for testing animations. - Developed useReducedMotion hook to handle user preferences for reduced motion. - Centralized animation configurations in config.ts for easier management. - Defined animation variants in variants.ts for consistent animation effects. - Established AnimationProvider to supply global animation settings. - Created tests for AnimationProvider and useReducedMotion hook. - Added SVG assets for branding and UI elements. - Documented frontend review plan and hero circuit board animation plan.
4.6 KiB
Requirements Document
Introduction
Este documento especifica os requisitos para melhorias na experiência inicial do portfólio, incluindo a remoção da tela de carregamento (Preloader) e ajustes visuais no componente Hero para melhor legibilidade e posicionamento de elementos.
Glossary
- Preloader: Componente de tela de carregamento que exibe animação inicial antes do conteúdo principal
- Hero: Seção principal da página inicial que contém o texto animado "evandro.dev.br" e informações de apresentação
- Logo: Componente visual da marca que aparece durante a animação do Hero
- Page: Componente raiz da aplicação Next.js (app/page.tsx)
- Typography_System: Sistema de tipografia definido em globals.css usando variáveis CSS customizadas
Requirements
Requirement 1: Remove Preloader Component
User Story: Como usuário visitando o portfólio, quero acessar o conteúdo imediatamente, para que eu possa visualizar as informações sem esperar por uma tela de carregamento.
Acceptance Criteria
- THE Page SHALL NOT render the Preloader component
- THE Page SHALL display the Hero component immediately on load
- WHEN the application initializes, THE Page SHALL NOT apply overflow hidden to the document body
- THE Preloader component file SHALL be removed from the codebase
- THE Page SHALL NOT import the Preloader component
Requirement 2: Adjust Hero Text Size
User Story: Como usuário visualizando o portfólio em diferentes dispositivos, quero que o texto "evandro.dev.br" tenha um tamanho apropriado, para que eu possa ler confortavelmente sem que o texto ocupe espaço excessivo.
Acceptance Criteria
- THE Hero SHALL render the text "evandro.dev.br" with reduced font size compared to current implementation
- WHEN viewed on mobile devices, THE Hero SHALL display text at approximately 10vw font size
- WHEN viewed on small screens (sm breakpoint), THE Hero SHALL display text at approximately 4rem font size
- WHEN viewed on medium screens (md breakpoint), THE Hero SHALL display text at approximately 4.5rem font size
- WHEN viewed on large screens (lg breakpoint), THE Hero SHALL display text at approximately 5rem font size
- WHEN viewed on extra-large screens (xl breakpoint), THE Hero SHALL display text at approximately 5.5rem font size
- THE Hero SHALL maintain the current line-height and tracking properties for text readability
Requirement 3: Improve Logo Positioning
User Story: Como usuário assistindo a animação do Hero, quero que a logo apareça em uma posição visualmente equilibrada, para que a transição entre o texto e a logo seja harmoniosa.
Acceptance Criteria
- WHEN the Logo animation phase is active, THE Hero SHALL position the Logo component with proper vertical and horizontal alignment
- THE Hero SHALL reduce the Logo width to approximately 60-70% of container width for better proportion
- THE Hero SHALL set Logo max-width to approximately 280px for optimal visual balance
- WHEN the Logo appears, THE Hero SHALL maintain consistent spacing from surrounding elements
- THE Hero SHALL preserve all existing Logo animation effects (opacity, scale, blur, clipPath)
- THE Hero SHALL ensure Logo remains centered horizontally within its container
Requirement 4: Maintain Animation Timing
User Story: Como usuário interagindo com o portfólio, quero que as animações do Hero continuem funcionando suavemente, para que a experiência visual permaneça fluida após as mudanças.
Acceptance Criteria
- THE Hero SHALL maintain the typing animation sequence for "evandro.dev.br"
- THE Hero SHALL preserve the phase transitions (typing → idle → glitch → logo)
- THE Hero SHALL respect the user's reduced motion preferences
- WHEN reduced motion is preferred, THE Hero SHALL use simplified animations without blur or scale effects
- THE Hero SHALL maintain the current animation timing values for all phases
Requirement 5: Preserve Responsive Behavior
User Story: Como usuário acessando o portfólio em diferentes dispositivos, quero que todos os elementos do Hero se adaptem corretamente, para que a experiência seja consistente em qualquer tamanho de tela.
Acceptance Criteria
- THE Hero SHALL maintain responsive behavior for all breakpoints (mobile, sm, md, lg, xl)
- THE Hero SHALL adjust min-height values appropriately for different screen sizes
- THE Hero SHALL preserve the responsive character stagger timing (0.015s mobile, 0.03s desktop)
- THE Hero SHALL maintain proper spacing and padding across all viewport sizes
- THE Hero SHALL ensure all interactive elements (buttons, social links) remain accessible on all devices