UI Refresh: Dark-First Design System Implementation #34
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements a comprehensive UI refresh with a dark-first design system, replacing the slate-based corporate aesthetic with a polished modern look using the cl0ck design system.
Changes
Phase 1: Foundation & Design System
TOKENSconstant with dark-first design values (#0a0a0a background)useThemehook to force dark mode everywhereStatusBadge- Shadow-based status indicators with glowStatCard- Metric display cardsControlButton- Touch-optimized buttons (44pt min)SectionHeader- Visual hierarchy headersScreenLayout- Standard wrapper with pull-to-refreshProgressBar- Progress with shadow accentEmptyState- Friendly empty statesPhase 2: Screen Updates
EmptyStatecomponent for better UXPhase 3: Component Migration
Updated 6 UI components to use TOKENS:
Badge.tsx- UsesTOKENS.radius20Toggle.tsx- UsesTOKENS.primary,border,cardOfflineBanner.tsx- UsesTOKENS.danger,textPrimaryErrorMessage.tsx- Uses TOKENS for all colorsToast.tsx- Uses TOKENS for backgroundsFAB.tsx- UsesTOKENS.primaryDesign Decisions
TOKENS.textPrimaryinstead of nestedTOKENS.text.primaryCOLORSexport for potential rollbackTesting Checklist
Files Changed
Created (7 components):
components/design-system/StatusBadge.tsxcomponents/design-system/StatCard.tsxcomponents/design-system/ControlButton.tsxcomponents/design-system/SectionHeader.tsxcomponents/design-system/ScreenLayout.tsxcomponents/design-system/ProgressBar.tsxcomponents/design-system/EmptyState.tsxModified (11 files):
utils/constants.ts- Added TOKENShooks/useTheme.tsx- Force dark modeapp/(tabs)/index.tsx- Remove fake actionsapp/sessions/index.tsx- Add EmptyStateapp/settings/index.tsx- Remove Soon badgesapp/settings/privacy.tsx- Condense textcomponents/ui/Badge.tsx- Use TOKENScomponents/ui/Toggle.tsx- Use TOKENScomponents/ui/OfflineBanner.tsx- Use TOKENScomponents/ui/ErrorMessage.tsx- Use TOKENScomponents/ui/Toast.tsx- Use TOKENScomponents/layout/FAB.tsx- Use TOKENSRollback Plan
If issues arise, simply revert to main:
🤖 Generated with Claude Code