Skip to content

Migrate UI to Skeleton UI with Tailwind CSS 4#6

Open
kurowski wants to merge 1 commit intomainfrom
skeleton
Open

Migrate UI to Skeleton UI with Tailwind CSS 4#6
kurowski wants to merge 1 commit intomainfrom
skeleton

Conversation

@kurowski
Copy link
Copy Markdown
Owner

Summary

  • Migrate entire frontend from custom CSS to Skeleton UI components and Tailwind CSS 4
  • Add theme selection with 22 available Skeleton themes
  • Add light/dark/system mode toggle with system preference detection and localStorage persistence
  • Unify task add/edit UX to use modals on both desktop and mobile

Changes

Dependencies

  • Added @skeletonlabs/skeleton and @skeletonlabs/skeleton-svelte (v4)
  • Added tailwindcss@4 with @tailwindcss/vite plugin

New Files

  • src/lib/stores/theme.svelte.ts - Theme and mode store with persistence
  • src/lib/components/ThemeSettings.svelte - Theme preferences UI in settings

Modified Files

  • src/app.css - Replaced 177 lines of custom CSS with Skeleton imports
  • src/app.html - Added data-theme="cerberus" attribute
  • vite.config.js - Added Tailwind CSS plugin
  • All 10 component files migrated to Skeleton patterns:
    • Buttons: btn preset-filled-*, btn preset-outlined, btn-icon preset-tonal
    • Forms: input class for text/select/textarea
    • Badges: badge preset-filled-* for priority indicators
    • Cards: card utilities for sections
    • Dark mode: .dark class (Tailwind selector strategy)

UI/UX Improvements

  • Desktop now uses centered modal dialog for task add/edit (same as mobile bottom sheet)
  • Theme dropdown in Settings with all 22 Skeleton themes
  • Segmented control for light/dark/system mode selection
  • Proper system preference detection with media query listener

Test plan

  • Build check: pnpm build succeeds
  • Desktop: Create/edit/delete lists and tasks
  • Desktop: Priority badges display correctly (red/yellow/blue)
  • Desktop: Sidebar navigation works
  • Desktop: Dark mode toggle works (light/dark/system)
  • Desktop: Theme selection persists across reload
  • Mobile (<768px): Hamburger menu opens drawer
  • Mobile: FAB appears and opens bottom sheet modal
  • Mobile: Touch targets are adequately sized
  • CalDAV sync: Accounts can be added/edited/deleted
  • Accessibility: Keyboard navigation (Tab, Enter, Escape)

🤖 Generated with Claude Code

Complete frontend rewrite adopting Skeleton UI components and Tailwind
CSS 4 utilities, replacing 177 lines of custom CSS with a consistent
design system.

Changes:
- Add Skeleton UI (@skeletonlabs/skeleton, @skeletonlabs/skeleton-svelte)
  and Tailwind CSS 4 with Vite plugin
- Rewrite all 10 components using Skeleton presets (buttons, badges,
  inputs, cards) and Tailwind utilities
- Add theme settings with 22 Skeleton themes and light/dark/system mode
  toggle using SegmentedControl component
- Use .dark class selector strategy for dark mode (Tailwind idiom)
- Unify task add/edit UX: modal dialog on both desktop and mobile
- Desktop: centered modal with scale animation, "Add Task" button in header
- Mobile: bottom sheet with slide-up animation, FAB button

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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