@duskmoon-dev/core 1.13.0 → 1.14.1

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.
@@ -2,57 +2,90 @@
2
2
  export const css = `/**
3
3
  * Divider Component Styles
4
4
  * DuskMoonUI - Material Design 3 inspired divider system
5
+ *
6
+ * Usage:
7
+ * <div class="divider"></div> — plain horizontal line
8
+ * <div class="divider">OR</div> — text centered between lines
9
+ * <div class="divider divider-start">Title</div> — text at start
5
10
  */
6
11
 
7
12
  @layer components {
8
- /* Base Divider (Horizontal) */
13
+ /* ── Base Divider (Horizontal) ──────────────────────────────────── */
9
14
  .divider {
15
+ display: flex;
16
+ flex-direction: row;
17
+ align-items: center;
18
+ gap: 0;
10
19
  width: 100%;
11
- height: 1px;
12
20
  margin: 1rem 0;
21
+ white-space: nowrap;
22
+ }
23
+
24
+ /* Only add gap when content is present so an empty divider renders as one continuous line */
25
+ .divider:not(:empty) {
26
+ gap: 1rem;
27
+ }
28
+
29
+ /* The two line segments flanking any content */
30
+ .divider::before,
31
+ .divider::after {
32
+ content: '';
33
+ flex: 1;
34
+ height: 1px;
13
35
  background-color: var(--color-outline-variant);
14
- border: none;
15
36
  }
16
37
 
17
- /* Vertical Divider */
38
+ /* ── Vertical Divider ───────────────────────────────────────────── */
18
39
  .divider-vertical {
19
- width: 1px;
20
- height: auto;
21
- min-height: 1rem;
40
+ flex-direction: column;
41
+ width: auto;
22
42
  margin: 0 1rem;
23
43
  align-self: stretch;
24
44
  }
25
45
 
26
- /* Divider Thickness */
27
- .divider-thin {
46
+ .divider-vertical::before,
47
+ .divider-vertical::after {
48
+ width: 1px;
49
+ height: unset; /* let flex: 1 control the length */
50
+ }
51
+
52
+ /* ── Thickness ──────────────────────────────────────────────────── */
53
+ .divider-thin::before,
54
+ .divider-thin::after {
28
55
  height: 1px;
29
56
  }
30
57
 
31
- .divider-thin.divider-vertical {
58
+ .divider-thin.divider-vertical::before,
59
+ .divider-thin.divider-vertical::after {
32
60
  width: 1px;
33
- height: auto;
61
+ height: unset;
34
62
  }
35
63
 
36
- .divider-medium {
64
+ .divider-medium::before,
65
+ .divider-medium::after {
37
66
  height: 2px;
38
67
  }
39
68
 
40
- .divider-medium.divider-vertical {
69
+ .divider-medium.divider-vertical::before,
70
+ .divider-medium.divider-vertical::after {
41
71
  width: 2px;
42
- height: auto;
72
+ height: unset;
43
73
  }
44
74
 
45
- .divider-thick {
75
+ .divider-thick::before,
76
+ .divider-thick::after {
46
77
  height: 4px;
47
78
  }
48
79
 
49
- .divider-thick.divider-vertical {
80
+ .divider-thick.divider-vertical::before,
81
+ .divider-thick.divider-vertical::after {
50
82
  width: 4px;
51
- height: auto;
83
+ height: unset;
52
84
  }
53
85
 
54
- /* Divider Styles */
55
- .divider-dashed {
86
+ /* ── Line Styles ────────────────────────────────────────────────── */
87
+ .divider-dashed::before,
88
+ .divider-dashed::after {
56
89
  background-color: transparent;
57
90
  background-image: linear-gradient(
58
91
  to right,
@@ -63,7 +96,8 @@ export const css = `/**
63
96
  background-repeat: repeat-x;
64
97
  }
65
98
 
66
- .divider-dashed.divider-vertical {
99
+ .divider-dashed.divider-vertical::before,
100
+ .divider-dashed.divider-vertical::after {
67
101
  background-image: linear-gradient(
68
102
  to bottom,
69
103
  var(--color-outline-variant) 50%,
@@ -73,7 +107,8 @@ export const css = `/**
73
107
  background-repeat: repeat-y;
74
108
  }
75
109
 
76
- .divider-dotted {
110
+ .divider-dotted::before,
111
+ .divider-dotted::after {
77
112
  background-color: transparent;
78
113
  background-image: linear-gradient(
79
114
  to right,
@@ -84,7 +119,8 @@ export const css = `/**
84
119
  background-repeat: repeat-x;
85
120
  }
86
121
 
87
- .divider-dotted.divider-vertical {
122
+ .divider-dotted.divider-vertical::before,
123
+ .divider-dotted.divider-vertical::after {
88
124
  background-image: linear-gradient(
89
125
  to bottom,
90
126
  var(--color-outline-variant) 25%,
@@ -94,12 +130,14 @@ export const css = `/**
94
130
  background-repeat: repeat-y;
95
131
  }
96
132
 
97
- /* Color Variants */
98
- .divider-primary {
133
+ /* ── Color Variants ─────────────────────────────────────────────── */
134
+ .divider-primary::before,
135
+ .divider-primary::after {
99
136
  background-color: var(--color-primary);
100
137
  }
101
138
 
102
- .divider-primary.divider-dashed {
139
+ .divider-primary.divider-dashed::before,
140
+ .divider-primary.divider-dashed::after {
103
141
  background-image: linear-gradient(
104
142
  to right,
105
143
  var(--color-primary) 50%,
@@ -107,7 +145,8 @@ export const css = `/**
107
145
  );
108
146
  }
109
147
 
110
- .divider-primary.divider-dashed.divider-vertical {
148
+ .divider-primary.divider-dashed.divider-vertical::before,
149
+ .divider-primary.divider-dashed.divider-vertical::after {
111
150
  background-image: linear-gradient(
112
151
  to bottom,
113
152
  var(--color-primary) 50%,
@@ -115,20 +154,114 @@ export const css = `/**
115
154
  );
116
155
  }
117
156
 
118
- .divider-secondary {
157
+ .divider-secondary::before,
158
+ .divider-secondary::after {
119
159
  background-color: var(--color-secondary);
120
160
  }
121
161
 
122
- .divider-light {
123
- background-color: var(--color-outline-variant);
124
- opacity: 0.5;
162
+ .divider-tertiary::before,
163
+ .divider-tertiary::after {
164
+ background-color: var(--color-tertiary);
165
+ }
166
+
167
+ .divider-info::before,
168
+ .divider-info::after {
169
+ background-color: var(--color-info);
170
+ }
171
+
172
+ .divider-success::before,
173
+ .divider-success::after {
174
+ background-color: var(--color-success);
175
+ }
176
+
177
+ .divider-warning::before,
178
+ .divider-warning::after {
179
+ background-color: var(--color-warning);
180
+ }
181
+
182
+ .divider-error::before,
183
+ .divider-error::after {
184
+ background-color: var(--color-error);
185
+ }
186
+
187
+ /* ── Gradient Lines ─────────────────────────────────────────────── */
188
+ .divider-gradient::before,
189
+ .divider-gradient::after {
190
+ background: linear-gradient(
191
+ to right,
192
+ transparent,
193
+ var(--color-outline-variant) 20%,
194
+ var(--color-outline-variant) 80%,
195
+ transparent
196
+ );
197
+ }
198
+
199
+ .divider-gradient.divider-vertical::before,
200
+ .divider-gradient.divider-vertical::after {
201
+ background: linear-gradient(
202
+ to bottom,
203
+ transparent,
204
+ var(--color-outline-variant) 20%,
205
+ var(--color-outline-variant) 80%,
206
+ transparent
207
+ );
208
+ }
209
+
210
+ /* ── Content Positioning ────────────────────────────────────────── */
211
+
212
+ /* Push content to start: shrink the leading line segment */
213
+ .divider-start::before {
214
+ flex: 0 0 2rem;
215
+ }
216
+
217
+ /* Push content to end: shrink the trailing line segment */
218
+ .divider-end::after {
219
+ flex: 0 0 2rem;
220
+ }
221
+
222
+ /* Vertical equivalents */
223
+ .divider-vertical.divider-start::before {
224
+ flex: 0 0 2rem;
225
+ }
226
+
227
+ .divider-vertical.divider-end::after {
228
+ flex: 0 0 2rem;
229
+ }
230
+
231
+ /* ── Spacing Variants ───────────────────────────────────────────── */
232
+ .divider-compact {
233
+ margin: 0.25rem 0;
234
+ }
235
+
236
+ .divider-compact:not(:empty) {
237
+ gap: 0.5rem;
238
+ }
239
+
240
+ .divider-compact.divider-vertical {
241
+ margin: 0 0.25rem;
242
+ }
243
+
244
+ .divider-comfortable {
245
+ margin: 1.5rem 0;
125
246
  }
126
247
 
127
- .divider-dark {
128
- background-color: var(--color-outline);
248
+ .divider-comfortable.divider-vertical {
249
+ margin: 0 1.5rem;
250
+ }
251
+
252
+ .divider-spacious {
253
+ margin: 2rem 0;
129
254
  }
130
255
 
131
- /* Spacing Variants */
256
+ .divider-spacious:not(:empty) {
257
+ gap: 1.5rem;
258
+ }
259
+
260
+ .divider-spacious.divider-vertical {
261
+ margin: 0 2rem;
262
+ }
263
+
264
+ /* Legacy spacing aliases */
132
265
  .divider-none {
133
266
  margin: 0;
134
267
  }
@@ -165,122 +298,64 @@ export const css = `/**
165
298
  margin: 0 2rem;
166
299
  }
167
300
 
168
- /* Divider with Text (Horizontal) */
169
- .divider-text {
170
- display: flex;
171
- align-items: center;
172
- gap: 1rem;
173
- height: auto;
174
- background-color: transparent;
175
- }
176
-
177
- .divider-text::before,
178
- .divider-text::after {
179
- content: '';
180
- flex: 1;
181
- height: 1px;
182
- background-color: var(--color-outline-variant);
183
- }
184
-
185
- .divider-text-content {
186
- font-size: 0.75rem;
187
- font-weight: 500;
188
- color: var(--color-on-surface-variant);
189
- text-transform: uppercase;
190
- letter-spacing: 0.025em;
191
- white-space: nowrap;
192
- }
193
-
194
- /* Text Position */
195
- .divider-text-left::before {
196
- flex: 0 0 2rem;
197
- }
198
-
199
- .divider-text-right::after {
200
- flex: 0 0 2rem;
201
- }
202
-
203
- /* Inset Divider */
301
+ /* ── Inset Divider ──────────────────────────────────────────────── */
204
302
  .divider-inset {
205
- margin-left: 4rem;
206
- width: calc(100% - 4rem);
303
+ padding-left: 4rem;
207
304
  }
208
305
 
209
306
  .divider-inset-right {
210
- margin-right: 4rem;
211
- width: calc(100% - 4rem);
307
+ padding-right: 4rem;
212
308
  }
213
309
 
214
310
  .divider-inset-both {
215
- margin-left: 4rem;
216
- margin-right: 4rem;
217
- width: calc(100% - 8rem);
311
+ padding-left: 4rem;
312
+ padding-right: 4rem;
218
313
  }
219
314
 
220
- /* List Divider (for use between list items) */
315
+ /* ── List / Card Helpers ────────────────────────────────────────── */
221
316
  .divider-list {
222
317
  margin: 0;
223
- margin-left: 1rem;
224
- width: calc(100% - 1rem);
318
+ padding-left: 1rem;
225
319
  }
226
320
 
227
- /* Card Divider */
228
321
  .divider-card {
229
322
  margin: 0;
230
323
  margin-left: -1rem;
231
324
  margin-right: -1rem;
232
- width: calc(100% + 2rem);
233
325
  }
234
326
 
235
- /* Gradient Divider */
236
- .divider-gradient {
237
- background: linear-gradient(
238
- to right,
239
- transparent,
240
- var(--color-outline-variant) 20%,
241
- var(--color-outline-variant) 80%,
242
- transparent
243
- );
244
- }
245
-
246
- .divider-gradient.divider-vertical {
247
- background: linear-gradient(
248
- to bottom,
249
- transparent,
250
- var(--color-outline-variant) 20%,
251
- var(--color-outline-variant) 80%,
252
- transparent
253
- );
327
+ /* ── Legacy: divider-text aliases ──────────────────────────────── */
328
+ /* divider-text is now just .divider — kept for backwards compat */
329
+ .divider-text {
330
+ display: flex;
331
+ flex-direction: row;
332
+ align-items: center;
333
+ gap: 0;
334
+ width: 100%;
335
+ margin: 1rem 0;
336
+ white-space: nowrap;
254
337
  }
255
338
 
256
- /* Decorative Divider */
257
- .divider-decorative {
258
- position: relative;
259
- height: auto;
260
- padding: 1rem 0;
261
- background-color: transparent;
262
- text-align: center;
339
+ .divider-text:not(:empty) {
340
+ gap: 1rem;
263
341
  }
264
342
 
265
- .divider-decorative::before {
343
+ .divider-text::before,
344
+ .divider-text::after {
266
345
  content: '';
267
- position: absolute;
268
- top: 50%;
269
- left: 0;
270
- right: 0;
346
+ flex: 1;
271
347
  height: 1px;
272
348
  background-color: var(--color-outline-variant);
273
349
  }
274
350
 
275
- .divider-decorative-icon {
276
- position: relative;
277
- display: inline-flex;
278
- align-items: center;
279
- justify-content: center;
280
- width: 2rem;
281
- height: 2rem;
282
- background-color: var(--color-surface);
283
- color: var(--color-on-surface-variant);
351
+ .divider-text-left::before,
352
+ .divider-text-left.divider-text::before {
353
+ flex: 0 0 2rem;
354
+ }
355
+
356
+ .divider-text-right::after,
357
+ .divider-text-right.divider-text::after {
358
+ flex: 0 0 2rem;
284
359
  }
285
360
  }
286
361
  `;
@@ -631,7 +631,7 @@ export const css = `/**
631
631
  /* Pagination Info */
632
632
  .pagination-info {
633
633
  display: flex;
634
- flex-direction: column;
634
+ flex-direction: row;
635
635
  align-items: center;
636
636
  gap: 0.5rem;
637
637
  }