Files
immich-folio/app/admin/styles/tokens.css

96 lines
3.7 KiB
CSS
Raw Permalink Normal View History

/* Theme variables — every other sheet here reads them. */
/* Split out of admin.css (#533). Loaded from admin.css in a fixed order —
later sheets override earlier ones, so the order there is the cascade. */
/* ── Theme Variables ───────────────────────────────────────── */
/* .admin-listbox-popup is listed alongside .admin-layout because it is
portalled to <body>, outside the layout subtree. Without its own copy every
var below resolves to nothing there, and the popup paints transparent. */
.admin-layout,
.admin-listbox-popup {
/* Dark mode (default) */
--admin-bg: #111111;
--admin-bg-raised: #1a1a1a;
--admin-bg-elevated: #222222;
--admin-bg-input: #161616;
--admin-border: #2e2e2e;
--admin-border-hover: #444444;
--admin-border-focus: #777777;
--admin-text: #f0f0f0;
--admin-text-secondary: #a0a0a0;
/* ≥4.6:1 on every admin surface (#0c0c0c–#222222); #707070 fell to 3.2:1. */
--admin-text-muted: #8a8a8a;
/* Not amber: that is --admin-warning, and with both the same every active
marker and focus ring read as a warning. 7.7:1 on the background. */
--admin-accent: #60a5fa;
/* Text on an accent fill (counts, badges). */
--admin-on-accent: #000000;
/* Focus used to show only as a border colour change from #2e2e2e to
#666666, a contrast of 2.37:1 where WCAG 1.4.11 asks for 3:1 against
adjacent colours, so keyboard users could barely see where they were.
The border value now clears 3:1, and a real ring comes on top: the
accent sits at 8.8:1 on the dark background. */
--admin-focus-ring: 2px solid var(--admin-accent);
/* One height for every control in the header row. */
--admin-control-height: 36px;
--admin-success: #4ade80;
/* Warnings get their own token rather than the accent: a preset may recolour
the accent (studio-modern makes it red), and a warning must not read as an
error because of the theme. */
--admin-warning: #f59e0b;
--admin-error: #f87171;
--admin-error-bg: #2d1111;
--admin-error-border: #5c2020;
--admin-btn-primary-bg: #ffffff;
--admin-btn-primary-text: #000000;
--admin-btn-primary-hover: #e5e5e5;
--admin-overlay: rgba(0, 0, 0, 0.7);
}
[data-theme='light'] .admin-layout,
[data-theme='light'] .admin-listbox-popup {
--admin-bg: #f8f8f8;
--admin-bg-raised: #ffffff;
--admin-bg-elevated: #f0f0f0;
--admin-bg-input: #ffffff;
--admin-border: #e0e0e0;
--admin-border-hover: #c0c0c0;
--admin-border-focus: #7f7f7f;
--admin-text: #1a1a1a;
--admin-text-secondary: #555555;
/* ≥4.6:1 on white and on #efefee; #888888 was 3.1–3.5:1. */
--admin-text-muted: #6b6b6b;
--admin-accent: #2563eb;
--admin-on-accent: #ffffff;
--admin-success: #16a34a;
--admin-warning: #b45309;
--admin-error: #dc2626;
--admin-error-bg: #fef2f2;
--admin-error-border: #fecaca;
--admin-btn-primary-bg: #1a1a1a;
--admin-btn-primary-text: #ffffff;
--admin-btn-primary-hover: #333333;
--admin-overlay: rgba(0, 0, 0, 0.4);
}
/* studio-modern restyles the admin in its preset file with a red accent and
warm greys. Two of its values are corrected here, one step more specific
(html) so the order the sheets load in does not matter: its muted text
(#6b6b66 dark, #8a8a84 light) sat at 3.0–3.6:1, and text on its red reads
better white (4.8:1) than black (4.4:1). */
html[data-preset='studio-modern'] .admin-layout {
--admin-text-muted: #8c8c86;
--admin-on-accent: #ffffff;
}
html[data-preset='studio-modern'][data-theme='light'] .admin-layout {
--admin-text-muted: #6b6b66;
}
.admin-layout {
min-height: 100vh;
background: var(--admin-bg);
color: var(--admin-text);
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}