zenkit-css 1.0.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 (96) hide show
  1. package/README.md +182 -0
  2. package/dist/zenkit.css +33721 -0
  3. package/dist/zenkit.css.map +1 -0
  4. package/dist/zenkit.min.css +1 -0
  5. package/dist/zenkit.min.css.map +1 -0
  6. package/package.json +41 -0
  7. package/scss/abstracts/_functions.scss +174 -0
  8. package/scss/abstracts/_mixins.scss +272 -0
  9. package/scss/abstracts/_variables.scss +216 -0
  10. package/scss/base/_reset.scss +130 -0
  11. package/scss/base/_root.scss +194 -0
  12. package/scss/base/_typography.scss +271 -0
  13. package/scss/components/_accordion.scss +200 -0
  14. package/scss/components/_affix.scss +278 -0
  15. package/scss/components/_alerts.scss +175 -0
  16. package/scss/components/_anchor.scss +438 -0
  17. package/scss/components/_autocomplete.scss +530 -0
  18. package/scss/components/_avatar.scss +256 -0
  19. package/scss/components/_backtop.scss +329 -0
  20. package/scss/components/_badges.scss +266 -0
  21. package/scss/components/_breadcrumb.scss +102 -0
  22. package/scss/components/_buttons.scss +340 -0
  23. package/scss/components/_calendar.scss +787 -0
  24. package/scss/components/_cards.scss +265 -0
  25. package/scss/components/_carousel.scss +306 -0
  26. package/scss/components/_cascader.scss +510 -0
  27. package/scss/components/_close-button.scss +106 -0
  28. package/scss/components/_colorpicker.scss +593 -0
  29. package/scss/components/_datepicker.scss +625 -0
  30. package/scss/components/_descriptions.scss +453 -0
  31. package/scss/components/_divider.scss +253 -0
  32. package/scss/components/_drawer.scss +485 -0
  33. package/scss/components/_dropdown.scss +323 -0
  34. package/scss/components/_empty.scss +321 -0
  35. package/scss/components/_floatbutton.scss +400 -0
  36. package/scss/components/_forms.scss +753 -0
  37. package/scss/components/_image.scss +497 -0
  38. package/scss/components/_inputnumber.scss +475 -0
  39. package/scss/components/_layout.scss +538 -0
  40. package/scss/components/_list-group.scss +227 -0
  41. package/scss/components/_list.scss +528 -0
  42. package/scss/components/_mentions.scss +479 -0
  43. package/scss/components/_menu.scss +510 -0
  44. package/scss/components/_message.scss +412 -0
  45. package/scss/components/_modal.scss +304 -0
  46. package/scss/components/_navbar.scss +329 -0
  47. package/scss/components/_notification.scss +499 -0
  48. package/scss/components/_offcanvas.scss +274 -0
  49. package/scss/components/_pagination.scss +176 -0
  50. package/scss/components/_placeholder.scss +237 -0
  51. package/scss/components/_popconfirm.scss +393 -0
  52. package/scss/components/_popover.scss +298 -0
  53. package/scss/components/_progress.scss +225 -0
  54. package/scss/components/_rating.scss +314 -0
  55. package/scss/components/_result.scss +383 -0
  56. package/scss/components/_segmented.scss +441 -0
  57. package/scss/components/_select.scss +412 -0
  58. package/scss/components/_spinners.scss +229 -0
  59. package/scss/components/_statistic.scss +336 -0
  60. package/scss/components/_steps.scss +343 -0
  61. package/scss/components/_tabs.scss +239 -0
  62. package/scss/components/_tag.scss +317 -0
  63. package/scss/components/_timeline.scss +341 -0
  64. package/scss/components/_timepicker.scss +468 -0
  65. package/scss/components/_toast.scss +279 -0
  66. package/scss/components/_tooltip.scss +305 -0
  67. package/scss/components/_tour.scss +488 -0
  68. package/scss/components/_transfer.scss +556 -0
  69. package/scss/components/_tree.scss +518 -0
  70. package/scss/components/_treeselect.scss +531 -0
  71. package/scss/components/_upload.scss +510 -0
  72. package/scss/components/_watermark.scss +314 -0
  73. package/scss/content/_figures.scss +38 -0
  74. package/scss/content/_images.scss +138 -0
  75. package/scss/content/_tables.scss +232 -0
  76. package/scss/layout/_container.scss +71 -0
  77. package/scss/layout/_grid.scss +258 -0
  78. package/scss/utilities/_animations.scss +494 -0
  79. package/scss/utilities/_borders.scss +246 -0
  80. package/scss/utilities/_colors.scss +194 -0
  81. package/scss/utilities/_display.scss +263 -0
  82. package/scss/utilities/_filters.scss +328 -0
  83. package/scss/utilities/_flex.scss +178 -0
  84. package/scss/utilities/_float.scss +70 -0
  85. package/scss/utilities/_grid-utils.scss +151 -0
  86. package/scss/utilities/_helpers.scss +479 -0
  87. package/scss/utilities/_interactions.scss +249 -0
  88. package/scss/utilities/_overflow.scss +204 -0
  89. package/scss/utilities/_position.scss +245 -0
  90. package/scss/utilities/_shadows.scss +67 -0
  91. package/scss/utilities/_sizing.scss +217 -0
  92. package/scss/utilities/_spacing.scss +207 -0
  93. package/scss/utilities/_text.scss +237 -0
  94. package/scss/utilities/_transforms.scss +368 -0
  95. package/scss/utilities/_visibility.scss +251 -0
  96. package/scss/zenkit.scss +121 -0
