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,593 @@
1
+ // ========================================
2
+ // ZenKit - ColorPicker Component
3
+ // Color selection panel
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // ColorPicker Wrapper
10
+ // ----------------------------------------
11
+ .colorpicker {
12
+ position: relative;
13
+ display: inline-block;
14
+ }
15
+
16
+ // ----------------------------------------
17
+ // ColorPicker Trigger
18
+ // ----------------------------------------
19
+ .colorpicker-trigger {
20
+ display: flex;
21
+ align-items: center;
22
+ gap: 0.5rem;
23
+ padding: 0.5rem 0.75rem;
24
+ background-color: var(--bg-primary);
25
+ border: 1px solid var(--border-color);
26
+ border-radius: $border-radius;
27
+ cursor: pointer;
28
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
29
+
30
+ &:hover {
31
+ border-color: var(--primary);
32
+ }
33
+
34
+ &:focus,
35
+ &.is-open {
36
+ border-color: var(--primary);
37
+ outline: 0;
38
+ box-shadow: 0 0 0 0.2rem rgba(var(--primary-rgb), 0.25);
39
+ }
40
+
41
+ &.is-disabled {
42
+ background-color: var(--bg-secondary);
43
+ cursor: not-allowed;
44
+ opacity: 0.65;
45
+ }
46
+ }
47
+
48
+ .colorpicker-swatch {
49
+ width: 24px;
50
+ height: 24px;
51
+ border-radius: $border-radius-sm;
52
+ border: 1px solid rgba(0, 0, 0, 0.1);
53
+ background-image: linear-gradient(45deg, #ccc 25%, transparent 25%),
54
+ linear-gradient(-45deg, #ccc 25%, transparent 25%),
55
+ linear-gradient(45deg, transparent 75%, #ccc 75%),
56
+ linear-gradient(-45deg, transparent 75%, #ccc 75%);
57
+ background-size: 8px 8px;
58
+ background-position: 0 0, 0 4px, 4px -4px, -4px 0;
59
+ }
60
+
61
+ .colorpicker-swatch-inner {
62
+ width: 100%;
63
+ height: 100%;
64
+ border-radius: inherit;
65
+ }
66
+
67
+ .colorpicker-value {
68
+ font-size: 0.875rem;
69
+ font-family: monospace;
70
+ color: var(--text-primary);
71
+ }
72
+
73
+ .colorpicker-arrow {
74
+ display: flex;
75
+ align-items: center;
76
+ color: var(--text-muted);
77
+ transition: transform 0.2s ease;
78
+
79
+ .is-open & {
80
+ transform: rotate(180deg);
81
+ }
82
+ }
83
+
84
+ // ----------------------------------------
85
+ // ColorPicker Dropdown Panel
86
+ // ----------------------------------------
87
+ .colorpicker-dropdown {
88
+ position: absolute;
89
+ top: 100%;
90
+ left: 0;
91
+ z-index: $z-dropdown;
92
+ display: none;
93
+ width: 280px;
94
+ margin-top: 4px;
95
+ padding: 0.75rem;
96
+ background-color: var(--bg-primary);
97
+ border: 1px solid var(--border-color);
98
+ border-radius: $border-radius;
99
+ box-shadow: $shadow-lg;
100
+
101
+ &.is-open {
102
+ display: block;
103
+ }
104
+
105
+ &.colorpicker-dropdown-up {
106
+ top: auto;
107
+ bottom: 100%;
108
+ margin-top: 0;
109
+ margin-bottom: 4px;
110
+ }
111
+ }
112
+
113
+ // ----------------------------------------
114
+ // ColorPicker Saturation Panel
115
+ // ----------------------------------------
116
+ .colorpicker-saturation {
117
+ position: relative;
118
+ width: 100%;
119
+ height: 150px;
120
+ border-radius: $border-radius-sm;
121
+ cursor: crosshair;
122
+ overflow: hidden;
123
+ }
124
+
125
+ .colorpicker-saturation-white {
126
+ position: absolute;
127
+ inset: 0;
128
+ background: linear-gradient(to right, #fff, transparent);
129
+ }
130
+
131
+ .colorpicker-saturation-black {
132
+ position: absolute;
133
+ inset: 0;
134
+ background: linear-gradient(to top, #000, transparent);
135
+ }
136
+
137
+ .colorpicker-saturation-pointer {
138
+ position: absolute;
139
+ width: 12px;
140
+ height: 12px;
141
+ border: 2px solid #fff;
142
+ border-radius: 50%;
143
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.3);
144
+ transform: translate(-50%, -50%);
145
+ pointer-events: none;
146
+ }
147
+
148
+ // ----------------------------------------
149
+ // ColorPicker Hue Slider
150
+ // ----------------------------------------
151
+ .colorpicker-hue {
152
+ position: relative;
153
+ width: 100%;
154
+ height: 12px;
155
+ margin-top: 0.75rem;
156
+ border-radius: 6px;
157
+ background: linear-gradient(
158
+ to right,
159
+ #f00 0%,
160
+ #ff0 17%,
161
+ #0f0 33%,
162
+ #0ff 50%,
163
+ #00f 67%,
164
+ #f0f 83%,
165
+ #f00 100%
166
+ );
167
+ cursor: pointer;
168
+ }
169
+
170
+ .colorpicker-hue-pointer {
171
+ position: absolute;
172
+ top: 50%;
173
+ width: 16px;
174
+ height: 16px;
175
+ background-color: #fff;
176
+ border: 2px solid #fff;
177
+ border-radius: 50%;
178
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.2);
179
+ transform: translate(-50%, -50%);
180
+ pointer-events: none;
181
+ }
182
+
183
+ // ----------------------------------------
184
+ // ColorPicker Alpha Slider
185
+ // ----------------------------------------
186
+ .colorpicker-alpha {
187
+ position: relative;
188
+ width: 100%;
189
+ height: 12px;
190
+ margin-top: 0.5rem;
191
+ border-radius: 6px;
192
+ background-image: linear-gradient(45deg, #ccc 25%, transparent 25%),
193
+ linear-gradient(-45deg, #ccc 25%, transparent 25%),
194
+ linear-gradient(45deg, transparent 75%, #ccc 75%),
195
+ linear-gradient(-45deg, transparent 75%, #ccc 75%);
196
+ background-size: 8px 8px;
197
+ background-position: 0 0, 0 4px, 4px -4px, -4px 0;
198
+ cursor: pointer;
199
+ overflow: hidden;
200
+ }
201
+
202
+ .colorpicker-alpha-gradient {
203
+ position: absolute;
204
+ inset: 0;
205
+ border-radius: inherit;
206
+ }
207
+
208
+ .colorpicker-alpha-pointer {
209
+ position: absolute;
210
+ top: 50%;
211
+ width: 16px;
212
+ height: 16px;
213
+ background-color: #fff;
214
+ border: 2px solid #fff;
215
+ border-radius: 50%;
216
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.2);
217
+ transform: translate(-50%, -50%);
218
+ pointer-events: none;
219
+ }
220
+
221
+ // ----------------------------------------
222
+ // ColorPicker Inputs
223
+ // ----------------------------------------
224
+ .colorpicker-inputs {
225
+ display: flex;
226
+ gap: 0.5rem;
227
+ margin-top: 0.75rem;
228
+ }
229
+
230
+ .colorpicker-input-group {
231
+ flex: 1;
232
+ display: flex;
233
+ flex-direction: column;
234
+ align-items: center;
235
+ }
236
+
237
+ .colorpicker-input {
238
+ width: 100%;
239
+ padding: 0.25rem 0.375rem;
240
+ font-size: 0.75rem;
241
+ font-family: monospace;
242
+ text-align: center;
243
+ color: var(--text-primary);
244
+ background-color: var(--bg-secondary);
245
+ border: 1px solid var(--border-color);
246
+ border-radius: $border-radius-sm;
247
+
248
+ &:focus {
249
+ border-color: var(--primary);
250
+ outline: 0;
251
+ }
252
+ }
253
+
254
+ .colorpicker-input-label {
255
+ margin-top: 0.25rem;
256
+ font-size: 0.625rem;
257
+ font-weight: 600;
258
+ color: var(--text-muted);
259
+ text-transform: uppercase;
260
+ }
261
+
262
+ .colorpicker-hex-input {
263
+ flex: 2;
264
+
265
+ .colorpicker-input {
266
+ font-size: 0.875rem;
267
+ }
268
+ }
269
+
270
+ // ----------------------------------------
271
+ // ColorPicker Mode Toggle
272
+ // ----------------------------------------
273
+ .colorpicker-mode {
274
+ display: flex;
275
+ align-items: center;
276
+ justify-content: center;
277
+ margin-left: 0.5rem;
278
+ }
279
+
280
+ .colorpicker-mode-btn {
281
+ display: flex;
282
+ align-items: center;
283
+ justify-content: center;
284
+ width: 24px;
285
+ height: 24px;
286
+ padding: 0;
287
+ color: var(--text-muted);
288
+ background: transparent;
289
+ border: none;
290
+ border-radius: $border-radius-sm;
291
+ cursor: pointer;
292
+ transition: color 0.15s ease, background-color 0.15s ease;
293
+
294
+ &:hover {
295
+ color: var(--text-primary);
296
+ background-color: var(--bg-tertiary);
297
+ }
298
+ }
299
+
300
+ // ----------------------------------------
301
+ // ColorPicker Presets
302
+ // ----------------------------------------
303
+ .colorpicker-presets {
304
+ display: flex;
305
+ flex-wrap: wrap;
306
+ gap: 0.375rem;
307
+ margin-top: 0.75rem;
308
+ padding-top: 0.75rem;
309
+ border-top: 1px solid var(--border-color);
310
+ }
311
+
312
+ .colorpicker-preset {
313
+ width: 20px;
314
+ height: 20px;
315
+ padding: 0;
316
+ border: 1px solid rgba(0, 0, 0, 0.1);
317
+ border-radius: $border-radius-sm;
318
+ cursor: pointer;
319
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
320
+
321
+ &:hover {
322
+ transform: scale(1.15);
323
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
324
+ }
325
+
326
+ &.is-selected {
327
+ box-shadow: 0 0 0 2px var(--primary);
328
+ }
329
+ }
330
+
331
+ .colorpicker-presets-title {
332
+ width: 100%;
333
+ margin-bottom: 0.25rem;
334
+ font-size: 0.75rem;
335
+ font-weight: 600;
336
+ color: var(--text-muted);
337
+ }
338
+
339
+ // ----------------------------------------
340
+ // ColorPicker Recent Colors
341
+ // ----------------------------------------
342
+ .colorpicker-recent {
343
+ display: flex;
344
+ flex-wrap: wrap;
345
+ gap: 0.375rem;
346
+ margin-top: 0.5rem;
347
+ }
348
+
349
+ .colorpicker-recent-title {
350
+ width: 100%;
351
+ margin-bottom: 0.25rem;
352
+ font-size: 0.75rem;
353
+ color: var(--text-muted);
354
+ }
355
+
356
+ // ----------------------------------------
357
+ // ColorPicker Footer
358
+ // ----------------------------------------
359
+ .colorpicker-footer {
360
+ display: flex;
361
+ justify-content: flex-end;
362
+ gap: 0.5rem;
363
+ margin-top: 0.75rem;
364
+ padding-top: 0.75rem;
365
+ border-top: 1px solid var(--border-color);
366
+ }
367
+
368
+ .colorpicker-clear-btn,
369
+ .colorpicker-confirm-btn {
370
+ padding: 0.375rem 0.75rem;
371
+ font-size: 0.875rem;
372
+ border-radius: $border-radius-sm;
373
+ cursor: pointer;
374
+ transition: all 0.15s ease;
375
+ }
376
+
377
+ .colorpicker-clear-btn {
378
+ color: var(--text-primary);
379
+ background: transparent;
380
+ border: 1px solid var(--border-color);
381
+
382
+ &:hover {
383
+ background-color: var(--bg-secondary);
384
+ }
385
+ }
386
+
387
+ .colorpicker-confirm-btn {
388
+ color: #fff;
389
+ background-color: var(--primary);
390
+ border: none;
391
+
392
+ &:hover {
393
+ background-color: var(--primary-dark);
394
+ }
395
+ }
396
+
397
+ // ----------------------------------------
398
+ // ColorPicker Sizes
399
+ // ----------------------------------------
400
+ .colorpicker-sm {
401
+ .colorpicker-trigger {
402
+ padding: 0.25rem 0.5rem;
403
+ }
404
+
405
+ .colorpicker-swatch {
406
+ width: 18px;
407
+ height: 18px;
408
+ }
409
+
410
+ .colorpicker-value {
411
+ font-size: 0.75rem;
412
+ }
413
+
414
+ .colorpicker-dropdown {
415
+ width: 240px;
416
+ padding: 0.5rem;
417
+ }
418
+
419
+ .colorpicker-saturation {
420
+ height: 120px;
421
+ }
422
+ }
423
+
424
+ .colorpicker-lg {
425
+ .colorpicker-trigger {
426
+ padding: 0.625rem 1rem;
427
+ }
428
+
429
+ .colorpicker-swatch {
430
+ width: 32px;
431
+ height: 32px;
432
+ }
433
+
434
+ .colorpicker-value {
435
+ font-size: 1rem;
436
+ }
437
+
438
+ .colorpicker-dropdown {
439
+ width: 320px;
440
+ padding: 1rem;
441
+ }
442
+
443
+ .colorpicker-saturation {
444
+ height: 180px;
445
+ }
446
+ }
447
+
448
+ // ----------------------------------------
449
+ // ColorPicker Variants
450
+ // ----------------------------------------
451
+ // Simple mode (just presets)
452
+ .colorpicker-simple {
453
+ .colorpicker-saturation,
454
+ .colorpicker-hue,
455
+ .colorpicker-alpha,
456
+ .colorpicker-inputs {
457
+ display: none;
458
+ }
459
+
460
+ .colorpicker-presets {
461
+ margin-top: 0;
462
+ padding-top: 0;
463
+ border-top: none;
464
+ }
465
+ }
466
+
467
+ // Block mode (inline)
468
+ .colorpicker-block {
469
+ display: block;
470
+
471
+ .colorpicker-dropdown {
472
+ position: static;
473
+ display: block;
474
+ margin-top: 0;
475
+ box-shadow: none;
476
+ }
477
+ }
478
+
479
+ // Without alpha
480
+ .colorpicker-no-alpha {
481
+ .colorpicker-alpha {
482
+ display: none;
483
+ }
484
+ }
485
+
486
+ // ----------------------------------------
487
+ // ColorPicker States
488
+ // ----------------------------------------
489
+ .colorpicker-error .colorpicker-trigger {
490
+ border-color: var(--danger);
491
+
492
+ &:focus,
493
+ &.is-open {
494
+ box-shadow: 0 0 0 0.2rem rgba(var(--danger-rgb), 0.25);
495
+ }
496
+ }
497
+
498
+ .colorpicker-disabled {
499
+ .colorpicker-trigger {
500
+ background-color: var(--bg-secondary);
501
+ cursor: not-allowed;
502
+ opacity: 0.65;
503
+ }
504
+ }
505
+
506
+ // ----------------------------------------
507
+ // Gradient Picker Extension
508
+ // ----------------------------------------
509
+ .colorpicker-gradient {
510
+ margin-top: 0.75rem;
511
+ padding-top: 0.75rem;
512
+ border-top: 1px solid var(--border-color);
513
+ }
514
+
515
+ .colorpicker-gradient-bar {
516
+ position: relative;
517
+ width: 100%;
518
+ height: 24px;
519
+ border-radius: $border-radius-sm;
520
+ cursor: pointer;
521
+ }
522
+
523
+ .colorpicker-gradient-stop {
524
+ position: absolute;
525
+ top: 50%;
526
+ width: 16px;
527
+ height: 16px;
528
+ background-color: #fff;
529
+ border: 2px solid #fff;
530
+ border-radius: 50%;
531
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.2);
532
+ transform: translate(-50%, -50%);
533
+ cursor: grab;
534
+
535
+ &.is-active {
536
+ box-shadow: 0 0 0 2px var(--primary), 0 2px 4px rgba(0, 0, 0, 0.2);
537
+ }
538
+ }
539
+
540
+ .colorpicker-gradient-type {
541
+ display: flex;
542
+ gap: 0.5rem;
543
+ margin-top: 0.5rem;
544
+ }
545
+
546
+ .colorpicker-gradient-type-btn {
547
+ flex: 1;
548
+ padding: 0.375rem;
549
+ font-size: 0.75rem;
550
+ color: var(--text-muted);
551
+ background: transparent;
552
+ border: 1px solid var(--border-color);
553
+ border-radius: $border-radius-sm;
554
+ cursor: pointer;
555
+ transition: all 0.15s ease;
556
+
557
+ &:hover {
558
+ background-color: var(--bg-secondary);
559
+ }
560
+
561
+ &.is-active {
562
+ color: var(--primary);
563
+ border-color: var(--primary);
564
+ }
565
+ }
566
+
567
+ // ----------------------------------------
568
+ // Eyedropper Tool
569
+ // ----------------------------------------
570
+ .colorpicker-eyedropper {
571
+ display: flex;
572
+ align-items: center;
573
+ justify-content: center;
574
+ width: 32px;
575
+ height: 32px;
576
+ margin-left: 0.5rem;
577
+ color: var(--text-muted);
578
+ background: transparent;
579
+ border: 1px solid var(--border-color);
580
+ border-radius: $border-radius-sm;
581
+ cursor: pointer;
582
+ transition: all 0.15s ease;
583
+
584
+ &:hover {
585
+ color: var(--text-primary);
586
+ background-color: var(--bg-secondary);
587
+ }
588
+
589
+ &.is-active {
590
+ color: var(--primary);
591
+ border-color: var(--primary);
592
+ }
593
+ }