Skip to content

CLI Theme Diff Report

Generated: Phase 5 - Validation Comparison: ox-cli source files vs sageox-design/platforms/cli/theme.toml Status: Report only - no fixes applied


Summary

Category ox-cli Source Generated TOML Status
Brand colors Go constants TOML section Match
Adaptive colors AdaptiveColor structs Key-value pairs Match
ANSI codes Integer constants Integer values Match
Hex constants String constants String values Match

Token Comparison

Brand Colors

Source ox-cli theme.toml Match
Primary (Sage 500) #7A8F78 #7a8f78 Yes (case-insensitive)
Secondary (Copper 500) #C47A4A #c47a4a Yes (case-insensitive)
Neutral (Charcoal 900) #111518 #111518 Yes

Adaptive Colors

Name ox-cli Light TOML Light ox-cli Dark TOML Dark Match
primary #4F6A48 #4F6A48 #7A8F78 #7A8F78 Yes
secondary #B87D3A #B87D3A #E0A56A #E0A56A Yes
accent #3D5437 #3D5437 #8FA888 #8FA888 Yes
success #4F6A48 #4F6A48 #7A8F78 #7A8F78 Yes
warning #B87D3A #B87D3A #E0A56A #E0A56A Yes
error #A03030 #A03030 #E07070 #E07070 Yes
info #5580A0 #5580A0 #7FA7C8 #7FA7C8 Yes
dim #6B7580 #6B7580 #8F99A3 #8F99A3 Yes

ANSI Codes

Name ox-cli theme.toml Match
success 82 82 Yes
preserved 39 39 Yes
error 196 196 Yes
warning 214 214 Yes
info 39 39 Yes
hint 241 241 Yes
code 213 213 Yes

Hex Constants

Name ox-cli theme.toml Match
primary #7A8F78 #7A8F78 Yes
accent #7FA7C8 #7FA7C8 Yes
pass #7A8F78 #7A8F78 Yes
warn #E0A56A #E0A56A Yes
fail #C44747 #C44747 Yes
muted #6F767C #6F767C Yes
text #E6E8E6 #E6E8E6 Yes
text_dim #7E8784 #7E8784 Yes
bg_dark #1A1A1A #1A1A1A Yes
bg_code #2A2A2A #2A2A2A Yes

Not Generated (Intentional)

The following ox-cli elements are not in the TOML:

  1. lipgloss Style definitions - Runtime styling, not tokens
  2. Markdown theme colors - Subset of hex constants
  3. Light theme hex variants - Not in current scope
  4. Icon definitions - Unicode characters, not colors
  5. Box border styles - Runtime styling

These are intentionally omitted as they are: - Derived from base tokens - Implementation details, not canonical tokens - Better handled in code than config


Format Considerations

Case Sensitivity

  • ox-cli uses uppercase hex: #7A8F78
  • TOML can use either
  • Generated uses exact case from source

Key Naming

ox-cli TOML Transformation
HexPrimary primary Removed "Hex" prefix
text-dim text_dim Hyphen to underscore (TOML compat)
bg-dark bg_dark Hyphen to underscore (TOML compat)

Consumption Pattern

ox-cli currently uses Go constants. To consume theme.toml:

// Hypothetical future usage
import "github.com/pelletier/go-toml/v2"

type Theme struct {
    Brand    BrandColors    `toml:"brand"`
    CLI      CLIColors      `toml:"cli"`
}

func LoadTheme(path string) (*Theme, error) {
    // ...
}

Note: This is future work. ox-cli does not currently consume theme.toml.


Mismatch Summary

Type Count
Missing tokens 0 (within scope)
Value mismatches 0
Case differences 0 (normalized)
Extra tokens 0

Conclusion: Generated theme.toml accurately captures ox-cli color tokens.


Recommendations

For ox-cli Adoption

  1. Add TOML parsing dependency
  2. Create theme loader
  3. Replace hardcoded constants with loaded values
  4. Keep Go constants as defaults/fallbacks

For Design System

  1. Theme.toml becomes source of truth
  2. ox-cli regenerates after token updates
  3. CI validates theme.toml matches token YAML