v0.2.0 — Phase 1: Design System
Phase 1 — Design System Primitives
The full design system is now in place. See it live in the app: Settings → Design System (or open /design-system). Toggle light/dark in the top right.
New Components
UI Primitives (src/components/ui/):
Button— primary/secondary/ghost/destructive, 3 sizes, with hapticsChip— for filters, with selected-color override (great for status)SegmentedControl— animated sliding indicatorTag— small colored label with optional dotEmptyState/ErrorState— illustrated placeholdersicons.tsx— Lucide wrapper withmonitorTypeIcon()helper
Monitor Components (src/components/monitor/):
MonitorCard— large card with stats, heartbeat pulse, type iconMonitorRow— dense list row for many-monitor lists
Server Components (src/components/server/):
ServerCard— server display with active badge, monitor count, notification modeServerSwitcher— modal-style switcher
Chart Components (src/components/chart/):
ResponseTimeChart— SVG line chart with Reanimated 4 fade-inUptimeBar— segmented color-coded uptime indicator
New Screens
/design-system— Storybook of every component in light/dark/monitors/[monitorId]— monitor detail with chart, uptime bar, actions/servers/switch— server switcher modal
Wired Up
- Monitors tab uses
MonitorCard(featured) +MonitorRow(list) with sample data - Settings tab has Design system link + theme switcher
- i18n extended with all new strings
Icons
Added lucide-react-native@1.17.0 for cross-platform icon consistency. The monitorTypeIcon() helper maps Kuma monitor types to Lucide icons (HTTP→Globe, ping→Radio, port→Signal, DNS→Hash, database types→Database, etc.).
Quality
- TypeScript: 0 errors
- ESLint: 0 warnings
- Build: 14 routes exported successfully (was 11)
What's next
Phase 2 — Auth & Persistence (~weeks 3-4):
- Persist server credentials to
expo-secure-store(iOS Keychain / Android Keystore) - Real Kuma connection: REST + socket.io with reconnection
- Kuma version detection + outdated warning
- Edit/remove server UI