Skip to content

Add pink and rose theme presets - #16

Merged
cursor[bot] merged 1 commit into
mainfrom
cursor/pink-theme-09ab
Sep 16, 2026
Merged

cursor[bot] merged 1 commit into
mainfrom
cursor/pink-theme-09ab

Conversation

@cookieofcode

@cookieofcode cookieofcode commented Sep 16, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a user-selectable pink theme (light) and a matching rose theme (dark) to the existing named-palette system. Existing themes are unchanged.

Why

Product asked for a pink theme. The app uses fixed-mode named palettes rather than a palette-plus-light/dark toggle, so both modes are covered as two presets — the same pattern as Purple / Violet.

How to preview

  1. Sign in, then open Settings → Appearance, or the user-menu Theme submenu in the sidebar.
  2. Choose Pink (light blush paper + vivid rose primary) or Rose (dark burgundy + bright pink).
  3. The choice is stored in localStorage under torqvoice-theme. To force it in DevTools: localStorage.setItem('torqvoice-theme','pink') or 'rose', then reload.

Where tokens live

  • Registry / IDs / swatches: src/lib/themes.ts (THEMES, ThemeId)
  • CSS variables (shadcn tokens): src/app/globals.css.theme-pink and .theme-rose, layered on light / dark like the other presets
  • FOUC / pre-hydration class map: src/app/layout.tsx inline script (pink:'light', rose:'dark')
  • Picker UI: src/components/theme-picker.tsx and the sidebar theme submenu — both iterate THEMES, so no extra UI surface
  • Labels: messages/*/settings.jsonappearance.themes.pink / appearance.themes.rose

Public /share/* and /portal pages stay force-light; that path is unchanged. Destructive stays the shared red token so alerts stay distinct from the pink primary.

Approximate WCAG contrast: pink body 17.1:1, muted 5.7:1, primary button 6.0:1; rose body 15.8:1, muted 5.9:1, primary button 8.4:1. Destructive stays the shared red (~5.3:1 / 5.1:1).

Tests

src/__tests__/lib/themes.test.ts checks the new IDs, mode classes (light theme-pink, dark theme-rose), that the layout FOUC map stays aligned with THEMES, and that every preset has a .theme-* block in globals.css. Theme registry + translation-parity: 493 tests passed.

Pink theme on Settings Appearance
Rose theme on Settings Appearance
Pink theme on Work Orders
Rose theme on Work Orders

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

Register a light pink and dark rose palette in the existing CSS-variable
theme system so users can pick them from Appearance and the sidebar
switcher, matching the purple/violet preset pattern.

Co-authored-by: Severin Pereto <cookieofcode@gmail.com>
@cookieofcode
cookieofcode marked this pull request as ready for review September 16, 2026 10:03
@cursor
cursor Bot merged commit 697a355 into main Sep 16, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants