Skip to content

feat: align theme with Design Standards v1.3, remove contrast setting#5355

Merged
jamesarich merged 1 commit into
mainfrom
feat/theme-alignment
May 4, 2026
Merged

feat: align theme with Design Standards v1.3, remove contrast setting#5355
jamesarich merged 1 commit into
mainfrom
feat/theme-alignment

Conversation

@jamesarich

Copy link
Copy Markdown
Collaborator

Summary

Aligns the Android/Desktop theme with Design Standards v1.3 and removes the contrast level feature entirely.

Changes

Color palette (v1.3 alignment):

  • Tertiary updated from #3949AB#2855A8 (Blue 700)
  • surfaceVariant, onSurfaceVariant, outline, outlineVariant now use the Neutral Variant scale
  • onPrimaryContainer light → Green 950 (#002E13)
  • onTertiaryContainer → Blue 950 (#001849)

Contrast removal:

  • Deleted: ContrastLevel.kt, ContrastPickerDialog.kt, SetContrastLevelUseCase.kt
  • Removed from: UiPrefs, UiPrefsImpl, FakeAppPreferences, UIViewModel, SettingsViewModel, SettingsViewModelTest, MainActivity, desktop/Main, AppearanceSection, SettingsScreen, DesktopSettingsScreen
  • Net: -675 lines of contrast infrastructure

Message readability fix:

  • Text uses onSurface instead of node foreground color (fixes unreadable text on alpha-blended bubbles in dark mode)
  • Body font bumped from bodyMedium (14sp) → bodyLarge (16sp)

CustomColors expanded:

  • Added NeutralVariantPalette, BluePalette, ErrorPalette objects
  • Extended GreenPalette to full range (950–50)

Testing

  • compileDebugKotlin
  • :desktop:compileKotlin
  • spotlessApply
  • detekt

@github-actions github-actions Bot added the enhancement New feature or request label May 4, 2026
@jamesarich jamesarich force-pushed the feat/theme-alignment branch from d572c6c to 49dad50 Compare May 4, 2026 20:38
@jamesarich jamesarich enabled auto-merge May 4, 2026 20:40
@jamesarich jamesarich force-pushed the feat/theme-alignment branch from 49dad50 to 67e6dc6 Compare May 4, 2026 20:47
@jamesarich jamesarich added this pull request to the merge queue May 4, 2026
@jamesarich jamesarich removed this pull request from the merge queue due to a manual request May 4, 2026
Color palette:
- Update tertiary from #3949AB to #2855A8 (Blue 700 per spec SVG)
- Use Neutral Variant scale for surfaceVariant, onSurfaceVariant,
  outline, and outlineVariant roles (both light and dark)
- Fix onPrimaryContainer light to Green 950 (#002E13)
- Fix onTertiaryContainer light/dark to Blue 950 (#1849)
- Remove all dead medium/high contrast color variables

Theme infrastructure:
- Remove ContrastLevel enum, ContrastPickerDialog, SetContrastLevelUseCase
- Remove contrastLevel from UiPrefs interface and implementations
- Remove contrastLevel from UIViewModel and SettingsViewModel
- Simplify AppTheme to just dynamic color OR light/dark scheme

Message readability:
- Use onSurface for message text (fixes unreadable text on
  alpha-blended node-color bubbles in dark mode)
- Bump message body from bodyMedium (14sp) to bodyLarge (16sp)

Custom colors:
- Add NeutralVariantPalette, BluePalette, ErrorPalette objects
- Extend GreenPalette to full tonal range (950-50)
- Update SemanticColors.Accent to #2855A8

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jamesarich jamesarich force-pushed the feat/theme-alignment branch from 67e6dc6 to 115ef3e Compare May 4, 2026 21:09
@jamesarich jamesarich merged commit 2de57a9 into main May 4, 2026
4 checks passed
@jamesarich jamesarich deleted the feat/theme-alignment branch May 4, 2026 21:10
@rgtkd

rgtkd commented May 16, 2026

Copy link
Copy Markdown

This changes dont look very good on dark themes on OLED screens. Would be possible to at least add a true black background for OLED/AMOLED screens now that the contrast is gone? That would make OLED phones to use less battery and be better for the eyes.

Regards

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants