dalila 1.5.13 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +47 -0
  2. package/dist/componentes/ui/accordion/index.d.ts +2 -0
  3. package/dist/componentes/ui/accordion/index.js +114 -0
  4. package/dist/componentes/ui/calendar/index.d.ts +2 -0
  5. package/dist/componentes/ui/calendar/index.js +132 -0
  6. package/dist/componentes/ui/combobox/index.d.ts +2 -0
  7. package/dist/componentes/ui/combobox/index.js +161 -0
  8. package/dist/componentes/ui/dialog/index.d.ts +10 -0
  9. package/dist/componentes/ui/dialog/index.js +54 -0
  10. package/dist/componentes/ui/drawer/index.d.ts +2 -0
  11. package/dist/componentes/ui/drawer/index.js +41 -0
  12. package/dist/componentes/ui/dropdown/index.d.ts +2 -0
  13. package/dist/componentes/ui/dropdown/index.js +48 -0
  14. package/dist/componentes/ui/dropzone/index.d.ts +2 -0
  15. package/dist/componentes/ui/dropzone/index.js +92 -0
  16. package/dist/componentes/ui/env.d.ts +1 -0
  17. package/dist/componentes/ui/env.js +2 -0
  18. package/dist/componentes/ui/index.d.ts +13 -0
  19. package/dist/componentes/ui/index.js +12 -0
  20. package/dist/componentes/ui/popover/index.d.ts +2 -0
  21. package/dist/componentes/ui/popover/index.js +156 -0
  22. package/dist/componentes/ui/runtime.d.ts +20 -0
  23. package/dist/componentes/ui/runtime.js +421 -0
  24. package/dist/componentes/ui/tabs/index.d.ts +3 -0
  25. package/dist/componentes/ui/tabs/index.js +101 -0
  26. package/dist/componentes/ui/toast/index.d.ts +3 -0
  27. package/dist/componentes/ui/toast/index.js +115 -0
  28. package/dist/componentes/ui/ui-types.d.ts +175 -0
  29. package/dist/componentes/ui/ui-types.js +1 -0
  30. package/dist/componentes/ui/validate.d.ts +7 -0
  31. package/dist/componentes/ui/validate.js +71 -0
  32. package/dist/components/ui/accordion/index.d.ts +2 -0
  33. package/dist/components/ui/accordion/index.js +114 -0
  34. package/dist/components/ui/calendar/index.d.ts +2 -0
  35. package/dist/components/ui/calendar/index.js +132 -0
  36. package/dist/components/ui/combobox/index.d.ts +2 -0
  37. package/dist/components/ui/combobox/index.js +161 -0
  38. package/dist/components/ui/dialog/index.d.ts +10 -0
  39. package/dist/components/ui/dialog/index.js +54 -0
  40. package/dist/components/ui/drawer/index.d.ts +2 -0
  41. package/dist/components/ui/drawer/index.js +41 -0
  42. package/dist/components/ui/dropdown/index.d.ts +2 -0
  43. package/dist/components/ui/dropdown/index.js +48 -0
  44. package/dist/components/ui/dropzone/index.d.ts +2 -0
  45. package/dist/components/ui/dropzone/index.js +92 -0
  46. package/dist/components/ui/env.d.ts +1 -0
  47. package/dist/components/ui/env.js +2 -0
  48. package/dist/components/ui/index.d.ts +13 -0
  49. package/dist/components/ui/index.js +12 -0
  50. package/dist/components/ui/popover/index.d.ts +2 -0
  51. package/dist/components/ui/popover/index.js +156 -0
  52. package/dist/components/ui/runtime.d.ts +20 -0
  53. package/dist/components/ui/runtime.js +421 -0
  54. package/dist/components/ui/tabs/index.d.ts +3 -0
  55. package/dist/components/ui/tabs/index.js +101 -0
  56. package/dist/components/ui/toast/index.d.ts +3 -0
  57. package/dist/components/ui/toast/index.js +115 -0
  58. package/dist/components/ui/ui-types.d.ts +175 -0
  59. package/dist/components/ui/ui-types.js +1 -0
  60. package/dist/components/ui/validate.d.ts +7 -0
  61. package/dist/components/ui/validate.js +71 -0
  62. package/dist/form/form-types.d.ts +181 -0
  63. package/dist/form/form-types.js +4 -0
  64. package/dist/form/form.d.ts +71 -0
  65. package/dist/form/form.js +1073 -0
  66. package/dist/form/index.d.ts +2 -0
  67. package/dist/form/index.js +2 -0
  68. package/dist/index.d.ts +1 -0
  69. package/dist/index.js +1 -0
  70. package/dist/runtime/bind.js +567 -9
  71. package/dist/ui/accordion.d.ts +2 -0
  72. package/dist/ui/accordion.js +114 -0
  73. package/dist/ui/calendar.d.ts +2 -0
  74. package/dist/ui/calendar.js +132 -0
  75. package/dist/ui/combobox.d.ts +2 -0
  76. package/dist/ui/combobox.js +161 -0
  77. package/dist/ui/dialog.d.ts +10 -0
  78. package/dist/ui/dialog.js +54 -0
  79. package/dist/ui/drawer.d.ts +2 -0
  80. package/dist/ui/drawer.js +41 -0
  81. package/dist/ui/dropdown.d.ts +2 -0
  82. package/dist/ui/dropdown.js +48 -0
  83. package/dist/ui/dropzone.d.ts +2 -0
  84. package/dist/ui/dropzone.js +92 -0
  85. package/dist/ui/env.d.ts +1 -0
  86. package/dist/ui/env.js +2 -0
  87. package/dist/ui/index.d.ts +13 -0
  88. package/dist/ui/index.js +12 -0
  89. package/dist/ui/popover.d.ts +2 -0
  90. package/dist/ui/popover.js +156 -0
  91. package/dist/ui/runtime.d.ts +20 -0
  92. package/dist/ui/runtime.js +421 -0
  93. package/dist/ui/tabs.d.ts +3 -0
  94. package/dist/ui/tabs.js +101 -0
  95. package/dist/ui/toast.d.ts +3 -0
  96. package/dist/ui/toast.js +115 -0
  97. package/dist/ui/ui-types.d.ts +175 -0
  98. package/dist/ui/ui-types.js +1 -0
  99. package/dist/ui/validate.d.ts +7 -0
  100. package/dist/ui/validate.js +71 -0
  101. package/package.json +60 -2
  102. package/src/components/ui/accordion/accordion.css +90 -0
  103. package/src/components/ui/alert/alert.css +78 -0
  104. package/src/components/ui/avatar/avatar.css +45 -0
  105. package/src/components/ui/badge/badge.css +71 -0
  106. package/src/components/ui/breadcrumb/breadcrumb.css +41 -0
  107. package/src/components/ui/button/button.css +135 -0
  108. package/src/components/ui/calendar/calendar.css +96 -0
  109. package/src/components/ui/card/card.css +93 -0
  110. package/src/components/ui/checkbox/checkbox.css +57 -0
  111. package/src/components/ui/chip/chip.css +62 -0
  112. package/src/components/ui/collapsible/collapsible.css +61 -0
  113. package/src/components/ui/combobox/combobox.css +85 -0
  114. package/src/components/ui/dalila/dalila.css +42 -0
  115. package/src/components/ui/dalila-core/dalila-core.css +14 -0
  116. package/src/components/ui/dialog/dialog.css +125 -0
  117. package/src/components/ui/drawer/drawer.css +122 -0
  118. package/src/components/ui/dropdown/dropdown.css +87 -0
  119. package/src/components/ui/dropzone/dropzone.css +47 -0
  120. package/src/components/ui/empty-state/empty-state.css +33 -0
  121. package/src/components/ui/form/form.css +44 -0
  122. package/src/components/ui/input/input.css +106 -0
  123. package/src/components/ui/layout/layout.css +62 -0
  124. package/src/components/ui/pagination/pagination.css +55 -0
  125. package/src/components/ui/popover/popover.css +55 -0
  126. package/src/components/ui/radio/radio.css +56 -0
  127. package/src/components/ui/separator/separator.css +38 -0
  128. package/src/components/ui/skeleton/skeleton.css +57 -0
  129. package/src/components/ui/slider/slider.css +60 -0
  130. package/src/components/ui/spinner/spinner.css +38 -0
  131. package/src/components/ui/table/table.css +54 -0
  132. package/src/components/ui/tabs/tabs.css +74 -0
  133. package/src/components/ui/toast/toast.css +100 -0
  134. package/src/components/ui/toggle/toggle.css +90 -0
  135. package/src/components/ui/tokens/tokens.css +161 -0
  136. package/src/components/ui/tooltip/tooltip.css +53 -0
  137. package/src/components/ui/typography/typography.css +81 -0
