Skip to content

audit: analyze color system — consolidate scales, eliminate hardcoded values #56

@kitikonti

Description

@kitikonti

Background

During Code Review (Batch 4) it was identified that OwnChart currently uses 5 different gray families:

  1. neutral — Pure grays (Ribbon, Toolbar, UI chrome)
  2. brand — Outlook Blue scale (Buttons, Links, Accents)
  3. coolGray — Bootstrap/Tailwind cool-grays (GRID, TIMELINE_HEADER)
  4. slate — Tailwind Slate (CONNECTION_HANDLE, TOAST, Dependencies)
  5. Fluent UI grays — (TABLE_HEADER, ROW_NUMBER)

Additionally, 10+ component files contain hardcoded rgb()/hex color values that are semantically design-token values (e.g. rgb(15, 108, 189) = brand[600]).

Tasks

  • Full analysis: Where in the app are colors assigned?
  • Inventory of all hardcoded color values in components (ideal: only centralized in design-tokens.ts)
  • Assessment: Do we really need 5 gray families, or can we consolidate?
  • Refactoring plan: Replace hardcoded colors in components with design-token imports
  • Decision: Should a single unified gray system be used long-term?

Affected Component Files with Hardcoded Colors (from review)

  • src/components/TaskList/CellEditors/ColorPickerPopover.tsx (30+ values)
  • src/components/Ribbon/ColorDropdown.tsx (20+ values)
  • src/components/Toolbar/DropdownItem.tsx
  • src/components/Toolbar/ToolbarPrimitives.tsx
  • src/components/Toolbar/DropdownTrigger.tsx
  • src/components/StatusBar/StatusBar.tsx
  • src/components/Ribbon/Ribbon.tsx
  • src/components/Ribbon/ZoomDropdown.tsx

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions