@motion-proto/live-tokens 0.61.0 → 0.62.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/.claude/skills/live-tokens-build-page/SKILL.md +1 -1
- package/.claude/skills/live-tokens-pair-fonts/SKILL.md +1 -1
- package/CHANGELOG.md +73 -0
- package/dist-plugin/{chunk-OIOXU7FR.js → chunk-OPYOK2CA.js} +45 -25
- package/dist-plugin/index.cjs +45 -25
- package/dist-plugin/index.js +1 -1
- package/dist-plugin/tokensCssMigrations/index.cjs +45 -25
- package/dist-plugin/tokensCssMigrations/index.js +1 -1
- package/package.json +1 -1
- package/src/app/site.css +16 -0
- package/src/editor/component-editor/CardEditor.svelte +7 -1
- package/src/editor/component-editor/scaffolding/VariantGroup.svelte +25 -2
- package/src/editor/core/sketch/maskField.ts +70 -34
- package/src/editor/core/sketch/sketchLayer.ts +24 -3
- package/src/editor/core/sketch/sketchPresets.ts +10 -11
- package/src/editor/core/sketch/sketchStore.ts +89 -18
- package/src/editor/docs/content/sketch-mode.md +7 -2
- package/src/editor/docs/content.generated.ts +1 -1
- package/src/editor/overlay/LiveTokensRouter.svelte +8 -0
- package/src/editor/ui/sections/textStyles.ts +15 -1
- package/src/editor/ui/sketch/SketchTab.svelte +33 -81
- package/src/live-tokens/data/colors-and-type/midnight-study.json +40 -30
- package/src/live-tokens/data/themes/autumn.json +3 -3
- package/src/live-tokens/data/themes/halloween.json +3 -3
- package/src/live-tokens/data/themes/midnight-study.json +61 -49
- package/src/live-tokens/data/themes/ocean.json +3 -3
- package/src/live-tokens/data/themes/royal-velvet.json +3 -3
- package/src/live-tokens/data/themes/sketchy.json +3 -3
- package/src/live-tokens/data/themes/spring-meadow.json +3 -3
- package/src/live-tokens/data/themes/sunset.json +3 -3
- package/src/system/components/Card.svelte +27 -9
- package/src/system/components/ImageLightbox.svelte +5 -2
- package/src/system/components/SectionDivider.svelte +3 -3
- package/src/system/components/SegmentedControl.svelte +11 -9
- package/src/system/styles/tokens.css +13 -5
- package/template/src/pages/Home.svelte +1 -11
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import UISegmentedControl from '../UISegmentedControl.svelte';
|
|
5
5
|
import SketchDial from './SketchDial.svelte';
|
|
6
6
|
import SketchRange from './SketchRange.svelte';
|
|
7
|
-
import { buildMaskUri
|
|
7
|
+
import { buildMaskUri } from '../../core/sketch/maskField';
|
|
8
8
|
import SketchPreview from './SketchPreview.svelte';
|
|
9
9
|
import { onMount } from 'svelte';
|
|
10
10
|
import UIPillButton from '../UIPillButton.svelte';
|
|
@@ -191,7 +191,12 @@
|
|
|
191
191
|
ceiling is a few blobs across a card, which is where it still reads as
|
|
192
192
|
uneven ink. */
|
|
193
193
|
const SIZE = { min: 20, max: 250 };
|
|
194
|
-
const BLUR_MAX =
|
|
194
|
+
const BLUR_MAX = 64;
|
|
195
|
+
/** Squared response. A blur only reads as a different blur while it is small,
|
|
196
|
+
so a linear walk to 64px would spend a tenth of the dial on everything
|
|
197
|
+
legible and the rest sliding between shades of gone. */
|
|
198
|
+
const blurPos = (px: number) => Math.round(Math.sqrt(px / BLUR_MAX) * 100);
|
|
199
|
+
const blurVal = (t: number) => Math.round(BLUR_MAX * (t / 100) ** 2 * 4) / 4;
|
|
195
200
|
|
|
196
201
|
/** Tones the field is flattened into, in the order the dial walks them:
|
|
197
202
|
smooth, then coarsening all the way down to two. The stored value is the
|
|
@@ -213,18 +218,12 @@
|
|
|
213
218
|
let outputMin = $derived(Math.round(s.maskOutputMin * 100));
|
|
214
219
|
let outputMax = $derived(Math.round(s.maskOutputMax * 100));
|
|
215
220
|
let stepPos = $derived(Math.max(0, STEP_TONES.indexOf(s.maskPosterize)));
|
|
221
|
+
let blurStep = $derived(blurPos(s.maskSoftness));
|
|
216
222
|
const setOutput = (min: number, max: number) =>
|
|
217
223
|
updateSketchSettings({ maskOutputMin: min / 100, maskOutputMax: max / 100 });
|
|
218
224
|
|
|
219
|
-
// The
|
|
220
|
-
// sample card, so blob size here is blob size on the components and the
|
|
221
|
-
// card's shadow is always on show: coverage that ate it would be a bug you
|
|
222
|
-
// saw at once.
|
|
225
|
+
// The finished field, the last stage and the one the components get.
|
|
223
226
|
let maskPreview = $derived(buildMaskUri(s));
|
|
224
|
-
// The field itself after each stage, white for ink.
|
|
225
|
-
let stageTiles = $derived(
|
|
226
|
-
(['noise', 'output', 'blur'] as const).map((stage) => ({ stage, uri: buildMaskUri(s, 9, stage) })),
|
|
227
|
-
);
|
|
228
227
|
</script>
|
|
229
228
|
|
|
230
229
|
<div class="sketch-tab">
|
|
@@ -538,21 +537,7 @@
|
|
|
538
537
|
</div>
|
|
539
538
|
|
|
540
539
|
<figure class="scope" class:muted={!s.maskOn}>
|
|
541
|
-
<div class="
|
|
542
|
-
<div
|
|
543
|
-
class="ink"
|
|
544
|
-
style:mask-image={maskPreview}
|
|
545
|
-
style:mask-size="{MASK_TILE}px {MASK_TILE}px"
|
|
546
|
-
></div>
|
|
547
|
-
</div>
|
|
548
|
-
<div class="stages">
|
|
549
|
-
{#each stageTiles as { stage, uri } (stage)}
|
|
550
|
-
<figure>
|
|
551
|
-
<div class="tile" style:mask-image={uri} style:mask-size="{MASK_TILE}px {MASK_TILE}px"></div>
|
|
552
|
-
<figcaption>{stage}</figcaption>
|
|
553
|
-
</figure>
|
|
554
|
-
{/each}
|
|
555
|
-
</div>
|
|
540
|
+
<div class="field" style:mask-image={maskPreview}></div>
|
|
556
541
|
</figure>
|
|
557
542
|
|
|
558
543
|
<h5>Noise</h5>
|
|
@@ -580,10 +565,13 @@
|
|
|
580
565
|
onchange={(v) => updateSketchSettings({ maskOctaves: v })}
|
|
581
566
|
/>
|
|
582
567
|
|
|
583
|
-
<h5>
|
|
568
|
+
<h5>Levels</h5>
|
|
584
569
|
<p class="group-note">
|
|
585
|
-
|
|
586
|
-
|
|
570
|
+
The field runs black to white before these apply. Output states the
|
|
571
|
+
range of ink the mask paints between, 0 bare to 100 whole, and the
|
|
572
|
+
whole field is squeezed into it: raise the low handle and the
|
|
573
|
+
darkest patch rises with it, drop the high handle and the densest
|
|
574
|
+
falls. Nothing is ever cut off at a handle.
|
|
587
575
|
</p>
|
|
588
576
|
<SketchRange
|
|
589
577
|
label="Output" low={outputMin} high={outputMax} min={0} max={100} step={1}
|
|
@@ -602,10 +590,11 @@
|
|
|
602
590
|
|
|
603
591
|
<h5>Blur</h5>
|
|
604
592
|
<SketchDial
|
|
605
|
-
label="Blur" value={
|
|
593
|
+
label="Blur" value={blurStep} min={0} max={100} step={1}
|
|
606
594
|
readout={px(s.maskSoftness)}
|
|
607
|
-
|
|
608
|
-
|
|
595
|
+
ends={['hard', 'clouded']}
|
|
596
|
+
hint="Softens the blotch edges. Few tones with a little blur give a hard blotch with a soft rim; wound right up the field goes to weather."
|
|
597
|
+
onchange={(v) => updateSketchSettings({ maskSoftness: blurVal(v) })}
|
|
609
598
|
/>
|
|
610
599
|
</div>
|
|
611
600
|
</div>
|
|
@@ -1196,69 +1185,32 @@
|
|
|
1196
1185
|
pointer-events: none;
|
|
1197
1186
|
}
|
|
1198
1187
|
|
|
1188
|
+
/* The ground the field is cut out of, so a masked-away pixel reads as black
|
|
1189
|
+
rather than as the panel. */
|
|
1199
1190
|
.scope {
|
|
1200
1191
|
margin: 0;
|
|
1201
|
-
display: flex;
|
|
1202
|
-
flex-direction: column;
|
|
1203
|
-
gap: var(--ui-space-4);
|
|
1204
|
-
transition: opacity var(--ui-transition-base);
|
|
1205
|
-
}
|
|
1206
|
-
|
|
1207
|
-
.scope.muted {
|
|
1208
|
-
opacity: 0.4;
|
|
1209
|
-
}
|
|
1210
|
-
|
|
1211
|
-
/* The shadow sits on the card and the mask on the fill inside it: the same
|
|
1212
|
-
split the fill layer makes, so what this shows is what the page does. */
|
|
1213
|
-
.sample {
|
|
1214
|
-
height: 6rem;
|
|
1215
|
-
padding: var(--ui-space-16) var(--ui-space-24);
|
|
1216
1192
|
border: 1px solid var(--ui-border-low);
|
|
1217
1193
|
border-radius: var(--ui-radius-sm);
|
|
1218
1194
|
background: var(--ui-surface-lowest);
|
|
1219
1195
|
overflow: hidden;
|
|
1196
|
+
transition: opacity var(--ui-transition-base);
|
|
1220
1197
|
}
|
|
1221
1198
|
|
|
1222
|
-
.
|
|
1223
|
-
|
|
1224
|
-
}
|
|
1225
|
-
|
|
1226
|
-
.stages {
|
|
1227
|
-
display: grid;
|
|
1228
|
-
grid-template-columns: repeat(3, 1fr);
|
|
1229
|
-
gap: var(--ui-space-8);
|
|
1230
|
-
}
|
|
1231
|
-
|
|
1232
|
-
.stages figure {
|
|
1233
|
-
margin: 0;
|
|
1199
|
+
.scope.muted {
|
|
1200
|
+
opacity: 0.4;
|
|
1234
1201
|
}
|
|
1235
1202
|
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1203
|
+
/* One readout of the finished field: the whole tile, repeated across the
|
|
1204
|
+
strip, white on that ground so 0 reads as black and 100 as white. Neither
|
|
1205
|
+
was readable before. The field was painted at page-px size, which showed a
|
|
1206
|
+
crop off the top of the tile that never reached the bright end, over an ink
|
|
1207
|
+
colour that could not have painted it if it had. */
|
|
1208
|
+
.field {
|
|
1209
|
+
height: 7rem;
|
|
1239
1210
|
background: var(--ui-text-primary);
|
|
1240
1211
|
mask-mode: luminance;
|
|
1241
1212
|
mask-repeat: repeat;
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
.stages figcaption {
|
|
1245
|
-
margin-top: var(--ui-space-2);
|
|
1246
|
-
font-size: var(--ui-font-size-xs);
|
|
1247
|
-
text-align: center;
|
|
1248
|
-
text-transform: uppercase;
|
|
1249
|
-
letter-spacing: 0.06em;
|
|
1250
|
-
color: var(--ui-text-tertiary);
|
|
1251
|
-
}
|
|
1252
|
-
|
|
1253
|
-
.ink {
|
|
1254
|
-
height: 100%;
|
|
1255
|
-
border-radius: var(--ui-radius-md);
|
|
1256
|
-
/* An ink colour, not a surface one: the point of the swatch is the
|
|
1257
|
-
blotches, and the surface rungs sit within a shade or two of the ground
|
|
1258
|
-
under them, which showed the finished field as a flat dark rectangle. */
|
|
1259
|
-
background: var(--ui-text-muted);
|
|
1260
|
-
mask-mode: luminance;
|
|
1261
|
-
mask-repeat: repeat;
|
|
1213
|
+
mask-size: contain;
|
|
1262
1214
|
}
|
|
1263
1215
|
|
|
1264
1216
|
</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "Midnight Study",
|
|
3
|
-
"createdAt": "2026-08-
|
|
4
|
-
"updatedAt": "2026-08-
|
|
3
|
+
"createdAt": "2026-08-27T17:01:37.984Z",
|
|
4
|
+
"updatedAt": "2026-08-27T17:01:37.984Z",
|
|
5
5
|
"editorConfigs": {
|
|
6
6
|
"Brand": {
|
|
7
7
|
"baseColor": {
|
|
@@ -2262,10 +2262,6 @@
|
|
|
2262
2262
|
}
|
|
2263
2263
|
},
|
|
2264
2264
|
"cssVariables": {
|
|
2265
|
-
"--gradient-1": "linear-gradient(90deg, var(--color-brand-400) 0%, var(--color-brand-700) 100%)",
|
|
2266
|
-
"--gradient-2": "linear-gradient(135deg, var(--color-special-500) 0%, var(--color-brand-500) 100%)",
|
|
2267
|
-
"--gradient-3": "linear-gradient(90deg, var(--color-brand-500) 0%, var(--color-accent-500) 100%)",
|
|
2268
|
-
"--gradient-4": "linear-gradient(180deg, var(--color-canvas-600) 0%, var(--color-canvas-900) 100%)",
|
|
2269
2265
|
"--badge-trait-surface": "var(--surface-brand)",
|
|
2270
2266
|
"--badge-trait-text": "var(--text-brand)",
|
|
2271
2267
|
"--badge-trait-text-font-family": "var(--font-sans)",
|
|
@@ -2316,7 +2312,15 @@
|
|
|
2316
2312
|
"--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
|
|
2317
2313
|
"--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
|
|
2318
2314
|
"--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
|
|
2319
|
-
"--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
|
|
2315
|
+
"--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)",
|
|
2316
|
+
"--gradient-1": "linear-gradient(90deg, var(--color-brand-400) 0%, var(--color-brand-700) 100%)",
|
|
2317
|
+
"--gradient-1-stops": "var(--color-brand-400) 0%, var(--color-brand-700) 100%",
|
|
2318
|
+
"--gradient-2": "linear-gradient(135deg, var(--color-special-500) 0%, var(--color-brand-500) 100%)",
|
|
2319
|
+
"--gradient-2-stops": "var(--color-special-500) 0%, var(--color-brand-500) 100%",
|
|
2320
|
+
"--gradient-3": "linear-gradient(90deg, var(--color-brand-500) 0%, var(--color-accent-500) 100%)",
|
|
2321
|
+
"--gradient-3-stops": "var(--color-brand-500) 0%, var(--color-accent-500) 100%",
|
|
2322
|
+
"--gradient-4": "linear-gradient(180deg, color-mix(in srgb, var(--color-canvas-600) 49%, transparent) 0%, var(--color-canvas-850) 14.2%, var(--color-canvas-900) 83.8%)",
|
|
2323
|
+
"--gradient-4-stops": "color-mix(in srgb, var(--color-canvas-600) 49%, transparent) 0%, var(--color-canvas-850) 14.2%, var(--color-canvas-900) 83.8%"
|
|
2320
2324
|
},
|
|
2321
2325
|
"fontSources": [
|
|
2322
2326
|
{
|
|
@@ -2469,25 +2473,6 @@
|
|
|
2469
2473
|
]
|
|
2470
2474
|
}
|
|
2471
2475
|
],
|
|
2472
|
-
"harmonyAxes": [
|
|
2473
|
-
{
|
|
2474
|
-
"hue": 300,
|
|
2475
|
-
"family": "Brand"
|
|
2476
|
-
},
|
|
2477
|
-
{
|
|
2478
|
-
"hue": 340,
|
|
2479
|
-
"family": "Accent"
|
|
2480
|
-
},
|
|
2481
|
-
{
|
|
2482
|
-
"hue": 268,
|
|
2483
|
-
"family": "Canvas"
|
|
2484
|
-
},
|
|
2485
|
-
{
|
|
2486
|
-
"hue": 210,
|
|
2487
|
-
"family": null
|
|
2488
|
-
}
|
|
2489
|
-
],
|
|
2490
|
-
"schemaVersion": 3,
|
|
2491
2476
|
"gradients": [
|
|
2492
2477
|
{
|
|
2493
2478
|
"variable": "--gradient-1",
|
|
@@ -2541,13 +2526,38 @@
|
|
|
2541
2526
|
"stops": [
|
|
2542
2527
|
{
|
|
2543
2528
|
"position": 0,
|
|
2544
|
-
"color": "--color-canvas-600"
|
|
2529
|
+
"color": "--color-canvas-600",
|
|
2530
|
+
"opacity": 49
|
|
2545
2531
|
},
|
|
2546
2532
|
{
|
|
2547
|
-
"position":
|
|
2533
|
+
"position": 14.2,
|
|
2534
|
+
"color": "--color-canvas-850",
|
|
2535
|
+
"opacity": 100
|
|
2536
|
+
},
|
|
2537
|
+
{
|
|
2538
|
+
"position": 83.8,
|
|
2548
2539
|
"color": "--color-canvas-900"
|
|
2549
2540
|
}
|
|
2550
2541
|
]
|
|
2551
2542
|
}
|
|
2552
|
-
]
|
|
2553
|
-
|
|
2543
|
+
],
|
|
2544
|
+
"harmonyAxes": [
|
|
2545
|
+
{
|
|
2546
|
+
"hue": 300,
|
|
2547
|
+
"family": "Brand"
|
|
2548
|
+
},
|
|
2549
|
+
{
|
|
2550
|
+
"hue": 340,
|
|
2551
|
+
"family": "Accent"
|
|
2552
|
+
},
|
|
2553
|
+
{
|
|
2554
|
+
"hue": 268,
|
|
2555
|
+
"family": "Canvas"
|
|
2556
|
+
},
|
|
2557
|
+
{
|
|
2558
|
+
"hue": 210,
|
|
2559
|
+
"family": null
|
|
2560
|
+
}
|
|
2561
|
+
],
|
|
2562
|
+
"schemaVersion": 5
|
|
2563
|
+
}
|
|
@@ -3530,7 +3530,7 @@
|
|
|
3530
3530
|
"--sectiondivider-lg-description": "--text-alternate",
|
|
3531
3531
|
"--sectiondivider-lg-eyebrow": "--text-brand",
|
|
3532
3532
|
"--sectiondivider-lg-border": "--color-transparent",
|
|
3533
|
-
"--sectiondivider-lg-title-outline-color": "
|
|
3533
|
+
"--sectiondivider-lg-title-outline-color": "transparent",
|
|
3534
3534
|
"--sectiondivider-lg-hairline-color": "--border-brand-medium",
|
|
3535
3535
|
"--sectiondivider-md-title-font-family": "--font-display",
|
|
3536
3536
|
"--sectiondivider-md-title-font-weight": "--font-weight-bold",
|
|
@@ -3559,7 +3559,7 @@
|
|
|
3559
3559
|
"--sectiondivider-md-description": "--text-secondary",
|
|
3560
3560
|
"--sectiondivider-md-eyebrow": "--text-tertiary",
|
|
3561
3561
|
"--sectiondivider-md-border": "--color-transparent",
|
|
3562
|
-
"--sectiondivider-md-title-outline-color": "
|
|
3562
|
+
"--sectiondivider-md-title-outline-color": "transparent",
|
|
3563
3563
|
"--sectiondivider-md-hairline-color": "--border-brand-medium",
|
|
3564
3564
|
"--sectiondivider-sm-title-font-family": "--font-display",
|
|
3565
3565
|
"--sectiondivider-sm-title-font-weight": "--font-weight-medium",
|
|
@@ -3588,7 +3588,7 @@
|
|
|
3588
3588
|
"--sectiondivider-sm-description": "--text-secondary",
|
|
3589
3589
|
"--sectiondivider-sm-eyebrow": "--text-tertiary",
|
|
3590
3590
|
"--sectiondivider-sm-border": "--color-transparent",
|
|
3591
|
-
"--sectiondivider-sm-title-outline-color": "
|
|
3591
|
+
"--sectiondivider-sm-title-outline-color": "transparent",
|
|
3592
3592
|
"--sectiondivider-sm-hairline-color": "color-mix(in srgb, var(--border-brand-medium) 50%, transparent)"
|
|
3593
3593
|
}
|
|
3594
3594
|
},
|
|
@@ -3569,7 +3569,7 @@
|
|
|
3569
3569
|
"--sectiondivider-lg-description": "--text-alternate",
|
|
3570
3570
|
"--sectiondivider-lg-eyebrow": "--text-brand",
|
|
3571
3571
|
"--sectiondivider-lg-border": "--color-transparent",
|
|
3572
|
-
"--sectiondivider-lg-title-outline-color": "
|
|
3572
|
+
"--sectiondivider-lg-title-outline-color": "transparent",
|
|
3573
3573
|
"--sectiondivider-lg-hairline-color": "--border-brand-medium",
|
|
3574
3574
|
"--sectiondivider-md-title-font-family": "--font-display",
|
|
3575
3575
|
"--sectiondivider-md-title-font-weight": "--font-weight-bold",
|
|
@@ -3598,7 +3598,7 @@
|
|
|
3598
3598
|
"--sectiondivider-md-description": "--text-secondary",
|
|
3599
3599
|
"--sectiondivider-md-eyebrow": "--text-tertiary",
|
|
3600
3600
|
"--sectiondivider-md-border": "--color-transparent",
|
|
3601
|
-
"--sectiondivider-md-title-outline-color": "
|
|
3601
|
+
"--sectiondivider-md-title-outline-color": "transparent",
|
|
3602
3602
|
"--sectiondivider-md-hairline-color": "--border-brand-medium",
|
|
3603
3603
|
"--sectiondivider-sm-title-font-family": "--font-display",
|
|
3604
3604
|
"--sectiondivider-sm-title-font-weight": "--font-weight-medium",
|
|
@@ -3627,7 +3627,7 @@
|
|
|
3627
3627
|
"--sectiondivider-sm-description": "--text-secondary",
|
|
3628
3628
|
"--sectiondivider-sm-eyebrow": "--text-tertiary",
|
|
3629
3629
|
"--sectiondivider-sm-border": "--color-transparent",
|
|
3630
|
-
"--sectiondivider-sm-title-outline-color": "
|
|
3630
|
+
"--sectiondivider-sm-title-outline-color": "transparent",
|
|
3631
3631
|
"--sectiondivider-sm-hairline-color": "color-mix(in srgb, var(--border-brand-medium) 50%, transparent)"
|
|
3632
3632
|
}
|
|
3633
3633
|
},
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "Midnight Study",
|
|
3
3
|
"createdAt": "2026-08-13T10:21:46.867Z",
|
|
4
|
-
"updatedAt": "2026-08-
|
|
4
|
+
"updatedAt": "2026-08-27T17:03:51.623Z",
|
|
5
5
|
"schemaVersion": 4,
|
|
6
6
|
"colorsAndType": {
|
|
7
7
|
"name": "Midnight Study",
|
|
8
|
-
"createdAt": "2026-08-
|
|
9
|
-
"updatedAt": "2026-08-
|
|
8
|
+
"createdAt": "2026-08-27T17:01:37.984Z",
|
|
9
|
+
"updatedAt": "2026-08-27T17:01:37.984Z",
|
|
10
10
|
"editorConfigs": {
|
|
11
11
|
"Brand": {
|
|
12
12
|
"baseColor": {
|
|
@@ -2267,10 +2267,6 @@
|
|
|
2267
2267
|
}
|
|
2268
2268
|
},
|
|
2269
2269
|
"cssVariables": {
|
|
2270
|
-
"--gradient-1": "linear-gradient(90deg, var(--color-brand-400) 0%, var(--color-brand-700) 100%)",
|
|
2271
|
-
"--gradient-2": "linear-gradient(135deg, var(--color-special-500) 0%, var(--color-brand-500) 100%)",
|
|
2272
|
-
"--gradient-3": "linear-gradient(90deg, var(--color-brand-500) 0%, var(--color-accent-500) 100%)",
|
|
2273
|
-
"--gradient-4": "linear-gradient(180deg, var(--color-canvas-600) 0%, var(--color-canvas-900) 100%)",
|
|
2274
2270
|
"--badge-trait-surface": "var(--surface-brand)",
|
|
2275
2271
|
"--badge-trait-text": "var(--text-brand)",
|
|
2276
2272
|
"--badge-trait-text-font-family": "var(--font-sans)",
|
|
@@ -2321,7 +2317,15 @@
|
|
|
2321
2317
|
"--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
|
|
2322
2318
|
"--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
|
|
2323
2319
|
"--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
|
|
2324
|
-
"--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
|
|
2320
|
+
"--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)",
|
|
2321
|
+
"--gradient-1": "linear-gradient(90deg, var(--color-brand-400) 0%, var(--color-brand-700) 100%)",
|
|
2322
|
+
"--gradient-1-stops": "var(--color-brand-400) 0%, var(--color-brand-700) 100%",
|
|
2323
|
+
"--gradient-2": "linear-gradient(135deg, var(--color-special-500) 0%, var(--color-brand-500) 100%)",
|
|
2324
|
+
"--gradient-2-stops": "var(--color-special-500) 0%, var(--color-brand-500) 100%",
|
|
2325
|
+
"--gradient-3": "linear-gradient(90deg, var(--color-brand-500) 0%, var(--color-accent-500) 100%)",
|
|
2326
|
+
"--gradient-3-stops": "var(--color-brand-500) 0%, var(--color-accent-500) 100%",
|
|
2327
|
+
"--gradient-4": "linear-gradient(180deg, color-mix(in srgb, var(--color-canvas-600) 49%, transparent) 0%, var(--color-canvas-850) 14.2%, var(--color-canvas-900) 83.8%)",
|
|
2328
|
+
"--gradient-4-stops": "color-mix(in srgb, var(--color-canvas-600) 49%, transparent) 0%, var(--color-canvas-850) 14.2%, var(--color-canvas-900) 83.8%"
|
|
2325
2329
|
},
|
|
2326
2330
|
"fontSources": [
|
|
2327
2331
|
{
|
|
@@ -2474,25 +2478,6 @@
|
|
|
2474
2478
|
]
|
|
2475
2479
|
}
|
|
2476
2480
|
],
|
|
2477
|
-
"harmonyAxes": [
|
|
2478
|
-
{
|
|
2479
|
-
"hue": 300,
|
|
2480
|
-
"family": "Brand"
|
|
2481
|
-
},
|
|
2482
|
-
{
|
|
2483
|
-
"hue": 340,
|
|
2484
|
-
"family": "Accent"
|
|
2485
|
-
},
|
|
2486
|
-
{
|
|
2487
|
-
"hue": 268,
|
|
2488
|
-
"family": "Canvas"
|
|
2489
|
-
},
|
|
2490
|
-
{
|
|
2491
|
-
"hue": 210,
|
|
2492
|
-
"family": null
|
|
2493
|
-
}
|
|
2494
|
-
],
|
|
2495
|
-
"schemaVersion": 3,
|
|
2496
2481
|
"gradients": [
|
|
2497
2482
|
{
|
|
2498
2483
|
"variable": "--gradient-1",
|
|
@@ -2546,15 +2531,40 @@
|
|
|
2546
2531
|
"stops": [
|
|
2547
2532
|
{
|
|
2548
2533
|
"position": 0,
|
|
2549
|
-
"color": "--color-canvas-600"
|
|
2534
|
+
"color": "--color-canvas-600",
|
|
2535
|
+
"opacity": 49
|
|
2550
2536
|
},
|
|
2551
2537
|
{
|
|
2552
|
-
"position":
|
|
2538
|
+
"position": 14.2,
|
|
2539
|
+
"color": "--color-canvas-850",
|
|
2540
|
+
"opacity": 100
|
|
2541
|
+
},
|
|
2542
|
+
{
|
|
2543
|
+
"position": 83.8,
|
|
2553
2544
|
"color": "--color-canvas-900"
|
|
2554
2545
|
}
|
|
2555
2546
|
]
|
|
2556
2547
|
}
|
|
2557
|
-
]
|
|
2548
|
+
],
|
|
2549
|
+
"harmonyAxes": [
|
|
2550
|
+
{
|
|
2551
|
+
"hue": 300,
|
|
2552
|
+
"family": "Brand"
|
|
2553
|
+
},
|
|
2554
|
+
{
|
|
2555
|
+
"hue": 340,
|
|
2556
|
+
"family": "Accent"
|
|
2557
|
+
},
|
|
2558
|
+
{
|
|
2559
|
+
"hue": 268,
|
|
2560
|
+
"family": "Canvas"
|
|
2561
|
+
},
|
|
2562
|
+
{
|
|
2563
|
+
"hue": 210,
|
|
2564
|
+
"family": null
|
|
2565
|
+
}
|
|
2566
|
+
],
|
|
2567
|
+
"schemaVersion": 5
|
|
2558
2568
|
},
|
|
2559
2569
|
"componentConfigs": {
|
|
2560
2570
|
"badge": {
|
|
@@ -2886,10 +2896,10 @@
|
|
|
2886
2896
|
"card": {
|
|
2887
2897
|
"name": "midnight-study",
|
|
2888
2898
|
"component": "card",
|
|
2889
|
-
"createdAt": "2026-
|
|
2890
|
-
"updatedAt": "2026-08-
|
|
2899
|
+
"createdAt": "2026-08-27T17:02:30.403Z",
|
|
2900
|
+
"updatedAt": "2026-08-27T17:02:30.403Z",
|
|
2891
2901
|
"aliases": {
|
|
2892
|
-
"--card-default-surface": "
|
|
2902
|
+
"--card-default-surface": "--gradient-4",
|
|
2893
2903
|
"--card-default-border": "--border-neutral",
|
|
2894
2904
|
"--card-default-border-width": "--border-width-1",
|
|
2895
2905
|
"--card-default-radius": "--radius-sm",
|
|
@@ -2899,14 +2909,14 @@
|
|
|
2899
2909
|
"--card-default-header-padding-bottom": "--space-8",
|
|
2900
2910
|
"--card-default-header-padding-left": "--space-12",
|
|
2901
2911
|
"--card-default-header-gap": "--space-6",
|
|
2902
|
-
"--card-default-body-padding": "--space-
|
|
2903
|
-
"--card-default-body-padding-top": "--space-
|
|
2904
|
-
"--card-default-body-padding-right": "--space-
|
|
2905
|
-
"--card-default-body-padding-bottom": "--space-
|
|
2906
|
-
"--card-default-body-padding-left": "--space-
|
|
2912
|
+
"--card-default-body-padding": "--space-16",
|
|
2913
|
+
"--card-default-body-padding-top": "--space-16",
|
|
2914
|
+
"--card-default-body-padding-right": "--space-20",
|
|
2915
|
+
"--card-default-body-padding-bottom": "--space-48",
|
|
2916
|
+
"--card-default-body-padding-left": "--space-20",
|
|
2907
2917
|
"--card-default-shadow": "--shadow-sm",
|
|
2908
2918
|
"--card-default-blur": "--blur-none",
|
|
2909
|
-
"--card-default-header-surface": "color-mix(in srgb, var(--
|
|
2919
|
+
"--card-default-header-surface": "color-mix(in srgb, var(--color-brand-700) 60%, transparent)",
|
|
2910
2920
|
"--card-default-title": "--text-primary",
|
|
2911
2921
|
"--card-default-title-font-family": "--font-sans",
|
|
2912
2922
|
"--card-default-title-font-size": "--font-size-2xl",
|
|
@@ -2922,7 +2932,8 @@
|
|
|
2922
2932
|
"--card-hover-shadow": "--shadow-md",
|
|
2923
2933
|
"--card-hover-border-active": "--card-default-border",
|
|
2924
2934
|
"--card-hover-shadow-active": "--card-default-shadow"
|
|
2925
|
-
}
|
|
2935
|
+
},
|
|
2936
|
+
"config": {}
|
|
2926
2937
|
},
|
|
2927
2938
|
"codesnippet": {
|
|
2928
2939
|
"name": "midnight-study",
|
|
@@ -3453,8 +3464,8 @@
|
|
|
3453
3464
|
"panel": {
|
|
3454
3465
|
"name": "midnight-study",
|
|
3455
3466
|
"component": "panel",
|
|
3456
|
-
"createdAt": "2026-
|
|
3457
|
-
"updatedAt": "2026-08-
|
|
3467
|
+
"createdAt": "2026-08-27T17:03:50.744Z",
|
|
3468
|
+
"updatedAt": "2026-08-27T17:03:50.744Z",
|
|
3458
3469
|
"aliases": {
|
|
3459
3470
|
"--panel-frame-border": "--border-neutral",
|
|
3460
3471
|
"--panel-frame-border-width": "--border-width-1",
|
|
@@ -3478,10 +3489,11 @@
|
|
|
3478
3489
|
]
|
|
3479
3490
|
}
|
|
3480
3491
|
},
|
|
3481
|
-
"--panel-stage-padding": "--space-
|
|
3482
|
-
"--panel-stage-inline-padding": "--space-
|
|
3483
|
-
"--panel-stage-gap": "--space-
|
|
3484
|
-
}
|
|
3492
|
+
"--panel-stage-padding": "--space-16",
|
|
3493
|
+
"--panel-stage-inline-padding": "--space-24",
|
|
3494
|
+
"--panel-stage-gap": "--space-16"
|
|
3495
|
+
},
|
|
3496
|
+
"config": {}
|
|
3485
3497
|
},
|
|
3486
3498
|
"progressbar": {
|
|
3487
3499
|
"name": "midnight-study",
|
|
@@ -3576,7 +3588,7 @@
|
|
|
3576
3588
|
"--sectiondivider-lg-description": "--text-alternate",
|
|
3577
3589
|
"--sectiondivider-lg-eyebrow": "--text-brand",
|
|
3578
3590
|
"--sectiondivider-lg-border": "--color-transparent",
|
|
3579
|
-
"--sectiondivider-lg-title-outline-color": "
|
|
3591
|
+
"--sectiondivider-lg-title-outline-color": "transparent",
|
|
3580
3592
|
"--sectiondivider-lg-hairline-color": "--border-brand-medium",
|
|
3581
3593
|
"--sectiondivider-md-title-font-family": "--font-display",
|
|
3582
3594
|
"--sectiondivider-md-title-font-weight": "--font-weight-bold",
|
|
@@ -3605,7 +3617,7 @@
|
|
|
3605
3617
|
"--sectiondivider-md-description": "--text-secondary",
|
|
3606
3618
|
"--sectiondivider-md-eyebrow": "--text-tertiary",
|
|
3607
3619
|
"--sectiondivider-md-border": "--color-transparent",
|
|
3608
|
-
"--sectiondivider-md-title-outline-color": "
|
|
3620
|
+
"--sectiondivider-md-title-outline-color": "transparent",
|
|
3609
3621
|
"--sectiondivider-md-hairline-color": "--border-brand-medium",
|
|
3610
3622
|
"--sectiondivider-sm-title-font-family": "--font-display",
|
|
3611
3623
|
"--sectiondivider-sm-title-font-weight": "--font-weight-medium",
|
|
@@ -3634,7 +3646,7 @@
|
|
|
3634
3646
|
"--sectiondivider-sm-description": "--text-secondary",
|
|
3635
3647
|
"--sectiondivider-sm-eyebrow": "--text-tertiary",
|
|
3636
3648
|
"--sectiondivider-sm-border": "--color-transparent",
|
|
3637
|
-
"--sectiondivider-sm-title-outline-color": "
|
|
3649
|
+
"--sectiondivider-sm-title-outline-color": "transparent",
|
|
3638
3650
|
"--sectiondivider-sm-hairline-color": "color-mix(in srgb, var(--border-brand-medium) 50%, transparent)"
|
|
3639
3651
|
}
|
|
3640
3652
|
},
|
|
@@ -3529,7 +3529,7 @@
|
|
|
3529
3529
|
"--sectiondivider-lg-description": "--text-alternate",
|
|
3530
3530
|
"--sectiondivider-lg-eyebrow": "--text-brand",
|
|
3531
3531
|
"--sectiondivider-lg-border": "--color-transparent",
|
|
3532
|
-
"--sectiondivider-lg-title-outline-color": "
|
|
3532
|
+
"--sectiondivider-lg-title-outline-color": "transparent",
|
|
3533
3533
|
"--sectiondivider-lg-hairline-color": "--border-brand-medium",
|
|
3534
3534
|
"--sectiondivider-md-title-font-family": "--font-display",
|
|
3535
3535
|
"--sectiondivider-md-title-font-weight": "--font-weight-bold",
|
|
@@ -3558,7 +3558,7 @@
|
|
|
3558
3558
|
"--sectiondivider-md-description": "--text-secondary",
|
|
3559
3559
|
"--sectiondivider-md-eyebrow": "--text-tertiary",
|
|
3560
3560
|
"--sectiondivider-md-border": "--color-transparent",
|
|
3561
|
-
"--sectiondivider-md-title-outline-color": "
|
|
3561
|
+
"--sectiondivider-md-title-outline-color": "transparent",
|
|
3562
3562
|
"--sectiondivider-md-hairline-color": "--border-brand-medium",
|
|
3563
3563
|
"--sectiondivider-sm-title-font-family": "--font-display",
|
|
3564
3564
|
"--sectiondivider-sm-title-font-weight": "--font-weight-medium",
|
|
@@ -3587,7 +3587,7 @@
|
|
|
3587
3587
|
"--sectiondivider-sm-description": "--text-secondary",
|
|
3588
3588
|
"--sectiondivider-sm-eyebrow": "--text-tertiary",
|
|
3589
3589
|
"--sectiondivider-sm-border": "--color-transparent",
|
|
3590
|
-
"--sectiondivider-sm-title-outline-color": "
|
|
3590
|
+
"--sectiondivider-sm-title-outline-color": "transparent",
|
|
3591
3591
|
"--sectiondivider-sm-hairline-color": "color-mix(in srgb, var(--border-brand-medium) 50%, transparent)"
|
|
3592
3592
|
}
|
|
3593
3593
|
},
|
|
@@ -3560,7 +3560,7 @@
|
|
|
3560
3560
|
"--sectiondivider-lg-description": "--text-alternate",
|
|
3561
3561
|
"--sectiondivider-lg-eyebrow": "--text-brand",
|
|
3562
3562
|
"--sectiondivider-lg-border": "--color-transparent",
|
|
3563
|
-
"--sectiondivider-lg-title-outline-color": "
|
|
3563
|
+
"--sectiondivider-lg-title-outline-color": "transparent",
|
|
3564
3564
|
"--sectiondivider-lg-hairline-color": "--border-brand-medium",
|
|
3565
3565
|
"--sectiondivider-md-title-font-family": "--font-display",
|
|
3566
3566
|
"--sectiondivider-md-title-font-weight": "--font-weight-bold",
|
|
@@ -3589,7 +3589,7 @@
|
|
|
3589
3589
|
"--sectiondivider-md-description": "--text-secondary",
|
|
3590
3590
|
"--sectiondivider-md-eyebrow": "--text-tertiary",
|
|
3591
3591
|
"--sectiondivider-md-border": "--color-transparent",
|
|
3592
|
-
"--sectiondivider-md-title-outline-color": "
|
|
3592
|
+
"--sectiondivider-md-title-outline-color": "transparent",
|
|
3593
3593
|
"--sectiondivider-md-hairline-color": "--border-brand-medium",
|
|
3594
3594
|
"--sectiondivider-sm-title-font-family": "--font-display",
|
|
3595
3595
|
"--sectiondivider-sm-title-font-weight": "--font-weight-medium",
|
|
@@ -3618,7 +3618,7 @@
|
|
|
3618
3618
|
"--sectiondivider-sm-description": "--text-secondary",
|
|
3619
3619
|
"--sectiondivider-sm-eyebrow": "--text-tertiary",
|
|
3620
3620
|
"--sectiondivider-sm-border": "--color-transparent",
|
|
3621
|
-
"--sectiondivider-sm-title-outline-color": "
|
|
3621
|
+
"--sectiondivider-sm-title-outline-color": "transparent",
|
|
3622
3622
|
"--sectiondivider-sm-hairline-color": "color-mix(in srgb, var(--border-brand-medium) 50%, transparent)"
|
|
3623
3623
|
}
|
|
3624
3624
|
},
|
|
@@ -3543,7 +3543,7 @@
|
|
|
3543
3543
|
"--sectiondivider-lg-description": "--text-alternate",
|
|
3544
3544
|
"--sectiondivider-lg-eyebrow": "--text-brand",
|
|
3545
3545
|
"--sectiondivider-lg-border": "--color-transparent",
|
|
3546
|
-
"--sectiondivider-lg-title-outline-color": "
|
|
3546
|
+
"--sectiondivider-lg-title-outline-color": "transparent",
|
|
3547
3547
|
"--sectiondivider-lg-hairline-color": "--border-brand-medium",
|
|
3548
3548
|
"--sectiondivider-md-title-font-family": "--font-display",
|
|
3549
3549
|
"--sectiondivider-md-title-font-weight": "--font-weight-bold",
|
|
@@ -3572,7 +3572,7 @@
|
|
|
3572
3572
|
"--sectiondivider-md-description": "--text-secondary",
|
|
3573
3573
|
"--sectiondivider-md-eyebrow": "--text-tertiary",
|
|
3574
3574
|
"--sectiondivider-md-border": "--color-transparent",
|
|
3575
|
-
"--sectiondivider-md-title-outline-color": "
|
|
3575
|
+
"--sectiondivider-md-title-outline-color": "transparent",
|
|
3576
3576
|
"--sectiondivider-md-hairline-color": "--border-brand-medium",
|
|
3577
3577
|
"--sectiondivider-sm-title-font-family": "--font-display",
|
|
3578
3578
|
"--sectiondivider-sm-title-font-weight": "--font-weight-medium",
|
|
@@ -3601,7 +3601,7 @@
|
|
|
3601
3601
|
"--sectiondivider-sm-description": "--text-secondary",
|
|
3602
3602
|
"--sectiondivider-sm-eyebrow": "--text-tertiary",
|
|
3603
3603
|
"--sectiondivider-sm-border": "--color-transparent",
|
|
3604
|
-
"--sectiondivider-sm-title-outline-color": "
|
|
3604
|
+
"--sectiondivider-sm-title-outline-color": "transparent",
|
|
3605
3605
|
"--sectiondivider-sm-hairline-color": "color-mix(in srgb, var(--border-brand-medium) 50%, transparent)"
|
|
3606
3606
|
}
|
|
3607
3607
|
},
|