[Icons] Author icon emphasis colors as palette roles

The emphasis levels were computed from the accent at paint time, so a
theme could not vary them: every theme got the same derived strong and
soft tones, and a semantic hue was pushed toward the accent whether the
author wanted that or not.

Give each family three authored roles instead. Icon/IconStrong/IconSoft
carry the neutral glyph ink and Positive/Negative gain the same Strong
and Soft companions. Emphasis becomes a lookup inside the family, and a
caller that names a variant pins that level at every emphasis. The paint
path returns the authored color verbatim; only the filled treatments keep
their saturation floor, because carrying a disc or a fill is a treatment
decision.

Shipped palettes author the full ladder for both schemes; the palette
editor exposes the new rows and the generator writes them. System keeps
deriving its neutral ink from the platform palette, since it ships no
palette of its own.
This commit is contained in:
Lukas Brübach 2026-11-07 00:12:45 +01:00
parent 115d16a74b
commit 03a4a33ba5
21 changed files with 551 additions and 277 deletions

View file

@ -3,8 +3,14 @@
# overrides. Only the identity and semantic app colors are provided here, so
# buttons keep their classic greens while the actual palette stays native to
# the OS.
# Icon, IconStrong and IconSoft are deliberately absent: a theme with no
# palette of its own derives its icon ink from the platform palette.
[AppColors]
AccentStrong = #ff148c3c
AccentSoft = #ff78c850
Positive = #ff6dd58c
Negative = #ffff8a80
AccentStrong = #ff148c3c
AccentSoft = #ff78c850
Positive = #ff6dd58c
PositiveStrong = #ff99e2ae
PositiveSoft = #ff5e8873
Negative = #ffff8a80
NegativeStrong = #ffffb3ac
NegativeSoft = #ff9b7678

View file

@ -3,8 +3,14 @@
# overrides. Only the identity and semantic app colors are provided here, so
# buttons keep their classic greens while the actual palette stays native to
# the OS.
# Icon, IconStrong and IconSoft are deliberately absent: a theme with no
# palette of its own derives its icon ink from the platform palette.
[AppColors]
AccentStrong = #ff148c3c
AccentSoft = #ff78c850
Positive = #ff1b7f3b
Negative = #ffb3261e
AccentStrong = #ff148c3c
AccentSoft = #ff78c850
Positive = #ff1b7f3b
PositiveStrong = #ff104a22
PositiveSoft = #ff5d7f6f
Negative = #ffb3261e
NegativeStrong = #ff7c1b15
NegativeSoft = #ff9a6c6f