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,279 @@
1
+ // ========================================
2
+ // ZenKit - Toast
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+
7
+ // ----------------------------------------
8
+ // Toast Container
9
+ // ----------------------------------------
10
+ .toast-container {
11
+ --toast-zindex: #{$z-toast};
12
+ position: fixed;
13
+ z-index: var(--toast-zindex);
14
+ width: max-content;
15
+ max-width: 100%;
16
+ pointer-events: none;
17
+
18
+ > :not(:last-child) {
19
+ margin-bottom: 0.75rem;
20
+ }
21
+ }
22
+
23
+ // Toast Container Positions
24
+ .toast-container-top-start {
25
+ top: 1rem;
26
+ left: 1rem;
27
+ }
28
+
29
+ .toast-container-top-center {
30
+ top: 1rem;
31
+ left: 50%;
32
+ transform: translateX(-50%);
33
+ }
34
+
35
+ .toast-container-top-end {
36
+ top: 1rem;
37
+ right: 1rem;
38
+ }
39
+
40
+ .toast-container-middle-start {
41
+ top: 50%;
42
+ left: 1rem;
43
+ transform: translateY(-50%);
44
+ }
45
+
46
+ .toast-container-middle-center {
47
+ top: 50%;
48
+ left: 50%;
49
+ transform: translate(-50%, -50%);
50
+ }
51
+
52
+ .toast-container-middle-end {
53
+ top: 50%;
54
+ right: 1rem;
55
+ transform: translateY(-50%);
56
+ }
57
+
58
+ .toast-container-bottom-start {
59
+ bottom: 1rem;
60
+ left: 1rem;
61
+ }
62
+
63
+ .toast-container-bottom-center {
64
+ bottom: 1rem;
65
+ left: 50%;
66
+ transform: translateX(-50%);
67
+ }
68
+
69
+ .toast-container-bottom-end {
70
+ bottom: 1rem;
71
+ right: 1rem;
72
+ }
73
+
74
+ // ----------------------------------------
75
+ // Toast
76
+ // ----------------------------------------
77
+ .toast {
78
+ --toast-zindex: #{$z-toast};
79
+ --toast-padding-x: 0.75rem;
80
+ --toast-padding-y: 0.5rem;
81
+ --toast-spacing: 1.5rem;
82
+ --toast-max-width: 350px;
83
+ --toast-font-size: var(--text-sm);
84
+ --toast-color: var(--text);
85
+ --toast-bg: var(--bg-card);
86
+ --toast-border-width: #{$border-width};
87
+ --toast-border-color: var(--border);
88
+ --toast-border-radius: var(--radius);
89
+ --toast-box-shadow: #{$shadow-lg};
90
+ --toast-header-color: var(--text-muted);
91
+ --toast-header-bg: #{rgba(#fff, 0.85)};
92
+ --toast-header-border-color: var(--border);
93
+
94
+ width: var(--toast-max-width);
95
+ max-width: 100%;
96
+ font-size: var(--toast-font-size);
97
+ color: var(--toast-color);
98
+ pointer-events: auto;
99
+ background-color: var(--toast-bg);
100
+ background-clip: padding-box;
101
+ border: var(--toast-border-width) solid var(--toast-border-color);
102
+ box-shadow: var(--toast-box-shadow);
103
+ border-radius: var(--toast-border-radius);
104
+
105
+ &.showing {
106
+ opacity: 0;
107
+ }
108
+
109
+ &:not(.show) {
110
+ display: none;
111
+ }
112
+
113
+ &.hide {
114
+ display: none;
115
+ }
116
+ }
117
+
118
+ // ----------------------------------------
119
+ // Toast Header
120
+ // ----------------------------------------
121
+ .toast-header {
122
+ display: flex;
123
+ align-items: center;
124
+ padding: var(--toast-padding-y) var(--toast-padding-x);
125
+ color: var(--toast-header-color);
126
+ background-color: var(--toast-header-bg);
127
+ background-clip: padding-box;
128
+ border-bottom: var(--toast-border-width) solid var(--toast-header-border-color);
129
+ border-top-left-radius: calc(var(--toast-border-radius) - var(--toast-border-width));
130
+ border-top-right-radius: calc(var(--toast-border-radius) - var(--toast-border-width));
131
+
132
+ .btn-close {
133
+ margin-right: calc(-0.5 * var(--toast-padding-x));
134
+ margin-left: var(--toast-padding-x);
135
+ }
136
+ }
137
+
138
+ // ----------------------------------------
139
+ // Toast Body
140
+ // ----------------------------------------
141
+ .toast-body {
142
+ padding: var(--toast-padding-x);
143
+ word-wrap: break-word;
144
+ }
145
+
146
+ // ----------------------------------------
147
+ // Toast Colors
148
+ // ----------------------------------------
149
+ .toast-primary {
150
+ --toast-bg: #{rgba($primary, 0.95)};
151
+ --toast-color: var(--white);
152
+ --toast-border-color: var(--primary);
153
+ --toast-header-bg: var(--primary);
154
+ --toast-header-color: var(--white);
155
+ --toast-header-border-color: #{rgba(#fff, 0.2)};
156
+ }
157
+
158
+ .toast-success {
159
+ --toast-bg: #{rgba($success, 0.95)};
160
+ --toast-color: var(--white);
161
+ --toast-border-color: var(--success);
162
+ --toast-header-bg: var(--success);
163
+ --toast-header-color: var(--white);
164
+ --toast-header-border-color: #{rgba(#fff, 0.2)};
165
+ }
166
+
167
+ .toast-danger {
168
+ --toast-bg: #{rgba($danger, 0.95)};
169
+ --toast-color: var(--white);
170
+ --toast-border-color: var(--danger);
171
+ --toast-header-bg: var(--danger);
172
+ --toast-header-color: var(--white);
173
+ --toast-header-border-color: #{rgba(#fff, 0.2)};
174
+ }
175
+
176
+ .toast-warning {
177
+ --toast-bg: #{rgba($warning, 0.95)};
178
+ --toast-color: var(--gray-900);
179
+ --toast-border-color: var(--warning);
180
+ --toast-header-bg: var(--warning);
181
+ --toast-header-color: var(--gray-900);
182
+ --toast-header-border-color: #{rgba(#000, 0.1)};
183
+ }
184
+
185
+ .toast-info {
186
+ --toast-bg: #{rgba($info, 0.95)};
187
+ --toast-color: var(--white);
188
+ --toast-border-color: var(--info);
189
+ --toast-header-bg: var(--info);
190
+ --toast-header-color: var(--white);
191
+ --toast-header-border-color: #{rgba(#fff, 0.2)};
192
+ }
193
+
194
+ .toast-dark {
195
+ --toast-bg: var(--gray-800);
196
+ --toast-color: var(--white);
197
+ --toast-border-color: var(--gray-700);
198
+ --toast-header-bg: var(--gray-900);
199
+ --toast-header-color: var(--gray-300);
200
+ --toast-header-border-color: var(--gray-700);
201
+ }
202
+
203
+ .toast-light {
204
+ --toast-bg: var(--gray-100);
205
+ --toast-color: var(--gray-900);
206
+ --toast-border-color: var(--gray-200);
207
+ --toast-header-bg: var(--gray-200);
208
+ --toast-header-color: var(--gray-700);
209
+ --toast-header-border-color: var(--gray-300);
210
+ }
211
+
212
+ // ----------------------------------------
213
+ // Toast Fade Animation
214
+ // ----------------------------------------
215
+ .toast.fade {
216
+ opacity: 0;
217
+ transition: opacity $transition-fast linear;
218
+ }
219
+
220
+ .toast.fade.show {
221
+ opacity: 1;
222
+ }
223
+
224
+ // ----------------------------------------
225
+ // Stacking Toasts
226
+ // ----------------------------------------
227
+ .toast-stacked {
228
+ position: relative;
229
+
230
+ .toast {
231
+ position: absolute;
232
+ width: 100%;
233
+ }
234
+ }
235
+
236
+ // ----------------------------------------
237
+ // Simple Toast (No header)
238
+ // ----------------------------------------
239
+ .toast-simple {
240
+ .toast-body {
241
+ display: flex;
242
+ align-items: center;
243
+ justify-content: space-between;
244
+ gap: 0.5rem;
245
+ }
246
+ }
247
+
248
+ // ----------------------------------------
249
+ // Toast with Icon
250
+ // ----------------------------------------
251
+ .toast-icon {
252
+ display: flex;
253
+ align-items: center;
254
+ gap: 0.75rem;
255
+ padding: var(--toast-padding-x);
256
+
257
+ .toast-icon-wrapper {
258
+ flex-shrink: 0;
259
+ width: 1.5rem;
260
+ height: 1.5rem;
261
+ display: flex;
262
+ align-items: center;
263
+ justify-content: center;
264
+ }
265
+
266
+ .toast-content {
267
+ flex: 1;
268
+ min-width: 0;
269
+ }
270
+
271
+ .toast-title {
272
+ font-weight: $font-weight-semibold;
273
+ margin-bottom: 0.25rem;
274
+ }
275
+
276
+ .toast-message {
277
+ color: var(--text-muted);
278
+ }
279
+ }
@@ -0,0 +1,305 @@
1
+ // ========================================
2
+ // ZenKit - Tooltip
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+
7
+ // ----------------------------------------
8
+ // Tooltip Variables
9
+ // ----------------------------------------
10
+ .tooltip {
11
+ --tooltip-zindex: #{$z-tooltip};
12
+ --tooltip-max-width: 200px;
13
+ --tooltip-padding-x: 0.5rem;
14
+ --tooltip-padding-y: 0.25rem;
15
+ --tooltip-margin: 0;
16
+ --tooltip-font-size: var(--text-sm);
17
+ --tooltip-color: var(--white);
18
+ --tooltip-bg: var(--gray-900);
19
+ --tooltip-border-radius: var(--radius-sm);
20
+ --tooltip-opacity: 0.9;
21
+ --tooltip-arrow-width: 0.8rem;
22
+ --tooltip-arrow-height: 0.4rem;
23
+
24
+ position: absolute;
25
+ z-index: var(--tooltip-zindex);
26
+ display: block;
27
+ margin: var(--tooltip-margin);
28
+ font-family: var(--font-family);
29
+ font-style: normal;
30
+ font-weight: $font-weight-normal;
31
+ line-height: $line-height-normal;
32
+ text-align: left;
33
+ text-decoration: none;
34
+ text-shadow: none;
35
+ text-transform: none;
36
+ letter-spacing: normal;
37
+ word-break: normal;
38
+ white-space: normal;
39
+ word-spacing: normal;
40
+ line-break: auto;
41
+ font-size: var(--tooltip-font-size);
42
+ word-wrap: break-word;
43
+ opacity: 0;
44
+
45
+ &.show {
46
+ opacity: var(--tooltip-opacity);
47
+ }
48
+ }
49
+
50
+ // ----------------------------------------
51
+ // Tooltip Arrow
52
+ // ----------------------------------------
53
+ .tooltip-arrow {
54
+ position: absolute;
55
+ display: block;
56
+ width: var(--tooltip-arrow-width);
57
+ height: var(--tooltip-arrow-height);
58
+
59
+ &::before {
60
+ position: absolute;
61
+ content: "";
62
+ border-color: transparent;
63
+ border-style: solid;
64
+ }
65
+ }
66
+
67
+ // ----------------------------------------
68
+ // Tooltip Positions
69
+ // ----------------------------------------
70
+ // Top
71
+ .tooltip-top,
72
+ .tooltip[data-popper-placement^="top"] {
73
+ padding: var(--tooltip-arrow-height) 0;
74
+
75
+ .tooltip-arrow {
76
+ bottom: 0;
77
+
78
+ &::before {
79
+ top: -1px;
80
+ border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;
81
+ border-top-color: var(--tooltip-bg);
82
+ }
83
+ }
84
+ }
85
+
86
+ // Bottom
87
+ .tooltip-bottom,
88
+ .tooltip[data-popper-placement^="bottom"] {
89
+ padding: var(--tooltip-arrow-height) 0;
90
+
91
+ .tooltip-arrow {
92
+ top: 0;
93
+
94
+ &::before {
95
+ bottom: -1px;
96
+ border-width: 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);
97
+ border-bottom-color: var(--tooltip-bg);
98
+ }
99
+ }
100
+ }
101
+
102
+ // Start (Left)
103
+ .tooltip-start,
104
+ .tooltip[data-popper-placement^="left"] {
105
+ padding: 0 var(--tooltip-arrow-height);
106
+
107
+ .tooltip-arrow {
108
+ right: 0;
109
+ width: var(--tooltip-arrow-height);
110
+ height: var(--tooltip-arrow-width);
111
+
112
+ &::before {
113
+ left: -1px;
114
+ border-width: calc(var(--tooltip-arrow-width) * 0.5) 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);
115
+ border-left-color: var(--tooltip-bg);
116
+ }
117
+ }
118
+ }
119
+
120
+ // End (Right)
121
+ .tooltip-end,
122
+ .tooltip[data-popper-placement^="right"] {
123
+ padding: 0 var(--tooltip-arrow-height);
124
+
125
+ .tooltip-arrow {
126
+ left: 0;
127
+ width: var(--tooltip-arrow-height);
128
+ height: var(--tooltip-arrow-width);
129
+
130
+ &::before {
131
+ right: -1px;
132
+ border-width: calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;
133
+ border-right-color: var(--tooltip-bg);
134
+ }
135
+ }
136
+ }
137
+
138
+ // ----------------------------------------
139
+ // Tooltip Inner
140
+ // ----------------------------------------
141
+ .tooltip-inner {
142
+ max-width: var(--tooltip-max-width);
143
+ padding: var(--tooltip-padding-y) var(--tooltip-padding-x);
144
+ color: var(--tooltip-color);
145
+ text-align: center;
146
+ background-color: var(--tooltip-bg);
147
+ border-radius: var(--tooltip-border-radius);
148
+ }
149
+
150
+ // ----------------------------------------
151
+ // Tooltip Fade Animation
152
+ // ----------------------------------------
153
+ .tooltip.fade {
154
+ transition: opacity $transition-fast linear;
155
+ }
156
+
157
+ // ----------------------------------------
158
+ // Tooltip Color Variants
159
+ // ----------------------------------------
160
+ .tooltip-primary {
161
+ --tooltip-bg: var(--primary);
162
+ }
163
+
164
+ .tooltip-secondary {
165
+ --tooltip-bg: var(--gray-600);
166
+ }
167
+
168
+ .tooltip-success {
169
+ --tooltip-bg: var(--success);
170
+ }
171
+
172
+ .tooltip-danger {
173
+ --tooltip-bg: var(--danger);
174
+ }
175
+
176
+ .tooltip-warning {
177
+ --tooltip-bg: var(--warning);
178
+ --tooltip-color: var(--gray-900);
179
+ }
180
+
181
+ .tooltip-info {
182
+ --tooltip-bg: var(--info);
183
+ }
184
+
185
+ .tooltip-light {
186
+ --tooltip-bg: var(--gray-100);
187
+ --tooltip-color: var(--gray-900);
188
+ }
189
+
190
+ // ----------------------------------------
191
+ // Simple CSS-only Tooltip
192
+ // ----------------------------------------
193
+ [data-tooltip] {
194
+ position: relative;
195
+ cursor: pointer;
196
+
197
+ &::before,
198
+ &::after {
199
+ position: absolute;
200
+ opacity: 0;
201
+ visibility: hidden;
202
+ transition: opacity $transition-fast ease-in-out, visibility $transition-fast ease-in-out;
203
+ z-index: var(--tooltip-zindex);
204
+ pointer-events: none;
205
+ }
206
+
207
+ // Tooltip text
208
+ &::after {
209
+ content: attr(data-tooltip);
210
+ padding: var(--tooltip-padding-y) var(--tooltip-padding-x);
211
+ font-size: var(--tooltip-font-size);
212
+ color: var(--tooltip-color);
213
+ background-color: var(--tooltip-bg);
214
+ border-radius: var(--tooltip-border-radius);
215
+ white-space: nowrap;
216
+ max-width: var(--tooltip-max-width);
217
+ }
218
+
219
+ // Arrow
220
+ &::before {
221
+ content: "";
222
+ border: var(--tooltip-arrow-height) solid transparent;
223
+ }
224
+
225
+ &:hover::before,
226
+ &:hover::after,
227
+ &:focus::before,
228
+ &:focus::after {
229
+ opacity: var(--tooltip-opacity);
230
+ visibility: visible;
231
+ }
232
+ }
233
+
234
+ // Top (default)
235
+ [data-tooltip]:not([data-tooltip-position]),
236
+ [data-tooltip][data-tooltip-position="top"] {
237
+ &::after {
238
+ bottom: 100%;
239
+ left: 50%;
240
+ transform: translateX(-50%);
241
+ margin-bottom: var(--tooltip-arrow-height);
242
+ }
243
+
244
+ &::before {
245
+ bottom: 100%;
246
+ left: 50%;
247
+ transform: translateX(-50%);
248
+ border-top-color: var(--tooltip-bg);
249
+ border-bottom: 0;
250
+ }
251
+ }
252
+
253
+ // Bottom
254
+ [data-tooltip][data-tooltip-position="bottom"] {
255
+ &::after {
256
+ top: 100%;
257
+ left: 50%;
258
+ transform: translateX(-50%);
259
+ margin-top: var(--tooltip-arrow-height);
260
+ }
261
+
262
+ &::before {
263
+ top: 100%;
264
+ left: 50%;
265
+ transform: translateX(-50%);
266
+ border-bottom-color: var(--tooltip-bg);
267
+ border-top: 0;
268
+ }
269
+ }
270
+
271
+ // Left
272
+ [data-tooltip][data-tooltip-position="left"] {
273
+ &::after {
274
+ right: 100%;
275
+ top: 50%;
276
+ transform: translateY(-50%);
277
+ margin-right: var(--tooltip-arrow-height);
278
+ }
279
+
280
+ &::before {
281
+ right: 100%;
282
+ top: 50%;
283
+ transform: translateY(-50%);
284
+ border-left-color: var(--tooltip-bg);
285
+ border-right: 0;
286
+ }
287
+ }
288
+
289
+ // Right
290
+ [data-tooltip][data-tooltip-position="right"] {
291
+ &::after {
292
+ left: 100%;
293
+ top: 50%;
294
+ transform: translateY(-50%);
295
+ margin-left: var(--tooltip-arrow-height);
296
+ }
297
+
298
+ &::before {
299
+ left: 100%;
300
+ top: 50%;
301
+ transform: translateY(-50%);
302
+ border-right-color: var(--tooltip-bg);
303
+ border-left: 0;
304
+ }
305
+ }