Skip to content

Align brand tokens with deployed visual identity#22

Open
chitcommit wants to merge 1 commit intomainfrom
feat/align-brand-tokens
Open

Align brand tokens with deployed visual identity#22
chitcommit wants to merge 1 commit intomainfrom
feat/align-brand-tokens

Conversation

@chitcommit
Copy link
Contributor

@chitcommit chitcommit commented Mar 24, 2026

Summary

  • Replaces generic slate/blue color palette with the actual indigo/violet palette (#6366F1#8B5CF6) used across deployed ChittyOS UIs
  • Updates font stack from system-ui fallbacks to Syne (display) / Figtree (body) / JetBrains Mono (code)
  • Adds inline SVG logo exports (LOGO_MARK_SVG, LOGO_WORDMARK_SVG)
  • Adds display font to BrandTheme interface, CSS variables, and Tailwind config

Context

Brand tokens in @chittyos/core were generic Tailwind defaults that didn't match any deployed service. The canonical brand is now defined in chittycorp/chittybrand — this PR aligns the programmatic tokens with those assets.

Test plan

  • npm run build passes with updated types
  • getCSSVariables('dark') outputs --chitty-background: #0F0F1A
  • generateTailwindConfig() includes chitty-display font family

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added display font support with full typography system integration.
    • Introduced flexible logo variations including mark and wordmark formats.
  • Style

    • Updated application color palette throughout the interface.
    • Refined input focus styling for enhanced visual feedback.
    • Updated brand messaging with new tagline and description.

- Colors: swap generic slate/blue for indigo/violet palette (#6366F1→#8B5CF6)
- Dark theme: deep navy (#0F0F1A) background, light violet foreground
- Fonts: Syne (display), Figtree (body), JetBrains Mono (code)
- Add display font to BrandTheme interface and CSS variable output
- Add LOGO_MARK_SVG and LOGO_WORDMARK_SVG inline exports
- Update BRAND_CONFIG tagline to match Foundation messaging
- Update Tailwind config generator with chitty-display font family
- Fix focus ring color to match indigo accent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai
Copy link

coderabbitai bot commented Mar 24, 2026

📝 Walkthrough

Walkthrough

Brand theme configuration updated in a single file: font stack extended with a display font, color palettes refreshed for light and dark themes, logo structure redesigned from icon-based to mark/wordmark-based SVG exports, and supporting CSS variables and Tailwind mappings added.

Changes

Cohort / File(s) Summary
Font Configuration
src/brand/index.ts
Extended BrandTheme.fonts interface with display string property. Updated CHITTY_THEME.fonts.sans and CHITTY_THEME.fonts.mono, and added new CHITTY_THEME.fonts.display font stack.
Color Palette
src/brand/index.ts
Replaced all color hex values in CHITTY_COLORS.light and CHITTY_COLORS.dark (including primary, secondary, accent, foreground, muted, mutedForeground, border, info, background, and related variants).
Logo Structure
src/brand/index.ts
Restructured BRAND_CONFIG.logo from { text, icon, svg } to { text, mark, wordmark }. Added new exported constants LOGO_MARK_SVG and LOGO_WORDMARK_SVG.
CSS & Styling
src/brand/index.ts
Added --chitty-font-display CSS variable generation in getCSSVariables. Added Tailwind chitty-display fontFamily mapping. Updated .chitty-input:focus box-shadow color and opacity.
Export Updates
src/brand/index.ts
Default export now includes LOGO_MARK_SVG and LOGO_WORDMARK_SVG properties alongside existing exports.

Estimated Code Review Effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

A rabbit hops through colors new, ✨
Fonts dance in display's stylish hue,
Logo marks and wordmarks bright,
CSS variables shining light,
Brand reborn in CSS delight! 🎨🐰

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: aligning brand tokens (colors, fonts, logos) with the deployed visual identity used in ChittyOS UIs.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/align-brand-tokens

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/brand/index.ts (1)

238-238: Use token-aligned focus ring color to avoid drift.

Line 238 hard-codes rgb(99 102 241 / 0.2), while Line 237 already uses var(--chitty-accent). Keeping both aligned prevents visual mismatch when tokens evolve.

Minimal token-aligned fix
-    box-shadow: 0 0 0 2px rgb(99 102 241 / 0.2);
+    box-shadow: 0 0 0 2px rgb(139 92 246 / 0.2);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/brand/index.ts` at line 238, Replace the hard-coded focus ring color
"rgb(99 102 241 / 0.2)" with the token-aligned accent variable used nearby
(var(--chitty-accent)) so the focus ring tracks the token; update the box-shadow
declaration (the one currently set to "box-shadow: 0 0 0 2px rgb(99 102 241 /
0.2);") to derive a 0.2 alpha version of the token (for example via color-mix(in
srgb, var(--chitty-accent) 20%, transparent) or rgba(var(--chitty-accent-rgb),
0.2) depending on available token shapes) so the focus ring and the
var(--chitty-accent) definition remain consistent as tokens change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/brand/index.ts`:
- Around line 119-123: BRAND_CONFIG.logo rename from icon/svg to mark/wordmark
is a breaking change; restore backward compatibility by adding aliases on the
logo object so consumers using logo.icon or logo.svg still work (e.g., set
logo.icon = LOGO_MARK_SVG and logo.svg = LOGO_WORDMARK_SVG or map them to the
new properties at initialization), and add a comment marking the aliases as
deprecated for removal in the next major; update any construction code that
creates the logo object (refer to BRAND_CONFIG.logo, LOGO_MARK_SVG,
LOGO_WORDMARK_SVG) to include these aliases.

---

Nitpick comments:
In `@src/brand/index.ts`:
- Line 238: Replace the hard-coded focus ring color "rgb(99 102 241 / 0.2)" with
the token-aligned accent variable used nearby (var(--chitty-accent)) so the
focus ring tracks the token; update the box-shadow declaration (the one
currently set to "box-shadow: 0 0 0 2px rgb(99 102 241 / 0.2);") to derive a 0.2
alpha version of the token (for example via color-mix(in srgb,
var(--chitty-accent) 20%, transparent) or rgba(var(--chitty-accent-rgb), 0.2)
depending on available token shapes) so the focus ring and the
var(--chitty-accent) definition remain consistent as tokens change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 65ca0392-5c8b-43d1-8cbc-1c6bbf91011d

📥 Commits

Reviewing files that changed from the base of the PR and between 41c801c and 1000248.

📒 Files selected for processing (1)
  • src/brand/index.ts

Comment on lines 119 to 123
logo: {
text: 'ChittyOS',
icon: '⚡',
svg: null as string | null
mark: LOGO_MARK_SVG,
wordmark: LOGO_WORDMARK_SVG,
},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

BRAND_CONFIG.logo key rename is a breaking API change.

Line 121–122 replaces icon/svg with mark/wordmark without backward-compat aliases. Any existing consumer reading BRAND_CONFIG.logo.icon or .svg will break at runtime.

Proposed compatibility bridge (deprecate in next major)
   logo: {
     text: 'ChittyOS',
     mark: LOGO_MARK_SVG,
     wordmark: LOGO_WORDMARK_SVG,
+    // Backward compatibility for existing consumers (deprecated)
+    icon: LOGO_MARK_SVG,
+    svg: LOGO_WORDMARK_SVG,
   },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
logo: {
text: 'ChittyOS',
icon: '⚡',
svg: null as string | null
mark: LOGO_MARK_SVG,
wordmark: LOGO_WORDMARK_SVG,
},
logo: {
text: 'ChittyOS',
mark: LOGO_MARK_SVG,
wordmark: LOGO_WORDMARK_SVG,
// Backward compatibility for existing consumers (deprecated)
icon: LOGO_MARK_SVG,
svg: LOGO_WORDMARK_SVG,
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/brand/index.ts` around lines 119 - 123, BRAND_CONFIG.logo rename from
icon/svg to mark/wordmark is a breaking change; restore backward compatibility
by adding aliases on the logo object so consumers using logo.icon or logo.svg
still work (e.g., set logo.icon = LOGO_MARK_SVG and logo.svg = LOGO_WORDMARK_SVG
or map them to the new properties at initialization), and add a comment marking
the aliases as deprecated for removal in the next major; update any construction
code that creates the logo object (refer to BRAND_CONFIG.logo, LOGO_MARK_SVG,
LOGO_WORDMARK_SVG) to include these aliases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant