@digiko-npm/designsystem 0.9.9 → 0.9.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digiko-npm/designsystem",
3
- "version": "0.9.9",
3
+ "version": "0.9.11",
4
4
  "description": "Design system — installable, extensible, indestructible.",
5
5
  "main": "dist/designsystem.css",
6
6
  "style": "dist/designsystem.css",
@@ -151,6 +151,12 @@
151
151
  &--active {
152
152
  background-color: var(--ds-color-bg-elevated);
153
153
  color: var(--ds-color-text);
154
+
155
+ & .ds-command__item-icon,
156
+ & .ds-command__item-label,
157
+ & .ds-command__item-shortcut {
158
+ color: inherit;
159
+ }
154
160
  }
155
161
 
156
162
  &:focus-visible {
@@ -114,3 +114,8 @@
114
114
  .group:hover .ds-grip {
115
115
  color: var(--ds-color-text);
116
116
  }
117
+
118
+ /* --- Backdrop Blur (extended) --- */
119
+ .ds-backdrop-blur-lg { backdrop-filter: blur(16px); }
120
+ .ds-backdrop-blur-xl { backdrop-filter: blur(24px); }
121
+ .ds-backdrop-blur-2xl { backdrop-filter: blur(40px); }
@@ -69,3 +69,13 @@
69
69
  .ds-sm\:h-12 { height: var(--ds-space-12); }
70
70
  .ds-sm\:h-32 { height: var(--ds-space-32); }
71
71
  }
72
+
73
+ /* --- Decimal sizing --- */
74
+ .ds-w-0\.5 { width: 0.125rem; }
75
+ .ds-w-1\.5 { width: 0.375rem; }
76
+ .ds-w-2\.5 { width: 0.625rem; }
77
+ .ds-w-3\.5 { width: 0.875rem; }
78
+ .ds-h-0\.5 { height: 0.125rem; }
79
+ .ds-h-1\.5 { height: 0.375rem; }
80
+ .ds-h-2\.5 { height: 0.625rem; }
81
+ .ds-h-3\.5 { height: 0.875rem; }
@@ -159,3 +159,46 @@
159
159
  .ds-lg\:py-20 { padding-block: var(--ds-space-20); }
160
160
  .ds-lg\:py-24 { padding-block: var(--ds-space-24); }
161
161
  }
