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,479 @@
1
+ // ========================================
2
+ // ZenKit - Mentions Component
3
+ // @ mentions input for tagging users
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // Mentions Wrapper
10
+ // ----------------------------------------
11
+ .mentions {
12
+ position: relative;
13
+ display: inline-block;
14
+ width: 100%;
15
+ }
16
+
17
+ // ----------------------------------------
18
+ // Mentions Textarea
19
+ // ----------------------------------------
20
+ .mentions-textarea {
21
+ display: block;
22
+ width: 100%;
23
+ min-height: 80px;
24
+ padding: 0.5rem 0.75rem;
25
+ font-size: 1rem;
26
+ font-weight: 400;
27
+ line-height: 1.5;
28
+ color: var(--text-primary);
29
+ background-color: var(--bg-primary);
30
+ border: 1px solid var(--border-color);
31
+ border-radius: $border-radius;
32
+ resize: vertical;
33
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
34
+
35
+ &::placeholder {
36
+ color: var(--text-muted);
37
+ }
38
+
39
+ &:hover {
40
+ border-color: var(--primary);
41
+ }
42
+
43
+ &:focus {
44
+ border-color: var(--primary);
45
+ outline: 0;
46
+ box-shadow: 0 0 0 0.2rem rgba(var(--primary-rgb), 0.25);
47
+ }
48
+
49
+ &:disabled,
50
+ &.is-disabled {
51
+ background-color: var(--bg-secondary);
52
+ cursor: not-allowed;
53
+ opacity: 0.65;
54
+ }
55
+
56
+ &:read-only {
57
+ background-color: var(--bg-secondary);
58
+ }
59
+ }
60
+
61
+ // ----------------------------------------
62
+ // Mentions Input (Single Line)
63
+ // ----------------------------------------
64
+ .mentions-input {
65
+ display: block;
66
+ width: 100%;
67
+ padding: 0.5rem 0.75rem;
68
+ font-size: 1rem;
69
+ font-weight: 400;
70
+ line-height: 1.5;
71
+ color: var(--text-primary);
72
+ background-color: var(--bg-primary);
73
+ border: 1px solid var(--border-color);
74
+ border-radius: $border-radius;
75
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
76
+
77
+ &::placeholder {
78
+ color: var(--text-muted);
79
+ }
80
+
81
+ &:hover {
82
+ border-color: var(--primary);
83
+ }
84
+
85
+ &:focus {
86
+ border-color: var(--primary);
87
+ outline: 0;
88
+ box-shadow: 0 0 0 0.2rem rgba(var(--primary-rgb), 0.25);
89
+ }
90
+
91
+ &:disabled {
92
+ background-color: var(--bg-secondary);
93
+ cursor: not-allowed;
94
+ opacity: 0.65;
95
+ }
96
+ }
97
+
98
+ // ----------------------------------------
99
+ // Mentions Measure (for positioning)
100
+ // ----------------------------------------
101
+ .mentions-measure {
102
+ position: absolute;
103
+ top: 0;
104
+ left: 0;
105
+ z-index: -1;
106
+ min-height: auto;
107
+ font-size: 1rem;
108
+ line-height: 1.5;
109
+ white-space: pre-wrap;
110
+ word-wrap: break-word;
111
+ visibility: hidden;
112
+ overflow: hidden;
113
+ pointer-events: none;
114
+ }
115
+
116
+ // ----------------------------------------
117
+ // Mentions Dropdown
118
+ // ----------------------------------------
119
+ .mentions-dropdown {
120
+ position: absolute;
121
+ z-index: $z-dropdown;
122
+ display: none;
123
+ min-width: 160px;
124
+ max-width: 280px;
125
+ max-height: 256px;
126
+ overflow-y: auto;
127
+ background-color: var(--bg-primary);
128
+ border: 1px solid var(--border-color);
129
+ border-radius: $border-radius;
130
+ box-shadow: $shadow-lg;
131
+
132
+ &.is-open {
133
+ display: block;
134
+ }
135
+ }
136
+
137
+ // ----------------------------------------
138
+ // Mentions Options List
139
+ // ----------------------------------------
140
+ .mentions-options {
141
+ padding: 0.25rem 0;
142
+ margin: 0;
143
+ list-style: none;
144
+ }
145
+
146
+ // ----------------------------------------
147
+ // Mentions Option
148
+ // ----------------------------------------
149
+ .mentions-option {
150
+ display: flex;
151
+ align-items: center;
152
+ gap: 0.5rem;
153
+ padding: 0.5rem 0.75rem;
154
+ cursor: pointer;
155
+ transition: background-color 0.15s ease;
156
+
157
+ &:hover,
158
+ &.is-highlighted {
159
+ background-color: var(--bg-secondary);
160
+ }
161
+
162
+ &.is-selected {
163
+ color: var(--primary);
164
+ background-color: rgba(var(--primary-rgb), 0.1);
165
+ }
166
+
167
+ &.is-disabled {
168
+ color: var(--text-muted);
169
+ cursor: not-allowed;
170
+ opacity: 0.5;
171
+
172
+ &:hover {
173
+ background-color: transparent;
174
+ }
175
+ }
176
+ }
177
+
178
+ .mentions-option-avatar {
179
+ flex-shrink: 0;
180
+ width: 24px;
181
+ height: 24px;
182
+ border-radius: 50%;
183
+ object-fit: cover;
184
+ background-color: var(--bg-tertiary);
185
+ }
186
+
187
+ .mentions-option-content {
188
+ flex: 1;
189
+ overflow: hidden;
190
+ }
191
+
192
+ .mentions-option-name {
193
+ font-size: 0.875rem;
194
+ font-weight: 500;
195
+ color: var(--text-primary);
196
+ overflow: hidden;
197
+ text-overflow: ellipsis;
198
+ white-space: nowrap;
199
+ }
200
+
201
+ .mentions-option-username {
202
+ font-size: 0.75rem;
203
+ color: var(--text-muted);
204
+ overflow: hidden;
205
+ text-overflow: ellipsis;
206
+ white-space: nowrap;
207
+ }
208
+
209
+ // ----------------------------------------
210
+ // Mentions Loading
211
+ // ----------------------------------------
212
+ .mentions-loading {
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ padding: 1rem;
217
+ color: var(--text-muted);
218
+ }
219
+
220
+ .mentions-loading-spinner {
221
+ width: 1rem;
222
+ height: 1rem;
223
+ margin-right: 0.5rem;
224
+ border: 2px solid var(--border-color);
225
+ border-top-color: var(--primary);
226
+ border-radius: 50%;
227
+ animation: spin 0.8s linear infinite;
228
+ }
229
+
230
+ @keyframes spin {
231
+ to { transform: rotate(360deg); }
232
+ }
233
+
234
+ // ----------------------------------------
235
+ // Mentions Empty
236
+ // ----------------------------------------
237
+ .mentions-empty {
238
+ padding: 1rem;
239
+ text-align: center;
240
+ color: var(--text-muted);
241
+ }
242
+
243
+ // ----------------------------------------
244
+ // Mentions Highlighted Text
245
+ // ----------------------------------------
246
+ .mentions-highlight {
247
+ display: inline;
248
+ padding: 0.125rem 0.25rem;
249
+ color: var(--primary);
250
+ background-color: rgba(var(--primary-rgb), 0.1);
251
+ border-radius: $border-radius-sm;
252
+ }
253
+
254
+ // ----------------------------------------
255
+ // Mentions Sizes
256
+ // ----------------------------------------
257
+ .mentions-sm {
258
+ .mentions-textarea,
259
+ .mentions-input {
260
+ padding: 0.25rem 0.5rem;
261
+ font-size: 0.875rem;
262
+ min-height: 60px;
263
+ }
264
+
265
+ .mentions-option {
266
+ padding: 0.375rem 0.5rem;
267
+ }
268
+
269
+ .mentions-option-avatar {
270
+ width: 20px;
271
+ height: 20px;
272
+ }
273
+
274
+ .mentions-option-name {
275
+ font-size: 0.75rem;
276
+ }
277
+
278
+ .mentions-option-username {
279
+ font-size: 0.625rem;
280
+ }
281
+ }
282
+
283
+ .mentions-lg {
284
+ .mentions-textarea,
285
+ .mentions-input {
286
+ padding: 0.75rem 1rem;
287
+ font-size: 1.125rem;
288
+ min-height: 100px;
289
+ }
290
+
291
+ .mentions-option {
292
+ padding: 0.625rem 1rem;
293
+ }
294
+
295
+ .mentions-option-avatar {
296
+ width: 32px;
297
+ height: 32px;
298
+ }
299
+
300
+ .mentions-option-name {
301
+ font-size: 1rem;
302
+ }
303
+
304
+ .mentions-option-username {
305
+ font-size: 0.875rem;
306
+ }
307
+ }
308
+
309
+ // ----------------------------------------
310
+ // Mentions States
311
+ // ----------------------------------------
312
+ .mentions-error {
313
+ .mentions-textarea,
314
+ .mentions-input {
315
+ border-color: var(--danger);
316
+
317
+ &:focus {
318
+ box-shadow: 0 0 0 0.2rem rgba(var(--danger-rgb), 0.25);
319
+ }
320
+ }
321
+ }
322
+
323
+ .mentions-warning {
324
+ .mentions-textarea,
325
+ .mentions-input {
326
+ border-color: var(--warning);
327
+
328
+ &:focus {
329
+ box-shadow: 0 0 0 0.2rem rgba(var(--warning-rgb), 0.25);
330
+ }
331
+ }
332
+ }
333
+
334
+ .mentions-success {
335
+ .mentions-textarea,
336
+ .mentions-input {
337
+ border-color: var(--success);
338
+
339
+ &:focus {
340
+ box-shadow: 0 0 0 0.2rem rgba(var(--success-rgb), 0.25);
341
+ }
342
+ }
343
+ }
344
+
345
+ // ----------------------------------------
346
+ // Mentions Variants
347
+ // ----------------------------------------
348
+ // Borderless
349
+ .mentions-borderless {
350
+ .mentions-textarea,
351
+ .mentions-input {
352
+ border-color: transparent;
353
+ background-color: transparent;
354
+
355
+ &:hover,
356
+ &:focus {
357
+ border-color: transparent;
358
+ background-color: var(--bg-secondary);
359
+ box-shadow: none;
360
+ }
361
+ }
362
+ }
363
+
364
+ // Filled
365
+ .mentions-filled {
366
+ .mentions-textarea,
367
+ .mentions-input {
368
+ border-color: transparent;
369
+ background-color: var(--bg-secondary);
370
+
371
+ &:hover {
372
+ background-color: var(--bg-tertiary);
373
+ }
374
+
375
+ &:focus {
376
+ border-color: var(--primary);
377
+ background-color: var(--bg-primary);
378
+ }
379
+ }
380
+ }
381
+
382
+ // ----------------------------------------
383
+ // Mentions Custom Triggers
384
+ // ----------------------------------------
385
+ // For different trigger characters like # or :
386
+ .mentions-hash {
387
+ .mentions-highlight {
388
+ color: var(--info);
389
+ background-color: rgba(var(--info-rgb), 0.1);
390
+ }
391
+ }
392
+
393
+ .mentions-emoji {
394
+ .mentions-option-avatar {
395
+ font-size: 1.25rem;
396
+ background: transparent;
397
+ }
398
+ }
399
+
400
+ // ----------------------------------------
401
+ // Mentions Read-Only Display
402
+ // ----------------------------------------
403
+ .mentions-readonly {
404
+ .mentions-highlight {
405
+ cursor: pointer;
406
+
407
+ &:hover {
408
+ text-decoration: underline;
409
+ }
410
+ }
411
+ }
412
+
413
+ // ----------------------------------------
414
+ // Mentions Group Header
415
+ // ----------------------------------------
416
+ .mentions-group {
417
+ padding-top: 0.5rem;
418
+
419
+ &:first-child {
420
+ padding-top: 0;
421
+ }
422
+ }
423
+
424
+ .mentions-group-label {
425
+ padding: 0.25rem 0.75rem;
426
+ font-size: 0.625rem;
427
+ font-weight: 600;
428
+ color: var(--text-muted);
429
+ text-transform: uppercase;
430
+ letter-spacing: 0.05em;
431
+ }
432
+
433
+ // ----------------------------------------
434
+ // Mentions with Avatar Badge
435
+ // ----------------------------------------
436
+ .mentions-option-avatar-wrapper {
437
+ position: relative;
438
+ }
439
+
440
+ .mentions-option-avatar-status {
441
+ position: absolute;
442
+ bottom: 0;
443
+ right: 0;
444
+ width: 8px;
445
+ height: 8px;
446
+ border: 2px solid var(--bg-primary);
447
+ border-radius: 50%;
448
+
449
+ &.is-online {
450
+ background-color: var(--success);
451
+ }
452
+
453
+ &.is-offline {
454
+ background-color: var(--text-muted);
455
+ }
456
+
457
+ &.is-busy {
458
+ background-color: var(--danger);
459
+ }
460
+
461
+ &.is-away {
462
+ background-color: var(--warning);
463
+ }
464
+ }
465
+
466
+ // ----------------------------------------
467
+ // Mentions Character Count
468
+ // ----------------------------------------
469
+ .mentions-count {
470
+ display: flex;
471
+ justify-content: flex-end;
472
+ margin-top: 0.25rem;
473
+ font-size: 0.75rem;
474
+ color: var(--text-muted);
475
+
476
+ &.is-over-limit {
477
+ color: var(--danger);
478
+ }
479
+ }