Skip to content

feat: Professional UI overhaul - design system, CSS/JS extraction, settings reorg (#198)#199

Merged
deucebucket merged 2 commits intodevelopfrom
feature/issue-198-ui-overhaul
Mar 21, 2026
Merged

feat: Professional UI overhaul - design system, CSS/JS extraction, settings reorg (#198)#199
deucebucket merged 2 commits intodevelopfrom
feature/issue-198-ui-overhaul

Conversation

@deucebucket
Copy link
Copy Markdown
Owner

Summary

Comprehensive frontend overhaul touching every template. Professional polish, not a reskin.

CSS Extraction & Design System

  • 728 lines of CSS moved from inline <style> in base.html → static/css/style.css
  • New design tokens: spacing scale, border radius, transitions
  • Fixed --theme-accent-success from eye-burning #00ff00 → professional #2ecc71
  • All hardcoded hex colors replaced with CSS variables (hint-icons, modals, cards)
  • Professional card hover effects (border glow + shadow transition)
  • Mobile responsive at 768px and 576px breakpoints (was: 1 media query total)

JS Consolidation

  • Created static/js/common.js with shared escapeHtml() and showToast()
  • Removed 7 duplicate function definitions across 6 templates

Settings Reorganization (7 tabs → 4)

New Tab Merges
Library Library (unchanged)
Engine Processing + AI Setup
Pipeline Provider Chains + Safety/Language/Maintenance
Integrations Post-Processing Hooks + Plugins

No form field names changed — backend POST handler untouched.

Consistency Pass

  • All inline style= attributes replaced with CSS classes where possible
  • New utility classes: .fs-icon-lg, .fs-icon-xl, .cursor-pointer, .scroll-container
  • Sticky save bar with backdrop blur (.settings-save-bar)
  • Both themes preserved and working (default + skaldleita)

Test plan

  • Every page loads without errors (dashboard, library, queue, history, settings, ABS, orphans)
  • Settings saves correctly with new 4-tab layout
  • All form fields still POST with correct names
  • Both themes render correctly
  • Mobile responsive at 768px and 576px
  • Static CSS/JS files serve correctly
  • Hooks and plugins tabs work under "Integrations"
  • Pipeline drag-and-drop still works under "Pipeline" tab
  • 290/290 code checks pass, ruff clean

Closes #198

…ab reorganization (#198)

- Extract 728 lines of inline CSS from base.html into static/css/style.css
- Add CSS design tokens (spacing scale, border radius, transitions)
- Consolidate duplicate escapeHtml/showToast from 5 templates into static/js/common.js
- Reorganize Settings from 7 tabs to 4 (Library, Engine, Pipeline, Integrations)
- Add mobile responsive breakpoints for tables, nav-tabs, cards, stat numbers
- Replace hardcoded hex colors with CSS variables across all templates
- Change accent success color from #00ff00 to #2ecc71
- Add sticky settings save bar with backdrop blur
- Replace inline font-size styles with utility classes
- Extract setup wizard styles with setup-mode body class
- Bump version to 0.9.0-beta.143
Copy link
Copy Markdown

@bucket-agent bucket-agent Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review complete. Written to pr_199_review.md.
Summary: One blocking issue found — 11 duplicate class attributes across 4 template files. When style="font-size: 2rem;" was replaced with class="fs-icon-lg", the replacement was added as a second class attribute instead of being merged into the existing one. Browsers silently ignore the second class, so the icons will lose their sizing and stat cards will lose their pointer cursor. The fix is mechanical — merge into single class attributes.

Everything else is solid work: CSS extraction with proper design tokens, JS consolidation with improved null handling, settings reorg from 7→4 tabs, correct Skaldleita theme preservation, and proper scope alignment with issue #198.

Copy link
Copy Markdown

@bucket-agent bucket-agent Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review written to pr_199_review.md.
Verdict: APPROVE

This is a clean UI refactoring PR that does exactly what it claims:

  • Extracts ~730 lines of inline CSS from base.html into static/css/style.css with a proper design token system
  • Consolidates duplicate escapeHtml() and showToast() from 5+ templates into static/js/common.js
  • Reorganizes settings from 7 tabs to 4 logical groups
  • Replaces hardcoded hex colors with CSS variables
  • Adds mobile responsive breakpoints
  • Bonus: fixes an undefined --theme-text-tertiary CSS variable that was silently failing

No security issues, no logic changes, no backend modifications beyond the version bump. Flask serves /static/ by default, and the Dockerfile's COPY . . captures the new directory. Scope fully aligned with issue #198.

@deucebucket deucebucket merged commit 2986cdb into develop Mar 21, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant