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,314 @@
1
+ // ========================================
2
+ // ZenKit - Watermark Component
3
+ // Background watermark overlay
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // Watermark Container
10
+ // ----------------------------------------
11
+ .watermark {
12
+ position: relative;
13
+ }
14
+
15
+ // ----------------------------------------
16
+ // Watermark Overlay
17
+ // ----------------------------------------
18
+ .watermark-content {
19
+ position: absolute;
20
+ inset: 0;
21
+ z-index: 9;
22
+ pointer-events: none;
23
+ overflow: hidden;
24
+ }
25
+
26
+ // ----------------------------------------
27
+ // Watermark Pattern
28
+ // ----------------------------------------
29
+ // The actual watermark pattern is typically generated via JS/Canvas
30
+ // These are CSS-only fallback patterns
31
+
32
+ .watermark-pattern {
33
+ position: absolute;
34
+ inset: 0;
35
+ background-repeat: repeat;
36
+ // Background image is set via inline style (JS generated)
37
+ }
38
+
39
+ // ----------------------------------------
40
+ // Watermark Text (CSS Only)
41
+ // ----------------------------------------
42
+ .watermark-text {
43
+ position: absolute;
44
+ inset: 0;
45
+ display: flex;
46
+ flex-wrap: wrap;
47
+ align-content: flex-start;
48
+ gap: 100px;
49
+ padding: 50px;
50
+ font-size: 16px;
51
+ font-weight: 400;
52
+ color: rgba(0, 0, 0, 0.08);
53
+ transform: rotate(-22deg);
54
+ user-select: none;
55
+ overflow: hidden;
56
+ }
57
+
58
+ .watermark-text-item {
59
+ white-space: nowrap;
60
+ }
61
+
62
+ // ----------------------------------------
63
+ // Watermark Image
64
+ // ----------------------------------------
65
+ .watermark-image {
66
+ position: absolute;
67
+ inset: 0;
68
+ background-repeat: repeat;
69
+ background-size: 200px auto;
70
+ opacity: 0.05;
71
+ }
72
+
73
+ // ----------------------------------------
74
+ // Watermark Grayscale
75
+ // ----------------------------------------
76
+ .watermark-grayscale .watermark-image {
77
+ filter: grayscale(100%);
78
+ }
79
+
80
+ // ----------------------------------------
81
+ // Watermark Opacity Variants
82
+ // ----------------------------------------
83
+ .watermark-opacity-5 .watermark-text,
84
+ .watermark-opacity-5 .watermark-image {
85
+ opacity: 0.05;
86
+ }
87
+
88
+ .watermark-opacity-10 .watermark-text,
89
+ .watermark-opacity-10 .watermark-image {
90
+ opacity: 0.1;
91
+ }
92
+
93
+ .watermark-opacity-15 .watermark-text,
94
+ .watermark-opacity-15 .watermark-image {
95
+ opacity: 0.15;
96
+ }
97
+
98
+ .watermark-opacity-20 .watermark-text,
99
+ .watermark-opacity-20 .watermark-image {
100
+ opacity: 0.2;
101
+ }
102
+
103
+ .watermark-opacity-25 .watermark-text,
104
+ .watermark-opacity-25 .watermark-image {
105
+ opacity: 0.25;
106
+ }
107
+
108
+ // ----------------------------------------
109
+ // Watermark Colors
110
+ // ----------------------------------------
111
+ .watermark-light .watermark-text {
112
+ color: rgba(255, 255, 255, 0.15);
113
+ }
114
+
115
+ .watermark-dark .watermark-text {
116
+ color: rgba(0, 0, 0, 0.15);
117
+ }
118
+
119
+ .watermark-primary .watermark-text {
120
+ color: rgba(var(--primary-rgb), 0.1);
121
+ }
122
+
123
+ // ----------------------------------------
124
+ // Watermark Font Sizes
125
+ // ----------------------------------------
126
+ .watermark-sm .watermark-text {
127
+ font-size: 12px;
128
+ gap: 60px;
129
+ padding: 30px;
130
+ }
131
+
132
+ .watermark-lg .watermark-text {
133
+ font-size: 20px;
134
+ gap: 120px;
135
+ padding: 60px;
136
+ }
137
+
138
+ .watermark-xl .watermark-text {
139
+ font-size: 28px;
140
+ gap: 160px;
141
+ padding: 80px;
142
+ }
143
+
144
+ // ----------------------------------------
145
+ // Watermark Font Weight
146
+ // ----------------------------------------
147
+ .watermark-bold .watermark-text {
148
+ font-weight: 600;
149
+ }
150
+
151
+ .watermark-light-weight .watermark-text {
152
+ font-weight: 300;
153
+ }
154
+
155
+ // ----------------------------------------
156
+ // Watermark Rotation
157
+ // ----------------------------------------
158
+ .watermark-rotate-0 .watermark-text,
159
+ .watermark-rotate-0 .watermark-pattern {
160
+ transform: rotate(0deg);
161
+ }
162
+
163
+ .watermark-rotate-15 .watermark-text,
164
+ .watermark-rotate-15 .watermark-pattern {
165
+ transform: rotate(-15deg);
166
+ }
167
+
168
+ .watermark-rotate-30 .watermark-text,
169
+ .watermark-rotate-30 .watermark-pattern {
170
+ transform: rotate(-30deg);
171
+ }
172
+
173
+ .watermark-rotate-45 .watermark-text,
174
+ .watermark-rotate-45 .watermark-pattern {
175
+ transform: rotate(-45deg);
176
+ }
177
+
178
+ // ----------------------------------------
179
+ // Watermark Gap / Density
180
+ // ----------------------------------------
181
+ .watermark-dense .watermark-text {
182
+ gap: 50px;
183
+ padding: 25px;
184
+ }
185
+
186
+ .watermark-sparse .watermark-text {
187
+ gap: 150px;
188
+ padding: 75px;
189
+ }
190
+
191
+ // ----------------------------------------
192
+ // Watermark Position
193
+ // ----------------------------------------
194
+ .watermark-center {
195
+ .watermark-content {
196
+ display: flex;
197
+ align-items: center;
198
+ justify-content: center;
199
+ }
200
+
201
+ .watermark-text {
202
+ position: static;
203
+ flex-wrap: nowrap;
204
+ gap: 0;
205
+ padding: 0;
206
+ }
207
+
208
+ .watermark-text-item {
209
+ font-size: 3rem;
210
+ opacity: 0.1;
211
+ }
212
+ }
213
+
214
+ // ----------------------------------------
215
+ // Watermark Full Page
216
+ // ----------------------------------------
217
+ .watermark-fullpage {
218
+ position: fixed;
219
+ inset: 0;
220
+ z-index: 9999;
221
+ pointer-events: none;
222
+ }
223
+
224
+ // ----------------------------------------
225
+ // Watermark Inherit (within container)
226
+ // ----------------------------------------
227
+ .watermark-inherit .watermark-content {
228
+ z-index: inherit;
229
+ }
230
+
231
+ // ----------------------------------------
232
+ // Watermark Anti-Tamper
233
+ // ----------------------------------------
234
+ // Prevents easy removal via developer tools
235
+ .watermark-secure {
236
+ .watermark-content {
237
+ // MutationObserver is used in JS to detect tampering
238
+ // This class is for identification
239
+ }
240
+ }
241
+
242
+ // ----------------------------------------
243
+ // Watermark with Children Styling
244
+ // ----------------------------------------
245
+ .watermark-children {
246
+ position: relative;
247
+ z-index: 1;
248
+ }
249
+
250
+ // ----------------------------------------
251
+ // Watermark Mask Gradient
252
+ // ----------------------------------------
253
+ .watermark-fade-edges {
254
+ .watermark-content {
255
+ mask-image: radial-gradient(
256
+ ellipse at center,
257
+ black 30%,
258
+ transparent 70%
259
+ );
260
+ -webkit-mask-image: radial-gradient(
261
+ ellipse at center,
262
+ black 30%,
263
+ transparent 70%
264
+ );
265
+ }
266
+ }
267
+
268
+ .watermark-fade-bottom {
269
+ .watermark-content {
270
+ mask-image: linear-gradient(to bottom, black 70%, transparent 100%);
271
+ -webkit-mask-image: linear-gradient(to bottom, black 70%, transparent 100%);
272
+ }
273
+ }
274
+
275
+ // ----------------------------------------
276
+ // Watermark Print
277
+ // ----------------------------------------
278
+ @media print {
279
+ .watermark-hide-print .watermark-content {
280
+ display: none;
281
+ }
282
+
283
+ .watermark-print-only {
284
+ .watermark-content {
285
+ display: block;
286
+ }
287
+ }
288
+ }
289
+
290
+ // ----------------------------------------
291
+ // Watermark Responsive
292
+ // ----------------------------------------
293
+ @media (max-width: 767.98px) {
294
+ .watermark-text {
295
+ font-size: 12px;
296
+ gap: 60px;
297
+ padding: 30px;
298
+ }
299
+
300
+ .watermark-hide-mobile .watermark-content {
301
+ display: none;
302
+ }
303
+ }
304
+
305
+ // ----------------------------------------
306
+ // Watermark Z-Index Control
307
+ // ----------------------------------------
308
+ .watermark-z-low .watermark-content {
309
+ z-index: 1;
310
+ }
311
+
312
+ .watermark-z-high .watermark-content {
313
+ z-index: 9999;
314
+ }
@@ -0,0 +1,38 @@
1
+ // ========================================
2
+ // ZenKit - Figures
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+
7
+ // ----------------------------------------
8
+ // Figure
9
+ // ----------------------------------------
10
+ .figure {
11
+ display: inline-block;
12
+ }
13
+
14
+ .figure-img {
15
+ margin-bottom: 0.5rem;
16
+ line-height: 1;
17
+ }
18
+
19
+ .figure-caption {
20
+ font-size: var(--text-sm);
21
+ color: var(--text-muted);
22
+ }
23
+
24
+ // ----------------------------------------
25
+ // Figure Variants
26
+ // ----------------------------------------
27
+ .figure-centered {
28
+ text-align: center;
29
+ }
30
+
31
+ .figure-bordered {
32
+ .figure-img {
33
+ padding: 0.25rem;
34
+ background-color: var(--bg);
35
+ border: $border-width solid var(--border);
36
+ border-radius: var(--radius);
37
+ }
38
+ }
@@ -0,0 +1,138 @@
1
+ // ========================================
2
+ // ZenKit - Images
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+
7
+ // ----------------------------------------
8
+ // Responsive Images
9
+ // ----------------------------------------
10
+ .img-fluid {
11
+ max-width: 100%;
12
+ height: auto;
13
+ }
14
+
15
+ // ----------------------------------------
16
+ // Image Thumbnails
17
+ // ----------------------------------------
18
+ .img-thumbnail {
19
+ padding: 0.25rem;
20
+ background-color: var(--bg);
21
+ border: $border-width solid var(--border);
22
+ border-radius: var(--radius);
23
+ max-width: 100%;
24
+ height: auto;
25
+ }
26
+
27
+ // ----------------------------------------
28
+ // Rounded Images
29
+ // ----------------------------------------
30
+ .img-rounded {
31
+ border-radius: var(--radius);
32
+ }
33
+
34
+ .img-circle {
35
+ border-radius: 50%;
36
+ }
37
+
38
+ // ----------------------------------------
39
+ // Image Cover (fills container)
40
+ // ----------------------------------------
41
+ .img-cover {
42
+ width: 100%;
43
+ height: 100%;
44
+ object-fit: cover;
45
+ }
46
+
47
+ .img-contain {
48
+ width: 100%;
49
+ height: 100%;
50
+ object-fit: contain;
51
+ }
52
+
53
+ // ----------------------------------------
54
+ // Avatar Sizes
55
+ // ----------------------------------------
56
+ .avatar {
57
+ display: inline-flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ width: 2.5rem;
61
+ height: 2.5rem;
62
+ border-radius: 50%;
63
+ overflow: hidden;
64
+ background-color: var(--gray-200);
65
+ color: var(--gray-600);
66
+ font-weight: $font-weight-medium;
67
+ font-size: var(--text-sm);
68
+
69
+ img {
70
+ width: 100%;
71
+ height: 100%;
72
+ object-fit: cover;
73
+ }
74
+ }
75
+
76
+ .avatar-xs {
77
+ width: 1.5rem;
78
+ height: 1.5rem;
79
+ font-size: var(--text-xs);
80
+ }
81
+
82
+ .avatar-sm {
83
+ width: 2rem;
84
+ height: 2rem;
85
+ font-size: var(--text-xs);
86
+ }
87
+
88
+ .avatar-lg {
89
+ width: 3rem;
90
+ height: 3rem;
91
+ font-size: var(--text-base);
92
+ }
93
+
94
+ .avatar-xl {
95
+ width: 4rem;
96
+ height: 4rem;
97
+ font-size: var(--text-lg);
98
+ }
99
+
100
+ .avatar-2xl {
101
+ width: 5rem;
102
+ height: 5rem;
103
+ font-size: var(--text-xl);
104
+ }
105
+
106
+ // ----------------------------------------
107
+ // Avatar Group
108
+ // ----------------------------------------
109
+ .avatar-group {
110
+ display: flex;
111
+
112
+ .avatar {
113
+ border: 2px solid var(--bg);
114
+ margin-left: -0.5rem;
115
+
116
+ &:first-child {
117
+ margin-left: 0;
118
+ }
119
+ }
120
+ }
121
+
122
+ // ----------------------------------------
123
+ // Image Placeholder
124
+ // ----------------------------------------
125
+ .img-placeholder {
126
+ display: flex;
127
+ align-items: center;
128
+ justify-content: center;
129
+ background-color: var(--gray-200);
130
+ color: var(--gray-500);
131
+
132
+ svg {
133
+ width: 25%;
134
+ height: 25%;
135
+ max-width: 4rem;
136
+ max-height: 4rem;
137
+ }
138
+ }
@@ -0,0 +1,232 @@
1
+ // ========================================
2
+ // ZenKit - Tables
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+ @use '../abstracts/mixins' as *;
7
+
8
+ // ----------------------------------------
9
+ // Base Table
10
+ // ----------------------------------------
11
+ .table {
12
+ --table-color: var(--text);
13
+ --table-bg: transparent;
14
+ --table-border-color: var(--border);
15
+ --table-accent-bg: transparent;
16
+ --table-striped-color: var(--text);
17
+ --table-striped-bg: rgba(0, 0, 0, 0.02);
18
+ --table-hover-color: var(--text);
19
+ --table-hover-bg: rgba(0, 0, 0, 0.04);
20
+
21
+ width: 100%;
22
+ margin-bottom: 1rem;
23
+ color: var(--table-color);
24
+ vertical-align: top;
25
+ border-color: var(--table-border-color);
26
+
27
+ > :not(caption) > * > * {
28
+ padding: 0.75rem;
29
+ background-color: var(--table-bg);
30
+ border-bottom-width: $border-width;
31
+ box-shadow: inset 0 0 0 9999px var(--table-accent-bg);
32
+ }
33
+
34
+ > tbody {
35
+ vertical-align: inherit;
36
+ }
37
+
38
+ > thead {
39
+ vertical-align: bottom;
40
+ }
41
+ }
42
+
43
+ // ----------------------------------------
44
+ // Table Head Styles
45
+ // ----------------------------------------
46
+ .table > thead {
47
+ border-bottom: 2px solid var(--border-dark);
48
+ }
49
+
50
+ .table-dark > thead {
51
+ border-bottom-color: var(--gray-600);
52
+ }
53
+
54
+ // ----------------------------------------
55
+ // Striped Rows
56
+ // ----------------------------------------
57
+ .table-striped > tbody > tr:nth-of-type(odd) > * {
58
+ --table-accent-bg: var(--table-striped-bg);
59
+ color: var(--table-striped-color);
60
+ }
61
+
62
+ .table-striped-columns > :not(caption) > tr > :nth-child(even) {
63
+ --table-accent-bg: var(--table-striped-bg);
64
+ color: var(--table-striped-color);
65
+ }
66
+
67
+ // ----------------------------------------
68
+ // Hover Effect
69
+ // ----------------------------------------
70
+ .table-hover > tbody > tr:hover > * {
71
+ --table-accent-bg: var(--table-hover-bg);
72
+ color: var(--table-hover-color);
73
+ }
74
+
75
+ // ----------------------------------------
76
+ // Active State
77
+ // ----------------------------------------
78
+ .table-active {
79
+ --table-accent-bg: var(--table-hover-bg);
80
+ color: var(--table-hover-color);
81
+ }
82
+
83
+ // ----------------------------------------
84
+ // Bordered Table
85
+ // ----------------------------------------
86
+ .table-bordered > :not(caption) > * {
87
+ border-width: $border-width 0;
88
+
89
+ > * {
90
+ border-width: 0 $border-width;
91
+ }
92
+ }
93
+
94
+ // ----------------------------------------
95
+ // Borderless Table
96
+ // ----------------------------------------
97
+ .table-borderless > :not(caption) > * > * {
98
+ border-bottom-width: 0;
99
+ }
100
+
101
+ .table-borderless > :not(:first-child) {
102
+ border-top-width: 0;
103
+ }
104
+
105
+ // ----------------------------------------
106
+ // Table Sizes
107
+ // ----------------------------------------
108
+ .table-sm > :not(caption) > * > * {
109
+ padding: 0.375rem;
110
+ }
111
+
112
+ .table-lg > :not(caption) > * > * {
113
+ padding: 1rem;
114
+ }
115
+
116
+ // ----------------------------------------
117
+ // Table Colors
118
+ // ----------------------------------------
119
+ .table-primary {
120
+ --table-color: var(--primary-900);
121
+ --table-bg: var(--primary-50);
122
+ --table-border-color: var(--primary-200);
123
+ --table-striped-bg: var(--primary-100);
124
+ --table-hover-bg: var(--primary-100);
125
+ }
126
+
127
+ .table-secondary {
128
+ --table-color: var(--gray-900);
129
+ --table-bg: var(--gray-100);
130
+ --table-border-color: var(--gray-200);
131
+ --table-striped-bg: var(--gray-200);
132
+ --table-hover-bg: var(--gray-200);
133
+ }
134
+
135
+ .table-success {
136
+ --table-color: #{$success-dark};
137
+ --table-bg: var(--success-light);
138
+ --table-border-color: #{$success};
139
+ --table-striped-bg: #{rgba($success, 0.1)};
140
+ --table-hover-bg: #{rgba($success, 0.15)};
141
+ }
142
+
143
+ .table-danger {
144
+ --table-color: #{$danger-dark};
145
+ --table-bg: var(--danger-light);
146
+ --table-border-color: #{$danger};
147
+ --table-striped-bg: #{rgba($danger, 0.1)};
148
+ --table-hover-bg: #{rgba($danger, 0.15)};
149
+ }
150
+
151
+ .table-warning {
152
+ --table-color: #{$warning-dark};
153
+ --table-bg: var(--warning-light);
154
+ --table-border-color: #{$warning};
155
+ --table-striped-bg: #{rgba($warning, 0.1)};
156
+ --table-hover-bg: #{rgba($warning, 0.15)};
157
+ }
158
+
159
+ .table-info {
160
+ --table-color: #{$info-dark};
161
+ --table-bg: var(--info-light);
162
+ --table-border-color: #{$info};
163
+ --table-striped-bg: #{rgba($info, 0.1)};
164
+ --table-hover-bg: #{rgba($info, 0.15)};
165
+ }
166
+
167
+ .table-light {
168
+ --table-color: var(--gray-900);
169
+ --table-bg: var(--gray-50);
170
+ --table-border-color: var(--gray-200);
171
+ }
172
+
173
+ .table-dark {
174
+ --table-color: var(--white);
175
+ --table-bg: var(--gray-800);
176
+ --table-border-color: var(--gray-700);
177
+ --table-striped-color: var(--white);
178
+ --table-striped-bg: #{rgba($white, 0.05)};
179
+ --table-hover-color: var(--white);
180
+ --table-hover-bg: #{rgba($white, 0.075)};
181
+ }
182
+
183
+ // ----------------------------------------
184
+ // Responsive Tables
185
+ // ----------------------------------------
186
+ .table-responsive {
187
+ overflow-x: auto;
188
+ -webkit-overflow-scrolling: touch;
189
+ }
190
+
191
+ @each $breakpoint in map-keys($breakpoints) {
192
+ $infix: if($breakpoint == xs, "", "-#{$breakpoint}");
193
+
194
+ @include breakpoint-down($breakpoint) {
195
+ .table-responsive#{$infix} {
196
+ overflow-x: auto;
197
+ -webkit-overflow-scrolling: touch;
198
+ }
199
+ }
200
+ }
201
+
202
+ // ----------------------------------------
203
+ // Caption
204
+ // ----------------------------------------
205
+ .table caption {
206
+ padding-top: 0.75rem;
207
+ padding-bottom: 0.75rem;
208
+ color: var(--text-muted);
209
+ text-align: left;
210
+ }
211
+
212
+ .caption-top {
213
+ caption-side: top;
214
+ }
215
+
216
+ // ----------------------------------------
217
+ // Table Group Dividers
218
+ // ----------------------------------------
219
+ .table-group-divider {
220
+ border-top: 2px solid var(--border-dark);
221
+ }
222
+
223
+ // ----------------------------------------
224
+ // Table Layout
225
+ // ----------------------------------------
226
+ .table-fixed {
227
+ table-layout: fixed;
228
+ }
229
+
230
+ .table-auto {
231
+ table-layout: auto;
232
+ }