Skip to content

Comments

feat: comprehensive design & UX improvements#2

Merged
arzafran merged 4 commits intomainfrom
feat/design-ux-improvements
Jan 21, 2026
Merged

feat: comprehensive design & UX improvements#2
arzafran merged 4 commits intomainfrom
feat/design-ux-improvements

Conversation

@arzafran
Copy link
Member

Summary

This PR delivers a comprehensive design and UX overhaul for both the web marketing site and desktop application, organized into 4 phases of priority-based improvements.

Phase 0: Foundation (Critical)

  • New UI Components: Modal, AlertDialog, Skeleton, ErrorBoundary
  • Design Tokens: Animation durations, z-index scale, focus rings, skeleton colors
  • Desktop Fixes: Global error boundary, auth timeout (5min), theme persistence, license confirmation dialog
  • Web Fixes: Mobile navigation with hamburger menu, skip link, accessibility labels

Phase 1: UX Improvements (High Priority)

  • Coordinated Loading: Organization page skeleton with AnimatePresence transitions
  • Search Relocation: Moved to sidebar header, always accessible via ⌘K
  • Success Page: Confetti animation, license placeholder, quick-start guide
  • ProGate Component: Consistent Pro feature gating (overlay/disable/hide modes)
  • Accessibility: Footer aria-labels, skip link target

Phase 2: Polish

  • Animation System: Reusable variants (fadeIn, scaleIn, slideIn), transitions, stagger helpers
  • New Components: Dropdown menu, Switch toggle, Toast (Sonner wrapper)
  • Micro-interactions: Card hover lift, Badge entrance, Stat number morphing, Table row transitions
  • App Animations: Dashboard staggered cards, Hero leaderboard entrance effects

Phase 3: Enhancements

  • Offline Support: Network status hook, offline indicator banner, localStorage caching for org data
  • WCAG Accessibility: role="application", aria-live regions, table scope attributes, focus rings
  • Performance: Lazy image loading, lazy state initialization

New Components

Component Package Description
Modal @specto/ui Radix Dialog with motion animations
AlertDialog @specto/ui Confirmation dialogs for destructive actions
Skeleton @specto/ui Loading placeholders with pulse animation
ErrorBoundary @specto/ui Global error recovery with fallback UI
ProGate @specto/ui Pro feature gating wrapper
Dropdown @specto/ui Radix dropdown menu
Switch @specto/ui Toggle with spring animation
Toast @specto/ui Sonner wrapper with theming

Files Changed

Packages

  • packages/ui/ - 9 new components, animation system, design tokens

Desktop App

  • Auth guard timeout and cancel button
  • Theme persistence (dark/light/system)
  • Organization skeleton loading
  • Sidebar search relocation
  • Offline support with caching
  • Accessibility improvements

Web App

  • Mobile navigation
  • Success page enhancement
  • Accessibility fixes (skip link, aria-labels)
  • Hero leaderboard animations

Test Plan

  • All packages build successfully (bun run build)
  • Visual QA with agent-browser on web pages
  • Accessibility tree validation
  • Code review of all new components
  • Manual testing of mobile navigation
  • Manual testing of offline indicator
  • Manual testing of theme persistence
  • Manual testing of auth timeout flow

Screenshots

Run the apps locally to see the changes:

bun dev --filter @specto/web     # Web: http://localhost:3000
bun dev --filter @specto/desktop # Desktop: http://localhost:1420

Commits:

  1. feat(ui): add foundation components and critical UX fixes (P0)
  2. feat(ux): add coordinated loading, search relocation, and success page (P1)
  3. feat(ui): add micro-interactions, new components, and animations (P2)
  4. feat(desktop): add offline support, a11y improvements, and perf optimizations (P3)

Foundation Components (@specto/ui):
- Add Modal component with Radix primitives and motion animations
- Add AlertDialog component for destructive action confirmations
- Add Skeleton component with pulse animation and variants
- Add ErrorBoundary component with fallback UI

Design Tokens:
- Add animation duration tokens (micro, normal, emphasis)
- Add spring easing curve
- Add skeleton color tokens
- Add focus ring tokens
- Add z-index scale (dropdown, sticky, modal, toast)

Desktop App Fixes:
- Add global ErrorBoundary wrapping entire app
- Add auth flow timeout (5min) with 3min warning and cancel button
- Add theme persistence with Zustand (dark/light/system)
- Add AlertDialog confirmation for license deactivation

Web App Fixes:
- Add mobile navigation with hamburger menu and slide-out drawer
- Add skip link for keyboard navigation
- Add aria-labels to header elements
…e (P1)

Desktop App:
- Add OrganizationSkeleton with AnimatePresence for smooth transitions
- Relocate search to sidebar header (always accessible, ⌘K shortcut)
- Add search modal with recent orgs for quick access
- Integrate ProGate component for consistent Pro feature gating

Web App:
- Enhance success page with confetti, license placeholder, quick-start guide
- Add accessibility fixes to footer (aria-labels, external link indicators)
- Add skip link target to main content wrapper
- Create QA checklist component for visual testing documentation

New Components:
- ProGate: Wrapper for Pro feature gating with overlay/disable/hide modes
Animation System:
- Add reusable animation variants (fadeIn, scaleIn, slideIn, etc.)
- Add transition presets (fast, base, slow, spring)
- Add stagger helpers for list animations
- Add hover/tap animation utilities

New Components (@specto/ui):
- Dropdown: Radix-based dropdown menu with keyboard navigation
- Switch: Toggle component with spring animation and size variants
- Toast: Sonner wrapper with Specto theming and convenience functions

Component Micro-interactions:
- Card: Optional hover lift effect
- Badge: Optional animated entrance
- Stat: Animated number morphing, hover scale
- Table: Row hover transitions, loading state animations

App Integrations:
- Dashboard: Staggered card animations on mount
- Hero Leaderboard: CSS entrance animations, row transitions
…izations (P3)

Offline Support:
- Add useNetworkStatus hook for online/offline detection
- Add OfflineIndicator component with animated banner
- Add localStorage caching for org data in GitHub store
- Show "Cached data from X ago" when using offline data

Accessibility (WCAG):
- Add role="application" to desktop root
- Add aria-live="polite" to dynamic content areas
- Add aria-labels to all interactive elements
- Add scope="col" to table headers
- Add focus rings to interactive elements

Performance:
- Add loading="lazy" to below-fold images
- Use lazy state initialization in dashboard
- Verify animations use compositor-only properties
@vercel
Copy link

vercel bot commented Jan 21, 2026

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

Project Deployment Review Updated (UTC)
specto-web Ready Ready Preview, Comment Jan 21, 2026 1:47pm

@arzafran arzafran merged commit 4709800 into main Jan 21, 2026
3 checks passed
@arzafran arzafran deleted the feat/design-ux-improvements branch January 21, 2026 13:52
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