@donotdev/ui 0.0.2 → 0.0.4
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/dist/components/auth/AuthMenu.d.ts.map +1 -1
- package/dist/components/auth/AuthMenu.js +19 -32
- package/dist/components/common/FeatureCard.d.ts +7 -19
- package/dist/components/common/FeatureCard.d.ts.map +1 -1
- package/dist/components/common/FeatureCard.js +5 -29
- package/dist/components/common/TechBento.d.ts +15 -3
- package/dist/components/common/TechBento.d.ts.map +1 -1
- package/dist/components/common/TechBento.js +20 -2
- package/dist/components/cookie-consent/CookieConsent.d.ts.map +1 -1
- package/dist/components/cookie-consent/CookieConsent.js +2 -41
- package/dist/components/cookie-consent/index.d.ts +0 -1
- package/dist/components/cookie-consent/index.d.ts.map +1 -1
- package/dist/components/cookie-consent/index.js +1 -1
- package/dist/components/layout/components/DropdownNavigation.d.ts.map +1 -1
- package/dist/components/layout/components/header/ThemeToggle.d.ts +1 -1
- package/dist/components/layout/components/header/ThemeToggle.d.ts.map +1 -1
- package/dist/components/layout/components/header/ThemeToggle.js +5 -4
- package/dist/dndev.css +373 -249
- package/dist/index.js +4 -4
- package/dist/internal/devtools/DebugTools.d.ts.map +1 -1
- package/dist/internal/devtools/DebugTools.js +8 -4
- package/dist/internal/devtools/components/ConfigTab.d.ts.map +1 -1
- package/dist/internal/devtools/components/ConfigTab.js +33 -133
- package/dist/internal/devtools/components/DebugDialog.d.ts.map +1 -1
- package/dist/internal/devtools/components/DebugDialog.js +11 -520
- package/dist/internal/devtools/components/DesignTab.d.ts +2 -0
- package/dist/internal/devtools/components/DesignTab.d.ts.map +1 -0
- package/dist/internal/devtools/components/DesignTab.js +431 -0
- package/dist/internal/devtools/components/StoresTab.d.ts.map +1 -1
- package/dist/internal/devtools/components/StoresTab.js +54 -102
- package/dist/internal/devtools/components/index.d.ts +1 -6
- package/dist/internal/devtools/components/index.d.ts.map +1 -1
- package/dist/internal/devtools/components/index.js +1 -6
- package/dist/internal/devtools/utils/index.d.ts +0 -1
- package/dist/internal/devtools/utils/index.d.ts.map +1 -1
- package/dist/internal/devtools/utils/index.js +0 -1
- package/dist/internal/initializers/BaseStoresInitializer.d.ts.map +1 -1
- package/dist/internal/initializers/BaseStoresInitializer.js +36 -59
- package/dist/internal/layout/DnDevLayout.js +3 -3
- package/dist/internal/layout/components/AutoMetaTags.d.ts.map +1 -1
- package/dist/internal/layout/components/AutoMetaTags.js +6 -1
- package/dist/internal/layout/components/footer/FooterBranding.d.ts.map +1 -1
- package/dist/internal/layout/components/footer/FooterBranding.js +3 -1
- package/dist/internal/layout/zones/DnDevFooter.js +2 -2
- package/dist/routing/AuthGuard.d.ts +14 -10
- package/dist/routing/AuthGuard.d.ts.map +1 -1
- package/dist/routing/AuthGuard.js +25 -22
- package/dist/routing/Link.d.ts +2 -2
- package/dist/routing/Link.js +2 -2
- package/dist/routing/hooks/hooks.next.js +1 -1
- package/dist/routing/hooks/hooks.vite.js +1 -1
- package/dist/routing/hooks/useRedirectGuard.next.d.ts +2 -36
- package/dist/routing/hooks/useRedirectGuard.next.d.ts.map +1 -1
- package/dist/routing/hooks/useRedirectGuard.next.js +14 -55
- package/dist/routing/hooks/useRedirectGuard.vite.d.ts +2 -36
- package/dist/routing/hooks/useRedirectGuard.vite.d.ts.map +1 -1
- package/dist/routing/hooks/useRedirectGuard.vite.js +14 -55
- package/dist/routing/index.d.ts +0 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +1 -1
- package/dist/styles/index.css +373 -249
- package/dist/utils/assetResolver.d.ts +5 -5
- package/dist/utils/assetResolver.d.ts.map +1 -1
- package/dist/utils/assetResolver.js +26 -15
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/tList.d.ts +30 -0
- package/dist/utils/tList.d.ts.map +1 -0
- package/dist/utils/tList.js +51 -0
- package/dist/utils/useAuthSafe.d.ts +25 -12
- package/dist/utils/useAuthSafe.d.ts.map +1 -1
- package/dist/utils/useAuthSafe.js +3 -1
- package/dist/utils/useAuthVisibility.d.ts +3 -3
- package/dist/utils/useAuthVisibility.d.ts.map +1 -1
- package/dist/utils/useAuthVisibility.js +25 -21
- package/dist/utils/useBillingVisibility.d.ts +2 -2
- package/dist/utils/useBillingVisibility.d.ts.map +1 -1
- package/dist/utils/useBillingVisibility.js +12 -13
- package/dist/utils/useCrudSafe.d.ts +1 -1
- package/dist/utils/useCrudSafe.d.ts.map +1 -1
- package/dist/utils/useCrudSafe.js +26 -13
- package/dist/utils/useOAuthSafe.d.ts +25 -12
- package/dist/utils/useOAuthSafe.d.ts.map +1 -1
- package/dist/utils/useStripeBillingSafe.d.ts +30 -18
- package/dist/utils/useStripeBillingSafe.d.ts.map +1 -1
- package/dist/utils/useStripeBillingSafe.js +5 -6
- package/dist/vite-routing/AppRoutes.d.ts.map +1 -1
- package/dist/vite-routing/AppRoutes.js +5 -5
- package/dist/vite-routing/RootLayout.d.ts.map +1 -1
- package/dist/vite-routing/RootLayout.js +34 -7
- package/package.json +9 -9
- package/dist/internal/devtools/components/AuthTab.d.ts +0 -2
- package/dist/internal/devtools/components/AuthTab.d.ts.map +0 -1
- package/dist/internal/devtools/components/AuthTab.js +0 -98
- package/dist/internal/devtools/components/ColorRatioTab.d.ts +0 -2
- package/dist/internal/devtools/components/ColorRatioTab.d.ts.map +0 -1
- package/dist/internal/devtools/components/ColorRatioTab.js +0 -322
- package/dist/internal/devtools/components/DebugToggle.d.ts +0 -2
- package/dist/internal/devtools/components/DebugToggle.d.ts.map +0 -1
- package/dist/internal/devtools/components/DebugToggle.js +0 -57
- package/dist/internal/devtools/components/EnvironmentTab.d.ts +0 -2
- package/dist/internal/devtools/components/EnvironmentTab.d.ts.map +0 -1
- package/dist/internal/devtools/components/EnvironmentTab.js +0 -26
- package/dist/internal/devtools/components/I18nTab.d.ts +0 -2
- package/dist/internal/devtools/components/I18nTab.d.ts.map +0 -1
- package/dist/internal/devtools/components/I18nTab.js +0 -76
- package/dist/internal/devtools/components/OAuthGuideButton.d.ts +0 -10
- package/dist/internal/devtools/components/OAuthGuideButton.d.ts.map +0 -1
- package/dist/internal/devtools/components/OAuthGuideButton.js +0 -71
- package/dist/internal/devtools/components/StripeDebugTab.d.ts +0 -2
- package/dist/internal/devtools/components/StripeDebugTab.d.ts.map +0 -1
- package/dist/internal/devtools/components/StripeDebugTab.js +0 -175
- package/dist/internal/devtools/components/ThemesTab.d.ts +0 -2
- package/dist/internal/devtools/components/ThemesTab.d.ts.map +0 -1
- package/dist/internal/devtools/components/ThemesTab.js +0 -77
- package/dist/internal/devtools/utils/spacingAnalyzer.d.ts +0 -15
- package/dist/internal/devtools/utils/spacingAnalyzer.d.ts.map +0 -1
- package/dist/internal/devtools/utils/spacingAnalyzer.js +0 -88
package/dist/dndev.css
CHANGED
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
Used by: CSS @media queries, JavaScript hooks, responsive components
|
|
23
23
|
Note: CSS variables don't work in @media, so we use hardcoded px values
|
|
24
24
|
=========================== */
|
|
25
|
-
--breakpoint-mobile: 768px;
|
|
26
|
-
--breakpoint-tablet: 1024px;
|
|
27
|
-
--breakpoint-
|
|
25
|
+
--breakpoint-mobile: 768px; /* < 768 = mobile */
|
|
26
|
+
--breakpoint-tablet: 1024px; /* 768-1023 = tablet */
|
|
27
|
+
--breakpoint-laptop: 1440px; /* 1024-1439 = laptop (key layout split) */
|
|
28
|
+
--breakpoint-desktop: 1920px; /* 1440+ = desktop */
|
|
28
29
|
|
|
29
30
|
/* ===========================
|
|
30
31
|
INTERACTIVE ELEMENTS
|
|
@@ -289,28 +290,48 @@
|
|
|
289
290
|
/* Compact (Admin/Data) - Dense, information-dense layouts - Minor Third (1.2×) */
|
|
290
291
|
|
|
291
292
|
[data-density='compact'] {
|
|
292
|
-
|
|
293
|
-
--font-size-
|
|
294
|
-
--font-size-
|
|
295
|
-
--font-size-
|
|
296
|
-
|
|
297
|
-
--
|
|
298
|
-
|
|
299
|
-
|
|
293
|
+
/* Base sizes: Fluid responsiveness for all text, zoom-safe */
|
|
294
|
+
--font-size-base: clamp(0.875rem, 0.8125rem + 0.25vw, 0.9375rem); /* 14-15px fluid */
|
|
295
|
+
--font-size-lg: clamp(1.05rem, 0.9375rem + 0.5vw, 1.125rem); /* 17-18px fluid */
|
|
296
|
+
--font-size-xl: clamp(1.26rem, 1.125rem + 0.75vw, 1.375rem); /* 20-22px fluid */
|
|
297
|
+
/* Display sizes: Musical scale + fluid responsiveness */
|
|
298
|
+
--font-size-2xl: clamp(
|
|
299
|
+
1.512rem,
|
|
300
|
+
1.375rem + 0.75vw,
|
|
301
|
+
1.625rem
|
|
302
|
+
); /* 24-26px fluid */
|
|
303
|
+
--font-size-3xl: clamp(
|
|
304
|
+
1.814rem,
|
|
305
|
+
1.625rem + 1vw,
|
|
306
|
+
2rem
|
|
307
|
+
); /* 29-32px fluid */
|
|
308
|
+
--gap-sm: clamp(0.375rem, 0.3125rem + 0.25vw, 0.5rem); /* 6-8px fluid */
|
|
309
|
+
--gap-md: clamp(0.75rem, 0.625rem + 0.5vw, 0.875rem); /* 12-14px fluid, zoom-safe */
|
|
310
|
+
--gap-lg: clamp(1.5rem, 1.25rem + 1vw, 1.75rem); /* 24-28px fluid, zoom-safe */
|
|
300
311
|
--line-height: 1.2; /* Minor Third - All text */
|
|
301
312
|
}
|
|
302
313
|
|
|
303
314
|
/* Standard (Docs/SaaS) - DEFAULT, balanced for readability */
|
|
304
315
|
|
|
305
316
|
[data-density='standard'] {
|
|
306
|
-
|
|
307
|
-
--font-size-
|
|
308
|
-
--font-size-
|
|
309
|
-
--font-size-
|
|
310
|
-
|
|
311
|
-
--
|
|
312
|
-
|
|
313
|
-
|
|
317
|
+
/* Base sizes: Fluid responsiveness for all text, zoom-safe */
|
|
318
|
+
--font-size-base: clamp(1rem, 0.9375rem + 0.25vw, 1.0625rem); /* 16-17px fluid */
|
|
319
|
+
--font-size-lg: clamp(1.25rem, 1.125rem + 0.5vw, 1.375rem); /* 20-22px fluid */
|
|
320
|
+
--font-size-xl: clamp(1.563rem, 1.375rem + 0.75vw, 1.75rem); /* 25-28px fluid */
|
|
321
|
+
/* Display sizes: Musical scale + fluid responsiveness */
|
|
322
|
+
--font-size-2xl: clamp(
|
|
323
|
+
1.953rem,
|
|
324
|
+
1.75rem + 1vw,
|
|
325
|
+
2.25rem
|
|
326
|
+
); /* 31-36px fluid */
|
|
327
|
+
--font-size-3xl: clamp(
|
|
328
|
+
2.441rem,
|
|
329
|
+
2rem + 1.5vw,
|
|
330
|
+
3rem
|
|
331
|
+
); /* 39-48px fluid - hero text */
|
|
332
|
+
--gap-sm: clamp(0.5rem, 0.4375rem + 0.25vw, 0.625rem); /* 8-10px fluid */
|
|
333
|
+
--gap-md: clamp(1rem, 0.875rem + 0.5vw, 1.25rem); /* 16-20px fluid, zoom-safe */
|
|
334
|
+
--gap-lg: clamp(2rem, 1.75rem + 1vw, 2.5rem); /* 32-40px fluid, zoom-safe */
|
|
314
335
|
--line-height: 1.25; /* Major Third - All text */
|
|
315
336
|
}
|
|
316
337
|
|
|
@@ -539,52 +560,19 @@ a:not(.dndev-interactive):active {
|
|
|
539
560
|
a:focus-visible {
|
|
540
561
|
outline: 2px solid var(--ring);
|
|
541
562
|
outline-offset: 2px;
|
|
542
|
-
border-radius: var(--radius-
|
|
563
|
+
border-radius: var(--radius-interactive);
|
|
543
564
|
}
|
|
544
565
|
|
|
545
|
-
/*
|
|
546
|
-
BASE LIST STYLING
|
|
547
|
-
Use text-base styles for lists
|
|
548
|
-
=========================== */
|
|
549
|
-
|
|
550
|
-
/* Content lists only - not navigation menus */
|
|
551
|
-
|
|
552
|
-
main ul,
|
|
553
|
-
main ol,
|
|
554
|
-
article ul,
|
|
555
|
-
article ol {
|
|
556
|
-
font-weight: 500;
|
|
557
|
-
line-height: var(--line-height);
|
|
558
|
-
color: var(--foreground);
|
|
559
|
-
background: transparent !important;
|
|
560
|
-
list-style-position: outside;
|
|
561
|
-
padding-inline-start: var(--gap-lg);
|
|
562
|
-
margin-block: var(--gap-md);
|
|
563
|
-
}
|
|
566
|
+
/* Main element - no focus outline (programmatic focus for keyboard nav) */
|
|
564
567
|
|
|
565
|
-
main
|
|
566
|
-
|
|
567
|
-
list-style-type: disc;
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
main ol,
|
|
571
|
-
article ol {
|
|
572
|
-
list-style-type: decimal;
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
main li,
|
|
576
|
-
article li {
|
|
577
|
-
font-weight: 500;
|
|
578
|
-
line-height: var(--line-height);
|
|
579
|
-
color: var(--foreground);
|
|
580
|
-
background: transparent !important;
|
|
581
|
-
margin-block: var(--gap-sm);
|
|
582
|
-
padding-inline-start: var(--gap-sm);
|
|
568
|
+
main:focus-visible {
|
|
569
|
+
outline: none;
|
|
583
570
|
}
|
|
584
571
|
|
|
585
572
|
/* ===========================
|
|
586
|
-
BASE TYPOGRAPHY
|
|
587
|
-
|
|
573
|
+
BASE TYPOGRAPHY - RESET ONLY
|
|
574
|
+
Zero margins, components own their spacing
|
|
575
|
+
Use .prose wrapper for content pages (docs, markdown)
|
|
588
576
|
=========================== */
|
|
589
577
|
|
|
590
578
|
h1,
|
|
@@ -593,49 +581,71 @@ h3,
|
|
|
593
581
|
h4,
|
|
594
582
|
h5,
|
|
595
583
|
h6 {
|
|
596
|
-
font-weight:
|
|
584
|
+
font-weight: var(--font-weight-medium);
|
|
597
585
|
line-height: var(--line-height);
|
|
598
586
|
color: var(--foreground);
|
|
599
587
|
background: transparent;
|
|
600
|
-
margin-block: var(--gap-md);
|
|
601
588
|
}
|
|
602
589
|
|
|
603
590
|
h1 {
|
|
604
591
|
font-family: var(--font-headline);
|
|
605
592
|
font-size: var(--font-size-3xl);
|
|
606
|
-
font-weight:
|
|
593
|
+
font-weight: var(--font-weight-bold);
|
|
607
594
|
letter-spacing: -0.02em;
|
|
608
595
|
}
|
|
609
596
|
|
|
610
597
|
h2 {
|
|
611
598
|
font-family: var(--font-headline);
|
|
612
599
|
font-size: var(--font-size-2xl);
|
|
613
|
-
font-weight:
|
|
600
|
+
font-weight: var(--font-weight-bold);
|
|
614
601
|
letter-spacing: -0.01em;
|
|
615
602
|
}
|
|
616
603
|
|
|
617
604
|
h3 {
|
|
618
605
|
font-size: var(--font-size-xl);
|
|
619
|
-
font-weight:
|
|
606
|
+
font-weight: var(--font-weight-semibold);
|
|
620
607
|
}
|
|
621
608
|
|
|
622
609
|
h4 {
|
|
623
610
|
font-size: var(--font-size-lg);
|
|
624
|
-
font-weight:
|
|
611
|
+
font-weight: var(--font-weight-semibold);
|
|
625
612
|
}
|
|
626
613
|
|
|
627
614
|
h5,
|
|
628
615
|
h6 {
|
|
629
616
|
font-size: var(--font-size-base);
|
|
630
|
-
font-weight:
|
|
617
|
+
font-weight: var(--font-weight-semibold);
|
|
631
618
|
}
|
|
632
619
|
|
|
633
620
|
p {
|
|
634
|
-
font-weight:
|
|
621
|
+
font-weight: var(--font-weight-medium);
|
|
622
|
+
line-height: var(--line-height);
|
|
623
|
+
color: var(--foreground);
|
|
624
|
+
background: transparent;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
ul,
|
|
628
|
+
ol {
|
|
629
|
+
font-weight: var(--font-weight-medium);
|
|
630
|
+
line-height: var(--line-height);
|
|
631
|
+
color: var(--foreground);
|
|
632
|
+
background: transparent;
|
|
633
|
+
list-style-position: outside;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
ul {
|
|
637
|
+
list-style-type: disc;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
ol {
|
|
641
|
+
list-style-type: decimal;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
li {
|
|
645
|
+
font-weight: var(--font-weight-medium);
|
|
635
646
|
line-height: var(--line-height);
|
|
636
647
|
color: var(--foreground);
|
|
637
648
|
background: transparent;
|
|
638
|
-
margin-block: var(--gap-md);
|
|
639
649
|
}
|
|
640
650
|
|
|
641
651
|
/* Semantic HTML - strong and em */
|
|
@@ -682,7 +692,7 @@ em {
|
|
|
682
692
|
.dndev-input {
|
|
683
693
|
display: flex;
|
|
684
694
|
width: 100%;
|
|
685
|
-
border-radius:
|
|
695
|
+
border-radius: var(--radius-interactive);
|
|
686
696
|
border: var(--border-hairline) solid var(--line-2);
|
|
687
697
|
background-color: transparent;
|
|
688
698
|
color: var(--foreground);
|
|
@@ -944,15 +954,21 @@ em {
|
|
|
944
954
|
|
|
945
955
|
.dndev-surface[data-role='card'] {
|
|
946
956
|
padding: var(--gap-md);
|
|
947
|
-
border-radius: var(--radius-
|
|
957
|
+
border-radius: var(--radius-surface);
|
|
948
958
|
}
|
|
949
959
|
|
|
950
960
|
/* Elevated cards - stronger shadow */
|
|
951
961
|
|
|
952
|
-
|
|
962
|
+
/* Apply if elevated=true OR (clickable=true AND elevated!=false) */
|
|
963
|
+
|
|
964
|
+
.dndev-surface[data-elevated='true'],.dndev-surface[data-clickable='true']:not([data-elevated='false']) {
|
|
953
965
|
box-shadow: var(--shadow-xl);
|
|
954
966
|
}
|
|
955
967
|
|
|
968
|
+
:is(.dndev-surface[data-elevated='true'],.dndev-surface[data-clickable='true']:not([data-elevated='false'])):dir(rtl) {
|
|
969
|
+
box-shadow: var(--shadow-xl-rtl);
|
|
970
|
+
}
|
|
971
|
+
|
|
956
972
|
/* Clickable cards - hover effects */
|
|
957
973
|
|
|
958
974
|
.dndev-surface[data-clickable='true'] {
|
|
@@ -1185,7 +1201,7 @@ em {
|
|
|
1185
1201
|
|
|
1186
1202
|
.dndev-floating[data-role='card'] {
|
|
1187
1203
|
padding: var(--gap-md);
|
|
1188
|
-
border-radius: var(--radius-
|
|
1204
|
+
border-radius: var(--radius-surface);
|
|
1189
1205
|
}
|
|
1190
1206
|
|
|
1191
1207
|
.dndev-floating[data-role='floating'] {
|
|
@@ -1647,6 +1663,38 @@ em {
|
|
|
1647
1663
|
color: var(--background);
|
|
1648
1664
|
}
|
|
1649
1665
|
|
|
1666
|
+
/* CONTROL GROUP - Shared pattern for grouped controls (RadioGroup, Checkbox groups) */
|
|
1667
|
+
|
|
1668
|
+
.dndev-control-group {
|
|
1669
|
+
display: grid;
|
|
1670
|
+
gap: var(--gap-md); /* 16px - standard spacing between grouped items */
|
|
1671
|
+
|
|
1672
|
+
/* Control + label pattern - used by RadioGroup, CheckboxFieldComponent, etc. */
|
|
1673
|
+
}
|
|
1674
|
+
|
|
1675
|
+
.dndev-control-group label {
|
|
1676
|
+
display: flex;
|
|
1677
|
+
align-items: center;
|
|
1678
|
+
gap: var(--gap-sm); /* 8px - spacing between control and label */
|
|
1679
|
+
font-size: var(--font-size-base);
|
|
1680
|
+
color: var(--foreground);
|
|
1681
|
+
cursor: pointer;
|
|
1682
|
+
transition: color var(--transition-fast);
|
|
1683
|
+
|
|
1684
|
+
/* Subtle hover on label text */
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
:is(.dndev-control-group label):hover {
|
|
1688
|
+
color: var(--primary);
|
|
1689
|
+
}
|
|
1690
|
+
|
|
1691
|
+
/* Selected state - label color changes */
|
|
1692
|
+
|
|
1693
|
+
:is(.dndev-control-group label):has([data-state='checked']),:is(.dndev-control-group label):has([data-state='on']) {
|
|
1694
|
+
color: var(--primary);
|
|
1695
|
+
font-weight: var(--font-weight-medium);
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1650
1698
|
/**
|
|
1651
1699
|
* Variant system - 8 control variants
|
|
1652
1700
|
* Variants override --control-border to use semantic colors
|
|
@@ -1654,37 +1702,37 @@ em {
|
|
|
1654
1702
|
* On state: fills with variant color
|
|
1655
1703
|
*/
|
|
1656
1704
|
|
|
1657
|
-
.dndev-control[data-variant='primary'] {
|
|
1705
|
+
.dndev-control-group[data-variant='primary'] {
|
|
1658
1706
|
--control-border: var(--primary);
|
|
1659
1707
|
}
|
|
1660
1708
|
|
|
1661
|
-
.dndev-control[data-variant='secondary'] {
|
|
1709
|
+
.dndev-control-group[data-variant='secondary'] {
|
|
1662
1710
|
--control-border: var(--secondary);
|
|
1663
1711
|
}
|
|
1664
1712
|
|
|
1665
|
-
.dndev-control[data-variant='muted'] {
|
|
1713
|
+
.dndev-control-group[data-variant='muted'] {
|
|
1666
1714
|
--control-border: var(--muted-foreground);
|
|
1667
1715
|
}
|
|
1668
1716
|
|
|
1669
|
-
.dndev-control[data-variant='accent'] {
|
|
1717
|
+
.dndev-control-group[data-variant='accent'] {
|
|
1670
1718
|
--control-border: var(--accent);
|
|
1671
1719
|
}
|
|
1672
1720
|
|
|
1673
|
-
.dndev-control[data-variant='success'] {
|
|
1721
|
+
.dndev-control-group[data-variant='success'] {
|
|
1674
1722
|
--control-border: var(--success);
|
|
1675
1723
|
}
|
|
1676
1724
|
|
|
1677
|
-
.dndev-control[data-variant='warning'] {
|
|
1725
|
+
.dndev-control-group[data-variant='warning'] {
|
|
1678
1726
|
--control-border: var(--warning);
|
|
1679
1727
|
}
|
|
1680
1728
|
|
|
1681
|
-
.dndev-control[data-variant='destructive'] {
|
|
1729
|
+
.dndev-control-group[data-variant='destructive'] {
|
|
1682
1730
|
--control-border: var(--destructive);
|
|
1683
1731
|
}
|
|
1684
1732
|
|
|
1685
1733
|
/* Default variant explicitly (same as base) */
|
|
1686
1734
|
|
|
1687
|
-
.dndev-control[data-variant='default'] {
|
|
1735
|
+
.dndev-control-group[data-variant='default'] {
|
|
1688
1736
|
--control-border: color-mix(
|
|
1689
1737
|
in oklab,
|
|
1690
1738
|
var(--foreground) 70%,
|
|
@@ -1772,7 +1820,7 @@ em {
|
|
|
1772
1820
|
display: grid;
|
|
1773
1821
|
gap: var(--gap-sm);
|
|
1774
1822
|
padding: var(--gap-md);
|
|
1775
|
-
border-radius: var(--radius-
|
|
1823
|
+
border-radius: var(--radius-floating);
|
|
1776
1824
|
border: var(--border-hairline) solid var(--border);
|
|
1777
1825
|
/* Inverted floating colors: popover-foreground as background, popover as foreground */
|
|
1778
1826
|
background: color-mix(in oklab, var(--popover-foreground) 95%, transparent);
|
|
@@ -1917,7 +1965,7 @@ em {
|
|
|
1917
1965
|
width: var(--icon-md);
|
|
1918
1966
|
height: var(--icon-md);
|
|
1919
1967
|
border: 2px solid currentColor;
|
|
1920
|
-
border-radius:
|
|
1968
|
+
border-radius: var(--radius-full);
|
|
1921
1969
|
border-right-color: transparent;
|
|
1922
1970
|
animation: spin 1s linear infinite;
|
|
1923
1971
|
}
|
|
@@ -2054,7 +2102,7 @@ em {
|
|
|
2054
2102
|
display: flex;
|
|
2055
2103
|
flex-direction: column;
|
|
2056
2104
|
padding: 0;
|
|
2057
|
-
border-radius:
|
|
2105
|
+
border-radius: var(--radius-floating);
|
|
2058
2106
|
min-width: 15ch; /* Character-based: scales with font size, ensures readable width */
|
|
2059
2107
|
width: -moz-fit-content;
|
|
2060
2108
|
width: fit-content; /* Stretch to fit children */
|
|
@@ -2331,14 +2379,15 @@ em {
|
|
|
2331
2379
|
margin-top: var(--gap-md);
|
|
2332
2380
|
}
|
|
2333
2381
|
|
|
2334
|
-
/* Tech card */
|
|
2382
|
+
/* Tech card - override Card's grid layout for centered content */
|
|
2335
2383
|
|
|
2336
2384
|
.dndev-tech-card {
|
|
2337
2385
|
height: 100%;
|
|
2338
2386
|
min-height: 120px;
|
|
2339
|
-
display: flex;
|
|
2387
|
+
display: flex !important; /* Override Card's grid layout */
|
|
2340
2388
|
align-items: center;
|
|
2341
2389
|
justify-content: center;
|
|
2390
|
+
align-content: center; /* Override Card's align-content: start */
|
|
2342
2391
|
transition:
|
|
2343
2392
|
border-color 0.2s ease,
|
|
2344
2393
|
box-shadow 0.2s ease;
|
|
@@ -2408,7 +2457,7 @@ em {
|
|
|
2408
2457
|
}
|
|
2409
2458
|
|
|
2410
2459
|
.dndev-blockquote-content {
|
|
2411
|
-
font-size:
|
|
2460
|
+
font-size: var(--font-size-lg); /* 20px - emphasized text */
|
|
2412
2461
|
line-height: 1.7; /* Industry standard for readability */
|
|
2413
2462
|
font-weight: 400;
|
|
2414
2463
|
color: inherit;
|
|
@@ -2442,10 +2491,15 @@ em {
|
|
|
2442
2491
|
*/
|
|
2443
2492
|
|
|
2444
2493
|
.dndev-blockquote[data-variant='default'] blockquote {
|
|
2445
|
-
padding: var(--gap-md) var(--gap-md) var(--gap-md) var(--gap-lg);
|
|
2494
|
+
padding: var(--gap-md) calc(var(--gap-md) + 4px) var(--gap-md) var(--gap-lg);
|
|
2446
2495
|
background: var(--muted);
|
|
2447
2496
|
border-inline-start: 4px solid var(--primary);
|
|
2448
|
-
border-
|
|
2497
|
+
border-inline-end: none;
|
|
2498
|
+
border-block-start: none;
|
|
2499
|
+
border-block-end: none;
|
|
2500
|
+
border-radius: var(--radius-interactive) var(--radius-surface)
|
|
2501
|
+
var(--radius-surface) var(--radius-interactive);
|
|
2502
|
+
overflow: hidden;
|
|
2449
2503
|
}
|
|
2450
2504
|
|
|
2451
2505
|
.dndev-blockquote[data-variant='default'] .dndev-blockquote-content {
|
|
@@ -2466,7 +2520,7 @@ em {
|
|
|
2466
2520
|
.dndev-blockquote[data-variant='editorial'] .dndev-blockquote-content {
|
|
2467
2521
|
font-family: Georgia, 'Times New Roman', serif;
|
|
2468
2522
|
font-style: italic;
|
|
2469
|
-
font-size:
|
|
2523
|
+
font-size: var(--font-size-xl); /* 25px - larger for editorial impact */
|
|
2470
2524
|
color: inherit;
|
|
2471
2525
|
opacity: 0.95;
|
|
2472
2526
|
}
|
|
@@ -2484,7 +2538,7 @@ em {
|
|
|
2484
2538
|
.dndev-blockquote[data-variant='testimonial'] {
|
|
2485
2539
|
background: var(--card);
|
|
2486
2540
|
border: 1px solid var(--border);
|
|
2487
|
-
border-radius: var(--radius-
|
|
2541
|
+
border-radius: var(--radius-surface);
|
|
2488
2542
|
padding: calc(var(--gap-lg) + var(--gap-md)); /* 2.5rem */
|
|
2489
2543
|
box-shadow:
|
|
2490
2544
|
0 1px 3px 0 hsl(var(--foreground-hsl) / 0.1),
|
|
@@ -2526,11 +2580,11 @@ em {
|
|
|
2526
2580
|
}
|
|
2527
2581
|
|
|
2528
2582
|
.dndev-blockquote-content {
|
|
2529
|
-
font-size:
|
|
2583
|
+
font-size: var(--font-size-base); /* Slightly smaller on mobile */
|
|
2530
2584
|
}
|
|
2531
2585
|
|
|
2532
2586
|
.dndev-blockquote[data-variant='editorial'] .dndev-blockquote-content {
|
|
2533
|
-
font-size:
|
|
2587
|
+
font-size: var(--font-size-lg);
|
|
2534
2588
|
}
|
|
2535
2589
|
|
|
2536
2590
|
.dndev-blockquote[data-variant='testimonial'] {
|
|
@@ -2560,7 +2614,7 @@ em {
|
|
|
2560
2614
|
color: var(--popover-foreground);
|
|
2561
2615
|
background: var(--popover);
|
|
2562
2616
|
border: var(--border-hairline) solid var(--border);
|
|
2563
|
-
border-radius: var(--radius-
|
|
2617
|
+
border-radius: var(--radius-floating);
|
|
2564
2618
|
box-shadow: var(--shadow-md);
|
|
2565
2619
|
}
|
|
2566
2620
|
|
|
@@ -2846,13 +2900,40 @@ em {
|
|
|
2846
2900
|
/* packages/components/src/atomic/CallToAction/CallToAction.css */
|
|
2847
2901
|
|
|
2848
2902
|
.dndev-cta {
|
|
2849
|
-
/*
|
|
2903
|
+
/* Default gradient */
|
|
2850
2904
|
background: linear-gradient(to right, var(--secondary), var(--background));
|
|
2851
2905
|
color: var(--foreground);
|
|
2852
2906
|
/* Padding for background - vertical only, horizontal handled by content */
|
|
2853
2907
|
padding-block: var(--gap-lg);
|
|
2854
2908
|
}
|
|
2855
2909
|
|
|
2910
|
+
/* Tone variants - leverage existing data-tone system */
|
|
2911
|
+
|
|
2912
|
+
.dndev-cta[data-tone='base'] {
|
|
2913
|
+
background: linear-gradient(to right, var(--secondary), var(--background));
|
|
2914
|
+
}
|
|
2915
|
+
|
|
2916
|
+
.dndev-cta[data-tone='muted'] {
|
|
2917
|
+
background: linear-gradient(to right, var(--muted), var(--background));
|
|
2918
|
+
}
|
|
2919
|
+
|
|
2920
|
+
.dndev-cta[data-tone='accent'] {
|
|
2921
|
+
background: linear-gradient(
|
|
2922
|
+
to right,
|
|
2923
|
+
color-mix(in oklab, var(--accent) 10%, transparent),
|
|
2924
|
+
var(--background)
|
|
2925
|
+
);
|
|
2926
|
+
}
|
|
2927
|
+
|
|
2928
|
+
.dndev-cta[data-tone='contrast'] {
|
|
2929
|
+
background: linear-gradient(to right, var(--foreground), var(--background));
|
|
2930
|
+
color: var(--background);
|
|
2931
|
+
}
|
|
2932
|
+
|
|
2933
|
+
.dndev-cta[data-tone='elevated'] {
|
|
2934
|
+
background: linear-gradient(to right, var(--secondary), var(--background));
|
|
2935
|
+
}
|
|
2936
|
+
|
|
2856
2937
|
.dndev-cta-content {
|
|
2857
2938
|
display: flex;
|
|
2858
2939
|
flex-direction: column;
|
|
@@ -2933,19 +3014,35 @@ em {
|
|
|
2933
3014
|
.dndev-card {
|
|
2934
3015
|
display: grid;
|
|
2935
3016
|
gap: var(--gap-md);
|
|
3017
|
+
text-align: start;
|
|
3018
|
+
align-content: start;
|
|
3019
|
+
}
|
|
3020
|
+
|
|
3021
|
+
.dndev-card-header {
|
|
3022
|
+
display: flex;
|
|
3023
|
+
flex-direction: column;
|
|
3024
|
+
}
|
|
3025
|
+
|
|
3026
|
+
.dndev-card-header > .dndev-stack {
|
|
3027
|
+
min-width: 0;
|
|
3028
|
+
}
|
|
3029
|
+
|
|
3030
|
+
.dndev-card-header > .dndev-stack > .dndev-card-title {
|
|
3031
|
+
flex: 1;
|
|
3032
|
+
min-width: 0;
|
|
2936
3033
|
}
|
|
2937
3034
|
|
|
2938
3035
|
.dndev-card-title {
|
|
2939
|
-
font-size: var(--font-size-xl);
|
|
2940
|
-
font-weight: 600;
|
|
2941
|
-
color: inherit; /* Inherit from surface variant */
|
|
2942
3036
|
margin: 0;
|
|
3037
|
+
min-width: 0;
|
|
3038
|
+
word-wrap: break-word;
|
|
2943
3039
|
}
|
|
2944
3040
|
|
|
2945
3041
|
.dndev-card-subtitle {
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
3042
|
+
margin-top: 0;
|
|
3043
|
+
margin-bottom: 0;
|
|
3044
|
+
min-width: 0;
|
|
3045
|
+
word-wrap: break-word;
|
|
2949
3046
|
}
|
|
2950
3047
|
|
|
2951
3048
|
/* packages/components/src/atomic/Checkbox/Checkbox.css */
|
|
@@ -3338,7 +3435,7 @@ em {
|
|
|
3338
3435
|
|
|
3339
3436
|
.dndev-command-footer-key {
|
|
3340
3437
|
padding: 0.125rem 0.375rem;
|
|
3341
|
-
border-radius:
|
|
3438
|
+
border-radius: 2px;
|
|
3342
3439
|
background: var(--muted);
|
|
3343
3440
|
border: 1px solid var(--border);
|
|
3344
3441
|
font-family: var(--font-mono);
|
|
@@ -3658,56 +3755,34 @@ em {
|
|
|
3658
3755
|
display: grid;
|
|
3659
3756
|
min-width: 0;
|
|
3660
3757
|
width: 100%;
|
|
3758
|
+
/* Default: use mobile columns */
|
|
3759
|
+
grid-template-columns: repeat(var(--grid-cols-mobile, 1), 1fr);
|
|
3661
3760
|
}
|
|
3662
3761
|
|
|
3663
|
-
/*
|
|
3762
|
+
/* Responsive columns via media queries */
|
|
3664
3763
|
|
|
3665
|
-
|
|
3666
|
-
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
3667
|
-
}
|
|
3668
|
-
|
|
3669
|
-
.dndev-grid-component[data-cols='2'] {
|
|
3670
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3671
|
-
}
|
|
3672
|
-
|
|
3673
|
-
.dndev-grid-component[data-cols='3'] {
|
|
3674
|
-
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
3675
|
-
}
|
|
3764
|
+
/* Tablet: 768px+ */
|
|
3676
3765
|
|
|
3677
|
-
|
|
3678
|
-
grid-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
.dndev-grid-component[data-cols='5'] {
|
|
3682
|
-
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
3683
|
-
}
|
|
3684
|
-
|
|
3685
|
-
.dndev-grid-component[data-cols='6'] {
|
|
3686
|
-
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
3766
|
+
@media (min-width: 768px) {
|
|
3767
|
+
.dndev-grid-component {
|
|
3768
|
+
grid-template-columns: repeat(var(--grid-cols-tablet, 1), 1fr);
|
|
3769
|
+
}
|
|
3687
3770
|
}
|
|
3688
3771
|
|
|
3689
|
-
|
|
3690
|
-
grid-template-columns: repeat(10, minmax(0, 1fr));
|
|
3691
|
-
}
|
|
3772
|
+
/* Laptop: 1024px+ (key layout split) */
|
|
3692
3773
|
|
|
3693
|
-
|
|
3694
|
-
grid-
|
|
3774
|
+
@media (min-width: 1024px) {
|
|
3775
|
+
.dndev-grid-component {
|
|
3776
|
+
grid-template-columns: repeat(var(--grid-cols-laptop, 1), 1fr);
|
|
3777
|
+
}
|
|
3695
3778
|
}
|
|
3696
3779
|
|
|
3697
|
-
/*
|
|
3780
|
+
/* Desktop: 1440px+ */
|
|
3698
3781
|
|
|
3699
|
-
|
|
3700
|
-
grid-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
);
|
|
3704
|
-
}
|
|
3705
|
-
|
|
3706
|
-
.dndev-grid-component[data-cols='auto-fill'] {
|
|
3707
|
-
grid-template-columns: repeat(
|
|
3708
|
-
auto-fill,
|
|
3709
|
-
minmax(min(100%, var(--min-col-width, 250px)), 1fr)
|
|
3710
|
-
);
|
|
3782
|
+
@media (min-width: 1440px) {
|
|
3783
|
+
.dndev-grid-component {
|
|
3784
|
+
grid-template-columns: repeat(var(--grid-cols-desktop, 1), 1fr);
|
|
3785
|
+
}
|
|
3711
3786
|
}
|
|
3712
3787
|
|
|
3713
3788
|
/* Spacing from CSS variables */
|
|
@@ -3853,21 +3928,7 @@ em {
|
|
|
3853
3928
|
}
|
|
3854
3929
|
|
|
3855
3930
|
.dndev-hero-subtitle {
|
|
3856
|
-
font-size: var(--font-size-
|
|
3857
|
-
}
|
|
3858
|
-
|
|
3859
|
-
/* Responsive Content Visibility */
|
|
3860
|
-
|
|
3861
|
-
@media (width < 1024px) {
|
|
3862
|
-
.dndev-hero-section .dndev-desktop-only {
|
|
3863
|
-
display: none !important;
|
|
3864
|
-
}
|
|
3865
|
-
}
|
|
3866
|
-
|
|
3867
|
-
@media (width >= 1024px) {
|
|
3868
|
-
.dndev-hero-section .dndev-mobile-only {
|
|
3869
|
-
display: none !important;
|
|
3870
|
-
}
|
|
3931
|
+
font-size: var(--font-size-lg); /* 20px - muted via component */
|
|
3871
3932
|
}
|
|
3872
3933
|
|
|
3873
3934
|
/* packages/components/src/atomic/HoverCard/HoverCard.css */
|
|
@@ -3886,7 +3947,7 @@ em {
|
|
|
3886
3947
|
height: var(--touch-target);
|
|
3887
3948
|
padding: 0;
|
|
3888
3949
|
border: 1px solid var(--card-foreground);
|
|
3889
|
-
border-radius: var(--radius-
|
|
3950
|
+
border-radius: var(--radius-surface);
|
|
3890
3951
|
background: transparent;
|
|
3891
3952
|
display: inline-flex;
|
|
3892
3953
|
align-items: center;
|
|
@@ -4026,7 +4087,7 @@ em {
|
|
|
4026
4087
|
|
|
4027
4088
|
.dndev-json-viewer-container {
|
|
4028
4089
|
background-color: var(--muted);
|
|
4029
|
-
border-radius: var(--radius);
|
|
4090
|
+
border-radius: var(--radius-surface);
|
|
4030
4091
|
padding: 1rem;
|
|
4031
4092
|
overflow: auto;
|
|
4032
4093
|
max-height: 600px;
|
|
@@ -4083,7 +4144,7 @@ em {
|
|
|
4083
4144
|
align-items: flex-start;
|
|
4084
4145
|
gap: 0.25rem;
|
|
4085
4146
|
cursor: pointer;
|
|
4086
|
-
border-radius: var(--radius-
|
|
4147
|
+
border-radius: var(--radius-interactive);
|
|
4087
4148
|
padding-inline-start: 0.25rem;
|
|
4088
4149
|
padding-inline-end: 0.25rem;
|
|
4089
4150
|
margin-inline-start: -0.25rem;
|
|
@@ -4180,16 +4241,13 @@ em {
|
|
|
4180
4241
|
.dndev-list {
|
|
4181
4242
|
display: flex;
|
|
4182
4243
|
flex-direction: column;
|
|
4183
|
-
gap: var(--gap-
|
|
4244
|
+
gap: var(--gap-sm);
|
|
4184
4245
|
padding-inline-start: 0; /* Controllable via parent/style prop */
|
|
4246
|
+
margin: 0;
|
|
4185
4247
|
list-style-position: outside;
|
|
4186
|
-
|
|
4248
|
+
text-align: start; /* Always start-aligned, even when parent is centered */
|
|
4187
4249
|
}
|
|
4188
4250
|
|
|
4189
|
-
.dndev-list[data-gap='none'] {
|
|
4190
|
-
gap: var(--gap-none);
|
|
4191
|
-
}
|
|
4192
|
-
|
|
4193
4251
|
.dndev-list[data-gap='tight'] {
|
|
4194
4252
|
gap: var(--gap-sm);
|
|
4195
4253
|
}
|
|
@@ -4238,29 +4296,18 @@ em {
|
|
|
4238
4296
|
font-size: var(--font-size-base);
|
|
4239
4297
|
}
|
|
4240
4298
|
|
|
4241
|
-
/*
|
|
4299
|
+
/* Always use flex layout for consistent alignment */
|
|
4242
4300
|
|
|
4243
4301
|
.dndev-list .dndev-list-item {
|
|
4244
4302
|
font-size: var(--font-size-sm);
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4303
|
+
display: flex;
|
|
4304
|
+
align-items: flex-start;
|
|
4305
|
+
gap: var(--gap-sm);
|
|
4306
|
+
list-style: none; /* Remove native marker */
|
|
4307
|
+
margin-block: 0;
|
|
4308
|
+
padding-inline-start: 0;
|
|
4248
4309
|
}
|
|
4249
4310
|
|
|
4250
|
-
:is(.dndev-list .dndev-list-item)::marker {
|
|
4251
|
-
color: currentColor;
|
|
4252
|
-
}
|
|
4253
|
-
|
|
4254
|
-
/* Only use flex when icon is present */
|
|
4255
|
-
|
|
4256
|
-
:is(.dndev-list .dndev-list-item):has(.dndev-list-item-icon) {
|
|
4257
|
-
display: flex;
|
|
4258
|
-
align-items: center; /* Center vertically */
|
|
4259
|
-
gap: var(--gap-sm);
|
|
4260
|
-
list-style: none; /* Remove native marker when using icon */
|
|
4261
|
-
padding-inline-start: 0; /* Reset padding when flex */
|
|
4262
|
-
}
|
|
4263
|
-
|
|
4264
4311
|
:is(.dndev-list .dndev-list-item) .dndev-list-item-icon {
|
|
4265
4312
|
display: flex;
|
|
4266
4313
|
align-items: center;
|
|
@@ -4444,7 +4491,7 @@ em {
|
|
|
4444
4491
|
grid-row: span 3;
|
|
4445
4492
|
height: 100%;
|
|
4446
4493
|
padding: var(--gap-md);
|
|
4447
|
-
border-radius: var(--radius);
|
|
4494
|
+
border-radius: var(--radius-floating);
|
|
4448
4495
|
background: linear-gradient(
|
|
4449
4496
|
to bottom,
|
|
4450
4497
|
color-mix(in oklab, var(--muted) 50%, transparent),
|
|
@@ -4468,7 +4515,7 @@ em {
|
|
|
4468
4515
|
|
|
4469
4516
|
.dndev-nav-menu-item-container {
|
|
4470
4517
|
padding: var(--gap-md);
|
|
4471
|
-
border-radius: var(--radius);
|
|
4518
|
+
border-radius: var(--radius-floating);
|
|
4472
4519
|
text-decoration: none;
|
|
4473
4520
|
outline: none;
|
|
4474
4521
|
}
|
|
@@ -4603,27 +4650,57 @@ em {
|
|
|
4603
4650
|
|
|
4604
4651
|
/* packages/components/src/atomic/RadioGroup/RadioGroup.css */
|
|
4605
4652
|
|
|
4606
|
-
.dndev-
|
|
4607
|
-
display: grid;
|
|
4608
|
-
gap: var(--gap-sm);
|
|
4653
|
+
/* Uses shared .dndev-control-group pattern from patterns.css */
|
|
4609
4654
|
|
|
4610
|
-
|
|
4611
|
-
}
|
|
4655
|
+
/* Root is display: grid - items are direct children */
|
|
4612
4656
|
|
|
4613
|
-
|
|
4614
|
-
font-size: var(--font-size-base);
|
|
4615
|
-
color: var(--foreground);
|
|
4616
|
-
transition: color var(--dur-fast) var(--ease-in-out);
|
|
4657
|
+
/* Grid columns via data-cols attribute */
|
|
4617
4658
|
|
|
4618
|
-
|
|
4659
|
+
.dndev-radio-group[data-cols] {
|
|
4660
|
+
width: -moz-fit-content;
|
|
4661
|
+
width: fit-content;
|
|
4662
|
+
margin-inline: auto; /* Self-center in parent */
|
|
4619
4663
|
}
|
|
4620
4664
|
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4665
|
+
.dndev-radio-group[data-cols='2'] {
|
|
4666
|
+
grid-template-columns: repeat(2, auto);
|
|
4667
|
+
}
|
|
4668
|
+
|
|
4669
|
+
.dndev-radio-group[data-cols='3'] {
|
|
4670
|
+
grid-template-columns: repeat(3, auto);
|
|
4671
|
+
}
|
|
4672
|
+
|
|
4673
|
+
.dndev-radio-group[data-cols='4'] {
|
|
4674
|
+
grid-template-columns: repeat(4, auto);
|
|
4675
|
+
}
|
|
4676
|
+
|
|
4677
|
+
.dndev-radio-group[data-cols='5'] {
|
|
4678
|
+
grid-template-columns: repeat(5, auto);
|
|
4679
|
+
}
|
|
4680
|
+
|
|
4681
|
+
.dndev-radio-group[data-cols='6'] {
|
|
4682
|
+
grid-template-columns: repeat(6, auto);
|
|
4683
|
+
}
|
|
4684
|
+
|
|
4685
|
+
.dndev-radio-group[data-cols='10'] {
|
|
4686
|
+
grid-template-columns: repeat(10, auto);
|
|
4687
|
+
}
|
|
4688
|
+
|
|
4689
|
+
.dndev-radio-group[data-cols='12'] {
|
|
4690
|
+
grid-template-columns: repeat(12, auto);
|
|
4691
|
+
}
|
|
4692
|
+
|
|
4693
|
+
.dndev-radio-group[data-cols='auto-fit'] {
|
|
4694
|
+
grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
|
|
4695
|
+
width: 100%;
|
|
4696
|
+
}
|
|
4697
|
+
|
|
4698
|
+
.dndev-radio-group[data-cols='auto-fill'] {
|
|
4699
|
+
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
|
|
4700
|
+
width: 100%;
|
|
4701
|
+
}
|
|
4625
4702
|
|
|
4626
|
-
/* Variant colors for checked labels */
|
|
4703
|
+
/* Variant colors for checked labels - override base pattern */
|
|
4627
4704
|
|
|
4628
4705
|
.dndev-radio-group[data-variant='primary'] label:has([data-state='checked']) {
|
|
4629
4706
|
color: var(--primary);
|
|
@@ -4866,6 +4943,12 @@ em {
|
|
|
4866
4943
|
|
|
4867
4944
|
/* packages/components/src/atomic/Section/Section.css */
|
|
4868
4945
|
|
|
4946
|
+
/* Full-width section wrapper for tone backgrounds */
|
|
4947
|
+
|
|
4948
|
+
.dndev-section-full-width {
|
|
4949
|
+
width: 100%;
|
|
4950
|
+
}
|
|
4951
|
+
|
|
4869
4952
|
/* Content wrapper: constrained + centered + padded */
|
|
4870
4953
|
|
|
4871
4954
|
.dndev-section-content {
|
|
@@ -4885,23 +4968,13 @@ em {
|
|
|
4885
4968
|
}
|
|
4886
4969
|
}
|
|
4887
4970
|
|
|
4888
|
-
/* Section title:
|
|
4971
|
+
/* Section title: uppercase, accent color, letter spacing */
|
|
4889
4972
|
|
|
4890
4973
|
.dndev-section-title {
|
|
4891
|
-
display: block;
|
|
4892
|
-
font-size: var(--font-size-xl);
|
|
4893
|
-
font-weight: var(--font-weight-semibold);
|
|
4894
4974
|
text-transform: uppercase;
|
|
4895
4975
|
letter-spacing: 0.2em;
|
|
4896
|
-
color: var(--accent);
|
|
4897
|
-
margin-
|
|
4898
|
-
}
|
|
4899
|
-
|
|
4900
|
-
/* Grid container with default gap */
|
|
4901
|
-
|
|
4902
|
-
.dndev-section-grid {
|
|
4903
|
-
display: grid;
|
|
4904
|
-
gap: var(--gap-md);
|
|
4976
|
+
color: var(--accent) !important;
|
|
4977
|
+
margin-block-end: var(--gap-md);
|
|
4905
4978
|
}
|
|
4906
4979
|
|
|
4907
4980
|
.dndev-section-full-width[data-text-align='start'] .dndev-section-content {
|
|
@@ -5330,7 +5403,7 @@ em {
|
|
|
5330
5403
|
color: var(--foreground);
|
|
5331
5404
|
background-color: var(--background);
|
|
5332
5405
|
padding: 0.125rem 0.375rem;
|
|
5333
|
-
border-radius: var(--radius);
|
|
5406
|
+
border-radius: var(--radius-interactive);
|
|
5334
5407
|
box-shadow: var(--shadow-sm);
|
|
5335
5408
|
white-space: nowrap;
|
|
5336
5409
|
pointer-events: none;
|
|
@@ -5784,7 +5857,7 @@ em {
|
|
|
5784
5857
|
position: relative;
|
|
5785
5858
|
width: 100%;
|
|
5786
5859
|
overflow-y: auto;
|
|
5787
|
-
border-radius:
|
|
5860
|
+
border-radius: 0;
|
|
5788
5861
|
border: 1px solid var(--border);
|
|
5789
5862
|
}
|
|
5790
5863
|
|
|
@@ -6082,7 +6155,7 @@ em {
|
|
|
6082
6155
|
}
|
|
6083
6156
|
|
|
6084
6157
|
.dndev-text-base {
|
|
6085
|
-
font-weight:
|
|
6158
|
+
font-weight: var(--font-weight-medium);
|
|
6086
6159
|
line-height: var(--line-height);
|
|
6087
6160
|
background-color: transparent; /* Text never has background, only color changes */
|
|
6088
6161
|
}
|
|
@@ -6119,28 +6192,36 @@ em {
|
|
|
6119
6192
|
color: var(--destructive);
|
|
6120
6193
|
}
|
|
6121
6194
|
|
|
6195
|
+
.dndev-text-base[data-variant='code'] {
|
|
6196
|
+
font-family: var(--font-mono);
|
|
6197
|
+
font-size: 0.9em;
|
|
6198
|
+
background: var(--muted);
|
|
6199
|
+
padding: 0.1em 0.4em;
|
|
6200
|
+
border-radius: var(--radius-interactive);
|
|
6201
|
+
}
|
|
6202
|
+
|
|
6122
6203
|
/* Level overrides */
|
|
6123
6204
|
|
|
6124
6205
|
.dndev-text-base[data-level='h1'] {
|
|
6125
6206
|
font-size: var(--font-size-3xl);
|
|
6126
|
-
font-weight:
|
|
6207
|
+
font-weight: var(--font-weight-bold);
|
|
6127
6208
|
letter-spacing: -0.02em;
|
|
6128
6209
|
}
|
|
6129
6210
|
|
|
6130
6211
|
.dndev-text-base[data-level='h2'] {
|
|
6131
|
-
font-size: var(--font-size-
|
|
6132
|
-
font-weight:
|
|
6133
|
-
letter-spacing: -0.01em;
|
|
6212
|
+
font-size: var(--font-size-lg);
|
|
6213
|
+
font-weight: var(--font-weight-semibold);
|
|
6134
6214
|
}
|
|
6135
6215
|
|
|
6136
6216
|
.dndev-text-base[data-level='h3'] {
|
|
6137
|
-
font-size: var(--font-size-
|
|
6138
|
-
font-weight:
|
|
6217
|
+
font-size: var(--font-size-lg);
|
|
6218
|
+
font-weight: var(--font-weight-semibold);
|
|
6139
6219
|
}
|
|
6140
6220
|
|
|
6141
6221
|
.dndev-text-base[data-level='h4'] {
|
|
6142
|
-
font-size: var(--font-size-
|
|
6143
|
-
font-weight:
|
|
6222
|
+
font-size: var(--font-size-base);
|
|
6223
|
+
font-weight: var(--font-weight-medium);
|
|
6224
|
+
color: var(--muted-foreground);
|
|
6144
6225
|
}
|
|
6145
6226
|
|
|
6146
6227
|
.dndev-text-base[data-level='body'] {
|
|
@@ -6200,7 +6281,7 @@ em {
|
|
|
6200
6281
|
flex-shrink: 0;
|
|
6201
6282
|
padding-inline-start: var(--gap-md);
|
|
6202
6283
|
padding-inline-end: var(--gap-md);
|
|
6203
|
-
border-radius: var(--radius-
|
|
6284
|
+
border-radius: var(--radius-interactive);
|
|
6204
6285
|
border: 1px solid var(--border);
|
|
6205
6286
|
font-size: var(--font-size-sm);
|
|
6206
6287
|
}
|
|
@@ -6357,7 +6438,7 @@ em {
|
|
|
6357
6438
|
align-items: center;
|
|
6358
6439
|
gap: 0;
|
|
6359
6440
|
padding: 0.125rem;
|
|
6360
|
-
border-radius: var(--radius);
|
|
6441
|
+
border-radius: var(--radius-interactive);
|
|
6361
6442
|
background-color: var(--muted);
|
|
6362
6443
|
border: var(--border-width) solid var(--border);
|
|
6363
6444
|
}
|
|
@@ -6451,7 +6532,7 @@ em {
|
|
|
6451
6532
|
box-shadow: var(--shadow-lg); /* Stronger shadow for visibility */
|
|
6452
6533
|
padding: 0.375rem 0.5rem; /* 6px 8px - industry standard */
|
|
6453
6534
|
font-size: var(--font-size-xs); /* 12px */
|
|
6454
|
-
border-radius:
|
|
6535
|
+
border-radius: var(--radius-floating);
|
|
6455
6536
|
max-width: 12.5rem; /* 200px */
|
|
6456
6537
|
}
|
|
6457
6538
|
|
|
@@ -6529,6 +6610,16 @@ em {
|
|
|
6529
6610
|
filter: drop-shadow(0 2px 8px rgb(from var(--background) r g b / 0.5));
|
|
6530
6611
|
}
|
|
6531
6612
|
|
|
6613
|
+
/* Loading overlay - shown while iframe loads */
|
|
6614
|
+
|
|
6615
|
+
.dndev-video-loading-overlay {
|
|
6616
|
+
z-index: 1;
|
|
6617
|
+
}
|
|
6618
|
+
|
|
6619
|
+
.dndev-video-loading-overlay .dndev-video-play-overlay {
|
|
6620
|
+
background: rgb(from var(--background) r g b / 0.6);
|
|
6621
|
+
}
|
|
6622
|
+
|
|
6532
6623
|
/* Modal dialog wrapper */
|
|
6533
6624
|
|
|
6534
6625
|
.dndev-video-dialog {
|
|
@@ -7070,7 +7161,7 @@ em {
|
|
|
7070
7161
|
}
|
|
7071
7162
|
|
|
7072
7163
|
.dndev-section-full-width[data-tone='muted'] {
|
|
7073
|
-
background:
|
|
7164
|
+
background: var(--muted);
|
|
7074
7165
|
}
|
|
7075
7166
|
|
|
7076
7167
|
.dndev-section-full-width[data-tone='elevated'] {
|
|
@@ -7093,7 +7184,7 @@ em {
|
|
|
7093
7184
|
}
|
|
7094
7185
|
|
|
7095
7186
|
[data-tone='muted']:not(.dndev-section-full-width) {
|
|
7096
|
-
background:
|
|
7187
|
+
background: var(--muted);
|
|
7097
7188
|
}
|
|
7098
7189
|
|
|
7099
7190
|
[data-tone='elevated']:not(.dndev-section-full-width) {
|
|
@@ -7142,7 +7233,7 @@ code {
|
|
|
7142
7233
|
line-height: 1.5;
|
|
7143
7234
|
white-space: pre-wrap;
|
|
7144
7235
|
word-break: break-all;
|
|
7145
|
-
border-radius: var(--radius-
|
|
7236
|
+
border-radius: var(--radius-interactive);
|
|
7146
7237
|
}
|
|
7147
7238
|
|
|
7148
7239
|
/* Code element + variant = semantic + visual (monospace + background) */
|
|
@@ -7157,7 +7248,7 @@ code[data-variant='code'] {
|
|
|
7157
7248
|
line-height: 1.5;
|
|
7158
7249
|
white-space: pre-wrap;
|
|
7159
7250
|
word-break: break-all;
|
|
7160
|
-
border-radius: var(--radius-
|
|
7251
|
+
border-radius: var(--radius-interactive);
|
|
7161
7252
|
}
|
|
7162
7253
|
|
|
7163
7254
|
/* Heading + code variant = heading size/weight + code background */
|
|
@@ -7175,7 +7266,7 @@ h4[data-variant='code'] {
|
|
|
7175
7266
|
line-height: 1.5;
|
|
7176
7267
|
white-space: pre-wrap;
|
|
7177
7268
|
word-break: break-all;
|
|
7178
|
-
border-radius: var(--radius-
|
|
7269
|
+
border-radius: var(--radius-interactive);
|
|
7179
7270
|
}
|
|
7180
7271
|
|
|
7181
7272
|
/* ===========================
|
|
@@ -7229,6 +7320,7 @@ h4[data-variant='code'] {
|
|
|
7229
7320
|
|
|
7230
7321
|
.dndev-relative {
|
|
7231
7322
|
position: relative;
|
|
7323
|
+
min-width: 0; /* Allow flex items to shrink below content size */
|
|
7232
7324
|
}
|
|
7233
7325
|
|
|
7234
7326
|
.dndev-absolute {
|
|
@@ -7413,6 +7505,40 @@ h4[data-variant='code'] {
|
|
|
7413
7505
|
border: 0;
|
|
7414
7506
|
}
|
|
7415
7507
|
|
|
7508
|
+
/* ===========================
|
|
7509
|
+
PROSE - SEMANTIC TYPOGRAPHY FOR CONTENT PAGES
|
|
7510
|
+
Wrap docs/markdown/article content in .prose for semantic margins
|
|
7511
|
+
Components are unaffected - they own their own spacing
|
|
7512
|
+
=========================== */
|
|
7513
|
+
|
|
7514
|
+
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6 {
|
|
7515
|
+
margin-block: var(--gap-md);
|
|
7516
|
+
}
|
|
7517
|
+
|
|
7518
|
+
.prose p {
|
|
7519
|
+
margin-block: var(--gap-md);
|
|
7520
|
+
}
|
|
7521
|
+
|
|
7522
|
+
.prose ul,.prose ol {
|
|
7523
|
+
padding-inline-start: var(--gap-lg);
|
|
7524
|
+
margin-block: var(--gap-md);
|
|
7525
|
+
}
|
|
7526
|
+
|
|
7527
|
+
.prose li {
|
|
7528
|
+
margin-block: var(--gap-sm);
|
|
7529
|
+
padding-inline-start: var(--gap-sm);
|
|
7530
|
+
}
|
|
7531
|
+
|
|
7532
|
+
/* First/last child: remove top/bottom margin for clean container edges */
|
|
7533
|
+
|
|
7534
|
+
.prose > :first-child {
|
|
7535
|
+
margin-block-start: 0;
|
|
7536
|
+
}
|
|
7537
|
+
|
|
7538
|
+
.prose > :last-child {
|
|
7539
|
+
margin-block-end: 0;
|
|
7540
|
+
}
|
|
7541
|
+
|
|
7416
7542
|
/* ===========================
|
|
7417
7543
|
SHADOW CONTROL (Universal)
|
|
7418
7544
|
Works with any element
|
|
@@ -7640,7 +7766,7 @@ h4[data-variant='code'] {
|
|
|
7640
7766
|
=========================== */
|
|
7641
7767
|
|
|
7642
7768
|
/* Single animation type (fade, slide, or none to disable) - app-wide */
|
|
7643
|
-
--routing-animation:
|
|
7769
|
+
--routing-animation: none;
|
|
7644
7770
|
--routing-default-duration: var(--dur-normal);
|
|
7645
7771
|
|
|
7646
7772
|
/* Breakpoint-specific durations */
|
|
@@ -7720,24 +7846,26 @@ h4[data-variant='code'] {
|
|
|
7720
7846
|
|
|
7721
7847
|
/* Routing animations - applied to main content area */
|
|
7722
7848
|
|
|
7849
|
+
/* Default: visible (progressive enhancement - content shows even if JS fails) */
|
|
7850
|
+
|
|
7723
7851
|
main[role='main'] {
|
|
7724
|
-
opacity:
|
|
7852
|
+
opacity: 1;
|
|
7725
7853
|
}
|
|
7726
7854
|
|
|
7727
|
-
/* Fade animation */
|
|
7855
|
+
/* Fade animation - keyframes handle opacity 0→1 */
|
|
7728
7856
|
|
|
7729
7857
|
main[role='main'][data-routing-animation='fade'] {
|
|
7730
7858
|
animation: routeFadeIn var(--routing-default-duration, 300ms) ease-in forwards;
|
|
7731
7859
|
}
|
|
7732
7860
|
|
|
7733
|
-
/* Slide animation */
|
|
7861
|
+
/* Slide animation - keyframes handle opacity 0→1 */
|
|
7734
7862
|
|
|
7735
7863
|
main[role='main'][data-routing-animation='slide'] {
|
|
7736
7864
|
animation: routeSlideIn var(--routing-default-duration, 300ms) ease-in
|
|
7737
7865
|
forwards;
|
|
7738
7866
|
}
|
|
7739
7867
|
|
|
7740
|
-
/* No animation */
|
|
7868
|
+
/* No animation - already visible by default, explicit for clarity */
|
|
7741
7869
|
|
|
7742
7870
|
main[role='main'][data-routing-animation='none'] {
|
|
7743
7871
|
animation: none;
|
|
@@ -7848,18 +7976,20 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
7848
7976
|
display: grid;
|
|
7849
7977
|
/* ONE DRY grid structure: 3 rows, 2 columns */
|
|
7850
7978
|
/* Footer starts at sidebar edge (column 2) - when sidebar-width is 0px, footer starts at left edge */
|
|
7979
|
+
/* Footer grows with content wrapping. For pixel-perfect calc() accuracy when footer wraps,
|
|
7980
|
+
implement ResizeObserver to update --footer-height dynamically. */
|
|
7851
7981
|
grid-template-areas:
|
|
7852
7982
|
'header header'
|
|
7853
7983
|
'sidebar main'
|
|
7854
7984
|
'footer footer';
|
|
7855
|
-
grid-template-rows: var(--header-height) 1fr var(--footer-height);
|
|
7985
|
+
grid-template-rows: var(--header-height) 1fr minmax(var(--footer-height), auto);
|
|
7856
7986
|
grid-template-columns: var(--sidebar-width) 1fr;
|
|
7857
7987
|
|
|
7858
7988
|
/* Game layout: Grid rows adjust based on breakpoint (footer hidden on tablet/mobile) */
|
|
7859
7989
|
}
|
|
7860
7990
|
|
|
7861
7991
|
[data-layout='game']:root .dndev-layout {
|
|
7862
|
-
grid-template-rows: var(--header-height) 1fr var(--footer-height);
|
|
7992
|
+
grid-template-rows: var(--header-height) 1fr minmax(var(--footer-height), auto);
|
|
7863
7993
|
}
|
|
7864
7994
|
|
|
7865
7995
|
/* ===========================
|
|
@@ -8146,13 +8276,6 @@ aside.sidebar[role='navigation'] .dndev-interactive-label {
|
|
|
8146
8276
|
justify-content: center;
|
|
8147
8277
|
}
|
|
8148
8278
|
|
|
8149
|
-
/* Sidebar navigation menu - 48px buttons/icons default */
|
|
8150
|
-
|
|
8151
|
-
.dndev-sidebar-nav-menu[data-vertical='true'] .dndev-interactive[data-role='menu-item'],.dndev-sidebar-nav-menu[data-vertical='true'] .dndev-interactive[data-role='nav-trigger'] {
|
|
8152
|
-
width: var(--touch-target);
|
|
8153
|
-
height: var(--touch-target);
|
|
8154
|
-
}
|
|
8155
|
-
|
|
8156
8279
|
/* Collapsed sidebar: hide labels, center icons */
|
|
8157
8280
|
|
|
8158
8281
|
/* Hide all auto-display labels */
|
|
@@ -8218,7 +8341,7 @@ footer[role='contentinfo'] {
|
|
|
8218
8341
|
grid-area: footer;
|
|
8219
8342
|
box-sizing: border-box;
|
|
8220
8343
|
grid-column: 1 / -1;
|
|
8221
|
-
height: var(--footer-height);
|
|
8344
|
+
min-height: var(--footer-height);
|
|
8222
8345
|
z-index: var(--z-footer);
|
|
8223
8346
|
|
|
8224
8347
|
/* Theme-aware styling - 100% controlled by theme system */
|
|
@@ -8266,7 +8389,7 @@ footer[role='contentinfo'] > * {
|
|
|
8266
8389
|
|
|
8267
8390
|
footer[role='contentinfo'] .footer-copyright {
|
|
8268
8391
|
color: var(--muted-foreground);
|
|
8269
|
-
font-size: var(--font-size-
|
|
8392
|
+
font-size: var(--font-size-sm);
|
|
8270
8393
|
}
|
|
8271
8394
|
|
|
8272
8395
|
footer[role='contentinfo'] a:not(.dndev-interactive) {
|
|
@@ -8274,7 +8397,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive) {
|
|
|
8274
8397
|
text-decoration: underline;
|
|
8275
8398
|
text-underline-offset: 2px;
|
|
8276
8399
|
color: var(--muted-foreground);
|
|
8277
|
-
font-size: var(--font-size-
|
|
8400
|
+
font-size: var(--font-size-sm);
|
|
8278
8401
|
background: transparent;
|
|
8279
8402
|
}
|
|
8280
8403
|
|
|
@@ -8673,6 +8796,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
8673
8796
|
.dndev-container[data-centered='false'] {
|
|
8674
8797
|
margin-inline-start: 0;
|
|
8675
8798
|
margin-inline-end: 0;
|
|
8799
|
+
justify-content: flex-start;
|
|
8676
8800
|
}
|
|
8677
8801
|
|
|
8678
8802
|
/* Full width - no constraints */
|