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,488 @@
1
+ // ========================================
2
+ // ZenKit - Tour Component
3
+ // Guided tour / Product walkthrough
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // Tour Overlay / Mask
10
+ // ----------------------------------------
11
+ .tour-mask {
12
+ position: fixed;
13
+ inset: 0;
14
+ z-index: $z-modal - 1;
15
+ background-color: rgba(0, 0, 0, 0.45);
16
+ pointer-events: none;
17
+ }
18
+
19
+ // Mask with spotlight hole
20
+ .tour-mask-spotlight {
21
+ position: fixed;
22
+ inset: 0;
23
+ z-index: $z-modal - 1;
24
+ pointer-events: none;
25
+ // The spotlight is created via JS with box-shadow or clip-path
26
+ }
27
+
28
+ // ----------------------------------------
29
+ // Tour Highlight
30
+ // ----------------------------------------
31
+ .tour-highlight {
32
+ position: fixed;
33
+ z-index: $z-modal;
34
+ border: 2px solid var(--primary);
35
+ border-radius: $border-radius;
36
+ box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.45);
37
+ pointer-events: none;
38
+ transition: all 0.3s ease;
39
+ }
40
+
41
+ .tour-highlight-animated {
42
+ animation: tour-pulse 2s ease-in-out infinite;
43
+ }
44
+
45
+ @keyframes tour-pulse {
46
+ 0%, 100% {
47
+ box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.45),
48
+ 0 0 0 4px rgba(var(--primary-rgb), 0.3);
49
+ }
50
+ 50% {
51
+ box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.45),
52
+ 0 0 0 8px rgba(var(--primary-rgb), 0.1);
53
+ }
54
+ }
55
+
56
+ // ----------------------------------------
57
+ // Tour Popover / Step Card
58
+ // ----------------------------------------
59
+ .tour {
60
+ position: fixed;
61
+ z-index: $z-modal;
62
+ width: 360px;
63
+ max-width: calc(100vw - 32px);
64
+ background-color: var(--bg-primary);
65
+ border-radius: $border-radius-lg;
66
+ box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.08),
67
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12),
68
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05);
69
+ animation: tour-fade-in 0.3s ease;
70
+ }
71
+
72
+ @keyframes tour-fade-in {
73
+ from {
74
+ opacity: 0;
75
+ transform: translateY(8px);
76
+ }
77
+ to {
78
+ opacity: 1;
79
+ transform: translateY(0);
80
+ }
81
+ }
82
+
83
+ // ----------------------------------------
84
+ // Tour Arrow
85
+ // ----------------------------------------
86
+ .tour-arrow {
87
+ position: absolute;
88
+ width: 16px;
89
+ height: 16px;
90
+ overflow: hidden;
91
+ pointer-events: none;
92
+
93
+ &::before {
94
+ content: '';
95
+ position: absolute;
96
+ width: 8px;
97
+ height: 8px;
98
+ background-color: var(--bg-primary);
99
+ transform: rotate(45deg);
100
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
101
+ }
102
+ }
103
+
104
+ // Arrow positions (similar to popover)
105
+ .tour-placement-top .tour-arrow,
106
+ .tour-placement-top-left .tour-arrow,
107
+ .tour-placement-top-right .tour-arrow {
108
+ bottom: -8px;
109
+ left: 50%;
110
+ transform: translateX(-50%);
111
+
112
+ &::before {
113
+ top: -4px;
114
+ left: 4px;
115
+ }
116
+ }
117
+
118
+ .tour-placement-bottom .tour-arrow,
119
+ .tour-placement-bottom-left .tour-arrow,
120
+ .tour-placement-bottom-right .tour-arrow {
121
+ top: -8px;
122
+ left: 50%;
123
+ transform: translateX(-50%);
124
+
125
+ &::before {
126
+ bottom: -4px;
127
+ left: 4px;
128
+ }
129
+ }
130
+
131
+ .tour-placement-left .tour-arrow {
132
+ right: -8px;
133
+ top: 50%;
134
+ transform: translateY(-50%);
135
+
136
+ &::before {
137
+ right: -4px;
138
+ top: 4px;
139
+ }
140
+ }
141
+
142
+ .tour-placement-right .tour-arrow {
143
+ left: -8px;
144
+ top: 50%;
145
+ transform: translateY(-50%);
146
+
147
+ &::before {
148
+ left: -4px;
149
+ top: 4px;
150
+ }
151
+ }
152
+
153
+ // ----------------------------------------
154
+ // Tour Header
155
+ // ----------------------------------------
156
+ .tour-header {
157
+ display: flex;
158
+ align-items: flex-start;
159
+ justify-content: space-between;
160
+ padding: 1rem 1rem 0;
161
+ }
162
+
163
+ .tour-title {
164
+ margin: 0;
165
+ font-size: 1rem;
166
+ font-weight: 600;
167
+ color: var(--text-primary);
168
+ line-height: 1.4;
169
+ }
170
+
171
+ .tour-close {
172
+ display: flex;
173
+ align-items: center;
174
+ justify-content: center;
175
+ width: 1.5rem;
176
+ height: 1.5rem;
177
+ padding: 0;
178
+ margin: -0.25rem -0.25rem 0 0.5rem;
179
+ color: var(--text-muted);
180
+ background: transparent;
181
+ border: none;
182
+ border-radius: $border-radius-sm;
183
+ cursor: pointer;
184
+ transition: color 0.15s ease, background-color 0.15s ease;
185
+
186
+ &:hover {
187
+ color: var(--text-primary);
188
+ background-color: var(--bg-secondary);
189
+ }
190
+ }
191
+
192
+ // ----------------------------------------
193
+ // Tour Content
194
+ // ----------------------------------------
195
+ .tour-content {
196
+ padding: 0.75rem 1rem;
197
+ }
198
+
199
+ .tour-description {
200
+ font-size: 0.875rem;
201
+ color: var(--text-muted);
202
+ line-height: 1.6;
203
+ }
204
+
205
+ // Tour with image/media
206
+ .tour-cover {
207
+ margin-bottom: 0.75rem;
208
+ border-radius: $border-radius;
209
+ overflow: hidden;
210
+
211
+ img, video {
212
+ display: block;
213
+ width: 100%;
214
+ height: auto;
215
+ }
216
+ }
217
+
218
+ // ----------------------------------------
219
+ // Tour Footer
220
+ // ----------------------------------------
221
+ .tour-footer {
222
+ display: flex;
223
+ align-items: center;
224
+ justify-content: space-between;
225
+ padding: 0.75rem 1rem 1rem;
226
+ }
227
+
228
+ .tour-indicators {
229
+ display: flex;
230
+ align-items: center;
231
+ gap: 0.375rem;
232
+ }
233
+
234
+ .tour-indicator {
235
+ width: 6px;
236
+ height: 6px;
237
+ background-color: var(--border-color);
238
+ border-radius: 50%;
239
+ transition: background-color 0.2s ease, width 0.2s ease;
240
+
241
+ &.is-active {
242
+ width: 16px;
243
+ background-color: var(--primary);
244
+ border-radius: 3px;
245
+ }
246
+ }
247
+
248
+ .tour-progress {
249
+ font-size: 0.75rem;
250
+ color: var(--text-muted);
251
+ }
252
+
253
+ .tour-buttons {
254
+ display: flex;
255
+ align-items: center;
256
+ gap: 0.5rem;
257
+ }
258
+
259
+ .tour-btn {
260
+ padding: 0.375rem 0.75rem;
261
+ font-size: 0.875rem;
262
+ font-weight: 500;
263
+ border-radius: $border-radius-sm;
264
+ cursor: pointer;
265
+ transition: all 0.15s ease;
266
+ }
267
+
268
+ .tour-btn-skip {
269
+ color: var(--text-muted);
270
+ background: transparent;
271
+ border: none;
272
+
273
+ &:hover {
274
+ color: var(--text-primary);
275
+ }
276
+ }
277
+
278
+ .tour-btn-prev {
279
+ color: var(--text-primary);
280
+ background-color: transparent;
281
+ border: 1px solid var(--border-color);
282
+
283
+ &:hover {
284
+ border-color: var(--primary);
285
+ color: var(--primary);
286
+ }
287
+
288
+ &:disabled {
289
+ opacity: 0.5;
290
+ cursor: not-allowed;
291
+ }
292
+ }
293
+
294
+ .tour-btn-next,
295
+ .tour-btn-finish {
296
+ color: #fff;
297
+ background-color: var(--primary);
298
+ border: 1px solid var(--primary);
299
+
300
+ &:hover {
301
+ background-color: var(--primary-dark);
302
+ border-color: var(--primary-dark);
303
+ }
304
+ }
305
+
306
+ // ----------------------------------------
307
+ // Tour Types / Variants
308
+ // ----------------------------------------
309
+ // Primary type (default)
310
+ .tour-primary {
311
+ .tour-highlight {
312
+ border-color: var(--primary);
313
+ }
314
+ }
315
+
316
+ // Default type (subtle)
317
+ .tour-default {
318
+ .tour-highlight {
319
+ border-color: var(--border-color);
320
+ box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.3);
321
+ }
322
+ }
323
+
324
+ // ----------------------------------------
325
+ // Tour Dark Theme
326
+ // ----------------------------------------
327
+ .tour-dark {
328
+ background-color: #1f1f1f;
329
+
330
+ .tour-arrow::before {
331
+ background-color: #1f1f1f;
332
+ }
333
+
334
+ .tour-title {
335
+ color: rgba(255, 255, 255, 0.85);
336
+ }
337
+
338
+ .tour-description {
339
+ color: rgba(255, 255, 255, 0.65);
340
+ }
341
+
342
+ .tour-close {
343
+ color: rgba(255, 255, 255, 0.45);
344
+
345
+ &:hover {
346
+ color: rgba(255, 255, 255, 0.85);
347
+ background-color: rgba(255, 255, 255, 0.1);
348
+ }
349
+ }
350
+
351
+ .tour-indicator {
352
+ background-color: rgba(255, 255, 255, 0.2);
353
+
354
+ &.is-active {
355
+ background-color: var(--primary);
356
+ }
357
+ }
358
+
359
+ .tour-progress {
360
+ color: rgba(255, 255, 255, 0.45);
361
+ }
362
+
363
+ .tour-btn-skip {
364
+ color: rgba(255, 255, 255, 0.45);
365
+
366
+ &:hover {
367
+ color: rgba(255, 255, 255, 0.85);
368
+ }
369
+ }
370
+
371
+ .tour-btn-prev {
372
+ color: rgba(255, 255, 255, 0.85);
373
+ border-color: rgba(255, 255, 255, 0.2);
374
+ }
375
+ }
376
+
377
+ // ----------------------------------------
378
+ // Tour Sizes
379
+ // ----------------------------------------
380
+ .tour-sm {
381
+ width: 280px;
382
+
383
+ .tour-title {
384
+ font-size: 0.875rem;
385
+ }
386
+
387
+ .tour-description {
388
+ font-size: 0.8125rem;
389
+ }
390
+
391
+ .tour-btn {
392
+ padding: 0.25rem 0.625rem;
393
+ font-size: 0.8125rem;
394
+ }
395
+ }
396
+
397
+ .tour-lg {
398
+ width: 480px;
399
+
400
+ .tour-title {
401
+ font-size: 1.125rem;
402
+ }
403
+
404
+ .tour-description {
405
+ font-size: 1rem;
406
+ }
407
+ }
408
+
409
+ // ----------------------------------------
410
+ // Tour Without Mask
411
+ // ----------------------------------------
412
+ .tour-no-mask {
413
+ .tour-mask,
414
+ .tour-mask-spotlight {
415
+ display: none;
416
+ }
417
+
418
+ .tour-highlight {
419
+ box-shadow: 0 0 0 4px rgba(var(--primary-rgb), 0.3);
420
+ }
421
+ }
422
+
423
+ // ----------------------------------------
424
+ // Tour Centered (No Target)
425
+ // ----------------------------------------
426
+ .tour-centered {
427
+ position: fixed;
428
+ top: 50%;
429
+ left: 50%;
430
+ transform: translate(-50%, -50%);
431
+ }
432
+
433
+ // ----------------------------------------
434
+ // Tour Steps List (for debugging/accessibility)
435
+ // ----------------------------------------
436
+ .tour-steps-list {
437
+ display: none;
438
+ }
439
+
440
+ // ----------------------------------------
441
+ // Tour Target Scrolling Indicator
442
+ // ----------------------------------------
443
+ .tour-scroll-indicator {
444
+ position: fixed;
445
+ bottom: 20%;
446
+ left: 50%;
447
+ transform: translateX(-50%);
448
+ z-index: $z-modal;
449
+ display: flex;
450
+ align-items: center;
451
+ gap: 0.5rem;
452
+ padding: 0.5rem 1rem;
453
+ font-size: 0.875rem;
454
+ color: #fff;
455
+ background-color: rgba(0, 0, 0, 0.75);
456
+ border-radius: $border-radius;
457
+ animation: bounce 1s ease infinite;
458
+ }
459
+
460
+ @keyframes bounce {
461
+ 0%, 100% { transform: translateX(-50%) translateY(0); }
462
+ 50% { transform: translateX(-50%) translateY(-4px); }
463
+ }
464
+
465
+ // ----------------------------------------
466
+ // Tour Responsive
467
+ // ----------------------------------------
468
+ @media (max-width: 575.98px) {
469
+ .tour {
470
+ width: calc(100vw - 24px);
471
+ max-width: none;
472
+ }
473
+
474
+ .tour-footer {
475
+ flex-wrap: wrap;
476
+ gap: 0.75rem;
477
+ }
478
+
479
+ .tour-indicators {
480
+ width: 100%;
481
+ justify-content: center;
482
+ }
483
+
484
+ .tour-buttons {
485
+ width: 100%;
486
+ justify-content: space-between;
487
+ }
488
+ }