@wwtdev/bsds-css 0.1.1 → 0.3.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.
@@ -1,259 +0,0 @@
1
- @mixin form-elements() {
2
- :where(.required) {
3
- color: var(--bs-red-400);
4
- }
5
-
6
- :where([data-disabled], [data-disabled] .required) {
7
- color: var(--bs-gray-400);
8
- }
9
-
10
- :where(label + input, label > input):not([type^='checkbox'], [type^='radio']),
11
- :where(label + textarea, label > textarea),
12
- :where(label + select, label > select) {
13
- margin-top: 0.25rem;
14
- }
15
-
16
- :where(input):not([type^='checkbox'], [type^='radio'], [type^='file'], [type^='range']),
17
- :where(textarea, select) {
18
- appearance: none;
19
- background-color: var(--input-bg, var(--bs-bg-base));
20
- border: 1px solid var(--input-border, var(--bs-violet-300));
21
- border-radius: 0.25rem;
22
- color: var(--bs-ink-base);
23
- font-size: var(--bs-text-base);
24
- font-weight: 400;
25
- line-height: var(--bs-leading-base);
26
- min-height: 40px;
27
- padding: 0.5rem 0.75rem;
28
- width: 100%;
29
- }
30
-
31
- :where(input, textarea, select)::placeholder {
32
- color: var(--bs-violet-200);
33
- opacity: 1;
34
- }
35
-
36
- :where(input, textarea, select):focus {
37
- box-shadow: 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
38
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
39
- outline: 2px solid transparent;
40
- }
41
- :where(.box) :where(input, textarea, select):focus {
42
- --offset-color: var(--bs-bg-subtle);
43
- }
44
- :where(.box[data-invert]) :where(input, textarea, select):focus {
45
- --offset-color: var(--bs-bg-invert);
46
- }
47
-
48
- :where(input, textarea, select)[required]:focus,
49
- :where(input, textarea, select).error {
50
- --outline-color: var(--bs-red-200);
51
- }
52
-
53
- :where(input, textarea, select):disabled {
54
- background-color: var(--bs-gray-200);
55
- border-color: var(--bs-gray-400);
56
- color: var(--bs-gray-400);
57
- }
58
-
59
- /* chrome user agent styling was applying opacity: 0.7 */
60
- :where(select:disabled) {
61
- opacity: 1;
62
- }
63
-
64
- :where(input, textarea, select):disabled::placeholder,
65
- :where(input, textarea, select)[disabled]::placeholder {
66
- color: var(--bs-gray-400);
67
- opacity: 1;
68
- }
69
-
70
- /* Character Counter for Textarea */
71
- :where(textarea + .character-count) {
72
- color: var(--bs-ink-base);
73
- font-size: var(--bs-text-xs);
74
- font-weight: 400;
75
- text-align: right;
76
- }
77
-
78
- :where(textarea[disabled] + .character-count) {
79
- color: var(--bs-gray-400);
80
- }
81
-
82
- /* Select */
83
-
84
- :where(select) {
85
- /* URL Encoded SVG dropdown caret so there is something there */
86
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%230A0B19' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
87
- background-position: right 0.75rem center;
88
- background-repeat: no-repeat;
89
- background-size: 1em 1em;
90
- }
91
- .dark :where(select) {
92
- /* URL Encoded SVG dropdown caret so there is something there */
93
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
94
- }
95
-
96
- /* Checkboxes & Radios */
97
- :where(.checkbox, .radio) {
98
- display: flex;
99
- align-items: center;
100
- font-size: var(--bs-text-base);
101
- font-weight: 400;
102
- gap: 0.5em;
103
- line-height: 115%;
104
- }
105
- :where(.checkbox, .radio) label {
106
- font-size: var(--bs-text-base);
107
- font-weight: 400;
108
- line-height: 115%;
109
- width: auto;
110
- }
111
-
112
- :where(input[type^='checkbox'], input[type^='radio']) {
113
- --box-shadow: var(--bs-ink-base);
114
-
115
- appearance: none;
116
- background-color: var(--bg-base);
117
- box-shadow: inset 0 0 0 0.125rem var(--box-shadow);
118
- display: grid;
119
- height: 1rem;
120
- margin: 0;
121
- place-content: center;
122
- position: relative;
123
- width: 1rem;
124
- }
125
- :where(input[type^='checkbox'], input[type^='radio']):focus {
126
- box-shadow: inset 0 0 0 0.125rem var(--box-shadow),
127
- 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
128
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
129
- }
130
-
131
- :where(input[type^='checkbox'], input[type^='radio'])[data-error] {
132
- --box-shadow: var(--bs-red-400);
133
- }
134
-
135
- :where(input[type^='checkbox']) {
136
- border-radius: 0.125rem;
137
- }
138
-
139
- :where(input[type^='radio']) {
140
- border-radius: 50%;
141
- }
142
-
143
- :where(.checkbox, .radio)[data-size='sm'],
144
- :where(.checkbox, .radio)[data-size='sm'] label {
145
- font-size: var(--bs-text-sm);
146
- line-height: 100%;
147
- }
148
-
149
- :where(.checkbox, .radio)[data-size='sm'] input {
150
- width: var(--bs-text-xs);
151
- height: var(--bs-text-xs);
152
- }
153
-
154
- :where(input[type='checkbox'])::before {
155
- --filled-size: 1rem;
156
- --check-fill-color: var(--bs-blue-400);
157
-
158
- content: '';
159
- border-radius: 0.125rem;
160
- box-shadow: inset var(--filled-size) var(--filled-size) var(--check-fill-color);
161
- height: var(--filled-size);
162
- visibility: hidden;
163
- width: var(--filled-size);
164
- }
165
-
166
- :where(input[type^='checkbox'])::after {
167
- border: solid var(--bs-white);
168
- border-width: 0 0.125rem 0.125rem 0;
169
- content: '';
170
- height: 0.75em;
171
- left: 50%;
172
- position: absolute;
173
- top: 50%;
174
- transform-origin: center;
175
- transform: translate(-50%, -60%) rotate(45deg);
176
- visibility: hidden;
177
- width: 0.375em;
178
- }
179
-
180
- :where(input[type='radio'])::before {
181
- --filled-size: 1rem;
182
- --radio-fill-color: var(--bs-blue-400);
183
-
184
- background-color: var(--radio-fill-color);
185
- border-radius: 50%;
186
- box-sizing: content-box;
187
- content: '';
188
- height: var(--filled-size);
189
- visibility: hidden;
190
- width: var(--filled-size);
191
- }
192
-
193
- :where(input[type='radio'])::after {
194
- --inner-size: 0.375rem;
195
- --inner-fill-color: var(--bs-white);
196
-
197
- background-color: var(--inner-fill-color);
198
- border-radius: 50%;
199
- box-sizing: content-box;
200
- content: '';
201
- height: var(--inner-size);
202
- left: 50%;
203
- position: absolute;
204
- top: 50%;
205
- transform: translate(-50%, -50%);
206
- visibility: hidden;
207
- width: var(--inner-size);
208
- }
209
-
210
- :where(input[type='checkbox']:checked, input[type='radio']:checked)::before,
211
- :where(input[type='checkbox']:checked, input[type='radio']:checked)::after {
212
- visibility: visible;
213
- }
214
-
215
- :where(.checkbox, .radio)[data-size='sm'] input::before {
216
- --filled-size: var(--bs-text-xs);
217
- }
218
-
219
- :where(.checkbox[data-size='sm'] input[type='checkbox'])::after {
220
- height: 0.5625;
221
- width: 0.3125;
222
- }
223
-
224
- :where(.radio[data-size='sm'] input[type='radio'])::after {
225
- --inner-size: 0.25rem;
226
- }
227
-
228
- :where(input[type='checkbox'], input[type='radio']):disabled {
229
- --box-shadow: var(--bs-gray-400);
230
- background-color: transparent;
231
- }
232
-
233
- :where(input[type='checkbox']):checked:disabled:before {
234
- --check-fill-color: var(--bs-gray-400);
235
- }
236
-
237
- :where(input[type='radio']):checked:disabled:before {
238
- --radio-fill-color: var(--bs-gray-400);
239
- }
240
-
241
- /* Errors and Messages */
242
- :where(input)[data-error] {
243
- border-color: var(--bs-red-400);
244
- }
245
-
246
- /* Fieldset */
247
- :where(fieldset) {
248
- border: none;
249
- margin-left: 0;
250
- margin-right: 0;
251
- padding: 0;
252
- }
253
- :where(fieldset legend) {
254
- margin-bottom: 0.25rem;
255
- padding: 0;
256
- }
257
-
258
- }
259
-
@@ -1,14 +0,0 @@
1
- @mixin form-hints() {
2
- :where(.hints) {
3
- color: var(--bs-ink-light);
4
- font-size: var(--bs-text-xs);
5
- padding: 0.5rem 0.75rem 0 0.75rem;
6
- margin: 0;
7
- list-style: none;
8
- }
9
- :where(.hints[data-error]) {
10
- color: var(--bs-red-400);
11
- }
12
-
13
- }
14
-
@@ -1,20 +0,0 @@
1
- @mixin form-labels() {
2
- :where(label, legend) {
3
- color: var(--bs-ink-base);
4
- display: inline-block;
5
- font-size: var(--bs-text-sm);
6
- font-weight: 600;
7
- line-height: var(--bs-leading-base);
8
- width: 100%;
9
- }
10
-
11
- :where(.required) {
12
- color: var(--bs-red-400);
13
- }
14
-
15
- :where([data-disabled], [data-disabled] .required, [data-disabled] label) {
16
- color: var(--bs-gray-400);
17
- }
18
-
19
- }
20
-
@@ -1,206 +0,0 @@
1
- @mixin pills() {
2
- .pill {
3
- --pill-background: var(--bs-bg-subtle);
4
- --pill-border: transparent;
5
- --pill-text: var(--bs-royal-400);
6
-
7
- align-items: center;
8
- appearance: none;
9
- background-color: var(--pill-background);
10
- border: 1px solid var(--pill-border);
11
- border-radius: 4px;
12
- color: var(--pill-text);
13
- display: inline-flex;
14
- font-size: var(--bs-text-xs);
15
- gap: 4px;
16
- line-height: 1.33;
17
- padding: 4px 6px;
18
- text-decoration: none;
19
- vertical-align: middle;
20
- }
21
- :where(.dark) .pill {
22
- --pill-text: var(--bs-royal-100);
23
- }
24
- .pill > svg {
25
- height: 1rem;
26
- }
27
-
28
- /* ------------------------------ Button and Link Styles ------------------------------ */
29
- :is(a, button).pill {
30
- color: var(--pill-text);
31
- cursor: pointer;
32
- transition: all 0.15s ease-in-out;
33
- }
34
- :is(a, button).pill:is(:hover, :focus) {
35
- --pill-border: var(--bs-royal-400);
36
-
37
- color: var(--pill-text);
38
- outline: transparent;
39
- }
40
- :where(.dark) :is(a, button).pill:is(:hover, :focus) {
41
- --pill-border: var(--bs-royal-200);
42
- }
43
-
44
- /* ------------------------------ Background Colors ------------------------------ */
45
- :where(.box, [class*="bg-"]:not([class~="bg-white"])) .pill {
46
- --pill-background: var(--bs-bg-base);
47
- }
48
- :where(.box[data-invert]) .pill {
49
- --pill-background: var(--bs-bg-invert-subtle);
50
- --pill-text: var(--bs-gray-100);
51
- }
52
- :where(.box[data-invert]) :is(a, button).pill:is(:hover, :focus) {
53
- --pill-border: var(--bs-gray-100);
54
- }
55
- :where(.dark .box[data-invert]) .pill {
56
- --pill-text: var(--bs-royal-400);
57
- }
58
- :where(.dark .box[data-invert]) :is(a, button).pill:is(:hover, :focus) {
59
- --pill-border: var(--bs-royal-400);
60
- }
61
-
62
- /* ------------------------------ Status Styles ------------------------------ */
63
- .pill:where([data-status]) {
64
- --status-color: var(--bs-blue-400);
65
- }
66
- .pill:where([data-status])::before {
67
- background-color: var(--status-color);
68
- border-radius: 100%;
69
- content: '';
70
- height: 12px;
71
- width: 12px;
72
- }
73
-
74
- /* ----- Status Colors ----- */
75
- .pill:where([data-status^="active"]) {
76
- --status-color: var(--bs-blue-400);
77
- }
78
- .pill:where([data-status^="complete"]) {
79
- --status-color: var(--bs-purple-400);
80
- }
81
- .pill:where([data-status^="inactive"]) {
82
- --status-color: var(--bs-gray-300);
83
- }
84
- .pill:where([data-status^="error"]) {
85
- --status-color: var(--bs-red-400);
86
- }
87
- .pill:where([data-status^="positive"]) {
88
- --status-color: #16986D;
89
- }
90
- .pill:where([data-status^="warning"]) {
91
- --status-color: var(--bs-orange-warning);
92
- }
93
-
94
- /* ------------------------------ Filter Styles ------------------------------ */
95
- .pill:where([data-type^="filter"]) {
96
- --pill-background: var(--bs-bg-base);
97
- --pill-border: var(--bs-border);
98
- --pill-text: var(--bs-ink-base);
99
- }
100
- .pill:where([data-type^="filter"]):is(:hover, :focus) {
101
- --pill-border: var(--bs-border);
102
- }
103
- :is(a, button).pill:where([data-type^="filter"]):is(:hover, :focus) {
104
- --pill-border: var(--bs-ink-base);
105
- }
106
-
107
- /* ----- Filter Add Styles ----- */
108
- /* Black + */
109
- .pill:where([data-type^="filter"][data-type*="add"])::after {
110
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.5 4.5V8h1V4.5H8v-1H4.5V0h-1v3.5H0v1h3.5Z' fill='%230A0B19'/%3E%3C/svg%3E");
111
- }
112
- /* White + */
113
- :where(.dark) .pill:where([data-type^="filter"][data-type*="add"]):not(:disabled, [aria-disabled="true"])::after{
114
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.5 4.5V8h1V4.5H8v-1H4.5V0h-1v3.5H0v1h3.5Z' fill='%23ffffff'/%3E%3C/svg%3E");
115
- }
116
-
117
-
118
- /* ----- Filter Remove Styles ----- */
119
- /* Black X */
120
- .pill:where([data-type^="filter"][data-type*="remove"])::after {
121
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%230A0B19'/%3E%3C/svg%3E%0A");
122
- }
123
- /* White X */
124
- :where(.dark) .pill:where([data-type^="filter"][data-type*="remove"]):not(:disabled, [aria-disabled="true"])::after {
125
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23ffffff'/%3E%3C/svg%3E%0A");
126
- }
127
- /* Dark Red X */
128
- .pill:where([data-type^="filter"][data-type*="remove"]):hover::after {
129
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23D91214'/%3E%3C/svg%3E%0A");
130
- }
131
- /* Light Red X */
132
- :where(.dark) .pill:where([data-type^="filter"][data-type*="remove"]):hover::after {
133
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23F15355'/%3E%3C/svg%3E%0A");
134
- }
135
-
136
- /* ----- Filter Active Styles ----- */
137
- .pill:where([data-type^="filter"][data-type*="active"]) {
138
- --pill-background: var(--bs-blue-400);
139
- --pill-border: transparent;
140
- --pill-text: var(--bs-white);
141
- }
142
- .pill:where([data-type^="filter"][data-type*="active"]):is(:hover, :focus) {
143
- --pill-border: transparent;
144
- }
145
- :is(a, button).pill:where([data-type^="filter"][data-type*="active"]):is(:hover, :focus) {
146
- --pill-background: var(--bs-blue-500);
147
- --pill-border: transparent;
148
- }
149
- /* White X */
150
- .pill:where([data-type^="filter"][data-type*="active"])::after {
151
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23fff'/%3E%3C/svg%3E");
152
- }
153
- /* Black X */
154
- .pill:where([data-type^="filter"][data-type*="active"]):where(:disabled, [aria-disabled="true"])::after {
155
- content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%230A0B19'/%3E%3C/svg%3E%0A");
156
- }
157
-
158
- /* ------------------------------ Restricted Styles ------------------------------ */
159
- .pill:where([data-type^="restricted"]) {
160
- --pill-background: var(--bs-gray-400);
161
- --pill-text: var(--bs-white);
162
- }
163
- .pill:where([data-type^="restricted"]):hover {
164
- --pill-border: transparent;
165
- }
166
- .pill:where([data-type^="restricted"])::before {
167
- content: url("data:image/svg+xml,%3Csvg width='11' height='12' viewBox='0 0 8 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.25 4.5H7v3.715a.34.34 0 0 1-.37.285H1V5.285A.34.34 0 0 1 1.37 5h5a.25.25 0 0 0 .25-.25V3.275A2.545 2.545 0 0 0 4 1a2.55 2.55 0 0 0-2.625 2.29L1.39 4.5a.83.83 0 0 0-.89.785V8.75A.25.25 0 0 0 .75 9h5.88a.835.835 0 0 0 .87-.785V4.75a.25.25 0 0 0-.25-.25Zm-2.225 0H2.96V3.425c0-.035 0-.845 1.03-.845a.96.96 0 0 1 1.035.8V4.5ZM4 1.5a2.045 2.045 0 0 1 2.115 1.79V4.5h-.59V3.37A1.455 1.455 0 0 0 4 2.075a1.385 1.385 0 0 0-1.53 1.35V4.5h-.58V3.31A2.045 2.045 0 0 1 4 1.5Zm-.495 4.25H1.5v.5h2.005v-.5Zm-2.005 1h1.505v.5H1.5v-.5Z' fill='%23F0F0FA'/%3E%3C/svg%3E");
168
- line-height: 1.1;
169
- }
170
- :where(.dark) .pill:where([data-type^="restricted"]) {
171
- --pill-background: var(--bs-navy-300);
172
- --pill-text: var(--bs-white);
173
- }
174
-
175
- /* ------------------------------ Live Now Styles ------------------------------ */
176
- .pill:where([data-type^="live"]) {
177
- --pill-background: var(--bs-royal-400);
178
- --pill-text: var(--bs-white);
179
- text-transform: uppercase;
180
- }
181
- .pill:where([data-type^="live"]):hover {
182
- --pill-border: transparent;
183
- }
184
- .pill:where([data-type^="live"])::before {
185
- background-color: var(--bs-red-400);
186
- border: 3px solid var(--bs-white);
187
- border-radius: 100%;
188
- content: '';
189
- height: 12px;
190
- width: 12px;
191
- }
192
-
193
- /* ----- Disabled Styles ----- */
194
- .pill:is(:disabled, [aria-disabled="true"]) {
195
- pointer-events: none;
196
- color: var(--bs-gray-400);
197
- background-color: var(--bs-gray-200);
198
- }
199
-
200
- .pill:where([data-type^="filter"]):not([data-type*="active"]):is(:disabled, [aria-disabled="true"]) {
201
- --pill-border: var(--bs-gray-400);
202
- }
203
-
204
-
205
- }
206
-
@@ -1,99 +0,0 @@
1
- @mixin profiles() {
2
- :where(.profile-img),
3
- :where(.profile-img[data-img-size^='sm']) {
4
- --profile-size: 2rem;
5
- --profile-text: var(--bs-text-sm);
6
-
7
- aspect-ratio: 1/1;
8
- border-radius: 50%;
9
- height: var(--profile-size);
10
- overflow: hidden;
11
- position: relative;
12
- width: var(--profile-size);
13
- }
14
-
15
- :where(.profile-img img) {
16
- height: 100%;
17
- object-fit: cover;
18
- width: 100%;
19
- }
20
- :where(.profile-img[data-no-img="true"]) img {
21
- display: none;
22
- }
23
-
24
- :where(.profile-img)::before,
25
- :where(.profile-img)::after {
26
- border-radius: 50%;
27
- border-collapse: collapse;
28
- height: 100%;
29
- inset: 0;
30
- position:absolute;
31
- width: 100%;
32
- }
33
- /* Shadow */
34
- :where(.profile-img)::before {
35
- box-shadow: var(--bs-shadow-profilePhoto);
36
- content: '';
37
- }
38
- :where(.profile-img[data-no-img="true"])::before {
39
- display: none;
40
- }
41
- /* Initials */
42
- :where(.profile-img[data-no-img="true"])::after {
43
- border: 1px solid currentColor;
44
- color: var(--bs-blue-500);
45
- content: attr(data-initials);
46
- font-size: var(--profile-text);
47
- text-transform: uppercase;
48
- display: grid;
49
- place-items: center;
50
- }
51
-
52
- /* Profile Sizes */
53
- :where([data-img-size^='xs']) {
54
- --profile-size: 1.5rem;
55
- --profile-text: var(--bs-text-xs);
56
- }
57
- :where([data-img-size^='md']) {
58
- --profile-size: 3rem;
59
- --profile-text: var(--bs-text-md);
60
- }
61
- :where([data-img-size^='lg']) {
62
- --profile-size: 4rem;
63
- --profile-text: var(--bs-text-lg);
64
- }
65
- :where([data-img-size^='xl']) {
66
- --profile-size: 5.75rem;
67
- --profile-text: var(--bs-text-xl);
68
- }
69
-
70
- /* Profile with User Details */
71
- :where(.profile[data-layout]),
72
- :where(.profile[data-layout^='vertical']) {
73
- display: grid;
74
- row-gap: 0.5rem;
75
- }
76
-
77
- :where(.profile[data-layout^='horizontal']) {
78
- column-gap: 1rem;
79
- grid-template-columns: auto 1fr;
80
- }
81
-
82
- :where(.profile-content) {
83
- color: var(--bs-ink-light);
84
- font-size: var(--bs-text-xs);
85
- }
86
-
87
- :where(.profile[data-layout]:hover .profile-content > *:first-child) {
88
- --profile-ink-hover: var(--bs-blue-500);
89
-
90
- color: var(--profile-ink-hover);
91
- text-decoration: underline;
92
- }
93
-
94
- .dark :where(.profile[data-layout]:hover .profile-content > *:first-child) {
95
- --profile-ink-hover: var(--bs-blue-200);
96
- }
97
-
98
- }
99
-
@@ -1,84 +0,0 @@
1
- @mixin tables() {
2
- table {
3
- border-collapse: collapse;
4
- border-spacing: 0;
5
- overflow-x: auto;
6
- max-width: 100%;
7
- width: 100%;
8
- }
9
- thead {
10
- color: var(--bs-ink-base);
11
- font-size: var(--bs-font-base);
12
- font-weight: 600;
13
- }
14
- tbody {
15
- color: var(--bs-ink-light);
16
- }
17
- th {
18
- background: var(--bs-bg-base);
19
- }
20
- th, td {
21
- border-bottom: 1px solid var(--bs-border);
22
- min-width: fit-content;
23
- padding: var(--bs-space-2);
24
- text-align: left;
25
- }
26
-
27
- /* Table Borders */
28
- table[data-borders^="none"] {
29
- border: 0;
30
- }
31
- table[data-borders^="all"] :where(th, td) {
32
- border-left: 1px solid var(--bs-border);
33
- }
34
- table[data-borders^="all"] :where(th, td):last-child {
35
- border-right: 1px solid var(--bs-border);
36
- }
37
- table[data-borders^="all"] th {
38
- border-top: 1px solid var(--bs-border);
39
- }
40
-
41
- /* Table Rows */
42
- table:where([data-rows^="striped"]) tbody > tr:nth-child(even) {
43
- background-color: var(--bs-bg-subtle);
44
- }
45
-
46
- /* Table Cells */
47
- table[data-cells^="fixed"] {
48
- table-layout: fixed;
49
- }
50
- table:where([data-cells^="height"]) td {
51
- height: 4.5rem;
52
- vertical-align: middle;
53
- }
54
-
55
- /* Sticky Header */
56
- table:where([data-sticky]) {
57
- isolation: isolate;
58
- }
59
- table:where([data-sticky^="top"]) td {
60
- z-index: 1;
61
- }
62
- table:where([data-sticky^="top"]) {
63
- border-collapse: separate;
64
- overflow-y: unset; /* Will break sticky headers if removed */
65
- position: relative;
66
- }
67
- table:where([data-sticky^="left"]) {
68
- border-collapse: separate;
69
- overflow-x: unset; /* Will break sticky headers if removed */
70
- position: relative;
71
- }
72
- table:where([data-sticky^="top"]) th {
73
- position: sticky;
74
- top: var(--bs-content-top);
75
- z-index: 2;
76
- }
77
- table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
78
- position: sticky;
79
- left: 0;
80
- z-index: 2;
81
- }
82
-
83
- }
84
-