@refrakt-md/lumina 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base.css +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/tokens.d.ts +5 -3
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +44 -3
- package/dist/tokens.js.map +1 -1
- package/index.css +11 -1
- package/package.json +7 -5
- package/styles/base/attributes.css +6 -7
- package/styles/dimensions/checklist.css +7 -36
- package/styles/dimensions/cover.css +13 -95
- package/styles/dimensions/density.css +6 -3
- package/styles/dimensions/frame.css +7 -4
- package/styles/dimensions/media.css +14 -61
- package/styles/dimensions/metadata.css +30 -80
- package/styles/dimensions/sections.css +16 -30
- package/styles/dimensions/sequence.css +17 -82
- package/styles/dimensions/state.css +39 -56
- package/styles/dimensions/substrate.css +3 -0
- package/styles/dimensions/surfaces.css +73 -113
- package/styles/elements/blockquote.css +3 -2
- package/styles/elements/code.css +3 -0
- package/styles/elements/table.css +3 -0
- package/styles/global.css +24 -63
- package/styles/layouts/blog.css +34 -95
- package/styles/layouts/default.css +12 -86
- package/styles/layouts/docs.css +9 -159
- package/styles/layouts/mobile.css +3 -52
- package/styles/layouts/on-this-page.css +8 -7
- package/styles/layouts/plan.css +27 -158
- package/styles/layouts/search.css +17 -82
- package/styles/layouts/split.css +24 -169
- package/styles/layouts/theme-toggle.css +3 -29
- package/styles/layouts/version-switcher.css +9 -10
- package/styles/runes/accordion.css +25 -68
- package/styles/runes/aggregate.css +4 -13
- package/styles/runes/annotate.css +11 -40
- package/styles/runes/api.css +4 -1
- package/styles/runes/audio.css +12 -50
- package/styles/runes/badge.css +5 -2
- package/styles/runes/bar.css +3 -0
- package/styles/runes/bento.css +18 -161
- package/styles/runes/bg.css +3 -37
- package/styles/runes/blog.css +18 -20
- package/styles/runes/bond.css +6 -26
- package/styles/runes/breadcrumb.css +7 -15
- package/styles/runes/budget.css +23 -45
- package/styles/runes/bug.css +5 -2
- package/styles/runes/card.css +27 -95
- package/styles/runes/cast.css +10 -27
- package/styles/runes/changelog.css +13 -17
- package/styles/runes/character.css +6 -20
- package/styles/runes/chart.css +15 -57
- package/styles/runes/codegroup.css +18 -26
- package/styles/runes/collection.css +8 -85
- package/styles/runes/compare.css +8 -19
- package/styles/runes/comparison.css +29 -56
- package/styles/runes/conversation.css +9 -31
- package/styles/runes/cta.css +17 -40
- package/styles/runes/datatable.css +33 -48
- package/styles/runes/decision.css +5 -2
- package/styles/runes/design-context.css +5 -4
- package/styles/runes/details.css +9 -17
- package/styles/runes/diagram.css +8 -16
- package/styles/runes/diff.css +11 -94
- package/styles/runes/drawer.css +9 -113
- package/styles/runes/embed.css +5 -13
- package/styles/runes/event.css +5 -3
- package/styles/runes/expand.css +10 -45
- package/styles/runes/faction.css +6 -12
- package/styles/runes/feature.css +15 -43
- package/styles/runes/figure.css +7 -26
- package/styles/runes/file-ref.css +3 -18
- package/styles/runes/form.css +19 -48
- package/styles/runes/gallery.css +8 -140
- package/styles/runes/grid.css +4 -56
- package/styles/runes/hero.css +28 -140
- package/styles/runes/hint.css +23 -48
- package/styles/runes/howto.css +9 -31
- package/styles/runes/itinerary.css +15 -44
- package/styles/runes/juxtapose.css +17 -92
- package/styles/runes/lore.css +7 -14
- package/styles/runes/map.css +9 -42
- package/styles/runes/mediatext.css +4 -45
- package/styles/runes/milestone.css +15 -28
- package/styles/runes/mockup.css +10 -115
- package/styles/runes/nav.css +37 -212
- package/styles/runes/organization.css +6 -5
- package/styles/runes/page-section.css +3 -4
- package/styles/runes/pagination.css +10 -42
- package/styles/runes/palette.css +16 -35
- package/styles/runes/placeholder.css +16 -0
- package/styles/runes/plan-history.css +23 -43
- package/styles/runes/plan-progress.css +6 -7
- package/styles/runes/plan-ref.css +4 -1
- package/styles/runes/playlist.css +10 -44
- package/styles/runes/plot.css +9 -25
- package/styles/runes/preview.css +9 -34
- package/styles/runes/pricing.css +23 -41
- package/styles/runes/progress.css +8 -27
- package/styles/runes/pullquote.css +9 -31
- package/styles/runes/realm.css +6 -12
- package/styles/runes/recipe.css +12 -36
- package/styles/runes/relationships.css +5 -36
- package/styles/runes/reveal.css +17 -22
- package/styles/runes/sandbox.css +9 -39
- package/styles/runes/section.css +10 -24
- package/styles/runes/showcase.css +3 -20
- package/styles/runes/sidenote.css +5 -4
- package/styles/runes/snippet.css +3 -0
- package/styles/runes/spacing.css +14 -33
- package/styles/runes/spec.css +5 -2
- package/styles/runes/steps.css +14 -46
- package/styles/runes/storyboard.css +4 -19
- package/styles/runes/swatch.css +4 -7
- package/styles/runes/symbol.css +16 -14
- package/styles/runes/tabs.css +15 -18
- package/styles/runes/testimonial.css +12 -13
- package/styles/runes/textblock.css +6 -24
- package/styles/runes/timeline.css +10 -28
- package/styles/runes/tint.css +3 -0
- package/styles/runes/toc.css +9 -7
- package/styles/runes/track.css +12 -41
- package/styles/runes/typography.css +15 -27
- package/styles/runes/work.css +5 -2
- package/styles/runes/xref.css +3 -1
- package/tokens/base.css +56 -66
- package/tokens/dark.css +79 -80
- package/styles/dimensions/guest-posture.css +0 -27
package/styles/runes/xref.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Xref — inline cross-reference link */
|
|
2
3
|
|
|
3
4
|
.rf-xref {
|
|
@@ -13,7 +14,6 @@
|
|
|
13
14
|
}
|
|
14
15
|
.rf-xref--external::after {
|
|
15
16
|
content: '\2197'; /* ↗ */
|
|
16
|
-
display: inline-block;
|
|
17
17
|
margin-inline-start: 0.15em;
|
|
18
18
|
font-size: 0.85em;
|
|
19
19
|
vertical-align: 0.05em;
|
|
@@ -26,3 +26,5 @@
|
|
|
26
26
|
color: var(--rf-color-muted);
|
|
27
27
|
cursor: help;
|
|
28
28
|
}
|
|
29
|
+
|
|
30
|
+
}
|
package/tokens/base.css
CHANGED
|
@@ -1,37 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* This file mirrors that export verbatim — a coverage test in
|
|
5
|
-
* `packages/lumina/test/token-config-coverage.test.ts` keeps them in
|
|
6
|
-
* lockstep; drift fails CI. Edit `tokens.ts` and update both, or run
|
|
7
|
-
* a future build script that regenerates this file. */
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* GENERATED from src/tokens.ts by scripts/generate-tokens.mjs — do not edit by hand.
|
|
3
|
+
* Edit the `luminaTokens` source and rebuild; a drift test guards this file. */
|
|
8
4
|
|
|
9
|
-
:root {
|
|
10
|
-
/* Typography */
|
|
5
|
+
:root, [data-color-scheme="light"] {
|
|
11
6
|
--rf-font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
|
12
7
|
--rf-font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, 'Cascadia Code', monospace;
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
--rf-font-display: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
|
9
|
+
--rf-text-xs: 0.75rem;
|
|
10
|
+
--rf-text-sm: 0.875rem;
|
|
11
|
+
--rf-text: 1rem;
|
|
12
|
+
--rf-text-lg: 1.125rem;
|
|
13
|
+
--rf-text-xl: 1.25rem;
|
|
14
|
+
--rf-text-2xl: 1.5rem;
|
|
15
|
+
--rf-text-3xl: 1.875rem;
|
|
16
|
+
--rf-text-4xl: 2.5rem;
|
|
17
|
+
--rf-weight-light: 300;
|
|
18
|
+
--rf-weight-normal: 400;
|
|
19
|
+
--rf-weight-medium: 500;
|
|
20
|
+
--rf-weight-semibold: 600;
|
|
21
|
+
--rf-weight-bold: 700;
|
|
22
|
+
--rf-leading-tight: 1.2;
|
|
23
|
+
--rf-leading-snug: 1.35;
|
|
24
|
+
--rf-leading-normal: 1.5;
|
|
25
|
+
--rf-leading-relaxed: 1.65;
|
|
26
|
+
--rf-leading-loose: 2;
|
|
27
|
+
--rf-tracking-tight: -0.01em;
|
|
28
|
+
--rf-tracking-normal: 0;
|
|
29
|
+
--rf-tracking-wide: 0.03em;
|
|
30
|
+
--rf-tracking-wider: 0.06em;
|
|
15
31
|
--rf-color-text: #1c1a17;
|
|
16
32
|
--rf-color-muted: #6b6661;
|
|
17
33
|
--rf-color-border: #e2e0dd;
|
|
18
34
|
--rf-color-bg: #f5f4f1;
|
|
19
35
|
--rf-color-primary: #1c1a17;
|
|
20
36
|
--rf-color-primary-hover: #3a342d;
|
|
21
|
-
/* Derived subtle primary wash — tracks `primary` in both modes. */
|
|
22
37
|
--rf-color-primary-bg: color-mix(in oklch, var(--rf-color-primary) 10%, transparent);
|
|
23
38
|
--rf-color-on-primary: #ffffff;
|
|
24
|
-
|
|
25
|
-
/* Surfaces */
|
|
26
39
|
--rf-color-surface: #fbfaf7;
|
|
27
40
|
--rf-color-surface-hover: #ecebe8;
|
|
28
41
|
--rf-color-surface-active: #e2e0dd;
|
|
29
42
|
--rf-color-surface-raised: #ffffff;
|
|
30
|
-
/* SPEC-087 — lightness delta for the derived inset surface (applied at use-site
|
|
31
|
-
* via relative-color — lower L, keep C+H — so it tracks a tinted --rf-color-surface). */
|
|
32
|
-
--rf-surface-inset-shift: 0.04;
|
|
33
|
-
|
|
34
|
-
/* Semantic — muted earthy band per SPEC-051 */
|
|
35
43
|
--rf-color-info: #34547a;
|
|
36
44
|
--rf-color-info-bg: #e8edf4;
|
|
37
45
|
--rf-color-info-border: #c5d2e0;
|
|
@@ -44,70 +52,37 @@
|
|
|
44
52
|
--rf-color-success: #2d6a3e;
|
|
45
53
|
--rf-color-success-bg: #e0eee4;
|
|
46
54
|
--rf-color-success-border: #b8d4be;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
* Subtle surface tint so highlighted rows read as emphasized but not
|
|
51
|
-
* status-coloured (which would compete with diff's add/remove channel
|
|
52
|
-
* and the semantic palette above). `*-rail` is the optional left-edge
|
|
53
|
-
* border colour; falls back to the primary accent via the consuming
|
|
54
|
-
* CSS for themes that don't override it.
|
|
55
|
-
*
|
|
56
|
-
* WORK-341 — these three (and `--rf-color-primary-bg` above) are
|
|
57
|
-
* **intentionally shared**: each derives from a mode-aware token
|
|
58
|
-
* (`text` / `primary` / `muted`), so they track dark mode automatically
|
|
59
|
-
* and deliberately have no dark.css override (a fixed dark value would
|
|
60
|
-
* break the derivation). */
|
|
55
|
+
--rf-color-code-bg: #ebeae8;
|
|
56
|
+
--rf-color-code-text: #1c1a17;
|
|
57
|
+
--rf-color-code-inline-bg: #e6e5e3;
|
|
61
58
|
--rf-color-line-highlight: color-mix(in srgb, var(--rf-color-text) 6%, transparent);
|
|
62
59
|
--rf-color-line-highlight-rail: var(--rf-color-primary, var(--rf-color-text));
|
|
63
|
-
/* Gutter colour for `pre[data-linenumbers]` line counter. Defers to
|
|
64
|
-
* the existing muted text token by default; themes can pin a
|
|
65
|
-
* dedicated hue without overriding muted. */
|
|
66
60
|
--rf-color-line-number: var(--rf-color-muted);
|
|
67
|
-
|
|
68
|
-
/* Radii */
|
|
69
61
|
--rf-radius-sm: 6px;
|
|
70
62
|
--rf-radius-md: 10px;
|
|
71
63
|
--rf-radius-lg: 16px;
|
|
72
64
|
--rf-radius-full: 9999px;
|
|
73
|
-
|
|
74
|
-
/* Spacing */
|
|
75
65
|
--rf-spacing-xs: 0.25rem;
|
|
76
66
|
--rf-spacing-sm: 0.5rem;
|
|
67
|
+
--rf-spacing-snug: 0.75rem;
|
|
68
|
+
--rf-spacing-cozy: 1rem;
|
|
77
69
|
--rf-spacing-md: 1.5rem;
|
|
78
70
|
--rf-spacing-lg: 2rem;
|
|
79
71
|
--rf-spacing-xl: 3rem;
|
|
80
72
|
--rf-spacing-2xl: 4rem;
|
|
81
|
-
|
|
82
|
-
/* Section spacing */
|
|
83
73
|
--rf-spacing-section: 4rem;
|
|
84
74
|
--rf-spacing-section-tight: 1.5rem;
|
|
85
75
|
--rf-spacing-section-loose: 6rem;
|
|
86
76
|
--rf-spacing-section-breathe: 8rem;
|
|
87
|
-
|
|
88
|
-
/* Inset (horizontal padding) */
|
|
89
77
|
--rf-inset-flush: 0;
|
|
90
78
|
--rf-inset-tight: 1rem;
|
|
91
79
|
--rf-inset-loose: 4rem;
|
|
92
80
|
--rf-inset-breathe: 8rem;
|
|
93
|
-
|
|
94
|
-
/* Shadows */
|
|
95
81
|
--rf-shadow-none: none;
|
|
96
82
|
--rf-shadow-xs: 0 1px 2px rgba(0,0,0,0.04);
|
|
97
83
|
--rf-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
|
|
98
84
|
--rf-shadow-md: 0 4px 12px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.04);
|
|
99
85
|
--rf-shadow-lg: 0 8px 24px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.04);
|
|
100
|
-
|
|
101
|
-
/* Code block */
|
|
102
|
-
--rf-color-code-bg: #ebeae8;
|
|
103
|
-
--rf-color-code-text: #1c1a17;
|
|
104
|
-
--rf-color-code-inline-bg: #e6e5e3;
|
|
105
|
-
/* Legacy alias — same value, kept for downstream CSS that reads the
|
|
106
|
-
* older variable name. Will be removed once the rename is documented
|
|
107
|
-
* widely enough that it's safe to drop. */
|
|
108
|
-
--rf-color-inline-code-bg: #e6e5e3;
|
|
109
|
-
|
|
110
|
-
/* Syntax — the quiet spectrum walk */
|
|
111
86
|
--rf-syntax-keyword: #2a5c63;
|
|
112
87
|
--rf-syntax-function: #4a3b6e;
|
|
113
88
|
--rf-syntax-string: #8a3a3a;
|
|
@@ -115,19 +90,34 @@
|
|
|
115
90
|
--rf-syntax-comment: #8a857d;
|
|
116
91
|
--rf-syntax-punctuation: #6b6661;
|
|
117
92
|
--rf-syntax-variable: #1c1a17;
|
|
118
|
-
|
|
119
|
-
/* Shiki aliases — Shiki's CSS-variables theme emits `--rf-syntax-token-*`
|
|
120
|
-
* with `token-` hardcoded inside its theme builder. We bridge by emitting
|
|
121
|
-
* literal hex values matching the contract surface above. */
|
|
122
|
-
--rf-syntax-foreground: #1c1a17;
|
|
123
|
-
--rf-syntax-background: #ebeae8;
|
|
124
93
|
--rf-syntax-token-keyword: #2a5c63;
|
|
94
|
+
--rf-syntax-token-tag: #2a5c63;
|
|
95
|
+
--rf-syntax-token-function: #4a3b6e;
|
|
96
|
+
--rf-syntax-token-link: #4a3b6e;
|
|
97
|
+
--rf-syntax-token-type: #4a3b6e;
|
|
98
|
+
--rf-syntax-token-attribute: #4a3b6e;
|
|
125
99
|
--rf-syntax-token-string: #8a3a3a;
|
|
126
100
|
--rf-syntax-token-string-expression: #8a3a3a;
|
|
101
|
+
--rf-syntax-token-regex: #8a3a3a;
|
|
127
102
|
--rf-syntax-token-constant: #876327;
|
|
103
|
+
--rf-syntax-token-number: #876327;
|
|
128
104
|
--rf-syntax-token-comment: #8a857d;
|
|
129
|
-
--rf-syntax-token-function: #4a3b6e;
|
|
130
|
-
--rf-syntax-token-parameter: #1c1a17;
|
|
131
105
|
--rf-syntax-token-punctuation: #6b6661;
|
|
132
|
-
--rf-syntax-token-
|
|
106
|
+
--rf-syntax-token-operator: #6b6661;
|
|
107
|
+
--rf-syntax-token-parameter: #1c1a17;
|
|
108
|
+
--rf-syntax-token-property: #1c1a17;
|
|
109
|
+
--rf-syntax-foreground: #1c1a17;
|
|
110
|
+
--rf-syntax-background: #ebeae8;
|
|
111
|
+
--rf-color-inline-code-bg: #e6e5e3;
|
|
112
|
+
--rf-surface-inset-shift: 0.04;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
:root {
|
|
116
|
+
--rf-icon-hint-note: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%2216%22%20x2%3D%2212%22%20y2%3D%2212%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%228%22%20x2%3D%2212.01%22%20y2%3D%228%22%2F%3E%3C%2Fsvg%3E");
|
|
117
|
+
--rf-icon-hint-warning: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10.29%203.86L1.82%2018a2%202%200%200%200%201.71%203h16.94a2%202%200%200%200%201.71-3L13.71%203.86a2%202%200%200%200-3.42%200z%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%229%22%20x2%3D%2212%22%20y2%3D%2213%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%2217%22%20x2%3D%2212.01%22%20y2%3D%2217%22%2F%3E%3C%2Fsvg%3E");
|
|
118
|
+
--rf-icon-hint-caution: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cline%20x1%3D%2215%22%20y1%3D%229%22%20x2%3D%229%22%20y2%3D%2215%22%2F%3E%3Cline%20x1%3D%229%22%20y1%3D%229%22%20x2%3D%2215%22%20y2%3D%2215%22%2F%3E%3C%2Fsvg%3E");
|
|
119
|
+
--rf-icon-hint-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2011.08V12a10%2010%200%201%201-5.93-9.14%22%2F%3E%3Cpolyline%20points%3D%2222%204%2012%2014.01%209%2011.01%22%2F%3E%3C%2Fsvg%3E");
|
|
120
|
+
--rf-icon-accordion-chevron: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%229%2018%2015%2012%209%206%22%2F%3E%3C%2Fsvg%3E");
|
|
121
|
+
}
|
|
122
|
+
|
|
133
123
|
}
|
package/tokens/dark.css
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* This file mirrors that overlay verbatim under both selectors
|
|
5
|
-
* (`[data-theme="dark"]` for user toggles and the `prefers-color-scheme`
|
|
6
|
-
* media query for system preference). A coverage test keeps the two in
|
|
7
|
-
* lockstep; drift fails CI. */
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* GENERATED from src/tokens.ts by scripts/generate-tokens.mjs — do not edit by hand.
|
|
3
|
+
* Edit the `luminaTokens` source and rebuild; a drift test guards this file. */
|
|
8
4
|
|
|
9
|
-
[data-theme="dark"] {
|
|
5
|
+
[data-theme="dark"], [data-color-scheme="dark"] {
|
|
10
6
|
--rf-color-text: #f6f4ef;
|
|
11
7
|
--rf-color-muted: #94908a;
|
|
12
8
|
--rf-color-border: #282825;
|
|
@@ -14,13 +10,10 @@
|
|
|
14
10
|
--rf-color-primary: #f6f4ef;
|
|
15
11
|
--rf-color-primary-hover: #d4cfc5;
|
|
16
12
|
--rf-color-on-primary: #1a1a17;
|
|
17
|
-
|
|
18
13
|
--rf-color-surface: #1f1f1c;
|
|
19
14
|
--rf-color-surface-hover: #282825;
|
|
20
15
|
--rf-color-surface-active: #333330;
|
|
21
16
|
--rf-color-surface-raised: #272723;
|
|
22
|
-
--rf-surface-inset-shift: 0.06;
|
|
23
|
-
|
|
24
17
|
--rf-color-info: #9bb4c7;
|
|
25
18
|
--rf-color-info-bg: #1f2530;
|
|
26
19
|
--rf-color-info-border: #3d4655;
|
|
@@ -33,12 +26,13 @@
|
|
|
33
26
|
--rf-color-success: #7eb398;
|
|
34
27
|
--rf-color-success-bg: #1a2a1f;
|
|
35
28
|
--rf-color-success-border: #2a4a35;
|
|
36
|
-
|
|
37
29
|
--rf-color-code-bg: #1c1c19;
|
|
38
30
|
--rf-color-code-text: #f6f4ef;
|
|
39
31
|
--rf-color-code-inline-bg: #2b2b29;
|
|
40
|
-
--rf-
|
|
41
|
-
|
|
32
|
+
--rf-shadow-xs: 0 1px 2px rgba(0,0,0,0.3);
|
|
33
|
+
--rf-shadow-sm: 0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.3);
|
|
34
|
+
--rf-shadow-md: 0 4px 12px rgba(0,0,0,0.4), 0 1px 3px rgba(0,0,0,0.3);
|
|
35
|
+
--rf-shadow-lg: 0 8px 24px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.3);
|
|
42
36
|
--rf-syntax-keyword: #7eb6bc;
|
|
43
37
|
--rf-syntax-function: #a89bc7;
|
|
44
38
|
--rf-syntax-string: #c79a9a;
|
|
@@ -46,83 +40,88 @@
|
|
|
46
40
|
--rf-syntax-comment: #6b6661;
|
|
47
41
|
--rf-syntax-punctuation: #94908a;
|
|
48
42
|
--rf-syntax-variable: #f6f4ef;
|
|
49
|
-
|
|
50
|
-
--rf-syntax-foreground: #f6f4ef;
|
|
51
|
-
--rf-syntax-background: #1c1c19;
|
|
52
43
|
--rf-syntax-token-keyword: #7eb6bc;
|
|
44
|
+
--rf-syntax-token-tag: #7eb6bc;
|
|
45
|
+
--rf-syntax-token-function: #a89bc7;
|
|
46
|
+
--rf-syntax-token-link: #a89bc7;
|
|
47
|
+
--rf-syntax-token-type: #a89bc7;
|
|
48
|
+
--rf-syntax-token-attribute: #a89bc7;
|
|
53
49
|
--rf-syntax-token-string: #c79a9a;
|
|
54
50
|
--rf-syntax-token-string-expression: #c79a9a;
|
|
51
|
+
--rf-syntax-token-regex: #c79a9a;
|
|
55
52
|
--rf-syntax-token-constant: #d4b07e;
|
|
53
|
+
--rf-syntax-token-number: #d4b07e;
|
|
56
54
|
--rf-syntax-token-comment: #6b6661;
|
|
57
|
-
--rf-syntax-token-function: #a89bc7;
|
|
58
|
-
--rf-syntax-token-parameter: #f6f4ef;
|
|
59
55
|
--rf-syntax-token-punctuation: #94908a;
|
|
60
|
-
--rf-syntax-token-
|
|
61
|
-
|
|
62
|
-
--rf-
|
|
63
|
-
--rf-
|
|
64
|
-
--rf-
|
|
65
|
-
--rf-
|
|
56
|
+
--rf-syntax-token-operator: #94908a;
|
|
57
|
+
--rf-syntax-token-parameter: #f6f4ef;
|
|
58
|
+
--rf-syntax-token-property: #f6f4ef;
|
|
59
|
+
--rf-syntax-foreground: #f6f4ef;
|
|
60
|
+
--rf-syntax-background: #1c1c19;
|
|
61
|
+
--rf-color-inline-code-bg: #2b2b29;
|
|
62
|
+
--rf-surface-inset-shift: 0.06;
|
|
66
63
|
}
|
|
67
64
|
|
|
68
|
-
/* Auto dark mode via system preference */
|
|
69
65
|
@media (prefers-color-scheme: dark) {
|
|
70
66
|
:root:not([data-theme="light"]) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
--rf-color-text: #f6f4ef;
|
|
68
|
+
--rf-color-muted: #94908a;
|
|
69
|
+
--rf-color-border: #282825;
|
|
70
|
+
--rf-color-bg: #1a1a17;
|
|
71
|
+
--rf-color-primary: #f6f4ef;
|
|
72
|
+
--rf-color-primary-hover: #d4cfc5;
|
|
77
73
|
--rf-color-on-primary: #1a1a17;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
--rf-color-surface: #1f1f1c;
|
|
75
|
+
--rf-color-surface-hover: #282825;
|
|
76
|
+
--rf-color-surface-active: #333330;
|
|
77
|
+
--rf-color-surface-raised: #272723;
|
|
78
|
+
--rf-color-info: #9bb4c7;
|
|
79
|
+
--rf-color-info-bg: #1f2530;
|
|
80
|
+
--rf-color-info-border: #3d4655;
|
|
81
|
+
--rf-color-warning: #d4a868;
|
|
82
|
+
--rf-color-warning-bg: #2a2519;
|
|
83
|
+
--rf-color-warning-border: #4a3f2a;
|
|
84
|
+
--rf-color-danger: #d48888;
|
|
85
|
+
--rf-color-danger-bg: #2a1818;
|
|
86
|
+
--rf-color-danger-border: #4a2a2a;
|
|
87
|
+
--rf-color-success: #7eb398;
|
|
88
|
+
--rf-color-success-bg: #1a2a1f;
|
|
89
|
+
--rf-color-success-border: #2a4a35;
|
|
90
|
+
--rf-color-code-bg: #1c1c19;
|
|
91
|
+
--rf-color-code-text: #f6f4ef;
|
|
92
|
+
--rf-color-code-inline-bg: #2b2b29;
|
|
93
|
+
--rf-shadow-xs: 0 1px 2px rgba(0,0,0,0.3);
|
|
94
|
+
--rf-shadow-sm: 0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.3);
|
|
95
|
+
--rf-shadow-md: 0 4px 12px rgba(0,0,0,0.4), 0 1px 3px rgba(0,0,0,0.3);
|
|
96
|
+
--rf-shadow-lg: 0 8px 24px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.3);
|
|
97
|
+
--rf-syntax-keyword: #7eb6bc;
|
|
98
|
+
--rf-syntax-function: #a89bc7;
|
|
99
|
+
--rf-syntax-string: #c79a9a;
|
|
100
|
+
--rf-syntax-constant: #d4b07e;
|
|
101
|
+
--rf-syntax-comment: #6b6661;
|
|
102
|
+
--rf-syntax-punctuation: #94908a;
|
|
103
|
+
--rf-syntax-variable: #f6f4ef;
|
|
104
|
+
--rf-syntax-token-keyword: #7eb6bc;
|
|
105
|
+
--rf-syntax-token-tag: #7eb6bc;
|
|
106
|
+
--rf-syntax-token-function: #a89bc7;
|
|
107
|
+
--rf-syntax-token-link: #a89bc7;
|
|
108
|
+
--rf-syntax-token-type: #a89bc7;
|
|
109
|
+
--rf-syntax-token-attribute: #a89bc7;
|
|
110
|
+
--rf-syntax-token-string: #c79a9a;
|
|
111
|
+
--rf-syntax-token-string-expression: #c79a9a;
|
|
112
|
+
--rf-syntax-token-regex: #c79a9a;
|
|
113
|
+
--rf-syntax-token-constant: #d4b07e;
|
|
114
|
+
--rf-syntax-token-number: #d4b07e;
|
|
115
|
+
--rf-syntax-token-comment: #6b6661;
|
|
116
|
+
--rf-syntax-token-punctuation: #94908a;
|
|
117
|
+
--rf-syntax-token-operator: #94908a;
|
|
118
|
+
--rf-syntax-token-parameter: #f6f4ef;
|
|
119
|
+
--rf-syntax-token-property: #f6f4ef;
|
|
120
|
+
--rf-syntax-foreground: #f6f4ef;
|
|
121
|
+
--rf-syntax-background: #1c1c19;
|
|
122
|
+
--rf-color-inline-code-bg: #2b2b29;
|
|
83
123
|
--rf-surface-inset-shift: 0.06;
|
|
84
|
-
|
|
85
|
-
--rf-color-info: #9bb4c7;
|
|
86
|
-
--rf-color-info-bg: #1f2530;
|
|
87
|
-
--rf-color-info-border: #3d4655;
|
|
88
|
-
--rf-color-warning: #d4a868;
|
|
89
|
-
--rf-color-warning-bg: #2a2519;
|
|
90
|
-
--rf-color-warning-border: #4a3f2a;
|
|
91
|
-
--rf-color-danger: #d48888;
|
|
92
|
-
--rf-color-danger-bg: #2a1818;
|
|
93
|
-
--rf-color-danger-border: #4a2a2a;
|
|
94
|
-
--rf-color-success: #7eb398;
|
|
95
|
-
--rf-color-success-bg: #1a2a1f;
|
|
96
|
-
--rf-color-success-border: #2a4a35;
|
|
97
|
-
|
|
98
|
-
--rf-color-code-bg: #1c1c19;
|
|
99
|
-
--rf-color-code-text: #f6f4ef;
|
|
100
|
-
--rf-color-code-inline-bg: #2b2b29;
|
|
101
|
-
--rf-color-inline-code-bg: #2b2b29;
|
|
102
|
-
|
|
103
|
-
--rf-syntax-keyword: #7eb6bc;
|
|
104
|
-
--rf-syntax-function: #a89bc7;
|
|
105
|
-
--rf-syntax-string: #c79a9a;
|
|
106
|
-
--rf-syntax-constant: #d4b07e;
|
|
107
|
-
--rf-syntax-comment: #6b6661;
|
|
108
|
-
--rf-syntax-punctuation: #94908a;
|
|
109
|
-
--rf-syntax-variable: #f6f4ef;
|
|
110
|
-
|
|
111
|
-
--rf-syntax-foreground: #f6f4ef;
|
|
112
|
-
--rf-syntax-background: #1c1c19;
|
|
113
|
-
--rf-syntax-token-keyword: #7eb6bc;
|
|
114
|
-
--rf-syntax-token-string: #c79a9a;
|
|
115
|
-
--rf-syntax-token-string-expression: #c79a9a;
|
|
116
|
-
--rf-syntax-token-constant: #d4b07e;
|
|
117
|
-
--rf-syntax-token-comment: #6b6661;
|
|
118
|
-
--rf-syntax-token-function: #a89bc7;
|
|
119
|
-
--rf-syntax-token-parameter: #f6f4ef;
|
|
120
|
-
--rf-syntax-token-punctuation: #94908a;
|
|
121
|
-
--rf-syntax-token-link: #a89bc7;
|
|
122
|
-
|
|
123
|
-
--rf-shadow-xs: 0 1px 2px rgba(0,0,0,0.3);
|
|
124
|
-
--rf-shadow-sm: 0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.3);
|
|
125
|
-
--rf-shadow-md: 0 4px 12px rgba(0,0,0,0.4), 0 1px 3px rgba(0,0,0,0.3);
|
|
126
|
-
--rf-shadow-lg: 0 8px 24px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.3);
|
|
127
124
|
}
|
|
128
125
|
}
|
|
126
|
+
|
|
127
|
+
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/* Media-guest interaction posture (SPEC-090).
|
|
2
|
-
*
|
|
3
|
-
* A media-slot guest is presentational by default. When its container is itself
|
|
4
|
-
* an interaction target — a `card` / `bento-cell` with a stretched whole-tile
|
|
5
|
-
* `href` link — or the guest is a `cover` backdrop (SPEC-089), the engine marks
|
|
6
|
-
* the media zone `data-guest-posture="presentational"`. That makes the guest
|
|
7
|
-
* non-interactive at the pointer level, so:
|
|
8
|
-
* • a linked tile links reliably — clicks over the media fall through to the
|
|
9
|
-
* stretched link beneath it instead of being eaten by the guest's controls;
|
|
10
|
-
* • a cover backdrop never steals interaction from the overlaid content.
|
|
11
|
-
*
|
|
12
|
-
* The behaviours layer additionally skips JS enhancement for a presentational
|
|
13
|
-
* guest (see @refrakt-md/behaviors), so it renders its static fallback. The
|
|
14
|
-
* posture is scoped to the media zone only — content-overlay controls
|
|
15
|
-
* (body/footer links & buttons) are outside it and stay fully interactive. */
|
|
16
|
-
[data-section="media"][data-guest-posture="presentational"] {
|
|
17
|
-
pointer-events: none;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* Static fallback for demoted tabbed guests (`codegroup`, `tabs`): their tab
|
|
21
|
-
* strip is rendered statically but the behaviour that wires it is skipped, so
|
|
22
|
-
* it would sit there inert. Hide it and let the panels read as plain stacked
|
|
23
|
-
* content — the non-enhanced render is the fallback. (Guests whose chrome is
|
|
24
|
-
* JS-injected — datatable toolbars, map controls — simply never appear.) */
|
|
25
|
-
[data-section="media"][data-guest-posture="presentational"] :is(.rf-tabs__tabs, .rf-codegroup__tabs) {
|
|
26
|
-
display: none;
|
|
27
|
-
}
|