@refrakt-md/lumina 0.4.0 → 0.5.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 +16 -0
- package/contracts/structures.json +1317 -3
- package/dist/config.d.ts +2 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -229
- package/dist/config.js.map +1 -1
- package/dist/transform.d.ts +2 -0
- package/dist/transform.d.ts.map +1 -1
- package/dist/transform.js +2 -0
- package/dist/transform.js.map +1 -1
- package/index.css +11 -0
- package/package.json +18 -11
- package/styles/elements/blockquote.css +8 -4
- package/styles/global.css +0 -7
- package/styles/layouts/blog.css +255 -0
- package/styles/layouts/default.css +11 -3
- package/styles/layouts/docs.css +67 -13
- package/styles/layouts/mobile.css +84 -0
- package/styles/runes/bento.css +2 -0
- package/styles/runes/codegroup.css +7 -2
- package/styles/runes/design-context.css +25 -0
- package/styles/runes/feature.css +20 -14
- package/styles/runes/form.css +1 -2
- package/styles/runes/grid.css +25 -7
- package/styles/runes/hero.css +15 -0
- package/styles/runes/map.css +113 -0
- package/styles/runes/palette.css +86 -0
- package/styles/runes/preview.css +187 -0
- package/styles/runes/sandbox.css +23 -0
- package/styles/runes/spacing.css +105 -0
- package/styles/runes/steps.css +7 -1
- package/styles/runes/swatch.css +28 -0
- package/styles/runes/symbol.css +164 -0
- package/styles/runes/tabs.css +6 -0
- package/styles/runes/testimonial.css +2 -3
- package/styles/runes/timeline.css +43 -24
- package/styles/runes/typography.css +91 -0
- package/svelte/elements.ts +1 -0
- package/{sveltekit → svelte}/index.ts +0 -8
- package/svelte/layouts/BlogLayout.svelte +173 -0
- package/svelte/layouts/DefaultLayout.svelte +67 -0
- package/svelte/layouts/DocsLayout.svelte +155 -0
- package/{sveltekit → svelte}/manifest.json +1 -1
- package/svelte/registry.ts +2 -0
- package/svelte/tokens.css +6 -0
- package/sveltekit/components/Accordion.svelte +0 -26
- package/sveltekit/components/Bento.svelte +0 -50
- package/sveltekit/components/Chart.svelte +0 -121
- package/sveltekit/components/CodeGroup.svelte +0 -88
- package/sveltekit/components/Comparison.svelte +0 -209
- package/sveltekit/components/DataTable.svelte +0 -154
- package/sveltekit/components/Details.svelte +0 -23
- package/sveltekit/components/Diagram.svelte +0 -45
- package/sveltekit/components/Embed.svelte +0 -36
- package/sveltekit/components/Form.svelte +0 -194
- package/sveltekit/components/Grid.svelte +0 -42
- package/sveltekit/components/Nav.svelte +0 -62
- package/sveltekit/components/Pricing.svelte +0 -20
- package/sveltekit/components/Reveal.svelte +0 -62
- package/sveltekit/components/Storyboard.svelte +0 -41
- package/sveltekit/components/Tabs.svelte +0 -75
- package/sveltekit/components/Testimonial.svelte +0 -26
- package/sveltekit/elements/Blockquote.svelte +0 -37
- package/sveltekit/elements/Pre.svelte +0 -77
- package/sveltekit/elements/Table.svelte +0 -40
- package/sveltekit/elements.ts +0 -11
- package/sveltekit/layouts/BlogLayout.svelte +0 -382
- package/sveltekit/layouts/DefaultLayout.svelte +0 -70
- package/sveltekit/layouts/DocsLayout.svelte +0 -133
- package/sveltekit/registry.ts +0 -59
- package/sveltekit/tokens.css +0 -71
package/styles/runes/hero.css
CHANGED
|
@@ -9,12 +9,17 @@
|
|
|
9
9
|
.rf-hero__actions {
|
|
10
10
|
max-width: 720px;
|
|
11
11
|
margin: 0 auto;
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
gap: 0.75rem;
|
|
15
|
+
flex-wrap: wrap;
|
|
12
16
|
}
|
|
13
17
|
.rf-hero--center {
|
|
14
18
|
text-align: center;
|
|
15
19
|
}
|
|
16
20
|
.rf-hero--center .rf-hero__actions {
|
|
17
21
|
margin: 0 auto;
|
|
22
|
+
justify-content: center;
|
|
18
23
|
}
|
|
19
24
|
.rf-hero--left {
|
|
20
25
|
text-align: left;
|
|
@@ -28,6 +33,16 @@
|
|
|
28
33
|
.rf-hero--right .rf-hero__actions {
|
|
29
34
|
margin: 0 0 0 auto;
|
|
30
35
|
}
|
|
36
|
+
.rf-hero__actions pre {
|
|
37
|
+
margin: 0;
|
|
38
|
+
padding: 0.7rem 1.75rem;
|
|
39
|
+
font-size: 0.95rem;
|
|
40
|
+
border-radius: var(--rf-radius-sm);
|
|
41
|
+
background: var(--rf-color-code-bg);
|
|
42
|
+
color: var(--rf-color-code-text);
|
|
43
|
+
border: 1px solid var(--rf-color-border);
|
|
44
|
+
white-space: nowrap;
|
|
45
|
+
}
|
|
31
46
|
.rf-hero h1 {
|
|
32
47
|
font-size: 3.25rem;
|
|
33
48
|
font-weight: 800;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/* ── Map Rune ── */
|
|
2
|
+
|
|
3
|
+
.rf-map {
|
|
4
|
+
margin: 2rem 0;
|
|
5
|
+
border-radius: var(--rf-radius-lg, 0.75rem);
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
border: 1px solid var(--rf-color-border);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* Height variants */
|
|
11
|
+
.rf-map--small .rf-map__container { height: 200px; }
|
|
12
|
+
.rf-map--medium .rf-map__container { height: 400px; }
|
|
13
|
+
.rf-map--large .rf-map__container { height: 600px; }
|
|
14
|
+
.rf-map--full .rf-map__container { height: 80vh; min-height: 400px; }
|
|
15
|
+
|
|
16
|
+
.rf-map__container {
|
|
17
|
+
width: 100%;
|
|
18
|
+
position: relative;
|
|
19
|
+
background: var(--rf-color-surface, #f8f9fa);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* Fallback list shown while Leaflet loads */
|
|
23
|
+
.rf-map__fallback {
|
|
24
|
+
padding: 1.5rem;
|
|
25
|
+
margin: 0;
|
|
26
|
+
list-style: decimal inside;
|
|
27
|
+
font-size: 0.925rem;
|
|
28
|
+
color: var(--rf-color-muted);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.rf-map__fallback li {
|
|
32
|
+
padding: 0.25rem 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.rf-map__fallback strong {
|
|
36
|
+
color: var(--rf-color-text);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Accessible text list (visible to screen readers, hidden visually) */
|
|
40
|
+
.rf-map__pins {
|
|
41
|
+
position: absolute;
|
|
42
|
+
width: 1px;
|
|
43
|
+
height: 1px;
|
|
44
|
+
padding: 0;
|
|
45
|
+
margin: -1px;
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
clip: rect(0, 0, 0, 0);
|
|
48
|
+
white-space: nowrap;
|
|
49
|
+
border: 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* MapPin in fallback / a11y list */
|
|
53
|
+
.rf-map-pin {
|
|
54
|
+
padding: 0.25rem 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.rf-map-pin__description {
|
|
58
|
+
color: var(--rf-color-muted);
|
|
59
|
+
font-style: italic;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.rf-map-pin__group {
|
|
63
|
+
display: inline-block;
|
|
64
|
+
font-size: 0.75rem;
|
|
65
|
+
padding: 0.1rem 0.5rem;
|
|
66
|
+
border-radius: var(--rf-radius-sm, 0.25rem);
|
|
67
|
+
background: var(--rf-color-surface, #f0f0f0);
|
|
68
|
+
color: var(--rf-color-muted);
|
|
69
|
+
margin-left: 0.5rem;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Hide meta tags and property spans inside the map */
|
|
73
|
+
.rf-map meta,
|
|
74
|
+
.rf-map span[property] {
|
|
75
|
+
display: none;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Leaflet popup overrides to match theme */
|
|
79
|
+
.rf-map .leaflet-popup-content-wrapper {
|
|
80
|
+
border-radius: var(--rf-radius-md, 0.5rem);
|
|
81
|
+
font-family: var(--rf-font-sans, inherit);
|
|
82
|
+
font-size: 0.875rem;
|
|
83
|
+
color: var(--rf-color-text);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.rf-map .leaflet-popup-content {
|
|
87
|
+
margin: 0.75rem 1rem;
|
|
88
|
+
line-height: 1.5;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.rf-map .leaflet-popup-content strong {
|
|
92
|
+
display: block;
|
|
93
|
+
font-size: 0.95rem;
|
|
94
|
+
margin-bottom: 0.25rem;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.rf-map .leaflet-popup-content em {
|
|
98
|
+
color: var(--rf-color-muted);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.rf-map .leaflet-popup-content small {
|
|
102
|
+
color: var(--rf-color-muted);
|
|
103
|
+
font-size: 0.8rem;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.rf-map .leaflet-popup-content a {
|
|
107
|
+
color: var(--rf-color-primary);
|
|
108
|
+
text-decoration: none;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.rf-map .leaflet-popup-content a:hover {
|
|
112
|
+
text-decoration: underline;
|
|
113
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* Palette — color swatch grid */
|
|
2
|
+
.rf-palette {
|
|
3
|
+
margin: 1.5rem 0;
|
|
4
|
+
}
|
|
5
|
+
.rf-palette__title {
|
|
6
|
+
font-size: 1.125rem;
|
|
7
|
+
font-weight: 600;
|
|
8
|
+
margin-bottom: 1rem;
|
|
9
|
+
}
|
|
10
|
+
.rf-palette__group {
|
|
11
|
+
margin-bottom: 1.5rem;
|
|
12
|
+
}
|
|
13
|
+
.rf-palette__group:last-child {
|
|
14
|
+
margin-bottom: 0;
|
|
15
|
+
}
|
|
16
|
+
.rf-palette__group-title {
|
|
17
|
+
font-size: 0.8rem;
|
|
18
|
+
font-weight: 600;
|
|
19
|
+
text-transform: uppercase;
|
|
20
|
+
letter-spacing: 0.05em;
|
|
21
|
+
color: var(--rf-color-text-muted, #6b7280);
|
|
22
|
+
margin-bottom: 0.75rem;
|
|
23
|
+
}
|
|
24
|
+
.rf-palette__grid {
|
|
25
|
+
display: grid;
|
|
26
|
+
grid-template-columns: repeat(var(--rf-palette-cols, 4), 1fr);
|
|
27
|
+
gap: 0.75rem;
|
|
28
|
+
}
|
|
29
|
+
.rf-palette__swatch {
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
gap: 0.375rem;
|
|
33
|
+
}
|
|
34
|
+
.rf-palette__swatch-color {
|
|
35
|
+
height: 5rem;
|
|
36
|
+
border-radius: var(--rf-radius-md, 8px);
|
|
37
|
+
border: 1px solid rgba(0, 0, 0, 0.08);
|
|
38
|
+
}
|
|
39
|
+
.rf-palette__swatch-name {
|
|
40
|
+
font-weight: 500;
|
|
41
|
+
font-size: 0.875rem;
|
|
42
|
+
}
|
|
43
|
+
.rf-palette__swatch-value {
|
|
44
|
+
font-family: var(--rf-font-mono, monospace);
|
|
45
|
+
font-size: 0.75rem;
|
|
46
|
+
color: var(--rf-color-text-muted, #6b7280);
|
|
47
|
+
}
|
|
48
|
+
.rf-palette__swatch-contrast {
|
|
49
|
+
font-family: var(--rf-font-mono, monospace);
|
|
50
|
+
font-size: 0.7rem;
|
|
51
|
+
color: var(--rf-color-text-muted, #6b7280);
|
|
52
|
+
}
|
|
53
|
+
.rf-palette__swatch-a11y {
|
|
54
|
+
display: flex;
|
|
55
|
+
gap: 0.5rem;
|
|
56
|
+
font-size: 0.7rem;
|
|
57
|
+
font-weight: 500;
|
|
58
|
+
}
|
|
59
|
+
.rf-palette__swatch-a11y--pass {
|
|
60
|
+
color: var(--rf-color-success, #10b981);
|
|
61
|
+
}
|
|
62
|
+
.rf-palette__swatch-a11y--fail {
|
|
63
|
+
color: var(--rf-color-danger, #ef4444);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Neutral scale — horizontal gradient strip */
|
|
67
|
+
.rf-palette__scale {
|
|
68
|
+
display: flex;
|
|
69
|
+
border-radius: var(--rf-radius-md, 8px);
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
margin-bottom: 0.5rem;
|
|
72
|
+
}
|
|
73
|
+
.rf-palette__scale-stop {
|
|
74
|
+
flex: 1;
|
|
75
|
+
padding: 1.25rem 0.5rem 0.5rem;
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: flex-end;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
min-height: 4rem;
|
|
80
|
+
font-size: 0.625rem;
|
|
81
|
+
font-family: var(--rf-font-mono, monospace);
|
|
82
|
+
}
|
|
83
|
+
.rf-palette__scale + .rf-palette__swatch-name {
|
|
84
|
+
margin-top: 0.25rem;
|
|
85
|
+
font-size: 0.8rem;
|
|
86
|
+
}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/* Preview — Component showcase with theme toggle and width control */
|
|
2
|
+
.rf-preview {
|
|
3
|
+
margin: 2rem 0;
|
|
4
|
+
border: 1px solid var(--rf-color-border);
|
|
5
|
+
border-radius: var(--rf-radius-lg);
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/* Width variants */
|
|
10
|
+
.rf-preview[data-width="medium"] {
|
|
11
|
+
width: calc(100% + 4rem);
|
|
12
|
+
margin-left: -2rem;
|
|
13
|
+
}
|
|
14
|
+
@container (min-width: 1008px) {
|
|
15
|
+
.rf-preview[data-width="wide"] {
|
|
16
|
+
width: calc(100% + 8rem);
|
|
17
|
+
margin-left: -4rem;
|
|
18
|
+
max-width: 76rem;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
.rf-preview[data-width="full"] {
|
|
22
|
+
width: 100vw;
|
|
23
|
+
margin-left: calc(-50vw + 50%);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Toolbar */
|
|
27
|
+
.rf-preview__toolbar {
|
|
28
|
+
display: flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
justify-content: space-between;
|
|
31
|
+
padding: 0.5rem 1rem;
|
|
32
|
+
background: var(--rf-color-surface);
|
|
33
|
+
border-bottom: 1px solid var(--rf-color-border);
|
|
34
|
+
min-height: 2.5rem;
|
|
35
|
+
}
|
|
36
|
+
.rf-preview__title {
|
|
37
|
+
font-size: 0.75rem;
|
|
38
|
+
font-weight: 600;
|
|
39
|
+
color: var(--rf-color-muted);
|
|
40
|
+
text-transform: uppercase;
|
|
41
|
+
letter-spacing: 0.05em;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Controls container (view toggle + theme toggle) */
|
|
45
|
+
.rf-preview__controls {
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
gap: 0.5rem;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* View toggle pill (code/preview) */
|
|
52
|
+
.rf-preview__view-toggle {
|
|
53
|
+
display: flex;
|
|
54
|
+
gap: 0.125rem;
|
|
55
|
+
background: var(--rf-color-surface-active);
|
|
56
|
+
border-radius: var(--rf-radius-full);
|
|
57
|
+
padding: 0.125rem;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* Theme toggle pill */
|
|
61
|
+
.rf-preview__toggle {
|
|
62
|
+
display: flex;
|
|
63
|
+
gap: 0.125rem;
|
|
64
|
+
background: var(--rf-color-surface-active);
|
|
65
|
+
border-radius: var(--rf-radius-full);
|
|
66
|
+
padding: 0.125rem;
|
|
67
|
+
}
|
|
68
|
+
.rf-preview__toggle-btn {
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
width: 1.625rem;
|
|
73
|
+
height: 1.625rem;
|
|
74
|
+
border: none;
|
|
75
|
+
border-radius: var(--rf-radius-full);
|
|
76
|
+
background: transparent;
|
|
77
|
+
color: var(--rf-color-muted);
|
|
78
|
+
cursor: pointer;
|
|
79
|
+
transition: background 150ms ease, color 150ms ease;
|
|
80
|
+
padding: 0;
|
|
81
|
+
}
|
|
82
|
+
.rf-preview__toggle-btn:hover {
|
|
83
|
+
color: var(--rf-color-text);
|
|
84
|
+
}
|
|
85
|
+
.rf-preview__toggle-btn--active {
|
|
86
|
+
background: var(--rf-color-bg);
|
|
87
|
+
color: var(--rf-color-text);
|
|
88
|
+
box-shadow: var(--rf-shadow-xs);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* Canvas */
|
|
92
|
+
.rf-preview__canvas {
|
|
93
|
+
padding: 2rem 2.5rem;
|
|
94
|
+
background: var(--rf-color-bg);
|
|
95
|
+
}
|
|
96
|
+
.rf-preview__canvas > *:first-child {
|
|
97
|
+
margin-top: 0;
|
|
98
|
+
}
|
|
99
|
+
.rf-preview__canvas > *:last-child {
|
|
100
|
+
margin-bottom: 0;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Viewport simulation toggle pill */
|
|
104
|
+
.rf-preview__viewport-toggle {
|
|
105
|
+
display: flex;
|
|
106
|
+
gap: 0.125rem;
|
|
107
|
+
background: var(--rf-color-surface-active);
|
|
108
|
+
border-radius: var(--rf-radius-full);
|
|
109
|
+
padding: 0.125rem;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* Viewport simulation frame */
|
|
113
|
+
.rf-preview__viewport-frame {
|
|
114
|
+
position: relative;
|
|
115
|
+
overflow: hidden;
|
|
116
|
+
transition: max-width 300ms ease;
|
|
117
|
+
}
|
|
118
|
+
.rf-preview__viewport-frame--constrained {
|
|
119
|
+
margin: 0 auto;
|
|
120
|
+
border: 1px dashed var(--rf-color-border);
|
|
121
|
+
border-radius: var(--rf-radius-sm);
|
|
122
|
+
}
|
|
123
|
+
.rf-preview__viewport-label {
|
|
124
|
+
position: absolute;
|
|
125
|
+
top: 0.25rem;
|
|
126
|
+
right: 0.5rem;
|
|
127
|
+
font-size: 0.625rem;
|
|
128
|
+
color: var(--rf-color-muted);
|
|
129
|
+
font-variant-numeric: tabular-nums;
|
|
130
|
+
pointer-events: none;
|
|
131
|
+
z-index: 1;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* Source code view */
|
|
135
|
+
.rf-preview__source {
|
|
136
|
+
overflow: auto;
|
|
137
|
+
}
|
|
138
|
+
.rf-preview__source pre {
|
|
139
|
+
margin: 0;
|
|
140
|
+
border-radius: 0;
|
|
141
|
+
}
|
|
142
|
+
.rf-preview__source .rf-codeblock {
|
|
143
|
+
border-radius: 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Source tabs (data-source panels) */
|
|
147
|
+
.rf-preview__source-tabs {
|
|
148
|
+
display: flex;
|
|
149
|
+
gap: 0;
|
|
150
|
+
background: var(--rf-color-surface);
|
|
151
|
+
border-bottom: 1px solid var(--rf-color-border);
|
|
152
|
+
}
|
|
153
|
+
.rf-preview__source-tab {
|
|
154
|
+
padding: 0.5rem 1rem;
|
|
155
|
+
border: none;
|
|
156
|
+
background: transparent;
|
|
157
|
+
color: var(--rf-color-muted);
|
|
158
|
+
font-size: 0.75rem;
|
|
159
|
+
font-weight: 500;
|
|
160
|
+
cursor: pointer;
|
|
161
|
+
border-bottom: 2px solid transparent;
|
|
162
|
+
transition: color 150ms ease, border-color 150ms ease;
|
|
163
|
+
}
|
|
164
|
+
.rf-preview__source-tab:hover {
|
|
165
|
+
color: var(--rf-color-text);
|
|
166
|
+
}
|
|
167
|
+
.rf-preview__source-tab--active {
|
|
168
|
+
color: var(--rf-color-text);
|
|
169
|
+
border-bottom-color: var(--rf-color-primary);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/* Small containers: edge-to-edge bleed */
|
|
173
|
+
@container (max-width: 1008px) {
|
|
174
|
+
.rf-preview {
|
|
175
|
+
margin-left: calc(-1 * var(--rf-content-padding, 1.5rem));
|
|
176
|
+
margin-right: calc(-1 * var(--rf-content-padding, 1.5rem));
|
|
177
|
+
border-radius: 0;
|
|
178
|
+
border-left: none;
|
|
179
|
+
border-right: none;
|
|
180
|
+
}
|
|
181
|
+
.rf-preview__toolbar {
|
|
182
|
+
padding: 0.5rem calc(var(--rf-content-padding, 1.5rem) + 1rem) 0.5rem var(--rf-content-padding, 1.5rem);
|
|
183
|
+
}
|
|
184
|
+
.rf-preview__canvas {
|
|
185
|
+
padding: 1.5rem var(--rf-content-padding, 1.5rem);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* Sandbox — Isolated HTML/CSS/JS rendering via iframe */
|
|
2
|
+
.rf-sandbox {
|
|
3
|
+
margin: 1.5rem 0;
|
|
4
|
+
border-radius: var(--rf-radius-md);
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.rf-sandbox iframe {
|
|
9
|
+
display: block;
|
|
10
|
+
width: 100%;
|
|
11
|
+
border: none;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* Static fallback (pre/code shown before hydration) */
|
|
15
|
+
.rf-sandbox pre {
|
|
16
|
+
margin: 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* When inside preview, remove sandbox margin */
|
|
20
|
+
.rf-preview .rf-sandbox {
|
|
21
|
+
margin: 0;
|
|
22
|
+
border-radius: 0;
|
|
23
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* Spacing — spacing scale, radii, and shadow display */
|
|
2
|
+
.rf-spacing {
|
|
3
|
+
margin: 1.5rem 0;
|
|
4
|
+
}
|
|
5
|
+
.rf-spacing__title {
|
|
6
|
+
font-size: 1.125rem;
|
|
7
|
+
font-weight: 600;
|
|
8
|
+
margin-bottom: 1rem;
|
|
9
|
+
}
|
|
10
|
+
.rf-spacing__section {
|
|
11
|
+
margin-bottom: 2rem;
|
|
12
|
+
}
|
|
13
|
+
.rf-spacing__section:last-child {
|
|
14
|
+
margin-bottom: 0;
|
|
15
|
+
}
|
|
16
|
+
.rf-spacing__section-title {
|
|
17
|
+
font-size: 0.8rem;
|
|
18
|
+
font-weight: 600;
|
|
19
|
+
text-transform: uppercase;
|
|
20
|
+
letter-spacing: 0.05em;
|
|
21
|
+
color: var(--rf-color-text-muted, #6b7280);
|
|
22
|
+
margin-bottom: 0.75rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Spacing scale — proportional bars */
|
|
26
|
+
.rf-spacing__scale {
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
gap: 0.375rem;
|
|
30
|
+
}
|
|
31
|
+
.rf-spacing__scale-item {
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
gap: 0.75rem;
|
|
35
|
+
}
|
|
36
|
+
.rf-spacing__scale-bar {
|
|
37
|
+
height: 1.25rem;
|
|
38
|
+
background: var(--rf-color-primary, #0ea5e9);
|
|
39
|
+
border-radius: var(--rf-radius-sm, 4px);
|
|
40
|
+
opacity: 0.8;
|
|
41
|
+
min-width: 4px;
|
|
42
|
+
}
|
|
43
|
+
.rf-spacing__scale-label {
|
|
44
|
+
font-size: 0.75rem;
|
|
45
|
+
font-family: var(--rf-font-mono, monospace);
|
|
46
|
+
color: var(--rf-color-text, #1a1a2e);
|
|
47
|
+
white-space: nowrap;
|
|
48
|
+
flex-shrink: 0;
|
|
49
|
+
}
|
|
50
|
+
.rf-spacing__scale-multiplier {
|
|
51
|
+
color: var(--rf-color-text-muted, #6b7280);
|
|
52
|
+
margin-left: 0.25rem;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Radius — rounded corner samples */
|
|
56
|
+
.rf-spacing__radii {
|
|
57
|
+
display: flex;
|
|
58
|
+
gap: 1.25rem;
|
|
59
|
+
flex-wrap: wrap;
|
|
60
|
+
align-items: flex-end;
|
|
61
|
+
}
|
|
62
|
+
.rf-spacing__radius-item {
|
|
63
|
+
display: flex;
|
|
64
|
+
flex-direction: column;
|
|
65
|
+
align-items: center;
|
|
66
|
+
gap: 0.375rem;
|
|
67
|
+
}
|
|
68
|
+
.rf-spacing__radius-sample {
|
|
69
|
+
width: 3.5rem;
|
|
70
|
+
height: 3.5rem;
|
|
71
|
+
border: 2px solid var(--rf-color-border, #e5e7eb);
|
|
72
|
+
background: var(--rf-color-surface-raised, #f9fafb);
|
|
73
|
+
}
|
|
74
|
+
.rf-spacing__radius-label {
|
|
75
|
+
font-weight: 500;
|
|
76
|
+
font-size: 0.8rem;
|
|
77
|
+
}
|
|
78
|
+
.rf-spacing__radius-value {
|
|
79
|
+
font-size: 0.7rem;
|
|
80
|
+
font-family: var(--rf-font-mono, monospace);
|
|
81
|
+
color: var(--rf-color-text-muted, #6b7280);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* Shadows — sample cards */
|
|
85
|
+
.rf-spacing__shadows {
|
|
86
|
+
display: flex;
|
|
87
|
+
gap: 1.5rem;
|
|
88
|
+
flex-wrap: wrap;
|
|
89
|
+
}
|
|
90
|
+
.rf-spacing__shadow-item {
|
|
91
|
+
display: flex;
|
|
92
|
+
flex-direction: column;
|
|
93
|
+
align-items: center;
|
|
94
|
+
gap: 0.5rem;
|
|
95
|
+
}
|
|
96
|
+
.rf-spacing__shadow-sample {
|
|
97
|
+
width: 5rem;
|
|
98
|
+
height: 3.5rem;
|
|
99
|
+
background: var(--rf-color-surface, #fff);
|
|
100
|
+
border-radius: var(--rf-radius-md, 8px);
|
|
101
|
+
}
|
|
102
|
+
.rf-spacing__shadow-label {
|
|
103
|
+
font-weight: 500;
|
|
104
|
+
font-size: 0.8rem;
|
|
105
|
+
}
|
package/styles/runes/steps.css
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/* Steps */
|
|
2
2
|
.rf-steps {
|
|
3
3
|
counter-reset: step;
|
|
4
|
+
margin: 1.5rem 0;
|
|
5
|
+
}
|
|
6
|
+
.rf-steps ol {
|
|
4
7
|
list-style: none;
|
|
5
8
|
padding-left: 0;
|
|
6
|
-
margin:
|
|
9
|
+
margin: 0;
|
|
7
10
|
}
|
|
8
11
|
.rf-step__main {
|
|
9
12
|
display: contents;
|
|
@@ -53,6 +56,9 @@
|
|
|
53
56
|
grid-template-columns: 1fr 1fr;
|
|
54
57
|
gap: 2rem;
|
|
55
58
|
}
|
|
59
|
+
.rf-step--mirror .rf-step__showcase {
|
|
60
|
+
order: -1;
|
|
61
|
+
}
|
|
56
62
|
.rf-step__showcase {
|
|
57
63
|
border-radius: var(--rf-radius-md);
|
|
58
64
|
overflow: hidden;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* Swatch — inline color chip */
|
|
2
|
+
.rf-swatch {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 0.375rem;
|
|
6
|
+
vertical-align: middle;
|
|
7
|
+
border: 1px solid rgba(0, 0, 0, 0.12);
|
|
8
|
+
border-radius: 9999px;
|
|
9
|
+
padding: 0.125em 0.625em 0.125em 0.375em;
|
|
10
|
+
margin: 0 0.15em;
|
|
11
|
+
}
|
|
12
|
+
.rf-swatch__chip {
|
|
13
|
+
display: inline-block;
|
|
14
|
+
width: 0.875em;
|
|
15
|
+
height: 0.875em;
|
|
16
|
+
border-radius: 50%;
|
|
17
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
18
|
+
flex-shrink: 0;
|
|
19
|
+
}
|
|
20
|
+
.rf-swatch__label {
|
|
21
|
+
font-weight: 500;
|
|
22
|
+
}
|
|
23
|
+
.rf-swatch__value {
|
|
24
|
+
color: var(--rf-color-text-muted, #6b7280);
|
|
25
|
+
font-size: 0.75em;
|
|
26
|
+
font-family: var(--rf-font-mono, monospace);
|
|
27
|
+
vertical-align: middle;
|
|
28
|
+
}
|