162
+
163
+ /* --- Space-X (horizontal gap between children) --- */
164
+ .ds-space-x-1 > * + * { margin-inline-start: var(--ds-space-1); }
165
+ .ds-space-x-2 > * + * { margin-inline-start: var(--ds-space-2); }
166
+ .ds-space-x-3 > * + * { margin-inline-start: var(--ds-space-3); }
167
+ .ds-space-x-4 > * + * { margin-inline-start: var(--ds-space-4); }
168
+
169
+ /* --- Decimal spacing (0.5 = 0.125rem, 1.5 = 0.375rem, 2.5 = 0.625rem) --- */
170
+ .ds-gap-0\.5 { gap: 0.125rem; }
171
+ .ds-gap-1\.5 { gap: 0.375rem; }
172
+ .ds-gap-2\.5 { gap: 0.625rem; }
173
+ .ds-p-0\.5 { padding: 0.125rem; }
174
+ .ds-p-1\.5 { padding: 0.375rem; }
175
+ .ds-px-0\.5 { padding-inline: 0.125rem; }
176
+ .ds-px-1\.5 { padding-inline: 0.375rem; }
177
+ .ds-py-0\.5 { padding-inline: 0.125rem; }
178
+ .ds-py-1\.5 { padding-block: 0.375rem; }
179
+ .ds-mt-0\.5 { margin-block-start: 0.125rem; }
180
+ .ds-mb-0\.5 { margin-block-end: 0.125rem; }
181
+ .ds-space-y-0\.5 > * + * { margin-block-start: 0.125rem; }
182
+ .ds-space-y-1\.5 > * + * { margin-block-start: 0.375rem; }
183
+ .ds-space-x-0\.5 > * + * { margin-inline-start: 0.125rem; }
184
+ .ds-space-x-1\.5 > * + * { margin-inline-start: 0.375rem; }
185
+
186
+ /* --- Responsive: md (768px) — all-sides padding --- */
187
+ @media (min-width: 768px) {
188
+ .ds-md\:p-2 { padding: var(--ds-space-2); }
189
+ .ds-md\:p-3 { padding: var(--ds-space-3); }
190
+ .ds-md\:p-4 { padding: var(--ds-space-4); }
191
+ .ds-md\:p-5 { padding: var(--ds-space-5); }
192
+ .ds-md\:p-6 { padding: var(--ds-space-6); }
193
+ .ds-md\:p-8 { padding: var(--ds-space-8); }
194
+ .ds-md\:p-10 { padding: var(--ds-space-10); }
195
+ .ds-md\:p-12 { padding: var(--ds-space-12); }
196
+ }
197
+
198
+ /* --- Responsive: lg (1024px) — all-sides padding --- */
199
+ @media (min-width: 1024px) {
200
+ .ds-lg\:p-6 { padding: var(--ds-space-6); }
201
+ .ds-lg\:p-8 { padding: var(--ds-space-8); }
202
+ .ds-lg\:p-10 { padding: var(--ds-space-10); }
203
+ .ds-lg\:p-12 { padding: var(--ds-space-12); }
204
+ }
@@ -1,74 +1,182 @@
1
1
  /* ==========================================================================
2
2
  Utilities: State Variants
3
- Hover, focus, active, focus-within, placeholder, and group-hover
4
- modifiers for DS utility classes.
3
+ Comprehensive hover, focus, active, disabled, focus-within, placeholder,
4
+ and group-hover modifiers for DS utility classes.
5
+
6
+ Pattern: {state}\:ds-{utility}:{pseudo} { property: value; }
7
+ Usage: <div class="ds-bg-surface hover:ds-bg-hover">
8
+
9
+ Only semantic DS tokens are used — no hardcoded values.
5
10
  ========================================================================== */
6
11
 
7
12
  /* --- Group Marker (enables group-hover on descendants) ---
8
13
  Supports both .group and .ds-group for compatibility. */
9
14
  .ds-group { /* marker — no styles */ }
10
15
 
16
+ /* ==========================================================================
17
+ HOVER
18
+ ========================================================================== */
19
+
11
20
  /* --- Hover: Background --- */
12
- .hover\:ds-bg-base:hover { background-color: var(--ds-color-bg); }
13
- .hover\:ds-bg-elevated:hover { background-color: var(--ds-color-bg-elevated); }
14
- .hover\:ds-bg-muted:hover { background-color: var(--ds-color-bg-muted); }
15
- .hover\:ds-bg-subtle:hover { background-color: var(--ds-color-bg-subtle); }
16
- .hover\:ds-bg-surface:hover { background-color: var(--ds-color-surface); }
17
- .hover\:ds-bg-inverted:hover { background-color: var(--ds-color-inverted); }
18
- .hover\:ds-bg-info:hover { background-color: var(--ds-color-info); }
21
+ .hover\:ds-bg-base:hover { background-color: var(--ds-color-bg); }
22
+ .hover\:ds-bg-subtle:hover { background-color: var(--ds-color-bg-subtle); }
23
+ .hover\:ds-bg-muted:hover { background-color: var(--ds-color-bg-muted); }
24
+ .hover\:ds-bg-elevated:hover { background-color: var(--ds-color-bg-elevated); }
25
+ .hover\:ds-bg-surface:hover { background-color: var(--ds-color-surface); }
26
+ .hover\:ds-bg-hover:hover { background-color: var(--ds-color-surface-hover); }
27
+ .hover\:ds-bg-inverted:hover { background-color: var(--ds-color-inverted); }
28
+ .hover\:ds-bg-overlay:hover { background-color: var(--ds-color-overlay-hover); }
29
+ .hover\:ds-bg-success:hover { background-color: var(--ds-color-success); }
30
+ .hover\:ds-bg-success-subtle:hover { background-color: var(--ds-color-success-subtle); }
31
+ .hover\:ds-bg-error:hover { background-color: var(--ds-color-error); }
32
+ .hover\:ds-bg-error-subtle:hover { background-color: var(--ds-color-error-subtle); }
33
+ .hover\:ds-bg-warning:hover { background-color: var(--ds-color-warning); }
34
+ .hover\:ds-bg-warning-subtle:hover { background-color: var(--ds-color-warning-subtle); }
35
+ .hover\:ds-bg-info:hover { background-color: var(--ds-color-info); }
36
+ .hover\:ds-bg-info-subtle:hover { background-color: var(--ds-color-info-subtle); }
37
+ .hover\:ds-bg-accent-blue:hover { background-color: var(--ds-color-accent-blue); }
38
+ .hover\:ds-bg-accent-blue-subtle:hover { background-color: var(--ds-color-accent-blue-subtle); }
39
+ .hover\:ds-bg-accent-purple:hover { background-color: var(--ds-color-accent-purple); }
40
+ .hover\:ds-bg-accent-purple-subtle:hover { background-color: var(--ds-color-accent-purple-subtle); }
19
41
 
20
42
  /* --- Hover: Text --- */
21
- .hover\:ds-text-primary:hover { color: var(--ds-color-text); }
22
- .hover\:ds-text-secondary:hover { color: var(--ds-color-text-secondary); }
23
- .hover\:ds-text-interactive:hover { color: var(--ds-color-interactive); }
43
+ .hover\:ds-text-primary:hover { color: var(--ds-color-text); }
44
+ .hover\:ds-text-secondary:hover { color: var(--ds-color-text-secondary); }
45
+ .hover\:ds-text-tertiary:hover { color: var(--ds-color-text-tertiary); }
46
+ .hover\:ds-text-on-inverted:hover { color: var(--ds-color-on-inverted); }
47
+ .hover\:ds-text-interactive:hover { color: var(--ds-color-interactive-hover); }
48
+ .hover\:ds-text-success:hover { color: var(--ds-color-success); }
49
+ .hover\:ds-text-error:hover { color: var(--ds-color-error); }
50
+ .hover\:ds-text-warning:hover { color: var(--ds-color-warning); }
51
+ .hover\:ds-text-info:hover { color: var(--ds-color-info); }
24
52
 
25
53
  /* --- Hover: Border --- */
54
+ .hover\:ds-border-default:hover { border-color: var(--ds-color-border); }
26
55
  .hover\:ds-border-hover:hover { border-color: var(--ds-color-border-hover); }
56
+ .hover\:ds-border-active:hover { border-color: var(--ds-color-border-active); }
27
57
  .hover\:ds-border-interactive:hover { border-color: var(--ds-color-interactive); }
58
+ .hover\:ds-border-success:hover { border-color: var(--ds-color-success); }
59
+ .hover\:ds-border-error:hover { border-color: var(--ds-color-error); }
60
+ .hover\:ds-border-info:hover { border-color: var(--ds-color-info); }
61
+
62
+ /* --- Hover: Opacity --- */
63
+ .hover\:ds-opacity-0:hover { opacity: 0; }
64
+ .hover\:ds-opacity-50:hover { opacity: 0.5; }
65
+ .hover\:ds-opacity-75:hover { opacity: 0.75; }
66
+ .hover\:ds-opacity-100:hover { opacity: 1; }
67
+
68
+ /* --- Hover: Transform --- */
69
+ .hover\:ds-scale-105:hover { transform: scale(1.05); }
70
+ .hover\:ds-scale-110:hover { transform: scale(1.10); }
28
71
 
29
72
  /* --- Hover: Decoration --- */
30
- .hover\:ds-underline:hover { text-decoration: underline; text-underline-offset: 2px; }
73
+ .hover\:ds-underline:hover { text-decoration: underline; text-underline-offset: 2px; }
74
+ .hover\:ds-no-underline:hover { text-decoration: none; }
75
+
76
+ /* --- Hover: Shadow --- */
77
+ .hover\:ds-shadow:hover { box-shadow: var(--ds-shadow-md); }
78
+ .hover\:ds-shadow-lg:hover { box-shadow: var(--ds-shadow-lg); }
79
+ .hover\:ds-shadow-none:hover { box-shadow: none; }
80
+
81
+ /* ==========================================================================
82
+ FOCUS
83
+ ========================================================================== */
31
84
 
32
- /* --- Focus --- */
33
- .focus\:ds-outline-none:focus { outline: none; }
34
- .focus\:ds-ring-0:focus { box-shadow: none; }
35
- .focus\:ds-ring-2:focus { box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-color-interactive); }
85
+ .focus\:ds-outline-none:focus { outline: none; }
86
+ .focus\:ds-ring-0:focus { box-shadow: none; }
87
+ .focus\:ds-ring-2:focus { box-shadow: 0 0 0 var(--ds-ring-width, 2px) var(--ds-color-interactive); }
88
+ .focus\:ds-border-interactive:focus { border-color: var(--ds-color-interactive); }
89
+
90
+ /* --- Focus-Visible (keyboard only) --- */
91
+ .focus-visible\:ds-outline-none:focus-visible { outline: none; }
92
+ .focus-visible\:ds-ring-2:focus-visible { box-shadow: 0 0 0 var(--ds-ring-width, 2px) var(--ds-color-interactive); }
36
93
 
37
94
  /* --- Focus-Within --- */
38
95
  .focus-within\:ds-border-interactive:focus-within { border-color: var(--ds-color-interactive); }
96
+ .focus-within\:ds-border-error:focus-within { border-color: var(--ds-color-error); }
97
+
98
+ /* ==========================================================================
99
+ ACTIVE
100
+ ========================================================================== */
101
+
102
+ .active\:ds-bg-hover:active { background-color: var(--ds-color-surface-hover); }
103
+ .active\:ds-bg-muted:active { background-color: var(--ds-color-bg-muted); }
104
+ .active\:ds-bg-elevated:active { background-color: var(--ds-color-bg-elevated); }
105
+ .active\:ds-scale-95:active { transform: scale(0.95); }
106
+ .active\:ds-scale-98:active { transform: scale(0.98); }
107
+
108
+ /* ==========================================================================
109
+ DISABLED
110
+ ========================================================================== */
111
+
112
+ .disabled\:ds-opacity-30:disabled,
113
+ .disabled\:ds-opacity-30[aria-disabled="true"] { opacity: 0.3; }
114
+
115
+ .disabled\:ds-opacity-50:disabled,
116
+ .disabled\:ds-opacity-50[aria-disabled="true"] { opacity: 0.5; }
117
+
118
+ .disabled\:ds-cursor-not-allowed:disabled,
119
+ .disabled\:ds-cursor-not-allowed[aria-disabled="true"] { cursor: not-allowed; }
120
+
121
+ .disabled\:ds-bg-subtle:disabled,
122
+ .disabled\:ds-bg-subtle[aria-disabled="true"] { background-color: var(--ds-color-bg-subtle); }
123
+
124
+ .disabled\:ds-pointer-events-none:disabled,
125
+ .disabled\:ds-pointer-events-none[aria-disabled="true"] { pointer-events: none; }
126
+
127
+ /* ==========================================================================
128
+ PLACEHOLDER
129
+ ========================================================================== */
130
+
131
+ .placeholder\:ds-text-tertiary::placeholder { color: var(--ds-color-text-tertiary); }
132
+ .placeholder\:ds-text-secondary::placeholder { color: var(--ds-color-text-secondary); }
133
+
134
+ /* ==========================================================================
135
+ GROUP-HOVER
136
+ Descendants of .group or .ds-group, activated on parent hover.
137
+ Uses both direct-child and any-descendant for flexibility.
138
+ ========================================================================== */
139
+
140
+ /* Text */
141
+ .group:hover .group-hover\:ds-text-primary,
142
+ .ds-group:hover .group-hover\:ds-text-primary { color: var(--ds-color-text); }
143
+
144
+ .group:hover .group-hover\:ds-text-secondary,
145
+ .ds-group:hover .group-hover\:ds-text-secondary { color: var(--ds-color-text-secondary); }
146
+
147
+ .group:hover .group-hover\:ds-text-interactive,
148
+ .ds-group:hover .group-hover\:ds-text-interactive { color: var(--ds-color-interactive-hover); }
149
+
150
+ .group:hover .group-hover\:ds-text-success,
151
+ .ds-group:hover .group-hover\:ds-text-success { color: var(--ds-color-success); }
152
+
153
+ .group:hover .group-hover\:ds-text-info,
154
+ .ds-group:hover .group-hover\:ds-text-info { color: var(--ds-color-info); }
155
+
156
+ /* Opacity */
157
+ .group:hover .group-hover\:ds-opacity-100,
158
+ .ds-group:hover .group-hover\:ds-opacity-100 { opacity: 1; }
159
+
160
+ .group:hover .group-hover\:ds-opacity-0,
161
+ .ds-group:hover .group-hover\:ds-opacity-0 { opacity: 0; }
162
+
163
+ /* Transform */
164
+ .group:hover .group-hover\:ds-scale-105,
165
+ .ds-group:hover .group-hover\:ds-scale-105 { transform: scale(1.05); }
166
+
167
+ .group:hover .group-hover\:ds-scale-110,
168
+ .ds-group:hover .group-hover\:ds-scale-110 { transform: scale(1.10); }
169
+
170
+ .group:hover .group-hover\:ds-translate-x-1,
171
+ .ds-group:hover .group-hover\:ds-translate-x-1 { transform: translateX(0.25rem); }
172
+
173
+ .group:hover .group-hover\:ds-translate-y-0,
174
+ .ds-group:hover .group-hover\:ds-translate-y-0 { transform: translateY(0); }
175
+
176
+ /* Border */
177
+ .group:hover .group-hover\:ds-border-active,
178
+ .ds-group:hover .group-hover\:ds-border-active { border-color: var(--ds-color-border-active); }
39
179
 
