fix(ui): R10 S4 review — guard .is-current against aria-current="false" + shadow transition
Follow-ups from the /code-review pass: - .is-current[aria-current] now excludes aria-current="false" — the recipe is a shared primitive and a consumer using the common `x ? "true" : "false"` idiom would otherwise paint a non-current row as current. - add box-shadow to the .pill/.is-current transition so the Tabs/SettingsPanel on-state shadow fades in instead of popping (it lost the utility `transition`). - document that .chip-solid is intentionally paint-only (composes on a site's own geometry) so a truncating single-element chip isn't forced into inline-flex. The 3 intentional visual changes (hover-border 55%, tag-filter transparent resting, RemovableChip tint+border) were UAT-accepted as-is. PlexSidebar's facet Chip (glass-card resting) deferred — wants a .pill soft-glass variant.
This commit is contained in:
+13
-6
@@ -438,7 +438,8 @@ body {
|
||||
transition:
|
||||
color 0.15s ease,
|
||||
background-color 0.15s ease,
|
||||
border-color 0.15s ease;
|
||||
border-color 0.15s ease,
|
||||
box-shadow 0.15s ease; /* so an on-state shadow (Tabs/SettingsPanel) fades in, not pops */
|
||||
}
|
||||
.pill:hover,
|
||||
.is-current:hover {
|
||||
@@ -450,9 +451,11 @@ body {
|
||||
.is-current:hover {
|
||||
background-color: var(--card);
|
||||
}
|
||||
/* selected / current — SOLID accent fill (the dominant idiom) */
|
||||
/* selected / current — SOLID accent fill (the dominant idiom). The `:not([aria-current="false"])`
|
||||
guard matters: `.is-current` is a shared primitive and a consumer using the common
|
||||
`aria-current={x ? "true" : "false"}` idiom would otherwise paint a NON-current row as current. */
|
||||
.pill[aria-pressed="true"],
|
||||
.is-current[aria-current] {
|
||||
.is-current[aria-current]:not([aria-current="false"]) {
|
||||
background-color: var(--accent);
|
||||
color: var(--accent-fg);
|
||||
border-color: var(--accent);
|
||||
@@ -465,9 +468,13 @@ body {
|
||||
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
||||
}
|
||||
|
||||
/* .chip — an applied tag / filter token (rounded, tinted). The tint is the resting look (a filter
|
||||
is "on" whenever the chip exists); removable variants add their own × button as a child.
|
||||
.chip-solid = the strong-fill token (an applied tag colour, a picked channel). */
|
||||
/* .chip — an applied tag / filter token (rounded, tinted, self-contained: display + geometry +
|
||||
paint). The tint is the resting look (a filter is "on" whenever the chip exists); removable
|
||||
variants add their own × button as a child.
|
||||
.chip-solid is intentionally a PAINT-ONLY modifier (bg/text/border colour, no display or
|
||||
geometry): it sits on a site's OWN chip geometry so a truncating single-element chip
|
||||
(ChannelTags) isn't forced into inline-flex, which would break its text-overflow. Use it WITH a
|
||||
site's `rounded-full`/`border` utilities (or on top of `.chip`), never bare. */
|
||||
.chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
|
||||
Reference in New Issue
Block a user