Feature/local fonts #45

Merged
ilia merged 5 commits from feature/local-fonts into main 2026-06-01 07:20:21 +00:00
Showing only changes of commit dda8ef6368 - Show all commits
+14 -22
View File
@@ -217,9 +217,7 @@
/* Monospace label tracking — used in Loader and Footnote */ /* Monospace label tracking — used in Loader and Footnote */
--tracking-wider-mono: 0.2em; --tracking-wider-mono: 0.2em;
/* ============================================ /* Shadow tokens */
SHADOW TOKENS
============================================ */
/* Default resting shadow — equivalent to Tailwind's shadow-sm. Used on /* Default resting shadow — equivalent to Tailwind's shadow-sm. Used on
buttons, sliders, popover triggers in non-floating state. */ buttons, sliders, popover triggers in non-floating state. */
@@ -246,9 +244,7 @@
/* Drawer / overlay shadow — full-strength shadow-2xl. */ /* Drawer / overlay shadow — full-strength shadow-2xl. */
--shadow-overlay: 0 25px 50px -12px rgb(0 0 0 / 0.25); --shadow-overlay: 0 25px 50px -12px rgb(0 0 0 / 0.25);
/* ============================================ /* Motion tokens */
MOTION TOKENS
============================================ */
--duration-fast: 150ms; --duration-fast: 150ms;
--duration-normal: 200ms; --duration-normal: 200ms;
@@ -326,9 +322,7 @@
} }
} }
/* ============================================ /* Design-system utilities.
DESIGN-SYSTEM UTILITIES
============================================
Defined via `@utility` (Tailwind v4) so they integrate with the variant Defined via `@utility` (Tailwind v4) so they integrate with the variant
system (`hover:`, `dark:`, breakpoints) and don't rely on `@apply` system (`hover:`, `dark:`, breakpoints) and don't rely on `@apply`
chains. Colors reference the mode-switching semantic vars defined in chains. Colors reference the mode-switching semantic vars defined in
@@ -363,7 +357,7 @@
} }
} }
/* ── Surface utilities ────────────────────────────────────────── */ /* Surface utilities */
@utility surface-canvas { @utility surface-canvas {
background-color: var(--color-surface); background-color: var(--color-surface);
@@ -392,7 +386,7 @@
border: 1px solid var(--color-border-subtle); border: 1px solid var(--color-border-subtle);
} }
/* ── Shape / layout ───────────────────────────────────────────── */ /* Shape / layout */
@utility flex-center { @utility flex-center {
display: flex; display: flex;
@@ -423,7 +417,7 @@
background-size: 10px 10px; background-size: 10px 10px;
} }
/* ── Typography ───────────────────────────────────────────────── */ /* Typography */
@utility text-label-mono { @utility text-label-mono {
font-family: var(--font-primary); font-family: var(--font-primary);
@@ -432,7 +426,7 @@
text-transform: uppercase; text-transform: uppercase;
} }
/* Global utility - useful across your app */ /* Honor prefers-reduced-motion: collapse animation and transition timing. */
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
* { * {
animation-duration: 0.01ms !important; animation-duration: 0.01ms !important;
@@ -441,12 +435,12 @@
} }
} }
/* Performance optimization for collapsible elements */ /* Hint the upcoming height animation on open collapsibles. */
[data-state="open"] { [data-state="open"] {
will-change: height; will-change: height;
} }
/* Smooth focus transitions - good globally */ /* Transition siblings of a focus-visible peer. */
.peer:focus-visible ~ * { .peer:focus-visible ~ * {
transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1); transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
} }
@@ -473,11 +467,9 @@
animation: nudge 10s ease-in-out infinite; animation: nudge 10s ease-in-out infinite;
} }
/* ============================================ /* Scrollbar styling */
SCROLLBAR STYLES
============================================ */
/* ---- Modern API: color + width (Chrome 121+, FF 64+) ---- */ /* Standard API: color + width (Chrome 121+, Firefox 64+). */
@supports (scrollbar-width: auto) { @supports (scrollbar-width: auto) {
* { * {
scrollbar-width: thin; scrollbar-width: thin;
@@ -489,8 +481,8 @@
} }
} }
/* ---- Webkit layer: runs ON TOP in Chrome, standalone in old Safari ---- */ /* WebKit fallback: applies on top of the standard API in Chrome, standalone in
/* Handles things scrollbar-width can't: hiding buttons, exact sizing */ older Safari. Covers what scrollbar-width can't hiding buttons, exact sizing. */
@supports selector(::-webkit-scrollbar) { @supports selector(::-webkit-scrollbar) {
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 6px; width: 6px;
@@ -498,7 +490,7 @@
} }
::-webkit-scrollbar-button { ::-webkit-scrollbar-button {
display: none; /* kills arrows */ display: none; /* hide scrollbar buttons */
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {