alexei.dolgolyov
88abd31c1c
Add smooth animations across WebUI for modern feel
...
- Tab panels: fade-in with subtle translateY on switch
- Cards: hover lift (translateY -2px), staggered entrance animation
- Modals: spring-curve entrance with backdrop blur
- Buttons: press feedback (scale down on :active)
- Toggle switches: spring overshoot on knob transition
- Toast: smooth bounce-in replaces jarring shake
- Sections: animated height collapse/expand with chevron rotation
- Command palette: slide-down entrance animation
- Theme switch: smooth color transitions on key elements
- Dashboard: section collapse animation, target row hover
- Respects prefers-reduced-motion globally
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 00:03:47 +03:00
alexei.dolgolyov
7f80faf8be
Frontend polish: loading states, CSS variables, focus indicators, scroll lock
...
- Add tab refresh loading bar animation for all 4 tab loaders
- Add profiles loading guard to prevent concurrent fetches
- Centralize theme colors into CSS variables (--text-secondary, --text-muted,
--bg-secondary, --success-color, --shadow-color) for both dark/light themes
- Replace hardcoded gray values across 10 CSS files with variables
- Fix duplicate .btn-sm definition in modal.css
- Fix z-index: toast 2001→2500 to safely clear modals at 2000
- Add :focus-visible keyboard navigation indicators for all interactive elements
- Add responsive breakpoints for tab bar and header on narrow screens
- Prevent background page scroll when command palette is open
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 21:09:42 +03:00
alexei.dolgolyov
3ae20761a1
Frontend: structured error handling, state fixes, accessibility, i18n
...
- Enhance fetchWithAuth with auto-401, retry w/ exponential backoff, timeout
- Remove ~40 manual 401 checks across 10 feature files
- Fix state: brightness cache setter, manual edit flag resets, static import
- Add ARIA: role=dialog/tablist, aria-modal, aria-labelledby, aria-selected
- Add focus trapping in Modal base class, aria-expanded on hint toggles
- Fix WCAG AA color contrast with --primary-text-color variable
- Add i18n pluralization (CLDR rules for en/ru), getCurrentLocale export
- Replace hardcoded strings in dashboard.js and profiles.js
- Add data-i18n-aria-label support, 20 new keys in en.json and ru.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 01:18:29 +03:00
alexei.dolgolyov
2b90fafb9c
Split monolithic index.html and style.css for maintainability
...
- Extract 15 modals and 3 partials from index.html into Jinja2 templates
(templates/modals/*.html, templates/partials/*.html)
- Split style.css (3,712 lines) into 11 feature-scoped CSS files under
static/css/ (base, layout, components, cards, modal, calibration,
dashboard, streams, patterns, profiles, tutorials)
- Switch root route from FileResponse to Jinja2Templates
- Add jinja2 dependency
- Consolidate duplicate @keyframes spin definition
- Browser receives identical assembled HTML — zero JS changes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 00:42:50 +03:00