@@ -0,0 +1,528 @@
1
+ // ========================================
2
+ // ZenKit - List Component
3
+ // Structured list with various layouts
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // List Container
10
+ // ----------------------------------------
11
+ .list {
12
+ display: flex;
13
+ flex-direction: column;
14
+ }
15
+
16
+ // ----------------------------------------
17
+ // List Header
18
+ // ----------------------------------------
19
+ .list-header {
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: space-between;
23
+ padding: 0.75rem 1rem;
24
+ background-color: var(--bg-secondary);
25
+ border-bottom: 1px solid var(--border-color);
26
+ }
27
+
28
+ .list-header-title {
29
+ font-size: 1rem;
30
+ font-weight: 600;
31
+ color: var(--text-primary);
32
+ }
33
+
34
+ .list-header-extra {
35
+ display: flex;
36
+ align-items: center;
37
+ gap: 0.5rem;
38
+ }
39
+
40
+ // ----------------------------------------
41
+ // List Footer
42
+ // ----------------------------------------
43
+ .list-footer {
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: space-between;
47
+ padding: 0.75rem 1rem;
48
+ background-color: var(--bg-secondary);
49
+ border-top: 1px solid var(--border-color);
50
+ }
51
+
52
+ // ----------------------------------------
53
+ // List Items Container
54
+ // ----------------------------------------
55
+ .list-items {
56
+ display: flex;
57
+ flex-direction: column;
58
+ margin: 0;
59
+ padding: 0;
60
+ list-style: none;
61
+ }
62
+
63
+ // ----------------------------------------
64
+ // List Item
65
+ // ----------------------------------------
66
+ .list-item {
67
+ display: flex;
68
+ align-items: flex-start;
69
+ padding: 0.75rem 1rem;
70
+ border-bottom: 1px solid var(--border-color);
71
+
72
+ &:last-child {
73
+ border-bottom: none;
74
+ }
75
+ }
76
+
77
+ // ----------------------------------------
78
+ // List Item Meta
79
+ // ----------------------------------------
80
+ .list-item-meta {
81
+ display: flex;
82
+ align-items: flex-start;
83
+ flex: 1;
84
+ gap: 0.75rem;
85
+ }
86
+
87
+ .list-item-meta-avatar {
88
+ flex-shrink: 0;
89
+ }
90
+
91
+ .list-item-meta-content {
92
+ flex: 1;
93
+ min-width: 0;
94
+ }
95
+
96
+ .list-item-meta-title {
97
+ margin-bottom: 0.25rem;
98
+ font-size: 0.875rem;
99
+ font-weight: 500;
100
+ color: var(--text-primary);
101
+ line-height: 1.4;
102
+
103
+ a {
104
+ color: inherit;
105
+ text-decoration: none;
106
+
107
+ &:hover {
108
+ color: var(--primary);
109
+ }
110
+ }
111
+ }
112
+
113
+ .list-item-meta-description {
114
+ font-size: 0.8125rem;
115
+ color: var(--text-muted);
116
+ line-height: 1.5;
117
+ }
118
+
119
+ // ----------------------------------------
120
+ // List Item Content
121
+ // ----------------------------------------
122
+ .list-item-content {
123
+ flex: 1;
124
+ display: flex;
125
+ flex-direction: column;
126
+ }
127
+
128
+ // ----------------------------------------
129
+ // List Item Extra (Right Side)
130
+ // ----------------------------------------
131
+ .list-item-extra {
132
+ flex-shrink: 0;
133
+ margin-left: 1rem;
134
+ }
135
+
136
+ // ----------------------------------------
137
+ // List Item Actions
138
+ // ----------------------------------------
139
+ .list-item-actions {
140
+ display: flex;
141
+ align-items: center;
142
+ gap: 0.5rem;
143
+ margin-left: auto;
144
+ padding-left: 1rem;
145
+ }
146
+
147
+ .list-item-action {
148
+ padding: 0.25rem 0.5rem;
149
+ font-size: 0.875rem;
150
+ color: var(--text-muted);
151
+ background: transparent;
152
+ border: none;
153
+ cursor: pointer;
154
+ transition: color 0.15s ease;
155
+
156
+ &:hover {
157
+ color: var(--primary);
158
+ }
159
+ }
160
+
161
+ .list-item-action-divider {
162
+ width: 1px;
163
+ height: 1rem;
164
+ background-color: var(--border-color);
165
+ }
166
+
167
+ // ----------------------------------------
168
+ // List Bordered
169
+ // ----------------------------------------
170
+ .list-bordered {
171
+ border: 1px solid var(--border-color);
172
+ border-radius: $border-radius;
173
+ }
174
+
175
+ // ----------------------------------------
176
+ // List Split (Dividers)
177
+ // ----------------------------------------
178
+ .list-split .list-item {
179
+ border-bottom: 1px solid var(--border-color);
180
+
181
+ &:last-child {
182
+ border-bottom: none;
183
+ }
184
+ }
185
+
186
+ // ----------------------------------------
187
+ // List Sizes
188
+ // ----------------------------------------
189
+ .list-sm {
190
+ .list-item {
191
+ padding: 0.5rem 0.75rem;
192
+ }
193
+
194
+ .list-item-meta-title {
195
+ font-size: 0.8125rem;
196
+ }
197
+
198
+ .list-item-meta-description {
199
+ font-size: 0.75rem;
200
+ }
201
+ }
202
+
203
+ .list-lg {
204
+ .list-item {
205
+ padding: 1rem 1.25rem;
206
+ }
207
+
208
+ .list-item-meta-title {
209
+ font-size: 1rem;
210
+ }
211
+
212
+ .list-item-meta-description {
213
+ font-size: 0.875rem;
214
+ }
215
+ }
216
+
217
+ // ----------------------------------------
218
+ // List Hoverable
219
+ // ----------------------------------------
220
+ .list-hoverable .list-item {
221
+ cursor: pointer;
222
+ transition: background-color 0.15s ease;
223
+
224
+ &:hover {
225
+ background-color: var(--bg-secondary);
226
+ }
227
+ }
228
+
229
+ // ----------------------------------------
230
+ // List Selectable
231
+ // ----------------------------------------
232
+ .list-selectable .list-item {
233
+ cursor: pointer;
234
+ transition: background-color 0.15s ease;
235
+
236
+ &:hover {
237
+ background-color: var(--bg-secondary);
238
+ }
239
+
240
+ &.is-selected {
241
+ background-color: rgba(var(--primary-rgb), 0.1);
242
+ }
243
+ }
244
+
245
+ // ----------------------------------------
246
+ // List Grid Layout
247
+ // ----------------------------------------
248
+ .list-grid {
249
+ .list-items {
250
+ display: grid;
251
+ gap: 1rem;
252
+ }
253
+
254
+ .list-item {
255
+ border-bottom: none;
256
+ flex-direction: column;
257
+ }
258
+ }
259
+
260
+ // Grid columns
261
+ .list-grid-col-2 .list-items {
262
+ grid-template-columns: repeat(2, 1fr);
263
+ }
264
+
265
+ .list-grid-col-3 .list-items {
266
+ grid-template-columns: repeat(3, 1fr);
267
+ }
268
+
269
+ .list-grid-col-4 .list-items {
270
+ grid-template-columns: repeat(4, 1fr);
271
+ }
272
+
273
+ .list-grid-col-5 .list-items {
274
+ grid-template-columns: repeat(5, 1fr);
275
+ }
276
+
277
+ .list-grid-col-6 .list-items {
278
+ grid-template-columns: repeat(6, 1fr);
279
+ }
280
+
281
+ // ----------------------------------------
282
+ // List Vertical Item Layout
283
+ // ----------------------------------------
284
+ .list-vertical .list-item {
285
+ flex-direction: column;
286
+ align-items: stretch;
287
+
288
+ .list-item-extra {
289
+ margin-left: 0;
290
+ margin-top: 0.75rem;
291
+ }
292
+
293
+ .list-item-actions {
294
+ margin-left: 0;
295
+ margin-top: 0.75rem;
296
+ padding-left: 0;
297
+ }
298
+ }
299
+
300
+ // ----------------------------------------
301
+ // List Loading
302
+ // ----------------------------------------
303
+ .list-loading {
304
+ display: flex;
305
+ flex-direction: column;
306
+ gap: 0.75rem;
307
+ padding: 1rem;
308
+ }
309
+
310
+ .list-loading-item {
311
+ display: flex;
312
+ align-items: flex-start;
313
+ gap: 0.75rem;
314
+ }
315
+
316
+ .list-loading-avatar,
317
+ .list-loading-title,
318
+ .list-loading-description {
319
+ background-color: var(--bg-tertiary);
320
+ border-radius: $border-radius-sm;
321
+ animation: pulse 1.5s ease-in-out infinite;
322
+ }
323
+
324
+ .list-loading-avatar {
325
+ width: 40px;
326
+ height: 40px;
327
+ border-radius: 50%;
328
+ }
329
+
330
+ .list-loading-content {
331
+ flex: 1;
332
+ display: flex;
333
+ flex-direction: column;
334
+ gap: 0.5rem;
335
+ }
336
+
337
+ .list-loading-title {
338
+ height: 16px;
339
+ width: 40%;
340
+ }
341
+
342
+ .list-loading-description {
343
+ height: 12px;
344
+ width: 80%;
345
+ }
346
+
347
+ @keyframes pulse {
348
+ 0%, 100% { opacity: 1; }
349
+ 50% { opacity: 0.5; }
350
+ }
351
+
352
+ // ----------------------------------------
353
+ // List Empty
354
+ // ----------------------------------------
355
+ .list-empty {
356
+ display: flex;
357
+ flex-direction: column;
358
+ align-items: center;
359
+ justify-content: center;
360
+ padding: 3rem 1rem;
361
+ color: var(--text-muted);
362
+ }
363
+
364
+ .list-empty-icon {
365
+ font-size: 3rem;
366
+ margin-bottom: 1rem;
367
+ opacity: 0.5;
368
+ }
369
+
370
+ .list-empty-text {
371
+ font-size: 0.875rem;
372
+ }
373
+
374
+ // ----------------------------------------
375
+ // List Load More
376
+ // ----------------------------------------
377
+ .list-load-more {
378
+ display: flex;
379
+ align-items: center;
380
+ justify-content: center;
381
+ padding: 1rem;
382
+ border-top: 1px solid var(--border-color);
383
+ }
384
+
385
+ .list-load-more-btn {
386
+ padding: 0.5rem 1.5rem;
387
+ font-size: 0.875rem;
388
+ color: var(--text-primary);
389
+ background: transparent;
390
+ border: 1px solid var(--border-color);
391
+ border-radius: $border-radius;
392
+ cursor: pointer;
393
+ transition: all 0.15s ease;
394
+
395
+ &:hover {
396
+ color: var(--primary);
397
+ border-color: var(--primary);
398
+ }
399
+
400
+ &:disabled {
401
+ opacity: 0.5;
402
+ cursor: not-allowed;
403
+ }
404
+ }
405
+
406
+ // ----------------------------------------
407
+ // List Pagination
408
+ // ----------------------------------------
409
+ .list-pagination {
410
+ display: flex;
411
+ align-items: center;
412
+ justify-content: flex-end;
413
+ padding: 0.75rem 1rem;
414
+ border-top: 1px solid var(--border-color);
415
+ }
416
+
417
+ // ----------------------------------------
418
+ // List Card Style
419
+ // ----------------------------------------
420
+ .list-card {
421
+ background-color: var(--bg-primary);
422
+ border: 1px solid var(--border-color);
423
+ border-radius: $border-radius;
424
+ box-shadow: $shadow-sm;
425
+ }
426
+
427
+ .list-card .list-item {
428
+ background-color: transparent;
429
+ }
430
+
431
+ // ----------------------------------------
432
+ // List Striped
433
+ // ----------------------------------------
434
+ .list-striped .list-item:nth-child(even) {
435
+ background-color: var(--bg-secondary);
436
+ }
437
+
438
+ // ----------------------------------------
439
+ // List Compact
440
+ // ----------------------------------------
441
+ .list-compact .list-item {
442
+ padding: 0.375rem 0.75rem;
443
+ }
444
+
445
+ // ----------------------------------------
446
+ // List with Checkbox
447
+ // ----------------------------------------
448
+ .list-item-checkbox {
449
+ flex-shrink: 0;
450
+ margin-right: 0.75rem;
451
+ }
452
+
453
+ // ----------------------------------------
454
+ // List Item Expand
455
+ // ----------------------------------------
456
+ .list-item-expand {
457
+ display: none;
458
+ padding: 0.75rem 1rem;
459
+ background-color: var(--bg-secondary);
460
+ border-bottom: 1px solid var(--border-color);
461
+
462
+ .list-item.is-expanded + & {
463
+ display: block;
464
+ }
465
+ }
466
+
467
+ .list-item-expand-toggle {
468
+ display: flex;
469
+ align-items: center;
470
+ justify-content: center;
471
+ width: 1.5rem;
472
+ height: 1.5rem;
473
+ padding: 0;
474
+ color: var(--text-muted);
475
+ background: transparent;
476
+ border: none;
477
+ border-radius: $border-radius-sm;
478
+ cursor: pointer;
479
+ transition: color 0.15s ease, transform 0.2s ease;
480
+
481
+ &:hover {
482
+ color: var(--text-primary);
483
+ }
484
+
485
+ .list-item.is-expanded & {
486
+ transform: rotate(90deg);
487
+ }
488
+ }
489
+
490
+ // ----------------------------------------
491
+ // List Responsive
492
+ // ----------------------------------------
493
+ @media (max-width: 767.98px) {
494
+ .list-grid-col-3 .list-items,
495
+ .list-grid-col-4 .list-items,
496
+ .list-grid-col-5 .list-items,
497
+ .list-grid-col-6 .list-items {
498
+ grid-template-columns: repeat(2, 1fr);
499
+ }
500
+
501
+ .list-item {
502
+ flex-wrap: wrap;
503
+ }
504
+
505
+ .list-item-extra {
506
+ width: 100%;
507
+ margin-left: 0;
508
+ margin-top: 0.75rem;
509
+ }
510
+
511
+ .list-item-actions {
512
+ width: 100%;
513
+ margin-left: 0;
514
+ margin-top: 0.75rem;
515
+ padding-left: 0;
516
+ justify-content: flex-start;
517
+ }
518
+ }
519
+
520
+ @media (max-width: 575.98px) {
521
+ .list-grid-col-2 .list-items,
522
+ .list-grid-col-3 .list-items,
523
+ .list-grid-col-4 .list-items,
524
+ .list-grid-col-5 .list-items,
525
+ .list-grid-col-6 .list-items {
526
+ grid-template-columns: 1fr;
527
+ }
528
+ }