Skip to main content

App Theme Context

Source: contexts/app-theme-context.tsx (56 lines) + constants/theme.ts (60 lines) The AppThemeProvider wraps the entire app in a Uniwind-powered theme context, exposing theme state, toggle functions, and the centralized THEME design token constant.

Context API


Uniwind Integration

The provider delegates theme management to the Uniwind library, which handles CSS-in-JS theme resolution across the component tree:

Design Tokens: THEME Constant

All components consume the centralized THEME constant from constants/theme.ts for consistent styling:

Colors — Hardened Saffron Palette

Spacing Scale

Typography Scale


Dark-Only Design Decision

CommitT uses a pure black dark theme exclusively. There is no light mode in production. This decision was made for three reasons:
  1. OLED power efficiency — Pure black pixels are physically off on OLED screens
  2. Maximum contrast — Enforcement overlays and blocking screens need high visibility
  3. Brand identity — The “Hardened Saffron on Obsidian” palette is central to the app’s visual identity