diff --git a/apps/portal-shell/src/app/components/theme-switcher/theme-switcher.html b/apps/portal-shell/src/app/components/theme-switcher/theme-switcher.html index c244318..23928cd 100644 --- a/apps/portal-shell/src/app/components/theme-switcher/theme-switcher.html +++ b/apps/portal-shell/src/app/components/theme-switcher/theme-switcher.html @@ -1,10 +1,12 @@ diff --git a/apps/portal-shell/src/app/components/theme-switcher/theme-switcher.scss b/apps/portal-shell/src/app/components/theme-switcher/theme-switcher.scss index 5e7faf2..ac6115b 100644 --- a/apps/portal-shell/src/app/components/theme-switcher/theme-switcher.scss +++ b/apps/portal-shell/src/app/components/theme-switcher/theme-switcher.scss @@ -3,6 +3,47 @@ // when the labels grow under translation. dark-mode surface mirrors // the rest of the shell (gray-900 background, gray-800 border). +// Trigger mirrors `.locale-switcher__trigger` — same chip shape, +// same hover / focus tokens, same AAA-friendly 44×44 tap target +// via vertical-padding overflow inside the thin footer. The two +// switchers sit side-by-side in the footer's device-prefs cluster +// (#162), so a single visual family across the pair reads as one +// component. The leading icon stays driven by `currentIcon()` so a +// sun / moon / monitor glyph still signals which mode is selected. +.theme-switcher__trigger { + display: inline-flex; + align-items: center; + gap: 0.375rem; + min-height: 2.75rem; + margin: -0.5rem 0; + padding: 0 0.5rem; + border-radius: 0.25rem; + background: transparent; + border: 0; + color: inherit; + font-size: inherit; + font-weight: 500; + cursor: pointer; + transition: + background-color 0.12s ease-out, + color 0.12s ease-out; + + &:hover { + background-color: #f3f4f6; + color: var(--color-brand-primary-500); + + :where(.dark) & { + background-color: #1f2937; + color: var(--color-brand-primary-300); + } + } + + &:focus-visible { + outline: 2px solid var(--color-brand-primary-500); + outline-offset: 2px; + } +} + .theme-switcher__menu { min-width: 11rem; margin-top: 0.25rem;