Skip to content

feat: migrate to Flow Design System + UX polish sweep#2

Merged
guangshinhaha merged 3 commits into
mainfrom
flow-ds-migration
Apr 9, 2026
Merged

feat: migrate to Flow Design System + UX polish sweep#2
guangshinhaha merged 3 commits into
mainfrom
flow-ds-migration

Conversation

@guangshinhaha
Copy link
Copy Markdown
Collaborator

Summary

  • Migrate the app from custom Tailwind tokens + raw HTML elements to Flow Design System (@flow/core) with TWBlue (#0064FF) brand
  • Replace inline SVG icons with lucide-react throughout
  • New globals.css 3-layer token bridge: Radix UI primitives → Flow DS semantic tokens → app tokens (full dark mode support)
  • Preserve existing DM Sans (body) + Outfit (display) fonts
  • Full UX polish sweep: button variants, native select harmonisation, segmented control fixes, login card definition

Changes

Migration (21 files):

  • All pages migrated to Button, Input, Badge, Card* from @flow/core
  • Custom tokens (text-muted, bg-accent, border-card-border, text-danger, etc.) → Flow DS tokens (text-muted-foreground, bg-primary, border-border, text-destructive)
  • Success/warning states use Radix lime-3/lime-11 and amber-3/amber-11 scales
  • All inline SVGs swapped for lucide-react icons

UX polish (6 files):

  • Dashboard nav ‹ › and Today: outlineghost (removes heavy border ring on circular icons)
  • Copy Summary: outlineneutral (visually subordinate to primary actions)
  • Week-type toggle hover: primary/10primary/20 (was invisible on primary/10 container)
  • Timetable segmented control inactive state: removed explicit bg-background so it inherits container
  • All native <select> elements harmonised: h-10, focus:border-primary, focus:ring-primary/20
  • Login card: added shadow-sm so it lifts off the page background

Test plan

  • npm run build passes (verified locally)
  • Landing page (/) renders correctly
  • Login page card has proper shadow and definition
  • Report sick form: select / date / number inputs visually consistent
  • Dashboard: nav buttons feel light, no border rings; week-type hover visible
  • Timetable: Odd/Even segmented control inactive state matches container
  • Teachers / Settings / Admin: all native selects look identical to <Input>
  • Onboarding wizard: all 3 steps render correctly
  • Dark mode renders cleanly (3-layer token bridge)

🤖 Generated with Claude Code

guangshinhaha and others added 3 commits April 3, 2026 07:56
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Dashboard nav ‹ › and Today: outline → ghost (removes heavy border ring)
- Copy Summary: outline → neutral variant
- Week-type toggle hover: primary/10 → primary/20 (was invisible on primary/10 bg)
- Timetable segmented control inactive: remove explicit bg-background (inherits container)
- All native <select> elements: consistent h-10 + focus:border-primary + ring-primary/20
- Report page teacher select: bg-card → bg-background
- Onboarding textarea: consistent focus ring treatment
- Login card: add shadow-sm so card lifts off background

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Install @flow/core, @flow/design-tokens, @radix-ui/colors via private GitLab registry
- Replace globals.css with 3-layer token bridge (Radix → Flow DS → app semantic tokens)
- TWBlue (#0064FF) brand scale with full dark mode support
- Migrate all pages to @flow/core components (Button, Input, Badge, Card)
- Replace inline SVG icons with lucide-react throughout
- Update all custom tokens (text-muted, bg-accent, border-card-border, etc.)
  to Flow DS semantic tokens (text-muted-foreground, bg-primary, border-border)
- Use Radix lime/amber scales for success/warning states
- Preserve existing DM Sans + Outfit fonts (font-sans + font-display)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
relief-teacher-planning Ready Ready Preview, Comment Apr 9, 2026 1:12am

Request Review

@guangshinhaha guangshinhaha merged commit b452fe2 into main Apr 9, 2026
2 checks passed
@guangshinhaha guangshinhaha deleted the flow-ds-migration branch April 9, 2026 01:16
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