40
- /* --- Active --- */
41
- .active\:ds-bg-elevated:active { background-color: var(--ds-color-bg-elevated); }
42
- .active\:ds-text-secondary:active { color: var(--ds-color-text-secondary); }
43
-
44
- /* --- Placeholder --- */
45
- .placeholder\:ds-text-tertiary::placeholder { color: var(--ds-color-text-tertiary); }
46
-
47
- /* --- Group Hover (descendants of .group or .ds-group on hover) --- */
48
- .group:hover > .group-hover\:ds-text-interactive,
49
- .group:hover .group-hover\:ds-text-interactive,
50
- .ds-group:hover > .group-hover\:ds-text-interactive,
51
- .ds-group:hover .group-hover\:ds-text-interactive {
52
- color: var(--ds-color-interactive);
53
- }
54
-
55
- .group:hover > .group-hover\:ds-scale-110,
56
- .group:hover .group-hover\:ds-scale-110,
57
- .ds-group:hover > .group-hover\:ds-scale-110,
58
- .ds-group:hover .group-hover\:ds-scale-110 {
59
- transform: scale(1.1);
60
- }
61
-
62
- .group:hover > .group-hover\:ds-translate-x-1,
63
- .group:hover .group-hover\:ds-translate-x-1,
64
- .ds-group:hover > .group-hover\:ds-translate-x-1,
65
- .ds-group:hover .group-hover\:ds-translate-x-1 {
66
- transform: translateX(0.25rem);
67
- }
68
-
69
- .group:hover > .group-hover\:ds-opacity-100,
70
- .group:hover .group-hover\:ds-opacity-100,
71
- .ds-group:hover > .group-hover\:ds-opacity-100,
72
- .ds-group:hover .group-hover\:ds-opacity-100 {
73
- opacity: 1;
74
- }
180
+ /* Visibility */
181
+ .group:hover .group-hover\:ds-visible,
182
+ .ds-group:hover .group-hover\:ds-visible { visibility: visible; }
@@ -371,3 +371,11 @@
371
371
  white-space: nowrap;
372
372
  border-width: 0;
373
373
  }
374
+
375
+ /* --- Responsive: md (768px) — small text sizes --- */
376
+ @media (min-width: 768px) {
377
+ .ds-md\:text-xs { font-size: var(--ds-text-xs); }
378
+ .ds-md\:text-sm { font-size: var(--ds-text-sm); }
379
+ .ds-md\:text-base { font-size: var(--ds-text-base); }
380
+ .ds-md\:text-5xl { font-size: var(--ds-text-5xl); }
381
+ }