feat(ui): add Catppuccin Frappé and Macchiato themes#395
Conversation
Greptile SummaryThis PR adds the two missing Catppuccin flavors — Frappé and Macchiato — as built-in themes, completing the full official four-flavor lineup alongside the existing Latte and Mocha themes. Palette hex values are sourced directly from the upstream
Confidence Score: 5/5Safe to merge — the change is additive, touches only theme data and registration, and does not alter any existing theme logic or user-facing defaults. All four registration points (UI themes array, OpenTUI theme names, config allowed-ID list, custom-theme base validation) are updated consistently. The createCatppuccinTheme factory already handled the latte/dark split correctly, so Frappé and Macchiato inherit the right appearance, panel, and panelAlt values without requiring new branches. Palette hex values match the upstream Catppuccin source, and test coverage is comprehensive across palette spot-checks, menu ordering, syntax-style presence, semantic add/remove colour distinctness, and Pierre markdown remap isolation. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["createCatppuccinTheme(flavor)"] --> B{flavor === 'latte'?}
B -- yes --> C["appearance = 'light'\npanel = base\npanelAlt = mantle"]
B -- no --> D["appearance = 'dark'\npanel = mantle\npanelAlt = base"]
D --> E["Frappé #303446"]
D --> F["Macchiato #24273a"]
D --> G["Mocha #1e1e2e"]
C --> H["Latte #eff1f5"]
E --> I[AppTheme]
F --> I
G --> I
H --> I
I --> J["THEMES array\nGraphite · Midnight · Paper · Ember\nLatte · Frappé · Macchiato · Mocha"]
J --> K["resolveTheme / availableThemes"]
J --> L["BUILT_IN_THEME_IDS (config.ts)"]
J --> M["HUNK_DIFF_THEME_NAMES (opentui/themes.ts)"]
Reviews (1): Last reviewed commit: "feat(ui): add Catppuccin Frappé and Macc..." | Re-trigger Greptile |
Complete the four official Catppuccin flavors so users can match their editor setup, using the upstream palette tokens and the same semantic mapping as the existing Latte and Mocha themes.
f010934 to
d2ff8c6
Compare
|
Thanks @rtlechow! |
Summary
catppuccin/palettepalette.jsonexactly; flavors keep the upstream light→dark order (Latte, Frappé, Macchiato, Mocha) in the theme menu and cycle.custom_theme.baseconfig validation.Testing
bun run typecheckbun testbun run lint/bun run format:check