@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/styles/index.css
CHANGED
|
@@ -18,9 +18,10 @@
|
|
|
18
18
|
Used by: CSS @media queries, JavaScript hooks, responsive components
|
|
19
19
|
Note: CSS variables don't work in @media, so we use hardcoded px values
|
|
20
20
|
=========================== */
|
|
21
|
-
--breakpoint-mobile: 768px;
|
|
22
|
-
--breakpoint-tablet: 1024px;
|
|
23
|
-
--breakpoint-
|
|
21
|
+
--breakpoint-mobile: 768px; /* < 768 = mobile */
|
|
22
|
+
--breakpoint-tablet: 1024px; /* 768-1023 = tablet */
|
|
23
|
+
--breakpoint-laptop: 1440px; /* 1024-1439 = laptop (key layout split) */
|
|
24
|
+
--breakpoint-desktop: 1920px; /* 1440+ = desktop */
|
|
24
25
|
|
|
25
26
|
/* ===========================
|
|
26
27
|
INTERACTIVE ELEMENTS
|
|
@@ -285,28 +286,48 @@
|
|
|
285
286
|
/* Compact (Admin/Data) - Dense, information-dense layouts - Minor Third (1.2×) */
|
|
286
287
|
|
|
287
288
|
[data-density='compact'] {
|
|
288
|
-
|
|
289
|
-
--font-size-
|
|
290
|
-
--font-size-
|
|
291
|
-
--font-size-
|
|
292
|
-
|
|
293
|
-
--
|
|
294
|
-
|
|
295
|
-
|
|
289
|
+
/* Base sizes: Fluid responsiveness for all text, zoom-safe */
|
|
290
|
+
--font-size-base: clamp(0.875rem, 0.8125rem + 0.25vw, 0.9375rem); /* 14-15px fluid */
|
|
291
|
+
--font-size-lg: clamp(1.05rem, 0.9375rem + 0.5vw, 1.125rem); /* 17-18px fluid */
|
|
292
|
+
--font-size-xl: clamp(1.26rem, 1.125rem + 0.75vw, 1.375rem); /* 20-22px fluid */
|
|
293
|
+
/* Display sizes: Musical scale + fluid responsiveness */
|
|
294
|
+
--font-size-2xl: clamp(
|
|
295
|
+
1.512rem,
|
|
296
|
+
1.375rem + 0.75vw,
|
|
297
|
+
1.625rem
|
|
298
|
+
); /* 24-26px fluid */
|
|
299
|
+
--font-size-3xl: clamp(
|
|
300
|
+
1.814rem,
|
|
301
|
+
1.625rem + 1vw,
|
|
302
|
+
2rem
|
|
303
|
+
); /* 29-32px fluid */
|
|
304
|
+
--gap-sm: clamp(0.375rem, 0.3125rem + 0.25vw, 0.5rem); /* 6-8px fluid */
|
|
305
|
+
--gap-md: clamp(0.75rem, 0.625rem + 0.5vw, 0.875rem); /* 12-14px fluid, zoom-safe */
|
|
306
|
+
--gap-lg: clamp(1.5rem, 1.25rem + 1vw, 1.75rem); /* 24-28px fluid, zoom-safe */
|
|
296
307
|
--line-height: 1.2; /* Minor Third - All text */
|
|
297
308
|
}
|
|
298
309
|
|
|
299
310
|
/* Standard (Docs/SaaS) - DEFAULT, balanced for readability */
|
|
300
311
|
|
|
301
312
|
[data-density='standard'] {
|
|
302
|
-
|
|
303
|
-
--font-size-
|
|
304
|
-
--font-size-
|
|
305
|
-
--font-size-
|
|
306
|
-
|
|
307
|
-
--
|
|
308
|
-
|
|
309
|
-
|
|
313
|
+
/* Base sizes: Fluid responsiveness for all text, zoom-safe */
|
|
314
|
+
--font-size-base: clamp(1rem, 0.9375rem + 0.25vw, 1.0625rem); /* 16-17px fluid */
|
|
315
|
+
--font-size-lg: clamp(1.25rem, 1.125rem + 0.5vw, 1.375rem); /* 20-22px fluid */
|
|
316
|
+
--font-size-xl: clamp(1.563rem, 1.375rem + 0.75vw, 1.75rem); /* 25-28px fluid */
|
|
317
|
+
/* Display sizes: Musical scale + fluid responsiveness */
|
|
318
|
+
--font-size-2xl: clamp(
|
|
319
|
+
1.953rem,
|
|
320
|
+
1.75rem + 1vw,
|
|
321
|
+
2.25rem
|
|
322
|
+
); /* 31-36px fluid */
|
|
323
|
+
--font-size-3xl: clamp(
|
|
324
|
+
2.441rem,
|
|
325
|
+
2rem + 1.5vw,
|
|
326
|
+
3rem
|
|
327
|
+
); /* 39-48px fluid - hero text */
|
|
328
|
+
--gap-sm: clamp(0.5rem, 0.4375rem + 0.25vw, 0.625rem); /* 8-10px fluid */
|
|
329
|
+
--gap-md: clamp(1rem, 0.875rem + 0.5vw, 1.25rem); /* 16-20px fluid, zoom-safe */
|
|
330
|
+
--gap-lg: clamp(2rem, 1.75rem + 1vw, 2.5rem); /* 32-40px fluid, zoom-safe */
|
|
310
331
|
--line-height: 1.25; /* Major Third - All text */
|
|
311
332
|
}
|
|
312
333
|
|
|
@@ -535,52 +556,19 @@ a:not(.dndev-interactive):active {
|
|
|
535
556
|
a:focus-visible {
|
|
536
557
|
outline: 2px solid var(--ring);
|
|
537
558
|
outline-offset: 2px;
|
|
538
|
-
border-radius: var(--radius-
|
|
559
|
+
border-radius: var(--radius-interactive);
|
|
539
560
|
}
|
|
540
561
|
|
|
541
|
-
/*
|
|
542
|
-
BASE LIST STYLING
|
|
543
|
-
Use text-base styles for lists
|
|
544
|
-
=========================== */
|
|
545
|
-
|
|
546
|
-
/* Content lists only - not navigation menus */
|
|
547
|
-
|
|
548
|
-
main ul,
|
|
549
|
-
main ol,
|
|
550
|
-
article ul,
|
|
551
|
-
article ol {
|
|
552
|
-
font-weight: 500;
|
|
553
|
-
line-height: var(--line-height);
|
|
554
|
-
color: var(--foreground);
|
|
555
|
-
background: transparent !important;
|
|
556
|
-
list-style-position: outside;
|
|
557
|
-
padding-inline-start: var(--gap-lg);
|
|
558
|
-
margin-block: var(--gap-md);
|
|
559
|
-
}
|
|
562
|
+
/* Main element - no focus outline (programmatic focus for keyboard nav) */
|
|
560
563
|
|
|
561
|
-
main
|
|
562
|
-
|
|
563
|
-
list-style-type: disc;
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
main ol,
|
|
567
|
-
article ol {
|
|
568
|
-
list-style-type: decimal;
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
main li,
|
|
572
|
-
article li {
|
|
573
|
-
font-weight: 500;
|
|
574
|
-
line-height: var(--line-height);
|
|
575
|
-
color: var(--foreground);
|
|
576
|
-
background: transparent !important;
|
|
577
|
-
margin-block: var(--gap-sm);
|
|
578
|
-
padding-inline-start: var(--gap-sm);
|
|
564
|
+
main:focus-visible {
|
|
565
|
+
outline: none;
|
|
579
566
|
}
|
|
580
567
|
|
|
581
568
|
/* ===========================
|
|
582
|
-
BASE TYPOGRAPHY
|
|
583
|
-
|
|
569
|
+
BASE TYPOGRAPHY - RESET ONLY
|
|
570
|
+
Zero margins, components own their spacing
|
|
571
|
+
Use .prose wrapper for content pages (docs, markdown)
|
|
584
572
|
=========================== */
|
|
585
573
|
|
|
586
574
|
h1,
|
|
@@ -589,49 +577,71 @@ h3,
|
|
|
589
577
|
h4,
|
|
590
578
|
h5,
|
|
591
579
|
h6 {
|
|
592
|
-
font-weight:
|
|
580
|
+
font-weight: var(--font-weight-medium);
|
|
593
581
|
line-height: var(--line-height);
|
|
594
582
|
color: var(--foreground);
|
|
595
583
|
background: transparent;
|
|
596
|
-
margin-block: var(--gap-md);
|
|
597
584
|
}
|
|
598
585
|
|
|
599
586
|
h1 {
|
|
600
587
|
font-family: var(--font-headline);
|
|
601
588
|
font-size: var(--font-size-3xl);
|
|
602
|
-
font-weight:
|
|
589
|
+
font-weight: var(--font-weight-bold);
|
|
603
590
|
letter-spacing: -0.02em;
|
|
604
591
|
}
|
|
605
592
|
|
|
606
593
|
h2 {
|
|
607
594
|
font-family: var(--font-headline);
|
|
608
595
|
font-size: var(--font-size-2xl);
|
|
609
|
-
font-weight:
|
|
596
|
+
font-weight: var(--font-weight-bold);
|
|
610
597
|
letter-spacing: -0.01em;
|
|
611
598
|
}
|
|
612
599
|
|
|
613
600
|
h3 {
|
|
614
601
|
font-size: var(--font-size-xl);
|
|
615
|
-
font-weight:
|
|
602
|
+
font-weight: var(--font-weight-semibold);
|
|
616
603
|
}
|
|
617
604
|
|
|
618
605
|
h4 {
|
|
619
606
|
font-size: var(--font-size-lg);
|
|
620
|
-
font-weight:
|
|
607
|
+
font-weight: var(--font-weight-semibold);
|
|
621
608
|
}
|
|
622
609
|
|
|
623
610
|
h5,
|
|
624
611
|
h6 {
|
|
625
612
|
font-size: var(--font-size-base);
|
|
626
|
-
font-weight:
|
|
613
|
+
font-weight: var(--font-weight-semibold);
|
|
627
614
|
}
|
|
628
615
|
|
|
629
616
|
p {
|
|
630
|
-
font-weight:
|
|
617
|
+
font-weight: var(--font-weight-medium);
|
|
618
|
+
line-height: var(--line-height);
|
|
619
|
+
color: var(--foreground);
|
|
620
|
+
background: transparent;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
ul,
|
|
624
|
+
ol {
|
|
625
|
+
font-weight: var(--font-weight-medium);
|
|
626
|
+
line-height: var(--line-height);
|
|
627
|
+
color: var(--foreground);
|
|
628
|
+
background: transparent;
|
|
629
|
+
list-style-position: outside;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
ul {
|
|
633
|
+
list-style-type: disc;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
ol {
|
|
637
|
+
list-style-type: decimal;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
li {
|
|
641
|
+
font-weight: var(--font-weight-medium);
|
|
631
642
|
line-height: var(--line-height);
|
|
632
643
|
color: var(--foreground);
|
|
633
644
|
background: transparent;
|
|
634
|
-
margin-block: var(--gap-md);
|
|
635
645
|
}
|
|
636
646
|
|
|
637
647
|
/* Semantic HTML - strong and em */
|
|
@@ -678,7 +688,7 @@ em {
|
|
|
678
688
|
.dndev-input {
|
|
679
689
|
display: flex;
|
|
680
690
|
width: 100%;
|
|
681
|
-
border-radius:
|
|
691
|
+
border-radius: var(--radius-interactive);
|
|
682
692
|
border: var(--border-hairline) solid var(--line-2);
|
|
683
693
|
background-color: transparent;
|
|
684
694
|
color: var(--foreground);
|
|
@@ -940,15 +950,21 @@ em {
|
|
|
940
950
|
|
|
941
951
|
.dndev-surface[data-role='card'] {
|
|
942
952
|
padding: var(--gap-md);
|
|
943
|
-
border-radius: var(--radius-
|
|
953
|
+
border-radius: var(--radius-surface);
|
|
944
954
|
}
|
|
945
955
|
|
|
946
956
|
/* Elevated cards - stronger shadow */
|
|
947
957
|
|
|
948
|
-
|
|
958
|
+
/* Apply if elevated=true OR (clickable=true AND elevated!=false) */
|
|
959
|
+
|
|
960
|
+
.dndev-surface[data-elevated='true'],.dndev-surface[data-clickable='true']:not([data-elevated='false']) {
|
|
949
961
|
box-shadow: var(--shadow-xl);
|
|
950
962
|
}
|
|
951
963
|
|
|
964
|
+
:is(.dndev-surface[data-elevated='true'],.dndev-surface[data-clickable='true']:not([data-elevated='false'])):dir(rtl) {
|
|
965
|
+
box-shadow: var(--shadow-xl-rtl);
|
|
966
|
+
}
|
|
967
|
+
|
|
952
968
|
/* Clickable cards - hover effects */
|
|
953
969
|
|
|
954
970
|
.dndev-surface[data-clickable='true'] {
|
|
@@ -1181,7 +1197,7 @@ em {
|
|
|
1181
1197
|
|
|
1182
1198
|
.dndev-floating[data-role='card'] {
|
|
1183
1199
|
padding: var(--gap-md);
|
|
1184
|
-
border-radius: var(--radius-
|
|
1200
|
+
border-radius: var(--radius-surface);
|
|
1185
1201
|
}
|
|
1186
1202
|
|
|
1187
1203
|
.dndev-floating[data-role='floating'] {
|
|
@@ -1643,6 +1659,38 @@ em {
|
|
|
1643
1659
|
color: var(--background);
|
|
1644
1660
|
}
|
|
1645
1661
|
|
|
1662
|
+
/* CONTROL GROUP - Shared pattern for grouped controls (RadioGroup, Checkbox groups) */
|
|
1663
|
+
|
|
1664
|
+
.dndev-control-group {
|
|
1665
|
+
display: grid;
|
|
1666
|
+
gap: var(--gap-md); /* 16px - standard spacing between grouped items */
|
|
1667
|
+
|
|
1668
|
+
/* Control + label pattern - used by RadioGroup, CheckboxFieldComponent, etc. */
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1671
|
+
.dndev-control-group label {
|
|
1672
|
+
display: flex;
|
|
1673
|
+
align-items: center;
|
|
1674
|
+
gap: var(--gap-sm); /* 8px - spacing between control and label */
|
|
1675
|
+
font-size: var(--font-size-base);
|
|
1676
|
+
color: var(--foreground);
|
|
1677
|
+
cursor: pointer;
|
|
1678
|
+
transition: color var(--transition-fast);
|
|
1679
|
+
|
|
1680
|
+
/* Subtle hover on label text */
|
|
1681
|
+
}
|
|
1682
|
+
|
|
1683
|
+
:is(.dndev-control-group label):hover {
|
|
1684
|
+
color: var(--primary);
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
/* Selected state - label color changes */
|
|
1688
|
+
|
|
1689
|
+
:is(.dndev-control-group label):has([data-state='checked']),:is(.dndev-control-group label):has([data-state='on']) {
|
|
1690
|
+
color: var(--primary);
|
|
1691
|
+
font-weight: var(--font-weight-medium);
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1646
1694
|
/**
|
|
1647
1695
|
* Variant system - 8 control variants
|
|
1648
1696
|
* Variants override --control-border to use semantic colors
|
|
@@ -1650,37 +1698,37 @@ em {
|
|
|
1650
1698
|
* On state: fills with variant color
|
|
1651
1699
|
*/
|
|
1652
1700
|
|
|
1653
|
-
.dndev-control[data-variant='primary'] {
|
|
1701
|
+
.dndev-control-group[data-variant='primary'] {
|
|
1654
1702
|
--control-border: var(--primary);
|
|
1655
1703
|
}
|
|
1656
1704
|
|
|
1657
|
-
.dndev-control[data-variant='secondary'] {
|
|
1705
|
+
.dndev-control-group[data-variant='secondary'] {
|
|
1658
1706
|
--control-border: var(--secondary);
|
|
1659
1707
|
}
|
|
1660
1708
|
|
|
1661
|
-
.dndev-control[data-variant='muted'] {
|
|
1709
|
+
.dndev-control-group[data-variant='muted'] {
|
|
1662
1710
|
--control-border: var(--muted-foreground);
|
|
1663
1711
|
}
|
|
1664
1712
|
|
|
1665
|
-
.dndev-control[data-variant='accent'] {
|
|
1713
|
+
.dndev-control-group[data-variant='accent'] {
|
|
1666
1714
|
--control-border: var(--accent);
|
|
1667
1715
|
}
|
|
1668
1716
|
|
|
1669
|
-
.dndev-control[data-variant='success'] {
|
|
1717
|
+
.dndev-control-group[data-variant='success'] {
|
|
1670
1718
|
--control-border: var(--success);
|
|
1671
1719
|
}
|
|
1672
1720
|
|
|
1673
|
-
.dndev-control[data-variant='warning'] {
|
|
1721
|
+
.dndev-control-group[data-variant='warning'] {
|
|
1674
1722
|
--control-border: var(--warning);
|
|
1675
1723
|
}
|
|
1676
1724
|
|
|
1677
|
-
.dndev-control[data-variant='destructive'] {
|
|
1725
|
+
.dndev-control-group[data-variant='destructive'] {
|
|
1678
1726
|
--control-border: var(--destructive);
|
|
1679
1727
|
}
|
|
1680
1728
|
|
|
1681
1729
|
/* Default variant explicitly (same as base) */
|
|
1682
1730
|
|
|
1683
|
-
.dndev-control[data-variant='default'] {
|
|
1731
|
+
.dndev-control-group[data-variant='default'] {
|
|
1684
1732
|
--control-border: color-mix(
|
|
1685
1733
|
in oklab,
|
|
1686
1734
|
var(--foreground) 70%,
|
|
@@ -1768,7 +1816,7 @@ em {
|
|
|
1768
1816
|
display: grid;
|
|
1769
1817
|
gap: var(--gap-sm);
|
|
1770
1818
|
padding: var(--gap-md);
|
|
1771
|
-
border-radius: var(--radius-
|
|
1819
|
+
border-radius: var(--radius-floating);
|
|
1772
1820
|
border: var(--border-hairline) solid var(--border);
|
|
1773
1821
|
/* Inverted floating colors: popover-foreground as background, popover as foreground */
|
|
1774
1822
|
background: color-mix(in oklab, var(--popover-foreground) 95%, transparent);
|
|
@@ -1913,7 +1961,7 @@ em {
|
|
|
1913
1961
|
width: var(--icon-md);
|
|
1914
1962
|
height: var(--icon-md);
|
|
1915
1963
|
border: 2px solid currentColor;
|
|
1916
|
-
border-radius:
|
|
1964
|
+
border-radius: var(--radius-full);
|
|
1917
1965
|
border-right-color: transparent;
|
|
1918
1966
|
animation: spin 1s linear infinite;
|
|
1919
1967
|
}
|
|
@@ -2050,7 +2098,7 @@ em {
|
|
|
2050
2098
|
display: flex;
|
|
2051
2099
|
flex-direction: column;
|
|
2052
2100
|
padding: 0;
|
|
2053
|
-
border-radius:
|
|
2101
|
+
border-radius: var(--radius-floating);
|
|
2054
2102
|
min-width: 15ch; /* Character-based: scales with font size, ensures readable width */
|
|
2055
2103
|
width: -moz-fit-content;
|
|
2056
2104
|
width: fit-content; /* Stretch to fit children */
|
|
@@ -2327,14 +2375,15 @@ em {
|
|
|
2327
2375
|
margin-top: var(--gap-md);
|
|
2328
2376
|
}
|
|
2329
2377
|
|
|
2330
|
-
/* Tech card */
|
|
2378
|
+
/* Tech card - override Card's grid layout for centered content */
|
|
2331
2379
|
|
|
2332
2380
|
.dndev-tech-card {
|
|
2333
2381
|
height: 100%;
|
|
2334
2382
|
min-height: 120px;
|
|
2335
|
-
display: flex;
|
|
2383
|
+
display: flex !important; /* Override Card's grid layout */
|
|
2336
2384
|
align-items: center;
|
|
2337
2385
|
justify-content: center;
|
|
2386
|
+
align-content: center; /* Override Card's align-content: start */
|
|
2338
2387
|
transition:
|
|
2339
2388
|
border-color 0.2s ease,
|
|
2340
2389
|
box-shadow 0.2s ease;
|
|
@@ -2404,7 +2453,7 @@ em {
|
|
|
2404
2453
|
}
|
|
2405
2454
|
|
|
2406
2455
|
.dndev-blockquote-content {
|
|
2407
|
-
font-size:
|
|
2456
|
+
font-size: var(--font-size-lg); /* 20px - emphasized text */
|
|
2408
2457
|
line-height: 1.7; /* Industry standard for readability */
|
|
2409
2458
|
font-weight: 400;
|
|
2410
2459
|
color: inherit;
|
|
@@ -2438,10 +2487,15 @@ em {
|
|
|
2438
2487
|
*/
|
|
2439
2488
|
|
|
2440
2489
|
.dndev-blockquote[data-variant='default'] blockquote {
|
|
2441
|
-
padding: var(--gap-md) var(--gap-md) var(--gap-md) var(--gap-lg);
|
|
2490
|
+
padding: var(--gap-md) calc(var(--gap-md) + 4px) var(--gap-md) var(--gap-lg);
|
|
2442
2491
|
background: var(--muted);
|
|
2443
2492
|
border-inline-start: 4px solid var(--primary);
|
|
2444
|
-
border-
|
|
2493
|
+
border-inline-end: none;
|
|
2494
|
+
border-block-start: none;
|
|
2495
|
+
border-block-end: none;
|
|
2496
|
+
border-radius: var(--radius-interactive) var(--radius-surface)
|
|
2497
|
+
var(--radius-surface) var(--radius-interactive);
|
|
2498
|
+
overflow: hidden;
|
|
2445
2499
|
}
|
|
2446
2500
|
|
|
2447
2501
|
.dndev-blockquote[data-variant='default'] .dndev-blockquote-content {
|
|
@@ -2462,7 +2516,7 @@ em {
|
|
|
2462
2516
|
.dndev-blockquote[data-variant='editorial'] .dndev-blockquote-content {
|
|
2463
2517
|
font-family: Georgia, 'Times New Roman', serif;
|
|
2464
2518
|
font-style: italic;
|
|
2465
|
-
font-size:
|
|
2519
|
+
font-size: var(--font-size-xl); /* 25px - larger for editorial impact */
|
|
2466
2520
|
color: inherit;
|
|
2467
2521
|
opacity: 0.95;
|
|
2468
2522
|
}
|
|
@@ -2480,7 +2534,7 @@ em {
|
|
|
2480
2534
|
.dndev-blockquote[data-variant='testimonial'] {
|
|
2481
2535
|
background: var(--card);
|
|
2482
2536
|
border: 1px solid var(--border);
|
|
2483
|
-
border-radius: var(--radius-
|
|
2537
|
+
border-radius: var(--radius-surface);
|
|
2484
2538
|
padding: calc(var(--gap-lg) + var(--gap-md)); /* 2.5rem */
|
|
2485
2539
|
box-shadow:
|
|
2486
2540
|
0 1px 3px 0 hsl(var(--foreground-hsl) / 0.1),
|
|
@@ -2522,11 +2576,11 @@ em {
|
|
|
2522
2576
|
}
|
|
2523
2577
|
|
|
2524
2578
|
.dndev-blockquote-content {
|
|
2525
|
-
font-size:
|
|
2579
|
+
font-size: var(--font-size-base); /* Slightly smaller on mobile */
|
|
2526
2580
|
}
|
|
2527
2581
|
|
|
2528
2582
|
.dndev-blockquote[data-variant='editorial'] .dndev-blockquote-content {
|
|
2529
|
-
font-size:
|
|
2583
|
+
font-size: var(--font-size-lg);
|
|
2530
2584
|
}
|
|
2531
2585
|
|
|
2532
2586
|
.dndev-blockquote[data-variant='testimonial'] {
|
|
@@ -2556,7 +2610,7 @@ em {
|
|
|
2556
2610
|
color: var(--popover-foreground);
|
|
2557
2611
|
background: var(--popover);
|
|
2558
2612
|
border: var(--border-hairline) solid var(--border);
|
|
2559
|
-
border-radius: var(--radius-
|
|
2613
|
+
border-radius: var(--radius-floating);
|
|
2560
2614
|
box-shadow: var(--shadow-md);
|
|
2561
2615
|
}
|
|
2562
2616
|
|
|
@@ -2842,13 +2896,40 @@ em {
|
|
|
2842
2896
|
/* packages/components/src/atomic/CallToAction/CallToAction.css */
|
|
2843
2897
|
|
|
2844
2898
|
.dndev-cta {
|
|
2845
|
-
/*
|
|
2899
|
+
/* Default gradient */
|
|
2846
2900
|
background: linear-gradient(to right, var(--secondary), var(--background));
|
|
2847
2901
|
color: var(--foreground);
|
|
2848
2902
|
/* Padding for background - vertical only, horizontal handled by content */
|
|
2849
2903
|
padding-block: var(--gap-lg);
|
|
2850
2904
|
}
|
|
2851
2905
|
|
|
2906
|
+
/* Tone variants - leverage existing data-tone system */
|
|
2907
|
+
|
|
2908
|
+
.dndev-cta[data-tone='base'] {
|
|
2909
|
+
background: linear-gradient(to right, var(--secondary), var(--background));
|
|
2910
|
+
}
|
|
2911
|
+
|
|
2912
|
+
.dndev-cta[data-tone='muted'] {
|
|
2913
|
+
background: linear-gradient(to right, var(--muted), var(--background));
|
|
2914
|
+
}
|
|
2915
|
+
|
|
2916
|
+
.dndev-cta[data-tone='accent'] {
|
|
2917
|
+
background: linear-gradient(
|
|
2918
|
+
to right,
|
|
2919
|
+
color-mix(in oklab, var(--accent) 10%, transparent),
|
|
2920
|
+
var(--background)
|
|
2921
|
+
);
|
|
2922
|
+
}
|
|
2923
|
+
|
|
2924
|
+
.dndev-cta[data-tone='contrast'] {
|
|
2925
|
+
background: linear-gradient(to right, var(--foreground), var(--background));
|
|
2926
|
+
color: var(--background);
|
|
2927
|
+
}
|
|
2928
|
+
|
|
2929
|
+
.dndev-cta[data-tone='elevated'] {
|
|
2930
|
+
background: linear-gradient(to right, var(--secondary), var(--background));
|
|
2931
|
+
}
|
|
2932
|
+
|
|
2852
2933
|
.dndev-cta-content {
|
|
2853
2934
|
display: flex;
|
|
2854
2935
|
flex-direction: column;
|
|
@@ -2929,19 +3010,35 @@ em {
|
|
|
2929
3010
|
.dndev-card {
|
|
2930
3011
|
display: grid;
|
|
2931
3012
|
gap: var(--gap-md);
|
|
3013
|
+
text-align: start;
|
|
3014
|
+
align-content: start;
|
|
3015
|
+
}
|
|
3016
|
+
|
|
3017
|
+
.dndev-card-header {
|
|
3018
|
+
display: flex;
|
|
3019
|
+
flex-direction: column;
|
|
3020
|
+
}
|
|
3021
|
+
|
|
3022
|
+
.dndev-card-header > .dndev-stack {
|
|
3023
|
+
min-width: 0;
|
|
3024
|
+
}
|
|
3025
|
+
|
|
3026
|
+
.dndev-card-header > .dndev-stack > .dndev-card-title {
|
|
3027
|
+
flex: 1;
|
|
3028
|
+
min-width: 0;
|
|
2932
3029
|
}
|
|
2933
3030
|
|
|
2934
3031
|
.dndev-card-title {
|
|
2935
|
-
font-size: var(--font-size-xl);
|
|
2936
|
-
font-weight: 600;
|
|
2937
|
-
color: inherit; /* Inherit from surface variant */
|
|
2938
3032
|
margin: 0;
|
|
3033
|
+
min-width: 0;
|
|
3034
|
+
word-wrap: break-word;
|
|
2939
3035
|
}
|
|
2940
3036
|
|
|
2941
3037
|
.dndev-card-subtitle {
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
3038
|
+
margin-top: 0;
|
|
3039
|
+
margin-bottom: 0;
|
|
3040
|
+
min-width: 0;
|
|
3041
|
+
word-wrap: break-word;
|
|
2945
3042
|
}
|
|
2946
3043
|
|
|
2947
3044
|
/* packages/components/src/atomic/Checkbox/Checkbox.css */
|
|
@@ -3334,7 +3431,7 @@ em {
|
|
|
3334
3431
|
|
|
3335
3432
|
.dndev-command-footer-key {
|
|
3336
3433
|
padding: 0.125rem 0.375rem;
|
|
3337
|
-
border-radius:
|
|
3434
|
+
border-radius: 2px;
|
|
3338
3435
|
background: var(--muted);
|
|
3339
3436
|
border: 1px solid var(--border);
|
|
3340
3437
|
font-family: var(--font-mono);
|
|
@@ -3654,56 +3751,34 @@ em {
|
|
|
3654
3751
|
display: grid;
|
|
3655
3752
|
min-width: 0;
|
|
3656
3753
|
width: 100%;
|
|
3754
|
+
/* Default: use mobile columns */
|
|
3755
|
+
grid-template-columns: repeat(var(--grid-cols-mobile, 1), 1fr);
|
|
3657
3756
|
}
|
|
3658
3757
|
|
|
3659
|
-
/*
|
|
3758
|
+
/* Responsive columns via media queries */
|
|
3660
3759
|
|
|
3661
|
-
|
|
3662
|
-
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
3663
|
-
}
|
|
3664
|
-
|
|
3665
|
-
.dndev-grid-component[data-cols='2'] {
|
|
3666
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3667
|
-
}
|
|
3668
|
-
|
|
3669
|
-
.dndev-grid-component[data-cols='3'] {
|
|
3670
|
-
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
3671
|
-
}
|
|
3760
|
+
/* Tablet: 768px+ */
|
|
3672
3761
|
|
|
3673
|
-
|
|
3674
|
-
grid-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
.dndev-grid-component[data-cols='5'] {
|
|
3678
|
-
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
3679
|
-
}
|
|
3680
|
-
|
|
3681
|
-
.dndev-grid-component[data-cols='6'] {
|
|
3682
|
-
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
3762
|
+
@media (min-width: 768px) {
|
|
3763
|
+
.dndev-grid-component {
|
|
3764
|
+
grid-template-columns: repeat(var(--grid-cols-tablet, 1), 1fr);
|
|
3765
|
+
}
|
|
3683
3766
|
}
|
|
3684
3767
|
|
|
3685
|
-
|
|
3686
|
-
grid-template-columns: repeat(10, minmax(0, 1fr));
|
|
3687
|
-
}
|
|
3768
|
+
/* Laptop: 1024px+ (key layout split) */
|
|
3688
3769
|
|
|
3689
|
-
|
|
3690
|
-
grid-
|
|
3770
|
+
@media (min-width: 1024px) {
|
|
3771
|
+
.dndev-grid-component {
|
|
3772
|
+
grid-template-columns: repeat(var(--grid-cols-laptop, 1), 1fr);
|
|
3773
|
+
}
|
|
3691
3774
|
}
|
|
3692
3775
|
|
|
3693
|
-
/*
|
|
3776
|
+
/* Desktop: 1440px+ */
|
|
3694
3777
|
|
|
3695
|
-
|
|
3696
|
-
grid-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
);
|
|
3700
|
-
}
|
|
3701
|
-
|
|
3702
|
-
.dndev-grid-component[data-cols='auto-fill'] {
|
|
3703
|
-
grid-template-columns: repeat(
|
|
3704
|
-
auto-fill,
|
|
3705
|
-
minmax(min(100%, var(--min-col-width, 250px)), 1fr)
|
|
3706
|
-
);
|
|
3778
|
+
@media (min-width: 1440px) {
|
|
3779
|
+
.dndev-grid-component {
|
|
3780
|
+
grid-template-columns: repeat(var(--grid-cols-desktop, 1), 1fr);
|
|
3781
|
+
}
|
|
3707
3782
|
}
|
|
3708
3783
|
|
|
3709
3784
|
/* Spacing from CSS variables */
|
|
@@ -3849,21 +3924,7 @@ em {
|
|
|
3849
3924
|
}
|
|
3850
3925
|
|
|
3851
3926
|
.dndev-hero-subtitle {
|
|
3852
|
-
font-size: var(--font-size-
|
|
3853
|
-
}
|
|
3854
|
-
|
|
3855
|
-
/* Responsive Content Visibility */
|
|
3856
|
-
|
|
3857
|
-
@media (width < 1024px) {
|
|
3858
|
-
.dndev-hero-section .dndev-desktop-only {
|
|
3859
|
-
display: none !important;
|
|
3860
|
-
}
|
|
3861
|
-
}
|
|
3862
|
-
|
|
3863
|
-
@media (width >= 1024px) {
|
|
3864
|
-
.dndev-hero-section .dndev-mobile-only {
|
|
3865
|
-
display: none !important;
|
|
3866
|
-
}
|
|
3927
|
+
font-size: var(--font-size-lg); /* 20px - muted via component */
|
|
3867
3928
|
}
|
|
3868
3929
|
|
|
3869
3930
|
/* packages/components/src/atomic/HoverCard/HoverCard.css */
|
|
@@ -3882,7 +3943,7 @@ em {
|
|
|
3882
3943
|
height: var(--touch-target);
|
|
3883
3944
|
padding: 0;
|
|
3884
3945
|
border: 1px solid var(--card-foreground);
|
|
3885
|
-
border-radius: var(--radius-
|
|
3946
|
+
border-radius: var(--radius-surface);
|
|
3886
3947
|
background: transparent;
|
|
3887
3948
|
display: inline-flex;
|
|
3888
3949
|
align-items: center;
|
|
@@ -4022,7 +4083,7 @@ em {
|
|
|
4022
4083
|
|
|
4023
4084
|
.dndev-json-viewer-container {
|
|
4024
4085
|
background-color: var(--muted);
|
|
4025
|
-
border-radius: var(--radius);
|
|
4086
|
+
border-radius: var(--radius-surface);
|
|
4026
4087
|
padding: 1rem;
|
|
4027
4088
|
overflow: auto;
|
|
4028
4089
|
max-height: 600px;
|
|
@@ -4079,7 +4140,7 @@ em {
|
|
|
4079
4140
|
align-items: flex-start;
|
|
4080
4141
|
gap: 0.25rem;
|
|
4081
4142
|
cursor: pointer;
|
|
4082
|
-
border-radius: var(--radius-
|
|
4143
|
+
border-radius: var(--radius-interactive);
|
|
4083
4144
|
padding-inline-start: 0.25rem;
|
|
4084
4145
|
padding-inline-end: 0.25rem;
|
|
4085
4146
|
margin-inline-start: -0.25rem;
|
|
@@ -4176,16 +4237,13 @@ em {
|
|
|
4176
4237
|
.dndev-list {
|
|
4177
4238
|
display: flex;
|
|
4178
4239
|
flex-direction: column;
|
|
4179
|
-
gap: var(--gap-
|
|
4240
|
+
gap: var(--gap-sm);
|
|
4180
4241
|
padding-inline-start: 0; /* Controllable via parent/style prop */
|
|
4242
|
+
margin: 0;
|
|
4181
4243
|
list-style-position: outside;
|
|
4182
|
-
|
|
4244
|
+
text-align: start; /* Always start-aligned, even when parent is centered */
|
|
4183
4245
|
}
|
|
4184
4246
|
|
|
4185
|
-
.dndev-list[data-gap='none'] {
|
|
4186
|
-
gap: var(--gap-none);
|
|
4187
|
-
}
|
|
4188
|
-
|
|
4189
4247
|
.dndev-list[data-gap='tight'] {
|
|
4190
4248
|
gap: var(--gap-sm);
|
|
4191
4249
|
}
|
|
@@ -4234,29 +4292,18 @@ em {
|
|
|
4234
4292
|
font-size: var(--font-size-base);
|
|
4235
4293
|
}
|
|
4236
4294
|
|
|
4237
|
-
/*
|
|
4295
|
+
/* Always use flex layout for consistent alignment */
|
|
4238
4296
|
|
|
4239
4297
|
.dndev-list .dndev-list-item {
|
|
4240
4298
|
font-size: var(--font-size-sm);
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
|
|
4299
|
+
display: flex;
|
|
4300
|
+
align-items: flex-start;
|
|
4301
|
+
gap: var(--gap-sm);
|
|
4302
|
+
list-style: none; /* Remove native marker */
|
|
4303
|
+
margin-block: 0;
|
|
4304
|
+
padding-inline-start: 0;
|
|
4244
4305
|
}
|
|
4245
4306
|
|
|
4246
|
-
:is(.dndev-list .dndev-list-item)::marker {
|
|
4247
|
-
color: currentColor;
|
|
4248
|
-
}
|
|
4249
|
-
|
|
4250
|
-
/* Only use flex when icon is present */
|
|
4251
|
-
|
|
4252
|
-
:is(.dndev-list .dndev-list-item):has(.dndev-list-item-icon) {
|
|
4253
|
-
display: flex;
|
|
4254
|
-
align-items: center; /* Center vertically */
|
|
4255
|
-
gap: var(--gap-sm);
|
|
4256
|
-
list-style: none; /* Remove native marker when using icon */
|
|
4257
|
-
padding-inline-start: 0; /* Reset padding when flex */
|
|
4258
|
-
}
|
|
4259
|
-
|
|
4260
4307
|
:is(.dndev-list .dndev-list-item) .dndev-list-item-icon {
|
|
4261
4308
|
display: flex;
|
|
4262
4309
|
align-items: center;
|
|
@@ -4440,7 +4487,7 @@ em {
|
|
|
4440
4487
|
grid-row: span 3;
|
|
4441
4488
|
height: 100%;
|
|
4442
4489
|
padding: var(--gap-md);
|
|
4443
|
-
border-radius: var(--radius);
|
|
4490
|
+
border-radius: var(--radius-floating);
|
|
4444
4491
|
background: linear-gradient(
|
|
4445
4492
|
to bottom,
|
|
4446
4493
|
color-mix(in oklab, var(--muted) 50%, transparent),
|
|
@@ -4464,7 +4511,7 @@ em {
|
|
|
4464
4511
|
|
|
4465
4512
|
.dndev-nav-menu-item-container {
|
|
4466
4513
|
padding: var(--gap-md);
|
|
4467
|
-
border-radius: var(--radius);
|
|
4514
|
+
border-radius: var(--radius-floating);
|
|
4468
4515
|
text-decoration: none;
|
|
4469
4516
|
outline: none;
|
|
4470
4517
|
}
|
|
@@ -4599,27 +4646,57 @@ em {
|
|
|
4599
4646
|
|
|
4600
4647
|
/* packages/components/src/atomic/RadioGroup/RadioGroup.css */
|
|
4601
4648
|
|
|
4602
|
-
.dndev-
|
|
4603
|
-
display: grid;
|
|
4604
|
-
gap: var(--gap-sm);
|
|
4649
|
+
/* Uses shared .dndev-control-group pattern from patterns.css */
|
|
4605
4650
|
|
|
4606
|
-
|
|
4607
|
-
}
|
|
4651
|
+
/* Root is display: grid - items are direct children */
|
|
4608
4652
|
|
|
4609
|
-
|
|
4610
|
-
font-size: var(--font-size-base);
|
|
4611
|
-
color: var(--foreground);
|
|
4612
|
-
transition: color var(--dur-fast) var(--ease-in-out);
|
|
4653
|
+
/* Grid columns via data-cols attribute */
|
|
4613
4654
|
|
|
4614
|
-
|
|
4655
|
+
.dndev-radio-group[data-cols] {
|
|
4656
|
+
width: -moz-fit-content;
|
|
4657
|
+
width: fit-content;
|
|
4658
|
+
margin-inline: auto; /* Self-center in parent */
|
|
4615
4659
|
}
|
|
4616
4660
|
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4661
|
+
.dndev-radio-group[data-cols='2'] {
|
|
4662
|
+
grid-template-columns: repeat(2, auto);
|
|
4663
|
+
}
|
|
4664
|
+
|
|
4665
|
+
.dndev-radio-group[data-cols='3'] {
|
|
4666
|
+
grid-template-columns: repeat(3, auto);
|
|
4667
|
+
}
|
|
4668
|
+
|
|
4669
|
+
.dndev-radio-group[data-cols='4'] {
|
|
4670
|
+
grid-template-columns: repeat(4, auto);
|
|
4671
|
+
}
|
|
4672
|
+
|
|
4673
|
+
.dndev-radio-group[data-cols='5'] {
|
|
4674
|
+
grid-template-columns: repeat(5, auto);
|
|
4675
|
+
}
|
|
4676
|
+
|
|
4677
|
+
.dndev-radio-group[data-cols='6'] {
|
|
4678
|
+
grid-template-columns: repeat(6, auto);
|
|
4679
|
+
}
|
|
4680
|
+
|
|
4681
|
+
.dndev-radio-group[data-cols='10'] {
|
|
4682
|
+
grid-template-columns: repeat(10, auto);
|
|
4683
|
+
}
|
|
4684
|
+
|
|
4685
|
+
.dndev-radio-group[data-cols='12'] {
|
|
4686
|
+
grid-template-columns: repeat(12, auto);
|
|
4687
|
+
}
|
|
4688
|
+
|
|
4689
|
+
.dndev-radio-group[data-cols='auto-fit'] {
|
|
4690
|
+
grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
|
|
4691
|
+
width: 100%;
|
|
4692
|
+
}
|
|
4693
|
+
|
|
4694
|
+
.dndev-radio-group[data-cols='auto-fill'] {
|
|
4695
|
+
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
|
|
4696
|
+
width: 100%;
|
|
4697
|
+
}
|
|
4621
4698
|
|
|
4622
|
-
/* Variant colors for checked labels */
|
|
4699
|
+
/* Variant colors for checked labels - override base pattern */
|
|
4623
4700
|
|
|
4624
4701
|
.dndev-radio-group[data-variant='primary'] label:has([data-state='checked']) {
|
|
4625
4702
|
color: var(--primary);
|
|
@@ -4862,6 +4939,12 @@ em {
|
|
|
4862
4939
|
|
|
4863
4940
|
/* packages/components/src/atomic/Section/Section.css */
|
|
4864
4941
|
|
|
4942
|
+
/* Full-width section wrapper for tone backgrounds */
|
|
4943
|
+
|
|
4944
|
+
.dndev-section-full-width {
|
|
4945
|
+
width: 100%;
|
|
4946
|
+
}
|
|
4947
|
+
|
|
4865
4948
|
/* Content wrapper: constrained + centered + padded */
|
|
4866
4949
|
|
|
4867
4950
|
.dndev-section-content {
|
|
@@ -4881,23 +4964,13 @@ em {
|
|
|
4881
4964
|
}
|
|
4882
4965
|
}
|
|
4883
4966
|
|
|
4884
|
-
/* Section title:
|
|
4967
|
+
/* Section title: uppercase, accent color, letter spacing */
|
|
4885
4968
|
|
|
4886
4969
|
.dndev-section-title {
|
|
4887
|
-
display: block;
|
|
4888
|
-
font-size: var(--font-size-xl);
|
|
4889
|
-
font-weight: var(--font-weight-semibold);
|
|
4890
4970
|
text-transform: uppercase;
|
|
4891
4971
|
letter-spacing: 0.2em;
|
|
4892
|
-
color: var(--accent);
|
|
4893
|
-
margin-
|
|
4894
|
-
}
|
|
4895
|
-
|
|
4896
|
-
/* Grid container with default gap */
|
|
4897
|
-
|
|
4898
|
-
.dndev-section-grid {
|
|
4899
|
-
display: grid;
|
|
4900
|
-
gap: var(--gap-md);
|
|
4972
|
+
color: var(--accent) !important;
|
|
4973
|
+
margin-block-end: var(--gap-md);
|
|
4901
4974
|
}
|
|
4902
4975
|
|
|
4903
4976
|
.dndev-section-full-width[data-text-align='start'] .dndev-section-content {
|
|
@@ -5326,7 +5399,7 @@ em {
|
|
|
5326
5399
|
color: var(--foreground);
|
|
5327
5400
|
background-color: var(--background);
|
|
5328
5401
|
padding: 0.125rem 0.375rem;
|
|
5329
|
-
border-radius: var(--radius);
|
|
5402
|
+
border-radius: var(--radius-interactive);
|
|
5330
5403
|
box-shadow: var(--shadow-sm);
|
|
5331
5404
|
white-space: nowrap;
|
|
5332
5405
|
pointer-events: none;
|
|
@@ -5780,7 +5853,7 @@ em {
|
|
|
5780
5853
|
position: relative;
|
|
5781
5854
|
width: 100%;
|
|
5782
5855
|
overflow-y: auto;
|
|
5783
|
-
border-radius:
|
|
5856
|
+
border-radius: 0;
|
|
5784
5857
|
border: 1px solid var(--border);
|
|
5785
5858
|
}
|
|
5786
5859
|
|
|
@@ -6078,7 +6151,7 @@ em {
|
|
|
6078
6151
|
}
|
|
6079
6152
|
|
|
6080
6153
|
.dndev-text-base {
|
|
6081
|
-
font-weight:
|
|
6154
|
+
font-weight: var(--font-weight-medium);
|
|
6082
6155
|
line-height: var(--line-height);
|
|
6083
6156
|
background-color: transparent; /* Text never has background, only color changes */
|
|
6084
6157
|
}
|
|
@@ -6115,28 +6188,36 @@ em {
|
|
|
6115
6188
|
color: var(--destructive);
|
|
6116
6189
|
}
|
|
6117
6190
|
|
|
6191
|
+
.dndev-text-base[data-variant='code'] {
|
|
6192
|
+
font-family: var(--font-mono);
|
|
6193
|
+
font-size: 0.9em;
|
|
6194
|
+
background: var(--muted);
|
|
6195
|
+
padding: 0.1em 0.4em;
|
|
6196
|
+
border-radius: var(--radius-interactive);
|
|
6197
|
+
}
|
|
6198
|
+
|
|
6118
6199
|
/* Level overrides */
|
|
6119
6200
|
|
|
6120
6201
|
.dndev-text-base[data-level='h1'] {
|
|
6121
6202
|
font-size: var(--font-size-3xl);
|
|
6122
|
-
font-weight:
|
|
6203
|
+
font-weight: var(--font-weight-bold);
|
|
6123
6204
|
letter-spacing: -0.02em;
|
|
6124
6205
|
}
|
|
6125
6206
|
|
|
6126
6207
|
.dndev-text-base[data-level='h2'] {
|
|
6127
|
-
font-size: var(--font-size-
|
|
6128
|
-
font-weight:
|
|
6129
|
-
letter-spacing: -0.01em;
|
|
6208
|
+
font-size: var(--font-size-lg);
|
|
6209
|
+
font-weight: var(--font-weight-semibold);
|
|
6130
6210
|
}
|
|
6131
6211
|
|
|
6132
6212
|
.dndev-text-base[data-level='h3'] {
|
|
6133
|
-
font-size: var(--font-size-
|
|
6134
|
-
font-weight:
|
|
6213
|
+
font-size: var(--font-size-lg);
|
|
6214
|
+
font-weight: var(--font-weight-semibold);
|
|
6135
6215
|
}
|
|
6136
6216
|
|
|
6137
6217
|
.dndev-text-base[data-level='h4'] {
|
|
6138
|
-
font-size: var(--font-size-
|
|
6139
|
-
font-weight:
|
|
6218
|
+
font-size: var(--font-size-base);
|
|
6219
|
+
font-weight: var(--font-weight-medium);
|
|
6220
|
+
color: var(--muted-foreground);
|
|
6140
6221
|
}
|
|
6141
6222
|
|
|
6142
6223
|
.dndev-text-base[data-level='body'] {
|
|
@@ -6196,7 +6277,7 @@ em {
|
|
|
6196
6277
|
flex-shrink: 0;
|
|
6197
6278
|
padding-inline-start: var(--gap-md);
|
|
6198
6279
|
padding-inline-end: var(--gap-md);
|
|
6199
|
-
border-radius: var(--radius-
|
|
6280
|
+
border-radius: var(--radius-interactive);
|
|
6200
6281
|
border: 1px solid var(--border);
|
|
6201
6282
|
font-size: var(--font-size-sm);
|
|
6202
6283
|
}
|
|
@@ -6353,7 +6434,7 @@ em {
|
|
|
6353
6434
|
align-items: center;
|
|
6354
6435
|
gap: 0;
|
|
6355
6436
|
padding: 0.125rem;
|
|
6356
|
-
border-radius: var(--radius);
|
|
6437
|
+
border-radius: var(--radius-interactive);
|
|
6357
6438
|
background-color: var(--muted);
|
|
6358
6439
|
border: var(--border-width) solid var(--border);
|
|
6359
6440
|
}
|
|
@@ -6447,7 +6528,7 @@ em {
|
|
|
6447
6528
|
box-shadow: var(--shadow-lg); /* Stronger shadow for visibility */
|
|
6448
6529
|
padding: 0.375rem 0.5rem; /* 6px 8px - industry standard */
|
|
6449
6530
|
font-size: var(--font-size-xs); /* 12px */
|
|
6450
|
-
border-radius:
|
|
6531
|
+
border-radius: var(--radius-floating);
|
|
6451
6532
|
max-width: 12.5rem; /* 200px */
|
|
6452
6533
|
}
|
|
6453
6534
|
|
|
@@ -6525,6 +6606,16 @@ em {
|
|
|
6525
6606
|
filter: drop-shadow(0 2px 8px rgb(from var(--background) r g b / 0.5));
|
|
6526
6607
|
}
|
|
6527
6608
|
|
|
6609
|
+
/* Loading overlay - shown while iframe loads */
|
|
6610
|
+
|
|
6611
|
+
.dndev-video-loading-overlay {
|
|
6612
|
+
z-index: 1;
|
|
6613
|
+
}
|
|
6614
|
+
|
|
6615
|
+
.dndev-video-loading-overlay .dndev-video-play-overlay {
|
|
6616
|
+
background: rgb(from var(--background) r g b / 0.6);
|
|
6617
|
+
}
|
|
6618
|
+
|
|
6528
6619
|
/* Modal dialog wrapper */
|
|
6529
6620
|
|
|
6530
6621
|
.dndev-video-dialog {
|
|
@@ -7066,7 +7157,7 @@ em {
|
|
|
7066
7157
|
}
|
|
7067
7158
|
|
|
7068
7159
|
.dndev-section-full-width[data-tone='muted'] {
|
|
7069
|
-
background:
|
|
7160
|
+
background: var(--muted);
|
|
7070
7161
|
}
|
|
7071
7162
|
|
|
7072
7163
|
.dndev-section-full-width[data-tone='elevated'] {
|
|
@@ -7089,7 +7180,7 @@ em {
|
|
|
7089
7180
|
}
|
|
7090
7181
|
|
|
7091
7182
|
[data-tone='muted']:not(.dndev-section-full-width) {
|
|
7092
|
-
background:
|
|
7183
|
+
background: var(--muted);
|
|
7093
7184
|
}
|
|
7094
7185
|
|
|
7095
7186
|
[data-tone='elevated']:not(.dndev-section-full-width) {
|
|
@@ -7138,7 +7229,7 @@ code {
|
|
|
7138
7229
|
line-height: 1.5;
|
|
7139
7230
|
white-space: pre-wrap;
|
|
7140
7231
|
word-break: break-all;
|
|
7141
|
-
border-radius: var(--radius-
|
|
7232
|
+
border-radius: var(--radius-interactive);
|
|
7142
7233
|
}
|
|
7143
7234
|
|
|
7144
7235
|
/* Code element + variant = semantic + visual (monospace + background) */
|
|
@@ -7153,7 +7244,7 @@ code[data-variant='code'] {
|
|
|
7153
7244
|
line-height: 1.5;
|
|
7154
7245
|
white-space: pre-wrap;
|
|
7155
7246
|
word-break: break-all;
|
|
7156
|
-
border-radius: var(--radius-
|
|
7247
|
+
border-radius: var(--radius-interactive);
|
|
7157
7248
|
}
|
|
7158
7249
|
|
|
7159
7250
|
/* Heading + code variant = heading size/weight + code background */
|
|
@@ -7171,7 +7262,7 @@ h4[data-variant='code'] {
|
|
|
7171
7262
|
line-height: 1.5;
|
|
7172
7263
|
white-space: pre-wrap;
|
|
7173
7264
|
word-break: break-all;
|
|
7174
|
-
border-radius: var(--radius-
|
|
7265
|
+
border-radius: var(--radius-interactive);
|
|
7175
7266
|
}
|
|
7176
7267
|
|
|
7177
7268
|
/* ===========================
|
|
@@ -7225,6 +7316,7 @@ h4[data-variant='code'] {
|
|
|
7225
7316
|
|
|
7226
7317
|
.dndev-relative {
|
|
7227
7318
|
position: relative;
|
|
7319
|
+
min-width: 0; /* Allow flex items to shrink below content size */
|
|
7228
7320
|
}
|
|
7229
7321
|
|
|
7230
7322
|
.dndev-absolute {
|
|
@@ -7409,6 +7501,40 @@ h4[data-variant='code'] {
|
|
|
7409
7501
|
border: 0;
|
|
7410
7502
|
}
|
|
7411
7503
|
|
|
7504
|
+
/* ===========================
|
|
7505
|
+
PROSE - SEMANTIC TYPOGRAPHY FOR CONTENT PAGES
|
|
7506
|
+
Wrap docs/markdown/article content in .prose for semantic margins
|
|
7507
|
+
Components are unaffected - they own their own spacing
|
|
7508
|
+
=========================== */
|
|
7509
|
+
|
|
7510
|
+
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6 {
|
|
7511
|
+
margin-block: var(--gap-md);
|
|
7512
|
+
}
|
|
7513
|
+
|
|
7514
|
+
.prose p {
|
|
7515
|
+
margin-block: var(--gap-md);
|
|
7516
|
+
}
|
|
7517
|
+
|
|
7518
|
+
.prose ul,.prose ol {
|
|
7519
|
+
padding-inline-start: var(--gap-lg);
|
|
7520
|
+
margin-block: var(--gap-md);
|
|
7521
|
+
}
|
|
7522
|
+
|
|
7523
|
+
.prose li {
|
|
7524
|
+
margin-block: var(--gap-sm);
|
|
7525
|
+
padding-inline-start: var(--gap-sm);
|
|
7526
|
+
}
|
|
7527
|
+
|
|
7528
|
+
/* First/last child: remove top/bottom margin for clean container edges */
|
|
7529
|
+
|
|
7530
|
+
.prose > :first-child {
|
|
7531
|
+
margin-block-start: 0;
|
|
7532
|
+
}
|
|
7533
|
+
|
|
7534
|
+
.prose > :last-child {
|
|
7535
|
+
margin-block-end: 0;
|
|
7536
|
+
}
|
|
7537
|
+
|
|
7412
7538
|
/* ===========================
|
|
7413
7539
|
SHADOW CONTROL (Universal)
|
|
7414
7540
|
Works with any element
|
|
@@ -7636,7 +7762,7 @@ h4[data-variant='code'] {
|
|
|
7636
7762
|
=========================== */
|
|
7637
7763
|
|
|
7638
7764
|
/* Single animation type (fade, slide, or none to disable) - app-wide */
|
|
7639
|
-
--routing-animation:
|
|
7765
|
+
--routing-animation: none;
|
|
7640
7766
|
--routing-default-duration: var(--dur-normal);
|
|
7641
7767
|
|
|
7642
7768
|
/* Breakpoint-specific durations */
|
|
@@ -7716,24 +7842,26 @@ h4[data-variant='code'] {
|
|
|
7716
7842
|
|
|
7717
7843
|
/* Routing animations - applied to main content area */
|
|
7718
7844
|
|
|
7845
|
+
/* Default: visible (progressive enhancement - content shows even if JS fails) */
|
|
7846
|
+
|
|
7719
7847
|
main[role='main'] {
|
|
7720
|
-
opacity:
|
|
7848
|
+
opacity: 1;
|
|
7721
7849
|
}
|
|
7722
7850
|
|
|
7723
|
-
/* Fade animation */
|
|
7851
|
+
/* Fade animation - keyframes handle opacity 0→1 */
|
|
7724
7852
|
|
|
7725
7853
|
main[role='main'][data-routing-animation='fade'] {
|
|
7726
7854
|
animation: routeFadeIn var(--routing-default-duration, 300ms) ease-in forwards;
|
|
7727
7855
|
}
|
|
7728
7856
|
|
|
7729
|
-
/* Slide animation */
|
|
7857
|
+
/* Slide animation - keyframes handle opacity 0→1 */
|
|
7730
7858
|
|
|
7731
7859
|
main[role='main'][data-routing-animation='slide'] {
|
|
7732
7860
|
animation: routeSlideIn var(--routing-default-duration, 300ms) ease-in
|
|
7733
7861
|
forwards;
|
|
7734
7862
|
}
|
|
7735
7863
|
|
|
7736
|
-
/* No animation */
|
|
7864
|
+
/* No animation - already visible by default, explicit for clarity */
|
|
7737
7865
|
|
|
7738
7866
|
main[role='main'][data-routing-animation='none'] {
|
|
7739
7867
|
animation: none;
|
|
@@ -7844,18 +7972,20 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
7844
7972
|
display: grid;
|
|
7845
7973
|
/* ONE DRY grid structure: 3 rows, 2 columns */
|
|
7846
7974
|
/* Footer starts at sidebar edge (column 2) - when sidebar-width is 0px, footer starts at left edge */
|
|
7975
|
+
/* Footer grows with content wrapping. For pixel-perfect calc() accuracy when footer wraps,
|
|
7976
|
+
implement ResizeObserver to update --footer-height dynamically. */
|
|
7847
7977
|
grid-template-areas:
|
|
7848
7978
|
'header header'
|
|
7849
7979
|
'sidebar main'
|
|
7850
7980
|
'footer footer';
|
|
7851
|
-
grid-template-rows: var(--header-height) 1fr var(--footer-height);
|
|
7981
|
+
grid-template-rows: var(--header-height) 1fr minmax(var(--footer-height), auto);
|
|
7852
7982
|
grid-template-columns: var(--sidebar-width) 1fr;
|
|
7853
7983
|
|
|
7854
7984
|
/* Game layout: Grid rows adjust based on breakpoint (footer hidden on tablet/mobile) */
|
|
7855
7985
|
}
|
|
7856
7986
|
|
|
7857
7987
|
[data-layout='game']:root .dndev-layout {
|
|
7858
|
-
grid-template-rows: var(--header-height) 1fr var(--footer-height);
|
|
7988
|
+
grid-template-rows: var(--header-height) 1fr minmax(var(--footer-height), auto);
|
|
7859
7989
|
}
|
|
7860
7990
|
|
|
7861
7991
|
/* ===========================
|
|
@@ -8142,13 +8272,6 @@ aside.sidebar[role='navigation'] .dndev-interactive-label {
|
|
|
8142
8272
|
justify-content: center;
|
|
8143
8273
|
}
|
|
8144
8274
|
|
|
8145
|
-
/* Sidebar navigation menu - 48px buttons/icons default */
|
|
8146
|
-
|
|
8147
|
-
.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'] {
|
|
8148
|
-
width: var(--touch-target);
|
|
8149
|
-
height: var(--touch-target);
|
|
8150
|
-
}
|
|
8151
|
-
|
|
8152
8275
|
/* Collapsed sidebar: hide labels, center icons */
|
|
8153
8276
|
|
|
8154
8277
|
/* Hide all auto-display labels */
|
|
@@ -8214,7 +8337,7 @@ footer[role='contentinfo'] {
|
|
|
8214
8337
|
grid-area: footer;
|
|
8215
8338
|
box-sizing: border-box;
|
|
8216
8339
|
grid-column: 1 / -1;
|
|
8217
|
-
height: var(--footer-height);
|
|
8340
|
+
min-height: var(--footer-height);
|
|
8218
8341
|
z-index: var(--z-footer);
|
|
8219
8342
|
|
|
8220
8343
|
/* Theme-aware styling - 100% controlled by theme system */
|
|
@@ -8262,7 +8385,7 @@ footer[role='contentinfo'] > * {
|
|
|
8262
8385
|
|
|
8263
8386
|
footer[role='contentinfo'] .footer-copyright {
|
|
8264
8387
|
color: var(--muted-foreground);
|
|
8265
|
-
font-size: var(--font-size-
|
|
8388
|
+
font-size: var(--font-size-sm);
|
|
8266
8389
|
}
|
|
8267
8390
|
|
|
8268
8391
|
footer[role='contentinfo'] a:not(.dndev-interactive) {
|
|
@@ -8270,7 +8393,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive) {
|
|
|
8270
8393
|
text-decoration: underline;
|
|
8271
8394
|
text-underline-offset: 2px;
|
|
8272
8395
|
color: var(--muted-foreground);
|
|
8273
|
-
font-size: var(--font-size-
|
|
8396
|
+
font-size: var(--font-size-sm);
|
|
8274
8397
|
background: transparent;
|
|
8275
8398
|
}
|
|
8276
8399
|
|
|
@@ -8669,6 +8792,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
8669
8792
|
.dndev-container[data-centered='false'] {
|
|
8670
8793
|
margin-inline-start: 0;
|
|
8671
8794
|
margin-inline-end: 0;
|
|
8795
|
+
justify-content: flex-start;
|
|
8672
8796
|
}
|
|
8673
8797
|
|
|
8674
8798
|
/* Full width - no constraints */
|