@@ -0,0 +1,100 @@
1
+ /* Dalila UI — Toast */
2
+
3
+ @keyframes d-toast-in {
4
+ from { opacity: 0; transform: translateY(0.5rem); }
5
+ to { opacity: 1; transform: translateY(0); }
6
+ }
7
+
8
+ .d-toast-container {
9
+ position: fixed;
10
+ bottom: var(--d-space-6);
11
+ right: var(--d-space-6);
12
+ z-index: var(--d-z-toast);
13
+ display: flex;
14
+ flex-direction: column;
15
+ gap: var(--d-space-3);
16
+ max-width: 24rem;
17
+ pointer-events: none;
18
+ }
19
+
20
+ .d-toast-container-tl { top: var(--d-space-6); left: var(--d-space-6); bottom: auto; right: auto; }
21
+ .d-toast-container-tr { top: var(--d-space-6); right: var(--d-space-6); bottom: auto; }
22
+ .d-toast-container-bl { bottom: var(--d-space-6); left: var(--d-space-6); right: auto; }
23
+
24
+ .d-toast {
25
+ --_tone: var(--d-text-muted);
26
+ --_tone-bg: rgba(115, 115, 115, 0.12);
27
+ pointer-events: auto;
28
+ display: flex;
29
+ align-items: flex-start;
30
+ gap: var(--d-space-3);
31
+ padding: var(--d-space-4) var(--d-space-4) var(--d-space-4) var(--d-space-5);
32
+ background: var(--d-surface-card);
33
+ border: 1px solid var(--d-border-color);
34
+ border-radius: var(--d-radius-lg);
35
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
36
+ font-family: var(--d-font-sans);
37
+ animation: d-toast-in var(--d-duration-slow) var(--d-ease) forwards;
38
+ }
39
+
40
+ .d-toast-icon {
41
+ flex-shrink: 0;
42
+ display: inline-block;
43
+ color: var(--_tone);
44
+ font-size: 1rem;
45
+ line-height: 1;
46
+ margin-top: 0.125rem;
47
+ }
48
+
49
+ .d-toast-body {
50
+ flex: 1;
51
+ min-width: 0;
52
+ }
53
+
54
+ .d-toast-title {
55
+ font-size: var(--d-text-sm);
56
+ font-weight: var(--d-font-semibold);
57
+ color: var(--d-text-primary);
58
+ }
59
+
60
+ .d-toast-text {
61
+ font-size: var(--d-text-sm);
62
+ color: var(--d-text-secondary);
63
+ margin: var(--d-space-1) 0 0;
64
+ }
65
+
66
+ .d-toast-close {
67
+ flex-shrink: 0;
68
+ margin-left: auto;
69
+ padding: var(--d-space-1);
70
+ background: none;
71
+ border: none;
72
+ color: var(--d-text-muted);
73
+ cursor: pointer;
74
+ border-radius: var(--d-radius-sm);
75
+ transition: color var(--d-duration-fast) ease;
76
+ }
77
+
78
+ .d-toast-close:hover {
79
+ color: var(--d-text-primary);
80
+ }
81
+
82
+ .d-toast-success {
83
+ --_tone: var(--d-success);
84
+ --_tone-bg: var(--d-success-light);
85
+ }
86
+
87
+ .d-toast-error {
88
+ --_tone: var(--d-error);
89
+ --_tone-bg: var(--d-error-light);
90
+ }
91
+
92
+ .d-toast-warning {
93
+ --_tone: var(--d-warning);
94
+ --_tone-bg: var(--d-warning-light);
95
+ }
96
+
97
+ .d-toast-info {
98
+ --_tone: var(--d-info);
99
+ --_tone-bg: var(--d-info-light);
100
+ }
@@ -0,0 +1,90 @@
1
+ /* Dalila UI — Toggle */
2
+
3
+ .d-toggle {
4
+ display: inline-flex;
5
+ align-items: center;
6
+ gap: var(--d-space-3);
7
+
8
+ font-family: var(--d-font-sans);
9
+ font-size: var(--d-text-base);
10
+ color: var(--d-text-primary);
11
+ cursor: pointer;
12
+ user-select: none;
13
+ }
14
+
15
+ .d-toggle input {
16
+ position: absolute;
17
+ opacity: 0;
18
+ width: 0;
19
+ height: 0;
20
+ }
21
+
22
+ .d-toggle-track {
23
+ position: relative;
24
+ flex-shrink: 0;
25
+ width: 2.75rem;
26
+ height: 1.5rem;
27
+
28
+ background: var(--d-surface-raised);
29
+ border: 1px solid var(--d-border-color);
30
+ border-radius: var(--d-radius-full);
31
+
32
+ transition: background var(--d-duration-fast) ease, border-color var(--d-duration-fast) ease;
33
+ }
34
+
35
+ .d-toggle-track::after {
36
+ content: "";
37
+ position: absolute;
38
+ top: 2px;
39
+ left: 2px;
40
+ width: 1.125rem;
41
+ height: 1.125rem;
42
+
43
+ background: #ffffff;
44
+ border-radius: 50%;
45
+ transition: transform var(--d-duration) var(--d-ease-bounce);
46
+ }
47
+
48
+ [data-theme="light"] .d-toggle-track::after {
49
+ background: #0a0a0a;
50
+ }
51
+
52
+ .d-toggle input:checked + .d-toggle-track {
53
+ background: var(--d-accent);
54
+ border-color: var(--d-accent);
55
+ }
56
+
57
+ .d-toggle input:checked + .d-toggle-track::after {
58
+ transform: translateX(1.25rem);
59
+ }
60
+
61
+ .d-toggle input:focus-visible + .d-toggle-track {
62
+ outline: none;
63
+ box-shadow: var(--d-shadow-glow);
64
+ }
65
+
66
+ .d-toggle input:disabled + .d-toggle-track {
67
+ opacity: 0.5;
68
+ cursor: not-allowed;
69
+ }
70
+
71
+ .d-toggle:has(input:disabled) {
72
+ cursor: not-allowed;
73
+ opacity: 0.6;
74
+ }
75
+
76
+ .d-toggle-sm .d-toggle-track {
77
+ width: 2.25rem;
78
+ height: 1.25rem;
79
+ }
80
+
81
+ .d-toggle-sm .d-toggle-track::after {
82
+ width: 0.875rem;
83
+ height: 0.875rem;
84
+ top: 2px;
85
+ left: 2px;
86
+ }
87
+
88
+ .d-toggle-sm input:checked + .d-toggle-track::after {
89
+ transform: translateX(1rem);
90
+ }
@@ -0,0 +1,161 @@
1
+ /* Dalila UI — Design Tokens (Playground-aligned) */
2
+
3
+ :root,
4
+ [data-theme="light"] {
5
+ --d-bg: #ffffff;
6
+ --d-bg-card: #f8f8f8;
7
+ --d-bg-elevated: #f0f0f0;
8
+ --d-fg: #0a0a0a;
9
+ --d-fg-muted: #6b7280;
10
+ --d-accent: #2563eb;
11
+ --d-accent-hover: #1d4ed8;
12
+ --d-border: #e5e5e5;
13
+
14
+ --d-primary-50: #eff6ff;
15
+ --d-primary-100: #dbeafe;
16
+ --d-primary-200: #bfdbfe;
17
+ --d-primary-300: #93c5fd;
18
+ --d-primary-400: #60a5fa;
19
+ --d-primary-500: #3b82f6;
20
+ --d-primary-600: #2563eb;
21
+ --d-primary-700: #1d4ed8;
22
+ --d-primary-800: #1e40af;
23
+ --d-primary-900: #1e3a8a;
24
+
25
+ --d-accent-50: #fff7ed;
26
+ --d-accent-100: #ffedd5;
27
+ --d-accent-200: #fed7aa;
28
+ --d-accent-300: #fdba74;
29
+ --d-accent-400: #fb923c;
30
+ --d-accent-500: #f97316;
31
+ --d-accent-600: #ea580c;
32
+ --d-accent-700: #c2410c;
33
+
34
+ --d-slate-50: #fafafa;
35
+ --d-slate-100: #f4f4f5;
36
+ --d-slate-200: #e4e4e7;
37
+ --d-slate-300: #d4d4d8;
38
+ --d-slate-400: #a1a1aa;
39
+ --d-slate-500: #71717a;
40
+ --d-slate-600: #52525b;
41
+ --d-slate-700: #3f3f46;
42
+ --d-slate-800: #27272a;
43
+ --d-slate-900: #18181b;
44
+ --d-slate-950: #09090b;
45
+
46
+ /* Backward-compatible aliases expected by old examples */
47
+ --d-stone-50: var(--d-slate-50);
48
+ --d-stone-100: var(--d-slate-100);
49
+ --d-stone-200: var(--d-slate-200);
50
+ --d-stone-300: var(--d-slate-300);
51
+ --d-stone-400: var(--d-slate-400);
52
+ --d-stone-500: var(--d-slate-500);
53
+ --d-stone-600: var(--d-slate-600);
54
+ --d-stone-700: var(--d-slate-700);
55
+ --d-stone-800: var(--d-slate-800);
56
+ --d-stone-900: var(--d-slate-900);
57
+ --d-stone-950: var(--d-slate-950);
58
+
59
+ --d-success: #16a34a;
60
+ --d-success-light: rgba(22, 163, 74, 0.12);
61
+ --d-error: #dc2626;
62
+ --d-error-light: rgba(220, 38, 38, 0.12);
63
+ --d-warning: #d97706;
64
+ --d-warning-light: rgba(217, 119, 6, 0.12);
65
+ --d-info: #0284c7;
66
+ --d-info-light: rgba(2, 132, 199, 0.12);
67
+
68
+ --d-ring: rgba(37, 99, 235, 0.22);
69
+
70
+ --d-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
71
+ --d-font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace;
72
+
73
+ --d-text-xs: 0.75rem;
74
+ --d-text-sm: 0.8125rem;
75
+ --d-text-base: 0.875rem;
76
+ --d-text-lg: 1rem;
77
+ --d-text-xl: 1.25rem;
78
+ --d-text-2xl: 1.5rem;
79
+ --d-text-3xl: 2rem;
80
+
81
+ --d-font-normal: 400;
82
+ --d-font-medium: 500;
83
+ --d-font-semibold: 600;
84
+ --d-font-bold: 700;
85
+
86
+ --d-leading: 1.6;
87
+
88
+ --d-space-1: 0.25rem;
89
+ --d-space-2: 0.5rem;
90
+ --d-space-3: 0.75rem;
91
+ --d-space-4: 1rem;
92
+ --d-space-5: 1.25rem;
93
+ --d-space-6: 1.5rem;
94
+ --d-space-8: 2rem;
95
+ --d-space-10: 2.5rem;
96
+ --d-space-12: 3rem;
97
+
98
+ --d-radius-sm: 6px;
99
+ --d-radius-md: 8px;
100
+ --d-radius-lg: 12px;
101
+ --d-radius-xl: 14px;
102
+ --d-radius-full: 9999px;
103
+
104
+ --d-shadow-xs: none;
105
+ --d-shadow-sm: none;
106
+ --d-shadow-md: 0 10px 26px rgba(0, 0, 0, 0.08);
107
+ --d-shadow-lg: 0 18px 42px rgba(0, 0, 0, 0.12);
108
+ --d-shadow-glow: 0 0 0 1px var(--d-accent);
109
+
110
+ --d-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
111
+ --d-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
112
+ --d-duration-fast: 120ms;
113
+ --d-duration: 180ms;
114
+ --d-duration-slow: 280ms;
115
+
116
+ --d-surface-page: var(--d-bg);
117
+ --d-surface-card: var(--d-bg-card);
118
+ --d-surface-raised: var(--d-bg-elevated);
119
+ --d-surface-overlay: rgba(0, 0, 0, 0.4);
120
+
121
+ --d-text-primary: var(--d-fg);
122
+ --d-text-secondary: var(--d-fg-muted);
123
+ --d-text-muted: var(--d-fg-muted);
124
+ --d-text-inverse: #ffffff;
125
+
126
+ --d-border-color: var(--d-border);
127
+
128
+ --d-gradient-brand: linear-gradient(135deg, var(--d-primary-500), #8b5cf6);
129
+
130
+ --d-z-dropdown: 50;
131
+ --d-z-sticky: 100;
132
+ --d-z-overlay: 200;
133
+ --d-z-modal: 300;
134
+ --d-z-toast: 400;
135
+ --d-z-tooltip: 500;
136
+ }
137
+
138
+ [data-theme="dark"] {
139
+ --d-bg: #0a0a0a;
140
+ --d-bg-card: #141414;
141
+ --d-bg-elevated: #1a1a1a;
142
+ --d-fg: #fafafa;
143
+ --d-fg-muted: #737373;
144
+ --d-accent: #3b82f6;
145
+ --d-accent-hover: #2563eb;
146
+ --d-border: #262626;
147
+
148
+ --d-success: #22c55e;
149
+ --d-success-light: rgba(34, 197, 94, 0.14);
150
+ --d-error: #ef4444;
151
+ --d-error-light: rgba(239, 68, 68, 0.14);
152
+ --d-warning: #f59e0b;
153
+ --d-warning-light: rgba(245, 158, 11, 0.14);
154
+ --d-info: #38bdf8;
155
+ --d-info-light: rgba(56, 189, 248, 0.14);
156
+
157
+ --d-ring: rgba(59, 130, 246, 0.35);
158
+ --d-shadow-md: 0 12px 32px rgba(0, 0, 0, 0.35);
159
+ --d-shadow-lg: 0 20px 48px rgba(0, 0, 0, 0.45);
160
+ --d-surface-overlay: rgba(0, 0, 0, 0.65);
161
+ }
@@ -0,0 +1,53 @@
1
+ /* Dalila UI — Tooltip */
2
+
3
+ .d-tooltip {
4
+ position: relative;
5
+ }
6
+
7
+ .d-tooltip::after {
8
+ content: attr(data-tooltip);
9
+ position: absolute;
10
+ bottom: calc(100% + 6px);
11
+ left: 50%;
12
+ transform: translateX(-50%);
13
+ padding: var(--d-space-1) var(--d-space-2);
14
+ font-family: var(--d-font-sans);
15
+ font-size: var(--d-text-xs);
16
+ font-weight: var(--d-font-medium);
17
+ color: #fff;
18
+ background: var(--d-slate-900);
19
+ border-radius: var(--d-radius-sm);
20
+ white-space: nowrap;
21
+ pointer-events: none;
22
+ opacity: 0;
23
+ transition: opacity var(--d-duration-fast) ease;
24
+ z-index: var(--d-z-tooltip);
25
+ }
26
+
27
+ [data-theme="light"] .d-tooltip::after {
28
+ background: var(--d-slate-800);
29
+ }
30
+
31
+ .d-tooltip:hover::after {
32
+ opacity: 1;
33
+ }
34
+
35
+ .d-tooltip-bottom::after {
36
+ bottom: auto;
37
+ top: calc(100% + 6px);
38
+ }
39
+
40
+ .d-tooltip-left::after {
41
+ bottom: auto;
42
+ top: 50%;
43
+ left: auto;
44
+ right: calc(100% + 6px);
45
+ transform: translateY(-50%);
46
+ }
47
+
48
+ .d-tooltip-right::after {
49
+ bottom: auto;
50
+ top: 50%;
51
+ left: calc(100% + 6px);
52
+ transform: translateY(-50%);
53
+ }
@@ -0,0 +1,81 @@
1
+ /* Dalila UI — Typography */
2
+
3
+ .d-h1, .d-h2, .d-h3, .d-h4, .d-h5, .d-h6 {
4
+ font-family: var(--d-font-sans);
5
+ font-weight: var(--d-font-bold);
6
+ color: var(--d-text-primary);
7
+ line-height: 1.3;
8
+ margin: 0;
9
+ }
10
+
11
+ .d-h1 { font-size: var(--d-text-3xl); letter-spacing: -0.02em; }
12
+ .d-h2 { font-size: var(--d-text-2xl); letter-spacing: -0.01em; }
13
+ .d-h3 { font-size: var(--d-text-xl); }
14
+ .d-h4 { font-size: var(--d-text-lg); }
15
+ .d-h5 { font-size: var(--d-text-base); font-weight: var(--d-font-semibold); }
16
+ .d-h6 { font-size: var(--d-text-sm); font-weight: var(--d-font-semibold); }
17
+
18
+ .d-text {
19
+ font-family: var(--d-font-sans);
20
+ font-size: var(--d-text-base);
21
+ color: var(--d-text-primary);
22
+ line-height: var(--d-leading);
23
+ margin: 0;
24
+ }
25
+
26
+ .d-text-xs { font-size: var(--d-text-xs); }
27
+ .d-text-sm { font-size: var(--d-text-sm); }
28
+ .d-text-lg { font-size: var(--d-text-lg); }
29
+ .d-text-xl { font-size: var(--d-text-xl); }
30
+ .d-text-muted { color: var(--d-text-muted); }
31
+ .d-text-accent { color: var(--d-accent); }
32
+ .d-text-success { color: var(--d-success); }
33
+ .d-text-error { color: var(--d-error); }
34
+ .d-text-warning { color: var(--d-warning); }
35
+ .d-text-mono { font-family: var(--d-font-mono); }
36
+ .d-text-bold { font-weight: var(--d-font-bold); }
37
+ .d-text-semibold { font-weight: var(--d-font-semibold); }
38
+ .d-text-medium { font-weight: var(--d-font-medium); }
39
+
40
+ .d-link {
41
+ color: var(--d-accent);
42
+ text-decoration: none;
43
+ transition: color var(--d-duration-fast) ease;
44
+ }
45
+
46
+ .d-link:hover {
47
+ color: var(--d-accent-hover);
48
+ text-decoration: underline;
49
+ }
50
+
51
+ .d-link-muted {
52
+ color: var(--d-text-muted);
53
+ }
54
+
55
+ .d-link-muted:hover {
56
+ color: var(--d-text-primary);
57
+ }
58
+
59
+ .d-code {
60
+ font-family: var(--d-font-mono);
61
+ font-size: 0.875em;
62
+ padding: 1px 5px;
63
+ background: var(--d-surface-raised);
64
+ border-radius: var(--d-radius-sm);
65
+ color: var(--d-accent);
66
+ }
67
+
68
+ .d-kbd {
69
+ display: inline-flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ min-width: 1.5em;
73
+ padding: 0.125rem 0.375rem;
74
+ font-family: var(--d-font-mono);
75
+ font-size: var(--d-text-xs);
76
+ color: var(--d-text-muted);
77
+ background: var(--d-surface-raised);
78
+ border: 1px solid var(--d-border-color);
79
+ border-radius: var(--d-radius-sm);
80
+ box-shadow: 0 1px 0 var(--d-border-color);
81
+ }