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,336 @@
1
+ // ========================================
2
+ // ZenKit - Statistic / Stats
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+
7
+ // ----------------------------------------
8
+ // Base Statistic
9
+ // ----------------------------------------
10
+ .statistic {
11
+ display: flex;
12
+ flex-direction: column;
13
+ }
14
+
15
+ // ----------------------------------------
16
+ // Statistic Title
17
+ // ----------------------------------------
18
+ .statistic-title {
19
+ font-size: var(--text-sm);
20
+ font-weight: $font-weight-medium;
21
+ color: var(--text-muted);
22
+ margin-bottom: 0.25rem;
23
+ }
24
+
25
+ // ----------------------------------------
26
+ // Statistic Value
27
+ // ----------------------------------------
28
+ .statistic-value {
29
+ font-size: var(--text-3xl);
30
+ font-weight: $font-weight-bold;
31
+ color: var(--text);
32
+ line-height: $line-height-tight;
33
+ }
34
+
35
+ // ----------------------------------------
36
+ // Statistic Prefix/Suffix
37
+ // ----------------------------------------
38
+ .statistic-prefix,
39
+ .statistic-suffix {
40
+ font-size: var(--text-xl);
41
+ font-weight: $font-weight-semibold;
42
+ }
43
+
44
+ .statistic-prefix {
45
+ margin-right: 0.25rem;
46
+ }
47
+
48
+ .statistic-suffix {
49
+ margin-left: 0.25rem;
50
+ }
51
+
52
+ // ----------------------------------------
53
+ // Statistic with Icon
54
+ // ----------------------------------------
55
+ .statistic-icon {
56
+ display: flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+ width: 3rem;
60
+ height: 3rem;
61
+ margin-bottom: 0.75rem;
62
+ color: var(--primary);
63
+ background-color: var(--primary-50);
64
+ border-radius: var(--radius-lg);
65
+
66
+ svg {
67
+ width: 1.5rem;
68
+ height: 1.5rem;
69
+ }
70
+ }
71
+
72
+ .statistic-icon-success {
73
+ color: $success;
74
+ background-color: $success-light;
75
+ }
76
+
77
+ .statistic-icon-danger {
78
+ color: $danger;
79
+ background-color: $danger-light;
80
+ }
81
+
82
+ .statistic-icon-warning {
83
+ color: $warning-dark;
84
+ background-color: $warning-light;
85
+ }
86
+
87
+ .statistic-icon-info {
88
+ color: $info;
89
+ background-color: $info-light;
90
+ }
91
+
92
+ // ----------------------------------------
93
+ // Statistic Sizes
94
+ // ----------------------------------------
95
+ .statistic-sm {
96
+ .statistic-title {
97
+ font-size: var(--text-xs);
98
+ }
99
+
100
+ .statistic-value {
101
+ font-size: var(--text-xl);
102
+ }
103
+
104
+ .statistic-prefix,
105
+ .statistic-suffix {
106
+ font-size: var(--text-base);
107
+ }
108
+
109
+ .statistic-icon {
110
+ width: 2rem;
111
+ height: 2rem;
112
+
113
+ svg {
114
+ width: 1rem;
115
+ height: 1rem;
116
+ }
117
+ }
118
+ }
119
+
120
+ .statistic-lg {
121
+ .statistic-title {
122
+ font-size: var(--text-base);
123
+ }
124
+
125
+ .statistic-value {
126
+ font-size: var(--text-5xl);
127
+ }
128
+
129
+ .statistic-prefix,
130
+ .statistic-suffix {
131
+ font-size: var(--text-2xl);
132
+ }
133
+
134
+ .statistic-icon {
135
+ width: 4rem;
136
+ height: 4rem;
137
+
138
+ svg {
139
+ width: 2rem;
140
+ height: 2rem;
141
+ }
142
+ }
143
+ }
144
+
145
+ // ----------------------------------------
146
+ // Statistic Trend
147
+ // ----------------------------------------
148
+ .statistic-trend {
149
+ display: inline-flex;
150
+ align-items: center;
151
+ gap: 0.25rem;
152
+ font-size: var(--text-sm);
153
+ font-weight: $font-weight-medium;
154
+ margin-top: 0.25rem;
155
+
156
+ svg {
157
+ width: 1rem;
158
+ height: 1rem;
159
+ }
160
+ }
161
+
162
+ .statistic-trend-up {
163
+ color: $success;
164
+ }
165
+
166
+ .statistic-trend-down {
167
+ color: $danger;
168
+ }
169
+
170
+ .statistic-trend-neutral {
171
+ color: var(--text-muted);
172
+ }
173
+
174
+ // ----------------------------------------
175
+ // Statistic Description
176
+ // ----------------------------------------
177
+ .statistic-description {
178
+ font-size: var(--text-xs);
179
+ color: var(--text-muted);
180
+ margin-top: 0.25rem;
181
+ }
182
+
183
+ // ----------------------------------------
184
+ // Horizontal Statistic
185
+ // ----------------------------------------
186
+ .statistic-horizontal {
187
+ flex-direction: row;
188
+ align-items: center;
189
+ gap: 1rem;
190
+
191
+ .statistic-icon {
192
+ margin-bottom: 0;
193
+ }
194
+
195
+ .statistic-content {
196
+ flex: 1;
197
+ }
198
+ }
199
+
200
+ // ----------------------------------------
201
+ // Statistic Group
202
+ // ----------------------------------------
203
+ .statistic-group {
204
+ display: flex;
205
+ flex-wrap: wrap;
206
+ gap: 2rem;
207
+ }
208
+
209
+ .statistic-group-divider {
210
+ > .statistic:not(:last-child) {
211
+ padding-right: 2rem;
212
+ border-right: $border-width solid var(--border);
213
+ }
214
+ }
215
+
216
+ // ----------------------------------------
217
+ // Statistic Card
218
+ // ----------------------------------------
219
+ .statistic-card {
220
+ padding: 1.5rem;
221
+ background-color: var(--bg);
222
+ border: $border-width solid var(--border);
223
+ border-radius: var(--radius-lg);
224
+ }
225
+
226
+ .statistic-card-shadow {
227
+ box-shadow: var(--shadow-md);
228
+ border: none;
229
+ }
230
+
231
+ // ----------------------------------------
232
+ // Statistic Colors
233
+ // ----------------------------------------
234
+ .statistic-primary {
235
+ .statistic-value {
236
+ color: var(--primary);
237
+ }
238
+ }
239
+
240
+ .statistic-success {
241
+ .statistic-value {
242
+ color: $success;
243
+ }
244
+ }
245
+
246
+ .statistic-danger {
247
+ .statistic-value {
248
+ color: $danger;
249
+ }
250
+ }
251
+
252
+ .statistic-warning {
253
+ .statistic-value {
254
+ color: $warning-dark;
255
+ }
256
+ }
257
+
258
+ .statistic-info {
259
+ .statistic-value {
260
+ color: $info;
261
+ }
262
+ }
263
+
264
+ // ----------------------------------------
265
+ // Countdown Style Statistic
266
+ // ----------------------------------------
267
+ .statistic-countdown {
268
+ display: flex;
269
+ gap: 0.5rem;
270
+
271
+ .statistic-countdown-item {
272
+ display: flex;
273
+ flex-direction: column;
274
+ align-items: center;
275
+ min-width: 3rem;
276
+ }
277
+
278
+ .statistic-countdown-value {
279
+ font-size: var(--text-2xl);
280
+ font-weight: $font-weight-bold;
281
+ color: var(--text);
282
+ }
283
+
284
+ .statistic-countdown-label {
285
+ font-size: var(--text-xs);
286
+ color: var(--text-muted);
287
+ text-transform: uppercase;
288
+ }
289
+
290
+ .statistic-countdown-separator {
291
+ font-size: var(--text-2xl);
292
+ font-weight: $font-weight-bold;
293
+ color: var(--text-muted);
294
+ line-height: 1;
295
+ }
296
+ }
297
+
298
+ // ----------------------------------------
299
+ // Progress Statistic
300
+ // ----------------------------------------
301
+ .statistic-progress {
302
+ .statistic-progress-bar {
303
+ height: 0.5rem;
304
+ background-color: var(--gray-200);
305
+ border-radius: var(--radius-full);
306
+ margin-top: 0.75rem;
307
+ overflow: hidden;
308
+ }
309
+
310
+ .statistic-progress-fill {
311
+ height: 100%;
312
+ background-color: var(--primary);
313
+ border-radius: var(--radius-full);
314
+ transition: width var(--transition-slow) ease-in-out;
315
+ }
316
+
317
+ .statistic-progress-fill-success {
318
+ background-color: $success;
319
+ }
320
+
321
+ .statistic-progress-fill-danger {
322
+ background-color: $danger;
323
+ }
324
+
325
+ .statistic-progress-fill-warning {
326
+ background-color: $warning;
327
+ }
328
+ }
329
+
330
+ // ----------------------------------------
331
+ // Centered Statistic
332
+ // ----------------------------------------
333
+ .statistic-centered {
334
+ text-align: center;
335
+ align-items: center;
336
+ }
@@ -0,0 +1,343 @@
1
+ // ========================================
2
+ // ZenKit - Steps / Stepper
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+ @use '../abstracts/mixins' as *;
7
+
8
+ // ----------------------------------------
9
+ // Base Steps Container
10
+ // ----------------------------------------
11
+ .steps {
12
+ --steps-icon-size: 2rem;
13
+ --steps-line-color: var(--border);
14
+ --steps-active-color: var(--primary);
15
+ --steps-completed-color: var(--success);
16
+ --steps-pending-color: var(--gray-400);
17
+
18
+ display: flex;
19
+ width: 100%;
20
+ }
21
+
22
+ // ----------------------------------------
23
+ // Step Item
24
+ // ----------------------------------------
25
+ .step {
26
+ flex: 1;
27
+ position: relative;
28
+ display: flex;
29
+ flex-direction: column;
30
+ align-items: center;
31
+ text-align: center;
32
+
33
+ // Connector line
34
+ &:not(:last-child)::after {
35
+ content: "";
36
+ position: absolute;
37
+ top: calc(var(--steps-icon-size) / 2);
38
+ left: calc(50% + var(--steps-icon-size) / 2 + 0.5rem);
39
+ right: calc(-50% + var(--steps-icon-size) / 2 + 0.5rem);
40
+ height: 2px;
41
+ background-color: var(--steps-line-color);
42
+ z-index: 0;
43
+ }
44
+ }
45
+
46
+ // ----------------------------------------
47
+ // Step Icon
48
+ // ----------------------------------------
49
+ .step-icon {
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ width: var(--steps-icon-size);
54
+ height: var(--steps-icon-size);
55
+ border-radius: var(--radius-full);
56
+ background-color: var(--gray-100);
57
+ color: var(--steps-pending-color);
58
+ font-size: var(--text-sm);
59
+ font-weight: $font-weight-semibold;
60
+ border: 2px solid var(--steps-line-color);
61
+ position: relative;
62
+ z-index: 1;
63
+ transition: all var(--transition-base) ease-in-out;
64
+
65
+ svg {
66
+ width: 1rem;
67
+ height: 1rem;
68
+ }
69
+ }
70
+
71
+ // ----------------------------------------
72
+ // Step Content
73
+ // ----------------------------------------
74
+ .step-content {
75
+ margin-top: 0.75rem;
76
+ max-width: 150px;
77
+ }
78
+
79
+ .step-title {
80
+ font-size: var(--text-sm);
81
+ font-weight: $font-weight-medium;
82
+ color: var(--text);
83
+ margin-bottom: 0.25rem;
84
+ }
85
+
86
+ .step-description {
87
+ font-size: var(--text-xs);
88
+ color: var(--text-muted);
89
+ }
90
+
91
+ // ----------------------------------------
92
+ // Step States
93
+ // ----------------------------------------
94
+
95
+ // Active Step
96
+ .step-active {
97
+ .step-icon {
98
+ background-color: var(--primary-50);
99
+ border-color: var(--steps-active-color);
100
+ color: var(--steps-active-color);
101
+ }
102
+
103
+ .step-title {
104
+ color: var(--steps-active-color);
105
+ }
106
+ }
107
+
108
+ // Completed Step
109
+ .step-completed {
110
+ .step-icon {
111
+ background-color: var(--steps-completed-color);
112
+ border-color: var(--steps-completed-color);
113
+ color: var(--white);
114
+ }
115
+
116
+ // Completed connector line
117
+ &:not(:last-child)::after {
118
+ background-color: var(--steps-completed-color);
119
+ }
120
+ }
121
+
122
+ // Error Step
123
+ .step-error {
124
+ .step-icon {
125
+ background-color: var(--danger-light);
126
+ border-color: var(--danger);
127
+ color: var(--danger);
128
+ }
129
+
130
+ .step-title {
131
+ color: var(--danger);
132
+ }
133
+ }
134
+
135
+ // ----------------------------------------
136
+ // Steps Sizes
137
+ // ----------------------------------------
138
+ .steps-sm {
139
+ --steps-icon-size: 1.5rem;
140
+
141
+ .step-icon {
142
+ font-size: var(--text-xs);
143
+
144
+ svg {
145
+ width: 0.75rem;
146
+ height: 0.75rem;
147
+ }
148
+ }
149
+
150
+ .step-content {
151
+ margin-top: 0.5rem;
152
+ }
153
+
154
+ .step-title {
155
+ font-size: var(--text-xs);
156
+ }
157
+
158
+ .step-description {
159
+ font-size: 0.625rem;
160
+ }
161
+ }
162
+
163
+ .steps-lg {
164
+ --steps-icon-size: 2.5rem;
165
+
166
+ .step-icon {
167
+ font-size: var(--text-base);
168
+
169
+ svg {
170
+ width: 1.25rem;
171
+ height: 1.25rem;
172
+ }
173
+ }
174
+
175
+ .step-title {
176
+ font-size: var(--text-base);
177
+ }
178
+
179
+ .step-description {
180
+ font-size: var(--text-sm);
181
+ }
182
+ }
183
+
184
+ // ----------------------------------------
185
+ // Vertical Steps
186
+ // ----------------------------------------
187
+ .steps-vertical {
188
+ flex-direction: column;
189
+
190
+ .step {
191
+ flex-direction: row;
192
+ align-items: flex-start;
193
+ text-align: left;
194
+ padding-bottom: 2rem;
195
+
196
+ &:not(:last-child)::after {
197
+ top: calc(var(--steps-icon-size) + 0.5rem);
198
+ left: calc(var(--steps-icon-size) / 2 - 1px);
199
+ right: auto;
200
+ width: 2px;
201
+ height: calc(100% - var(--steps-icon-size) - 0.5rem);
202
+ }
203
+
204
+ &:last-child {
205
+ padding-bottom: 0;
206
+ }
207
+ }
208
+
209
+ .step-content {
210
+ margin-top: 0;
211
+ margin-left: 1rem;
212
+ max-width: none;
213
+ }
214
+ }
215
+
216
+ // ----------------------------------------
217
+ // Steps with Dot (Minimal)
218
+ // ----------------------------------------
219
+ .steps-dot {
220
+ --steps-icon-size: 0.75rem;
221
+
222
+ .step-icon {
223
+ border-width: 0;
224
+ background-color: var(--steps-line-color);
225
+ }
226
+
227
+ .step-active .step-icon {
228
+ background-color: var(--steps-active-color);
229
+ box-shadow: 0 0 0 4px var(--primary-100);
230
+ }
231
+
232
+ .step-completed .step-icon {
233
+ background-color: var(--steps-completed-color);
234
+ }
235
+ }
236
+
237
+ // ----------------------------------------
238
+ // Steps with Navigation (Clickable)
239
+ // ----------------------------------------
240
+ .steps-nav {
241
+ .step {
242
+ cursor: pointer;
243
+
244
+ &:hover:not(.step-completed):not(.step-active) {
245
+ .step-icon {
246
+ border-color: var(--gray-400);
247
+ background-color: var(--gray-50);
248
+ }
249
+ }
250
+ }
251
+ }
252
+
253
+ // ----------------------------------------
254
+ // Steps Progress Bar Style
255
+ // ----------------------------------------
256
+ .steps-progress {
257
+ position: relative;
258
+ padding-top: 2rem;
259
+
260
+ &::before {
261
+ content: "";
262
+ position: absolute;
263
+ top: calc(var(--steps-icon-size) / 2 + 2rem);
264
+ left: 0;
265
+ right: 0;
266
+ height: 4px;
267
+ background-color: var(--gray-200);
268
+ border-radius: var(--radius-full);
269
+ }
270
+
271
+ .step {
272
+ &::after {
273
+ display: none;
274
+ }
275
+ }
276
+ }
277
+
278
+ .steps-progress-bar {
279
+ position: absolute;
280
+ top: calc(var(--steps-icon-size) / 2 + 2rem);
281
+ left: 0;
282
+ height: 4px;
283
+ background-color: var(--steps-active-color);
284
+ border-radius: var(--radius-full);
285
+ transition: width var(--transition-slow) ease-in-out;
286
+ }
287
+
288
+ // ----------------------------------------
289
+ // Inline Steps (Compact)
290
+ // ----------------------------------------
291
+ .steps-inline {
292
+ .step {
293
+ flex-direction: row;
294
+ align-items: center;
295
+ flex: none;
296
+ gap: 0.5rem;
297
+
298
+ &:not(:last-child) {
299
+ margin-right: 1.5rem;
300
+
301
+ &::after {
302
+ display: none;
303
+ }
304
+ }
305
+ }
306
+
307
+ .step-content {
308
+ margin-top: 0;
309
+ max-width: none;
310
+ }
311
+
312
+ .step-description {
313
+ display: none;
314
+ }
315
+ }
316
+
317
+ // ----------------------------------------
318
+ // Steps Color Variants
319
+ // ----------------------------------------
320
+ .steps-primary {
321
+ --steps-active-color: var(--primary);
322
+ --steps-completed-color: var(--primary);
323
+ }
324
+
325
+ .steps-success {
326
+ --steps-active-color: var(--success);
327
+ --steps-completed-color: var(--success);
328
+ }
329
+
330
+ .steps-info {
331
+ --steps-active-color: var(--info);
332
+ --steps-completed-color: var(--info);
333
+ }
334
+
335
+ .steps-warning {
336
+ --steps-active-color: var(--warning);
337
+ --steps-completed-color: var(--warning);
338
+ }
339
+
340
+ .steps-danger {
341
+ --steps-active-color: var(--danger);
342
+ --steps-completed-color: var(--danger);
343
+ }