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,510 @@
1
+ // ========================================
2
+ // ZenKit - Menu Component
3
+ // Navigation menu (horizontal/vertical)
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // Menu Base
10
+ // ----------------------------------------
11
+ .menu {
12
+ display: flex;
13
+ margin: 0;
14
+ padding: 0;
15
+ list-style: none;
16
+ color: var(--text-primary);
17
+ background-color: var(--bg-primary);
18
+ }
19
+
20
+ // ----------------------------------------
21
+ // Menu Item
22
+ // ----------------------------------------
23
+ .menu-item {
24
+ position: relative;
25
+ }
26
+
27
+ .menu-item-link {
28
+ display: flex;
29
+ align-items: center;
30
+ gap: 0.5rem;
31
+ padding: 0.75rem 1rem;
32
+ font-size: 0.875rem;
33
+ color: var(--text-primary);
34
+ text-decoration: none;
35
+ cursor: pointer;
36
+ transition: color 0.15s ease, background-color 0.15s ease;
37
+
38
+ &:hover {
39
+ color: var(--primary);
40
+ background-color: var(--bg-secondary);
41
+ }
42
+
43
+ .menu-item.is-active > & {
44
+ color: var(--primary);
45
+ font-weight: 500;
46
+ }
47
+
48
+ .menu-item.is-disabled > & {
49
+ color: var(--text-muted);
50
+ cursor: not-allowed;
51
+ pointer-events: none;
52
+ opacity: 0.5;
53
+ }
54
+ }
55
+
56
+ .menu-item-icon {
57
+ display: flex;
58
+ align-items: center;
59
+ font-size: 1rem;
60
+ }
61
+
62
+ .menu-item-label {
63
+ flex: 1;
64
+ }
65
+
66
+ .menu-item-arrow {
67
+ display: flex;
68
+ align-items: center;
69
+ color: var(--text-muted);
70
+ transition: transform 0.2s ease;
71
+
72
+ .menu-item.is-open > .menu-item-link & {
73
+ transform: rotate(180deg);
74
+ }
75
+ }
76
+
77
+ .menu-item-badge {
78
+ display: inline-flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ min-width: 1.25rem;
82
+ height: 1.25rem;
83
+ padding: 0 0.375rem;
84
+ font-size: 0.625rem;
85
+ font-weight: 600;
86
+ color: #fff;
87
+ background-color: var(--danger);
88
+ border-radius: 10px;
89
+ }
90
+
91
+ // ----------------------------------------
92
+ // Menu Horizontal (Default)
93
+ // ----------------------------------------
94
+ .menu-horizontal {
95
+ flex-direction: row;
96
+ border-bottom: 1px solid var(--border-color);
97
+
98
+ > .menu-item > .menu-item-link {
99
+ border-bottom: 2px solid transparent;
100
+ margin-bottom: -1px;
101
+ }
102
+
103
+ > .menu-item.is-active > .menu-item-link {
104
+ border-bottom-color: var(--primary);
105
+ }
106
+
107
+ .menu-item-arrow {
108
+ transform: rotate(0deg);
109
+
110
+ .menu-item.is-open > .menu-item-link & {
111
+ transform: rotate(180deg);
112
+ }
113
+ }
114
+ }
115
+
116
+ // ----------------------------------------
117
+ // Menu Vertical
118
+ // ----------------------------------------
119
+ .menu-vertical {
120
+ flex-direction: column;
121
+ width: 100%;
122
+ border-right: 1px solid var(--border-color);
123
+
124
+ .menu-item-link {
125
+ padding: 0.625rem 1rem;
126
+ }
127
+
128
+ > .menu-item.is-active > .menu-item-link {
129
+ background-color: rgba(var(--primary-rgb), 0.1);
130
+ }
131
+
132
+ .menu-item-arrow {
133
+ transform: rotate(-90deg);
134
+
135
+ .menu-item.is-open > .menu-item-link & {
136
+ transform: rotate(0deg);
137
+ }
138
+ }
139
+ }
140
+
141
+ // ----------------------------------------
142
+ // Menu Inline (Vertical with submenu inline)
143
+ // ----------------------------------------
144
+ .menu-inline {
145
+ flex-direction: column;
146
+ width: 100%;
147
+
148
+ .menu-item-link {
149
+ padding: 0.625rem 1rem;
150
+ }
151
+
152
+ .menu-item.is-active > .menu-item-link {
153
+ color: var(--primary);
154
+ background-color: rgba(var(--primary-rgb), 0.1);
155
+ }
156
+ }
157
+
158
+ // ----------------------------------------
159
+ // Submenu
160
+ // ----------------------------------------
161
+ .menu-submenu {
162
+ display: none;
163
+ margin: 0;
164
+ padding: 0;
165
+ list-style: none;
166
+
167
+ .menu-item.is-open > & {
168
+ display: block;
169
+ }
170
+ }
171
+
172
+ // Horizontal submenu (dropdown)
173
+ .menu-horizontal .menu-submenu {
174
+ position: absolute;
175
+ top: 100%;
176
+ left: 0;
177
+ z-index: $z-dropdown;
178
+ min-width: 160px;
179
+ background-color: var(--bg-primary);
180
+ border: 1px solid var(--border-color);
181
+ border-radius: $border-radius;
182
+ box-shadow: $shadow-lg;
183
+
184
+ .menu-item-link {
185
+ padding: 0.5rem 1rem;
186
+ border-bottom: none;
187
+ }
188
+ }
189
+
190
+ // Vertical submenu (dropdown)
191
+ .menu-vertical .menu-submenu {
192
+ position: absolute;
193
+ top: 0;
194
+ left: 100%;
195
+ z-index: $z-dropdown;
196
+ min-width: 160px;
197
+ background-color: var(--bg-primary);
198
+ border: 1px solid var(--border-color);
199
+ border-radius: $border-radius;
200
+ box-shadow: $shadow-lg;
201
+
202
+ .menu-item-link {
203
+ padding: 0.5rem 1rem;
204
+ }
205
+ }
206
+
207
+ // Inline submenu (nested)
208
+ .menu-inline .menu-submenu {
209
+ position: static;
210
+ padding-left: 1.5rem;
211
+ background-color: transparent;
212
+ border: none;
213
+ box-shadow: none;
214
+
215
+ .menu-item-link {
216
+ padding: 0.5rem 1rem;
217
+ }
218
+ }
219
+
220
+ // ----------------------------------------
221
+ // Menu Divider
222
+ // ----------------------------------------
223
+ .menu-divider {
224
+ height: 1px;
225
+ margin: 0.5rem 0;
226
+ background-color: var(--border-color);
227
+ }
228
+
229
+ .menu-horizontal .menu-divider {
230
+ width: 1px;
231
+ height: auto;
232
+ margin: 0 0.5rem;
233
+ }
234
+
235
+ // ----------------------------------------
236
+ // Menu Group
237
+ // ----------------------------------------
238
+ .menu-group {
239
+ padding-top: 0.5rem;
240
+ }
241
+
242
+ .menu-group-title {
243
+ padding: 0.5rem 1rem;
244
+ font-size: 0.75rem;
245
+ font-weight: 600;
246
+ color: var(--text-muted);
247
+ text-transform: uppercase;
248
+ letter-spacing: 0.05em;
249
+ }
250
+
251
+ // ----------------------------------------
252
+ // Menu Collapsed (Icon Only)
253
+ // ----------------------------------------
254
+ .menu-collapsed {
255
+ width: auto;
256
+
257
+ .menu-item-label,
258
+ .menu-item-arrow,
259
+ .menu-group-title {
260
+ display: none;
261
+ }
262
+
263
+ .menu-item-link {
264
+ justify-content: center;
265
+ padding: 0.75rem;
266
+ }
267
+
268
+ .menu-item-icon {
269
+ font-size: 1.25rem;
270
+ }
271
+
272
+ // Show submenu on hover
273
+ .menu-submenu {
274
+ position: absolute;
275
+ top: 0;
276
+ left: 100%;
277
+ display: none;
278
+ min-width: 160px;
279
+ padding-left: 0;
280
+ background-color: var(--bg-primary);
281
+ border: 1px solid var(--border-color);
282
+ border-radius: $border-radius;
283
+ box-shadow: $shadow-lg;
284
+
285
+ .menu-item-label {
286
+ display: block;
287
+ }
288
+ }
289
+
290
+ .menu-item:hover > .menu-submenu {
291
+ display: block;
292
+ }
293
+ }
294
+
295
+ // ----------------------------------------
296
+ // Menu Themes
297
+ // ----------------------------------------
298
+ // Dark theme
299
+ .menu-dark {
300
+ color: rgba(255, 255, 255, 0.85);
301
+ background-color: #001529;
302
+
303
+ .menu-item-link {
304
+ color: rgba(255, 255, 255, 0.65);
305
+
306
+ &:hover {
307
+ color: #fff;
308
+ background-color: transparent;
309
+ }
310
+ }
311
+
312
+ .menu-item.is-active > .menu-item-link {
313
+ color: #fff;
314
+ background-color: var(--primary);
315
+ }
316
+
317
+ .menu-submenu {
318
+ background-color: #000c17;
319
+ }
320
+
321
+ .menu-divider {
322
+ background-color: rgba(255, 255, 255, 0.1);
323
+ }
324
+
325
+ .menu-group-title {
326
+ color: rgba(255, 255, 255, 0.45);
327
+ }
328
+
329
+ &.menu-horizontal {
330
+ border-bottom-color: transparent;
331
+
332
+ > .menu-item.is-active > .menu-item-link {
333
+ background-color: transparent;
334
+ border-bottom-color: var(--primary);
335
+ }
336
+ }
337
+
338
+ &.menu-vertical,
339
+ &.menu-inline {
340
+ border-right-color: transparent;
341
+ }
342
+ }
343
+
344
+ // Light theme (explicit)
345
+ .menu-light {
346
+ color: var(--text-primary);
347
+ background-color: var(--bg-primary);
348
+ }
349
+
350
+ // ----------------------------------------
351
+ // Menu Sizes
352
+ // ----------------------------------------
353
+ .menu-sm {
354
+ .menu-item-link {
355
+ padding: 0.5rem 0.75rem;
356
+ font-size: 0.75rem;
357
+ }
358
+
359
+ .menu-item-icon {
360
+ font-size: 0.875rem;
361
+ }
362
+ }
363
+
364
+ .menu-lg {
365
+ .menu-item-link {
366
+ padding: 1rem 1.25rem;
367
+ font-size: 1rem;
368
+ }
369
+
370
+ .menu-item-icon {
371
+ font-size: 1.25rem;
372
+ }
373
+ }
374
+
375
+ // ----------------------------------------
376
+ // Menu Borderless
377
+ // ----------------------------------------
378
+ .menu-borderless {
379
+ border: none;
380
+
381
+ &.menu-horizontal {
382
+ border-bottom: none;
383
+
384
+ > .menu-item > .menu-item-link {
385
+ border-bottom: none;
386
+ }
387
+
388
+ > .menu-item.is-active > .menu-item-link {
389
+ background-color: rgba(var(--primary-rgb), 0.1);
390
+ border-radius: $border-radius;
391
+ }
392
+ }
393
+
394
+ &.menu-vertical,
395
+ &.menu-inline {
396
+ border-right: none;
397
+ }
398
+ }
399
+
400
+ // ----------------------------------------
401
+ // Menu Rounded Items
402
+ // ----------------------------------------
403
+ .menu-rounded {
404
+ .menu-item-link {
405
+ margin: 0.25rem 0.5rem;
406
+ border-radius: $border-radius;
407
+ }
408
+
409
+ &.menu-horizontal > .menu-item > .menu-item-link {
410
+ border-bottom: none;
411
+ margin-bottom: 0;
412
+ }
413
+ }
414
+
415
+ // ----------------------------------------
416
+ // Menu Overflow (for horizontal)
417
+ // ----------------------------------------
418
+ .menu-overflow {
419
+ position: relative;
420
+ }
421
+
422
+ .menu-overflow-item {
423
+ display: none;
424
+
425
+ &.is-visible {
426
+ display: block;
427
+ }
428
+ }
429
+
430
+ .menu-overflow-submenu {
431
+ .menu-item-link {
432
+ padding: 0.5rem 1rem;
433
+ }
434
+ }
435
+
436
+ // ----------------------------------------
437
+ // Menu Selected Indicator
438
+ // ----------------------------------------
439
+ .menu-indicator {
440
+ &.menu-vertical .menu-item.is-active::before,
441
+ &.menu-inline .menu-item.is-active::before {
442
+ content: '';
443
+ position: absolute;
444
+ top: 0;
445
+ left: 0;
446
+ width: 3px;
447
+ height: 100%;
448
+ background-color: var(--primary);
449
+ border-radius: 0 3px 3px 0;
450
+ }
451
+ }
452
+
453
+ // ----------------------------------------
454
+ // Menu Accordion (Only one submenu open)
455
+ // ----------------------------------------
456
+ .menu-accordion {
457
+ .menu-submenu {
458
+ overflow: hidden;
459
+ max-height: 0;
460
+ transition: max-height 0.3s ease;
461
+ }
462
+
463
+ .menu-item.is-open > .menu-submenu {
464
+ max-height: 500px;
465
+ }
466
+ }
467
+
468
+ // ----------------------------------------
469
+ // Menu Popup (for collapsed)
470
+ // ----------------------------------------
471
+ .menu-popup {
472
+ position: absolute;
473
+ z-index: $z-dropdown;
474
+ min-width: 160px;
475
+ padding: 0.25rem 0;
476
+ background-color: var(--bg-primary);
477
+ border: 1px solid var(--border-color);
478
+ border-radius: $border-radius;
479
+ box-shadow: $shadow-lg;
480
+ list-style: none;
481
+ margin: 0;
482
+ }
483
+
484
+ // ----------------------------------------
485
+ // Menu Responsive
486
+ // ----------------------------------------
487
+ @media (max-width: 767.98px) {
488
+ .menu-horizontal {
489
+ flex-direction: column;
490
+ border-bottom: none;
491
+ border-right: 1px solid var(--border-color);
492
+
493
+ > .menu-item > .menu-item-link {
494
+ border-bottom: none;
495
+ margin-bottom: 0;
496
+ }
497
+
498
+ > .menu-item.is-active > .menu-item-link {
499
+ border-bottom-color: transparent;
500
+ background-color: rgba(var(--primary-rgb), 0.1);
501
+ }
502
+
503
+ .menu-submenu {
504
+ position: static;
505
+ padding-left: 1.5rem;
506
+ border: none;
507
+ box-shadow: none;
508
+ }
509
+ }
510
+ }