This file contains specifications for upcoming changes to the application. Each change should be documented in a format suitable for AI-assisted implementation following the template in docs/templates/PLANNED_CHANGES_TEMPLATE.md.
Once implemented, move the change to IMPLEMENTED_CHANGES.md with a timestamp.
Priority: High Effort: Medium Type: Bootstrap Alignment
Current State:
The TimeSetup component uses custom CSS modules and HTML inputs that don't align with Bootstrap design patterns.
Target State:
- Replace custom CSS with Bootstrap Form components
- Use Bootstrap Button Groups for mode selection
- Implement Bootstrap input validation styling
- Add Bootstrap Icons for better visual hierarchy
Implementation Steps:
- Replace custom
.modeSelectorwith BootstrapButtonGroup - Convert time inputs to Bootstrap
Form.Controlwith proper validation - Apply Bootstrap button styling to submit button
- Add Bootstrap form validation feedback
- Remove
TimeSetup.module.cssdependency - Add proper Bootstrap spacing utilities
Dependencies: None Files to Modify:
src/components/feature/TimeSetup.tsxsrc/components/feature/TimeSetup.module.css(remove)
Priority: High Effort: Medium Type: Bootstrap Alignment
Current State: Custom progress bar with CSS modules that doesn't leverage Bootstrap's native progress bar animations and styling.
Target State:
- Use Bootstrap
ProgressBarcomponent with built-in animations - Leverage Bootstrap's
progress-bar-animatedandprogress-bar-stripedclasses - Maintain color progression logic within Bootstrap's framework
- Add smooth transitions with Bootstrap's animation system
Implementation Steps:
- Replace custom progress bar with Bootstrap
ProgressBarcomponent - Implement color progression using Bootstrap's contextual classes
- Add Bootstrap animation classes for visual appeal
- Use Bootstrap's responsive utilities for mobile adaptation
- Remove
ProgressBar.module.cssdependency - Integrate with Bootstrap's accessibility features
Dependencies: Bootstrap React components Files to Modify:
src/components/feature/ProgressBar.tsxsrc/components/feature/ProgressBar.module.css(remove)
Priority: Medium Effort: Medium Type: Bootstrap Alignment
Current State: Timeline entries use custom CSS for expanding/collapsing content.
Target State:
- Use Bootstrap Collapse component for smooth accordion-like behavior
- Add Bootstrap fade transitions for entry additions
- Implement Bootstrap's
collapseandshowclasses - Use Bootstrap's accessibility features for screen readers
Implementation Steps:
- Wrap timeline entries in Bootstrap Collapse components
- Add Bootstrap accordion behavior for entry details
- Implement fade-in animations for new entries
- Use Bootstrap icons for expand/collapse indicators
- Add proper ARIA attributes via Bootstrap components
Dependencies: Bootstrap JavaScript components Files to Modify:
src/components/feature/Timeline.tsxsrc/components/feature/Timeline.module.css
Priority: Medium Effort: Low Type: Bootstrap Alignment
Current State: Navigation component partially uses Bootstrap but could leverage more utilities.
Target State:
- Use Bootstrap Navbar collapse for better mobile experience
- Implement Bootstrap's navbar brand utilities
- Add Bootstrap offcanvas for mobile navigation
- Use Bootstrap's navbar positioning utilities
Implementation Steps:
- Add Bootstrap navbar collapse for mobile
- Implement Bootstrap offcanvas for slide-out navigation
- Use Bootstrap spacing utilities consistently
- Add Bootstrap navbar toggler for mobile
- Implement proper Bootstrap navbar responsive behavior
Dependencies: Bootstrap JavaScript components Files to Modify:
src/components/Navigation.tsx
Priority: High
Effort: Low
Type: Component Abstraction
Status: Already consolidated — only src/components/ThemeToggle.tsx (Bootstrap-based) remains. The duplicate src/components/ui/ThemeToggle.tsx has been removed.
Priority: High
Effort: Medium
Type: Component Abstraction
Status: Already consolidated — the full-featured src/components/feature/ActivityForm.tsx is the single form component. The old root-level ActivityForm.tsx has been replaced by ActivityFormSection.tsx (a layout wrapper, not a duplicate).
Priority: Medium Effort: Medium Type: Animation Enhancement
Current State: Limited animations, mostly CSS-based transitions.
Target State:
- Smooth Bootstrap fade transitions for component state changes
- Bootstrap collapse animations for expandable content
- Progress bar animations using Bootstrap's built-in classes
- Toast animations using Bootstrap's fade system
- Modal animations with Bootstrap's fade classes
Implementation Steps:
- Add Bootstrap fade classes to modal components
- Implement collapse animations for timeline entries
- Use Bootstrap's progress-bar-animated for active timers
- Add fade transitions to toast notifications
- Implement smooth scroll behavior with Bootstrap utilities
- Add loading placeholders with Bootstrap's placeholder animations
Animation Targets:
- Modals: Add
fadeclass for smooth show/hide - Alerts/Toasts: Use
alert-dismissible fade showpattern - Progress Bars: Add
progress-bar-striped progress-bar-animated - Collapse Elements: Use Bootstrap collapse transitions
- Loading States: Implement
placeholder-glowandplaceholder-wave
Dependencies: Bootstrap CSS and JavaScript Files to Modify:
src/components/ConfirmationDialog.tsxsrc/components/ui/ToastContainer.tsxsrc/components/feature/ProgressBar.tsxsrc/components/feature/Timeline.tsx
Priority: Low Effort: Low Type: Code Consistency
Current State: Mix of custom CSS and Bootstrap utilities.
Target State:
- Consistent use of Bootstrap spacing utilities (
m-*,p-*) - Bootstrap flexbox utilities instead of custom CSS
- Bootstrap responsive utilities for mobile adaptation
- Bootstrap text utilities for typography
Implementation Steps:
- Audit all components for custom CSS that can be replaced
- Replace custom margin/padding with Bootstrap utilities
- Convert custom flexbox CSS to Bootstrap flex utilities
- Use Bootstrap responsive utilities for breakpoint-specific styling
- Apply Bootstrap text utilities for consistent typography
Dependencies: None Files to Modify:
- All component files with custom CSS
- Remove unnecessary CSS module files
Priority: Low Effort: Low Type: UX Enhancement
Current State: Basic title attributes for accessibility.
Target State:
- Bootstrap Tooltip components for interactive help
- Contextual tooltips for button states
- Activity color indicators with tooltip explanations
- Timer controls with helpful tooltips
Implementation Steps:
- Add Bootstrap Tooltip components to key interactive elements
- Implement tooltips for activity color meanings
- Add contextual help for timer controls
- Use tooltips for status indicators
- Ensure tooltips respect reduced motion preferences
Dependencies: Bootstrap JavaScript components Files to Modify:
src/components/ActivityButton.tsxsrc/components/feature/TimeSetup.tsxsrc/components/ThemeToggle.tsx
Priority: Medium Effort: Medium Type: Responsive Design
Current State: Custom media queries and responsive behavior.
Target State:
- Consistent use of Bootstrap's responsive breakpoints
- Bootstrap grid system for layout components
- Responsive utilities for component behavior
- Mobile-first approach aligned with Bootstrap
Implementation Steps:
- Replace custom media queries with Bootstrap breakpoint utilities
- Implement Bootstrap grid system for layout components
- Use Bootstrap's responsive display utilities
- Add responsive text and spacing utilities
- Ensure components work well across all Bootstrap breakpoints
Bootstrap Breakpoints to Target:
xs: < 576px (mobile)sm: ≥ 576px (mobile landscape)md: ≥ 768px (tablet)lg: ≥ 992px (desktop)xl: ≥ 1200px (large desktop)
Dependencies: Bootstrap CSS Files to Modify:
- All components with responsive behavior
- Layout components in particular
-
High Priority - Bootstrap Alignment:
Consolidate duplicate ThemeToggle components✅Consolidate duplicate ActivityForm components✅- Convert TimeSetup to Bootstrap Forms
- Replace Progress Bar with Bootstrap component
-
Medium Priority - UX Enhancements:
- Add Bootstrap animations throughout app
- Implement Bootstrap Collapse for Timeline
- Implement responsive breakpoint strategy
- Enhance Navigation with Bootstrap utilities
-
Low Priority - Polish:
- Implement Bootstrap utility classes consistently
- Add Bootstrap Tooltips for enhanced UX
- Code Consistency: 90% of custom CSS replaced with Bootstrap utilities
- Component Reuse: Zero duplicate components
- Animation Quality: Smooth transitions on all state changes
- Responsive Design: Consistent behavior across all Bootstrap breakpoints
- Accessibility: All animations respect
prefers-reduced-motion - Performance: Reduced CSS bundle size through Bootstrap consolidation