@wwtdev/bsds-css 2.5.2 → 2.7.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.
- package/dist/components/_buttons.scss +85 -27
- package/dist/components/_circle-buttons.scss +108 -49
- package/dist/components/_dropdown.scss +13 -0
- package/dist/components/_filter-buttons.scss +15 -8
- package/dist/components/_flyout.scss +71 -0
- package/dist/components/_form-input-composite.scss +3 -1
- package/dist/components/_form-labels.scss +7 -0
- package/dist/components/_modal.scss +11 -0
- package/dist/components/_overlay.scss +11 -0
- package/dist/components/_toast.scss +18 -2
- package/dist/components/buttons.css +84 -26
- package/dist/components/circle-buttons.css +108 -49
- package/dist/components/dropdown.css +13 -0
- package/dist/components/filter-buttons.css +15 -8
- package/dist/components/flyout.css +67 -0
- package/dist/components/form-input-composite.css +3 -1
- package/dist/components/form-labels.css +7 -0
- package/dist/components/modal.css +11 -0
- package/dist/components/overlay.css +11 -0
- package/dist/components/toast.css +18 -2
- package/dist/wwt-bsds-preset.js +3 -0
- package/dist/wwt-bsds-wc-base.css +3 -0
- package/dist/wwt-bsds.css +308 -82
- package/dist/wwt-bsds.min.css +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
--bs-inherit: inherit;
|
|
7
7
|
--bs-current: currentColor;
|
|
8
8
|
--bs-white: #ffffff;
|
|
9
|
+
--bs-white-10: rgba(255, 255, 255, 0.1);
|
|
9
10
|
--bs-black: #0a0b19;
|
|
10
11
|
--bs-blue-10: rgba(0, 134, 234, 0.1);
|
|
11
12
|
--bs-blue-100: #99cff7;
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
--bs-plum-200: #7766b7;
|
|
25
26
|
--bs-plum-300: #49339f;
|
|
26
27
|
--bs-plum-400: #1c0087;
|
|
28
|
+
--bs-royal-10: rgba(22, 47, 180, 0.1);
|
|
27
29
|
--bs-royal-100: #c5cceb;
|
|
28
30
|
--bs-royal-200: #7585d1;
|
|
29
31
|
--bs-royal-300: #5365c4;
|
|
@@ -44,6 +46,7 @@
|
|
|
44
46
|
--bs-orange-300: #f97c4c;
|
|
45
47
|
--bs-orange-400: #fb550e;
|
|
46
48
|
--bs-orange-500: #c33d04;
|
|
49
|
+
--bs-pink-10: rgba(227, 28, 121, 0.1);
|
|
47
50
|
--bs-pink-100: #f6cbe0;
|
|
48
51
|
--bs-pink-200: #eb7eaf;
|
|
49
52
|
--bs-pink-300: #e45e9b;
|
package/dist/wwt-bsds.css
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
--bs-inherit: inherit;
|
|
7
7
|
--bs-current: currentColor;
|
|
8
8
|
--bs-white: #ffffff;
|
|
9
|
+
--bs-white-10: rgba(255, 255, 255, 0.1);
|
|
9
10
|
--bs-black: #0a0b19;
|
|
10
11
|
--bs-blue-10: rgba(0, 134, 234, 0.1);
|
|
11
12
|
--bs-blue-100: #99cff7;
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
--bs-plum-200: #7766b7;
|
|
25
26
|
--bs-plum-300: #49339f;
|
|
26
27
|
--bs-plum-400: #1c0087;
|
|
28
|
+
--bs-royal-10: rgba(22, 47, 180, 0.1);
|
|
27
29
|
--bs-royal-100: #c5cceb;
|
|
28
30
|
--bs-royal-200: #7585d1;
|
|
29
31
|
--bs-royal-300: #5365c4;
|
|
@@ -44,6 +46,7 @@
|
|
|
44
46
|
--bs-orange-300: #f97c4c;
|
|
45
47
|
--bs-orange-400: #fb550e;
|
|
46
48
|
--bs-orange-500: #c33d04;
|
|
49
|
+
--bs-pink-10: rgba(227, 28, 121, 0.1);
|
|
47
50
|
--bs-pink-100: #f6cbe0;
|
|
48
51
|
--bs-pink-200: #eb7eaf;
|
|
49
52
|
--bs-pink-300: #e45e9b;
|
|
@@ -1207,6 +1210,17 @@ a:where(.bs-link):where(:focus:not(:focus-visible)) {
|
|
|
1207
1210
|
display: none;
|
|
1208
1211
|
}
|
|
1209
1212
|
}
|
|
1213
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
1214
|
+
.bs-dropdown:where(.bs-dropdown-enter-from),
|
|
1215
|
+
.bs-dropdown:where(.bs-dropdown-leave-to) {
|
|
1216
|
+
opacity: 0;
|
|
1217
|
+
transform: var(--dropdown-transform);
|
|
1218
|
+
}
|
|
1219
|
+
.bs-dropdown:where(.bs-dropdown-enter-to),
|
|
1220
|
+
.bs-dropdown:where(.bs-dropdown-leave-from) {
|
|
1221
|
+
opacity: 1;
|
|
1222
|
+
transform: translate(0, 0);
|
|
1223
|
+
}
|
|
1210
1224
|
/* Option list */
|
|
1211
1225
|
.bs-dropdown-options {
|
|
1212
1226
|
display: flex;
|
|
@@ -1729,7 +1743,9 @@ and issues with box-sizing
|
|
|
1729
1743
|
width: 1rem;
|
|
1730
1744
|
}
|
|
1731
1745
|
/* -------- Hover styles -------- */
|
|
1732
|
-
.bs-input-addon:hover
|
|
1746
|
+
.bs-input-addon:hover,
|
|
1747
|
+
:where(label):hover + .bs-input-addon,
|
|
1748
|
+
:where(label):hover + * .bs-input-addon:where(:not(label .bs-input-addon, label + .bs-input-addon)) {
|
|
1733
1749
|
--input-bg: var(--bs-bg-input-hover);
|
|
1734
1750
|
}
|
|
1735
1751
|
/* -------- Focus styles -------- */
|
|
@@ -2233,6 +2249,7 @@ input:where([type='checkbox'], [type='radio'])[data-error]:where(:not([data-erro
|
|
|
2233
2249
|
:where(label, legend),
|
|
2234
2250
|
label:where(.bs-label) {
|
|
2235
2251
|
display: inline-block;
|
|
2252
|
+
position: relative;
|
|
2236
2253
|
width: 100%;
|
|
2237
2254
|
}
|
|
2238
2255
|
.bs-label,
|
|
@@ -2256,24 +2273,55 @@ label:where(.bs-label) {
|
|
|
2256
2273
|
--label-asterisk-color: transparent;
|
|
2257
2274
|
--label-color: var(--bs-ink-disabled);
|
|
2258
2275
|
}
|
|
2276
|
+
.bs-label:where(:has(+ input), :has(+ .bs-input-addon), :has(+ :not(label) .bs-input-addon))::after {
|
|
2277
|
+
content: '';
|
|
2278
|
+
inset: 0 0 -.25rem 0;
|
|
2279
|
+
position: absolute;
|
|
2280
|
+
}
|
|
2281
|
+
/*
|
|
2282
|
+
--btn-main: (this is doing too much.. look into backwards-compatible way to break this up)
|
|
2283
|
+
background color (base)
|
|
2284
|
+
focus ring color
|
|
2285
|
+
|
|
2286
|
+
background colors:
|
|
2287
|
+
--btn-secondary: background color (active, hover)
|
|
2288
|
+
--btn-light: background color (ghost hover, ghost focus)
|
|
2289
|
+
|
|
2290
|
+
border / box-shadow:
|
|
2291
|
+
--btn-ghost-ink: the box shadow color for ghost buttons is synced to ink
|
|
2292
|
+
--btn-highlight: box shadow color (w/ --btn-main) (active)
|
|
2293
|
+
|
|
2294
|
+
padding:
|
|
2295
|
+
--btn-padding: padding (changes by size, and on text btns)
|
|
2296
|
+
|
|
2297
|
+
text color:
|
|
2298
|
+
--btn-ink: text color
|
|
2299
|
+
--btn-ghost-ink: text color (ghost)
|
|
2300
|
+
|
|
2301
|
+
*/
|
|
2259
2302
|
.bs-button {
|
|
2260
|
-
--btn-main: var(--bs-blue-400);
|
|
2261
|
-
--btn-secondary: var(--bs-blue-medium);
|
|
2262
|
-
--btn-highlight: var(--bs-blue-100);
|
|
2263
|
-
--btn-padding: .25rem .75rem;
|
|
2264
2303
|
--btn-focus-pseudo-width: calc(100% + 0.5rem);
|
|
2265
2304
|
--btn-ghost-ink: var(--bs-ink-blue);
|
|
2305
|
+
--btn-highlight: var(--bs-blue-100);
|
|
2266
2306
|
--btn-ink: var(--bs-white);
|
|
2307
|
+
--btn-main: var(--bs-blue-400);
|
|
2308
|
+
--btn-padding: .25rem .75rem;
|
|
2309
|
+
--btn-secondary: var(--bs-blue-medium);
|
|
2310
|
+
--btn-text-size: var(--bs-text-md);
|
|
2311
|
+
--btn-weight: 600;
|
|
2312
|
+
--btn-height: 2.5rem;
|
|
2267
2313
|
align-items: center;
|
|
2268
2314
|
background-color: var(--btn-main);
|
|
2269
2315
|
border: none;
|
|
2270
2316
|
border-radius: 0.25rem;
|
|
2271
2317
|
color: var(--btn-ink);
|
|
2318
|
+
-moz-column-gap: var(--bs-space-2);
|
|
2319
|
+
column-gap: var(--bs-space-2);
|
|
2272
2320
|
cursor: pointer;
|
|
2273
2321
|
display: inline-flex;
|
|
2274
|
-
font-size: var(--btn-text-size
|
|
2275
|
-
font-weight: var(--btn-weight
|
|
2276
|
-
height: var(--btn-height
|
|
2322
|
+
font-size: var(--btn-text-size);
|
|
2323
|
+
font-weight: var(--btn-weight);
|
|
2324
|
+
height: var(--btn-height);
|
|
2277
2325
|
justify-content: center;
|
|
2278
2326
|
line-height: 1.5;
|
|
2279
2327
|
outline: 2px solid transparent;
|
|
@@ -2288,9 +2336,9 @@ label:where(.bs-label) {
|
|
|
2288
2336
|
}
|
|
2289
2337
|
.bs-button:active {
|
|
2290
2338
|
background-color: var(--btn-secondary);
|
|
2291
|
-
transform: scale(0.97);
|
|
2292
|
-
transform-origin: center;
|
|
2293
2339
|
box-shadow: inset 0px 0px 4px 1px var(--btn-main);
|
|
2340
|
+
transform-origin: center;
|
|
2341
|
+
transform: scale(0.97);
|
|
2294
2342
|
}
|
|
2295
2343
|
/* ------------ Focus Styles ------------ */
|
|
2296
2344
|
.bs-button::before {
|
|
@@ -2324,7 +2372,7 @@ label:where(.bs-label) {
|
|
|
2324
2372
|
--btn-light: var(--bs-blue-10);
|
|
2325
2373
|
--btn-secondary: var(--bs-blue-10);
|
|
2326
2374
|
background-color: transparent;
|
|
2327
|
-
box-shadow: inset 0 0 0 1px var(--btn-
|
|
2375
|
+
box-shadow: inset 0 0 0 1px var(--btn-ghost-ink);
|
|
2328
2376
|
}
|
|
2329
2377
|
.bs-button:where([data-ghost]:not([data-ghost="false"]))::before {
|
|
2330
2378
|
border-radius: 0.4375rem;
|
|
@@ -2340,45 +2388,69 @@ label:where(.bs-label) {
|
|
|
2340
2388
|
}
|
|
2341
2389
|
/* ------------ VARIANTS ------------ */
|
|
2342
2390
|
.bs-button:where([data-variant^='secondary']) {
|
|
2391
|
+
--btn-ghost-ink: var(--bs-ink-plum);
|
|
2392
|
+
--btn-highlight: var(--bs-plum-100);
|
|
2393
|
+
--btn-light: var(--bs-plum-10);
|
|
2343
2394
|
--btn-main: var(--bs-plum-400);
|
|
2344
2395
|
--btn-secondary: var(--bs-plum-medium);
|
|
2345
|
-
--btn-light: var(--bs-plum-10);
|
|
2346
|
-
--btn-highlight: var(--bs-plum-100);
|
|
2347
|
-
--btn-ghost-ink: var(--bs-ink-plum);
|
|
2348
2396
|
}
|
|
2349
2397
|
.dark .bs-button:where([data-variant^='secondary']) {
|
|
2398
|
+
--btn-highlight: var(--bs-plum-400);
|
|
2399
|
+
--btn-light: var(--bs-navy-400);
|
|
2350
2400
|
--btn-main: var(--bs-plum-200);
|
|
2351
2401
|
--btn-secondary: var(--bs-plum-300);
|
|
2352
|
-
--btn-light: var(--bs-navy-400);
|
|
2353
|
-
--btn-highlight: var(--bs-plum-400);
|
|
2354
2402
|
}
|
|
2355
2403
|
.bs-button:where([data-variant^='positive']) {
|
|
2404
|
+
--btn-ghost-ink: var(--bs-ink-purple);
|
|
2405
|
+
--btn-highlight: var(--bs-purple-100);
|
|
2406
|
+
--btn-light: var(--bs-purple-10);
|
|
2356
2407
|
--btn-main: var(--bs-purple-400);
|
|
2357
2408
|
--btn-secondary: var(--bs-purple-medium);
|
|
2358
|
-
--btn-light: var(--bs-purple-10);
|
|
2359
|
-
--btn-highlight: var(--bs-purple-100);
|
|
2360
|
-
--btn-ghost-ink: var(--bs-ink-purple);
|
|
2361
2409
|
}
|
|
2362
2410
|
.bs-button:where([data-variant^='warning']) {
|
|
2411
|
+
--btn-ghost-ink: var(--bs-ink-orange);
|
|
2412
|
+
--btn-highlight: var(--bs-orange-100);
|
|
2413
|
+
--btn-light: var(--bs-orange-10);
|
|
2363
2414
|
--btn-main: var(--bs-orange-warning);
|
|
2364
2415
|
--btn-secondary: var(--bs-orange-base);
|
|
2365
|
-
--btn-light: var(--bs-orange-10);
|
|
2366
|
-
--btn-highlight: var(--bs-orange-100);
|
|
2367
|
-
--btn-ghost-ink: var(--bs-ink-orange);
|
|
2368
2416
|
}
|
|
2369
2417
|
.bs-button:where([data-variant^='negative']) {
|
|
2418
|
+
--btn-ghost-ink: var(--bs-ink-red);
|
|
2419
|
+
--btn-highlight: var(--bs-red-100);
|
|
2420
|
+
--btn-light: var(--bs-red-10);
|
|
2370
2421
|
--btn-main: var(--bs-red-400);
|
|
2371
2422
|
--btn-secondary: var(--bs-red-medium);
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2423
|
+
}
|
|
2424
|
+
/* pink variant */
|
|
2425
|
+
.bs-button:where([data-variant^='pink']) {
|
|
2426
|
+
--btn-ghost-ink: var(--bs-ink-pink);
|
|
2427
|
+
--btn-highlight: var(--bs-pink-400);
|
|
2428
|
+
--btn-light: var(--bs-pink-10);
|
|
2429
|
+
--btn-main: var(--bs-pink-400);
|
|
2430
|
+
--btn-secondary: var(--bs-pink-300);
|
|
2431
|
+
}
|
|
2432
|
+
/* royal blue variant */
|
|
2433
|
+
.bs-button:where([data-variant^='royal']) {
|
|
2434
|
+
--btn-ghost-ink: var(--bs-ink-royal);
|
|
2435
|
+
--btn-highlight: var(--bs-royal-400);
|
|
2436
|
+
--btn-light: var(--bs-royal-10);
|
|
2437
|
+
--btn-main: var(--bs-royal-400);
|
|
2438
|
+
--btn-secondary: var(--bs-royal-300);
|
|
2439
|
+
}
|
|
2440
|
+
/* white variant - for dark backgrounds + ghost btn only */
|
|
2441
|
+
.bs-button:where([data-variant^='white'][data-ghost]:not([data-ghost="false"])) {
|
|
2442
|
+
--btn-ghost-ink: var(--bs-ink-white);
|
|
2443
|
+
--btn-highlight: var(--bs-ink-white);
|
|
2444
|
+
--btn-light: var(--bs-white-10);
|
|
2445
|
+
--btn-main: var(--bs-ink-white);
|
|
2375
2446
|
}
|
|
2376
2447
|
/* ------------ Text Button ------------ */
|
|
2377
2448
|
.bs-button:where([data-text]:not([data-text="false"])) {
|
|
2449
|
+
--btn-focus-pseudo-width: calc(100% + 1rem); /* text btns don't have side padding, but we do want focus outline to look padded */
|
|
2378
2450
|
--btn-height: auto;
|
|
2379
2451
|
--btn-ink: var(--bs-ink-blue);
|
|
2380
2452
|
--btn-padding: 0;
|
|
2381
|
-
--btn-
|
|
2453
|
+
--btn-secondary: transparent;
|
|
2382
2454
|
--btn-text-size: var(--bs-text-md);
|
|
2383
2455
|
--btn-weight: 400;
|
|
2384
2456
|
background-color: transparent;
|
|
@@ -2397,6 +2469,10 @@ label:where(.bs-label) {
|
|
|
2397
2469
|
box-shadow: none;
|
|
2398
2470
|
transform: none;
|
|
2399
2471
|
}
|
|
2472
|
+
.bs-button:where([data-variant^='negative'][data-text]:not([data-text="false"])),
|
|
2473
|
+
.bs-button:where([data-variant^='negative'][data-text]:not([data-text="false"])):hover {
|
|
2474
|
+
--btn-ink: var(--bs-ink-red);
|
|
2475
|
+
}
|
|
2400
2476
|
/* ------------ Button Sizes, Media-based Text Sizing -------------- */
|
|
2401
2477
|
/* Std button: Mobile text size, DT text size */
|
|
2402
2478
|
.bs-button {
|
|
@@ -2443,7 +2519,7 @@ label:where(.bs-label) {
|
|
|
2443
2519
|
}
|
|
2444
2520
|
.bs-button:where([data-ghost]:not([data-ghost="false"])):disabled,
|
|
2445
2521
|
.bs-button:where([data-ghost]:not([data-ghost="false"]))[aria-disabled="true"] {
|
|
2446
|
-
|
|
2522
|
+
--btn-ghost-ink: var(--bs-ink-disabled);
|
|
2447
2523
|
}
|
|
2448
2524
|
.bs-button:where([data-text]:not([data-text="false"])):disabled,
|
|
2449
2525
|
.bs-button:where([data-text]:not([data-text="false"]))[aria-disabled="true"] {
|
|
@@ -2456,26 +2532,49 @@ a.bs-button {
|
|
|
2456
2532
|
outline: none;
|
|
2457
2533
|
vertical-align: middle;
|
|
2458
2534
|
}
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2535
|
+
/*
|
|
2536
|
+
Properties : Defaults // Description
|
|
2537
|
+
====================================
|
|
2538
|
+
--btn-icon-bg-color: var(--btn-main); // icon bg color (base state)
|
|
2539
|
+
--btn-icon-padding: .75rem; // padding around icon svg
|
|
2540
|
+
--btn-icon-size: 1.5rem; // svg width and height
|
|
2541
|
+
--btn-icon-stroke-color: var(--bs-white);
|
|
2542
|
+
--btn-main: var(--bs-blue-base); // many things... should probably break this up
|
|
2543
|
+
--btn-text-color: var(--bs-ink-base);
|
|
2544
|
+
--btn-text-size: var(--bs-text-md);
|
|
2545
|
+
|
|
2546
|
+
--btn-border-color: transparent; // focus state outline color - transparent base state, --btn-main base focus state
|
|
2547
|
+
--btn-border-color-focused: var(--btn-main); // focus state ring color set on variants
|
|
2548
|
+
--btn-secondary: var(--bs-blue-medium); // hover state icon bg
|
|
2549
|
+
--btn-shadow-color-active: var(--btn-main); // active state shadow color (icon bg)
|
|
2550
|
+
--btn-text-color-hovered: var(--bs-ink-base); // hover state text color
|
|
2551
|
+
*/
|
|
2552
|
+
:where(.bs-circle-button) {
|
|
2553
|
+
--btn-border-color-focused: var(--btn-main);
|
|
2463
2554
|
--btn-border-color: transparent;
|
|
2464
|
-
--btn-
|
|
2555
|
+
--btn-focus-inset: -0.25rem;
|
|
2556
|
+
--btn-gap: .5rem;
|
|
2465
2557
|
--btn-icon-bg-color: var(--btn-main);
|
|
2466
2558
|
--btn-icon-padding: .75rem;
|
|
2467
2559
|
--btn-icon-size: 1.5rem;
|
|
2468
2560
|
--btn-icon-stroke-color: var(--bs-white);
|
|
2561
|
+
--btn-main: var(--bs-blue-base);
|
|
2562
|
+
--btn-secondary: var(--bs-blue-medium);
|
|
2563
|
+
--btn-shadow-color-active: var(--btn-main);
|
|
2564
|
+
--btn-text-color-hovered: var(--bs-ink-base);
|
|
2469
2565
|
--btn-text-color: var(--bs-ink-base);
|
|
2470
|
-
--btn-text-size:
|
|
2566
|
+
--btn-text-size: 1.125rem;
|
|
2567
|
+
--btn-text-weight: 400;
|
|
2568
|
+
}
|
|
2569
|
+
.bs-circle-button {
|
|
2471
2570
|
align-items: center;
|
|
2472
2571
|
background-color: transparent;
|
|
2473
|
-
border-radius: var(--btn-border-radius);
|
|
2474
2572
|
color: var(--btn-text-color);
|
|
2475
2573
|
cursor: pointer;
|
|
2476
2574
|
display: inline-flex;
|
|
2477
2575
|
font-size: var(--btn-text-size);
|
|
2478
|
-
|
|
2576
|
+
font-weight: var(--btn-text-weight);
|
|
2577
|
+
gap: var(--btn-gap);
|
|
2479
2578
|
outline: none;
|
|
2480
2579
|
position: relative;
|
|
2481
2580
|
vertical-align: middle;
|
|
@@ -2486,17 +2585,6 @@ a.bs-circle-button {
|
|
|
2486
2585
|
outline: none;
|
|
2487
2586
|
text-decoration: none;
|
|
2488
2587
|
}
|
|
2489
|
-
.bs-circle-button :where(.bs-circle-button-icon)::before {
|
|
2490
|
-
border-color: var(--btn-border-color);
|
|
2491
|
-
border-radius: var(--btn-border-radius);
|
|
2492
|
-
border-style: solid;
|
|
2493
|
-
border-width: 0.125rem;
|
|
2494
|
-
height: calc(100% + 0.5rem);
|
|
2495
|
-
inset: -0.25rem;
|
|
2496
|
-
position: absolute;
|
|
2497
|
-
transition: border-color 125ms ease-in-out, transform 100ms ease-in-out;
|
|
2498
|
-
width: calc(100% + 0.5rem);
|
|
2499
|
-
}
|
|
2500
2588
|
.bs-circle-button :where(.bs-circle-button-icon) {
|
|
2501
2589
|
align-items: center;
|
|
2502
2590
|
background-color: var(--btn-icon-bg-color);
|
|
@@ -2510,6 +2598,16 @@ a.bs-circle-button {
|
|
|
2510
2598
|
position: relative;
|
|
2511
2599
|
transition: all 100ms ease-in-out;
|
|
2512
2600
|
}
|
|
2601
|
+
.bs-circle-button :where(.bs-circle-button-icon)::before {
|
|
2602
|
+
border-color: var(--btn-border-color);
|
|
2603
|
+
border-radius: 50%;
|
|
2604
|
+
border-style: solid;
|
|
2605
|
+
border-width: 0.125rem;
|
|
2606
|
+
content: '';
|
|
2607
|
+
inset: var(--btn-focus-inset);
|
|
2608
|
+
position: absolute;
|
|
2609
|
+
transition: border-color 125ms ease-in-out, transform 100ms ease-in-out;
|
|
2610
|
+
}
|
|
2513
2611
|
.bs-circle-button :where(.bs-circle-button-icon) :where(.bs-icon) {
|
|
2514
2612
|
--icon-size: var(--btn-icon-size);
|
|
2515
2613
|
}
|
|
@@ -2526,26 +2624,20 @@ a.bs-circle-button {
|
|
|
2526
2624
|
}
|
|
2527
2625
|
/* Ghost Buttons */
|
|
2528
2626
|
.bs-circle-button:where([data-ghost]:not([data-ghost="false"])) {
|
|
2627
|
+
--btn-icon-bg-color: transparent;
|
|
2529
2628
|
--btn-icon-stroke-color: var(--btn-main);
|
|
2530
2629
|
--btn-light: var(--bs-blue-10);
|
|
2531
2630
|
--btn-secondary: var(--bs-blue-10);
|
|
2532
2631
|
}
|
|
2533
|
-
.bs-circle-button:where([data-ghost]:not([data-ghost="false"])) :where(.bs-circle-button-icon) {
|
|
2534
|
-
background-color: transparent;
|
|
2535
|
-
box-shadow: inset 0 0 0 1px transparent;
|
|
2536
|
-
color: var(--btn-icon-stroke-color);
|
|
2537
|
-
}
|
|
2538
|
-
.bs-circle-button:where([data-ghost]:not([data-ghost="false"])) :where(.bs-circle-button-icon)::before {
|
|
2539
|
-
border-radius: 50%;
|
|
2540
|
-
}
|
|
2541
2632
|
/* Active, Hover, Focus states */
|
|
2542
2633
|
.bs-circle-button:active, .bs-circle-button:hover {
|
|
2543
2634
|
--btn-icon-bg-color: var(--btn-secondary);
|
|
2635
|
+
--btn-text-color: var(--btn-text-color-hovered);
|
|
2544
2636
|
}
|
|
2545
2637
|
.bs-circle-button:active :where(.bs-circle-button-icon) {
|
|
2546
|
-
|
|
2638
|
+
box-shadow: inset 0px 0px 4px 1px var(--btn-shadow-color-active);
|
|
2547
2639
|
transform-origin: center;
|
|
2548
|
-
|
|
2640
|
+
transform: scale(0.97);
|
|
2549
2641
|
}
|
|
2550
2642
|
.bs-circle-button:where([data-direction="right"]):hover :where(.bs-circle-button-icon),
|
|
2551
2643
|
.bs-circle-button:where([data-direction="right"]):hover::before {
|
|
@@ -2555,19 +2647,11 @@ a.bs-circle-button {
|
|
|
2555
2647
|
.bs-circle-button:where([data-direction="left"]):hover::before {
|
|
2556
2648
|
transform: translateX(-.25rem);
|
|
2557
2649
|
}
|
|
2558
|
-
.bs-circle-button:where([data-ghost]:not([data-ghost="false"])):hover
|
|
2559
|
-
|
|
2560
|
-
}
|
|
2561
|
-
.bs-circle-button:where([data-ghost]:not([data-ghost="false"])):active {
|
|
2562
|
-
box-shadow:
|
|
2563
|
-
inset 0 0 0 1px var(--btn-main),
|
|
2564
|
-
inset 0px 0px 4px 1px var(--btn-highlight);
|
|
2650
|
+
.bs-circle-button:where([data-ghost]:not([data-ghost="false"])):hover {
|
|
2651
|
+
--btn-icon-bg-color: var(--btn-light);
|
|
2565
2652
|
}
|
|
2566
2653
|
.bs-circle-button:where(:focus-visible) {
|
|
2567
|
-
--btn-border-color: var(--btn-
|
|
2568
|
-
}
|
|
2569
|
-
.bs-circle-button:where(:focus-visible) :where(.bs-circle-button-icon)::before {
|
|
2570
|
-
content: '';
|
|
2654
|
+
--btn-border-color: var(--btn-border-color-focused);
|
|
2571
2655
|
}
|
|
2572
2656
|
/* Disabled State */
|
|
2573
2657
|
.bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) /* for links as buttons */ {
|
|
@@ -2575,24 +2659,69 @@ a.bs-circle-button {
|
|
|
2575
2659
|
--btn-text-color: var(--bs-ink-disabled);
|
|
2576
2660
|
pointer-events: none;
|
|
2577
2661
|
}
|
|
2578
|
-
.bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"]))
|
|
2579
|
-
|
|
2662
|
+
.bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) {
|
|
2663
|
+
--btn-icon-bg-color: var(--bs-bg-disabled);
|
|
2580
2664
|
}
|
|
2581
2665
|
/* Button Size */
|
|
2582
2666
|
.bs-circle-button:where([data-size^='sm']) {
|
|
2583
2667
|
--btn-icon-padding: .375rem;
|
|
2584
2668
|
--btn-icon-size: .75rem;
|
|
2585
|
-
--btn-text-size:
|
|
2669
|
+
--btn-text-size: .875rem;
|
|
2586
2670
|
}
|
|
2587
2671
|
.bs-circle-button:where([data-size^='sm'][data-text]:not([data-text="false"])) {
|
|
2588
2672
|
--btn-icon-padding: .3125rem;
|
|
2589
2673
|
--btn-icon-size: .625rem;
|
|
2590
|
-
--btn-text-size:
|
|
2674
|
+
--btn-text-size: 1rem;
|
|
2591
2675
|
}
|
|
2592
2676
|
.bs-circle-button:where([data-size='xs'][data-text]:not([data-text="false"])) {
|
|
2593
2677
|
--btn-icon-padding: .25rem;
|
|
2594
2678
|
--btn-icon-size: .5rem;
|
|
2595
|
-
--btn-text-size:
|
|
2679
|
+
--btn-text-size: .875rem;
|
|
2680
|
+
}
|
|
2681
|
+
/* Color Variants */
|
|
2682
|
+
.bs-circle-button:where([data-variant^="color"]) {
|
|
2683
|
+
--btn-focus-inset: .125rem;
|
|
2684
|
+
--btn-gap: .5rem;
|
|
2685
|
+
--btn-icon-bg-color: transparent;
|
|
2686
|
+
--btn-icon-padding: 0;
|
|
2687
|
+
--btn-icon-size: .75rem; /* stays the same for all sizes */
|
|
2688
|
+
--btn-icon-stroke-color: var(--btn-text-color);
|
|
2689
|
+
--btn-secondary: transparent;
|
|
2690
|
+
--btn-shadow-color-active: transparent;
|
|
2691
|
+
}
|
|
2692
|
+
.bs-circle-button:where([data-variant="color-blue"]) {
|
|
2693
|
+
--btn-border-color-focused: var(--bs-ink-blue);
|
|
2694
|
+
--btn-text-color: var(--bs-ink-blue);
|
|
2695
|
+
--btn-text-color-hovered: var(--bs-blue-base);
|
|
2696
|
+
}
|
|
2697
|
+
.bs-circle-button:where([data-variant="color-royal"]) {
|
|
2698
|
+
--btn-border-color-focused: var(--bs-ink-royal);
|
|
2699
|
+
--btn-text-color: var(--bs-ink-royal);
|
|
2700
|
+
--btn-text-color-hovered: var(--bs-royal-medium);
|
|
2701
|
+
}
|
|
2702
|
+
.bs-circle-button:where([data-variant="color-purple"]) {
|
|
2703
|
+
--btn-border-color-focused: var(--bs-purple-400);
|
|
2704
|
+
--btn-text-color: var(--bs-ink-purple);
|
|
2705
|
+
--btn-text-color-hovered: var(--bs-purple-medium);
|
|
2706
|
+
}
|
|
2707
|
+
.bs-circle-button:where([data-variant="color-pink"]) {
|
|
2708
|
+
--btn-border-color-focused: var(--bs-pink-400);
|
|
2709
|
+
--btn-text-color: var(--bs-ink-pink);
|
|
2710
|
+
--btn-text-color-hovered: var(--bs-pink-base);
|
|
2711
|
+
}
|
|
2712
|
+
.bs-circle-button:where([data-variant="color-red"]) {
|
|
2713
|
+
--btn-border-color-focused: var(--bs-ink-red);
|
|
2714
|
+
--btn-text-color: var(--bs-ink-red);
|
|
2715
|
+
--btn-text-color-hovered: var(--bs-red-base);
|
|
2716
|
+
}
|
|
2717
|
+
.bs-circle-button:where([data-variant^="color"]):where(:disabled, [aria-disabled]:not([aria-disabled="false"])) {
|
|
2718
|
+
--btn-icon-bg-color: transparent;
|
|
2719
|
+
--btn-text-color: var(--bs-ink-disabled);
|
|
2720
|
+
}
|
|
2721
|
+
/* size XXS only supported for color variants */
|
|
2722
|
+
.bs-circle-button:where([data-variant^="color"]):where([data-size='xxs'][data-text]:not([data-text="false"])) {
|
|
2723
|
+
--btn-text-size: .75rem;
|
|
2724
|
+
--btn-text-weight: 600;
|
|
2596
2725
|
}
|
|
2597
2726
|
/*
|
|
2598
2727
|
custom properties:
|
|
@@ -2605,26 +2734,33 @@ custom properties:
|
|
|
2605
2734
|
--filterbtn-weight
|
|
2606
2735
|
*/
|
|
2607
2736
|
button:where(.bs-filter-button) {
|
|
2737
|
+
--filterbtn-caret-size: 1rem;
|
|
2738
|
+
--filterbtn-caret-transform: rotate(0deg);
|
|
2739
|
+
--filterbtn-color: var(--bs-ink-blue);
|
|
2740
|
+
--filterbtn-focus-color: transparent;
|
|
2741
|
+
--filterbtn-height: 1.5rem;
|
|
2742
|
+
--filterbtn-text-size: var(--bs-text-base);
|
|
2743
|
+
--filterbtn-weight: 400;
|
|
2608
2744
|
flex-shrink: 0;
|
|
2609
2745
|
position: relative;
|
|
2610
2746
|
}
|
|
2611
2747
|
.bs-filter-button {
|
|
2612
2748
|
align-items: center;
|
|
2613
|
-
color: var(--filterbtn-color
|
|
2749
|
+
color: var(--filterbtn-color);
|
|
2614
2750
|
-moz-column-gap: 0.5rem;
|
|
2615
2751
|
column-gap: 0.5rem;
|
|
2616
2752
|
cursor: pointer;
|
|
2617
2753
|
display: inline-flex;
|
|
2618
|
-
font-size: var(--filterbtn-text-size
|
|
2619
|
-
font-weight: var(--filterbtn-weight
|
|
2620
|
-
height: var(--filterbtn-height
|
|
2754
|
+
font-size: var(--filterbtn-text-size);
|
|
2755
|
+
font-weight: var(--filterbtn-weight);
|
|
2756
|
+
height: var(--filterbtn-height);
|
|
2621
2757
|
line-height: 1.5;
|
|
2622
2758
|
transition: outline-color 100ms ease-in-out;
|
|
2623
2759
|
width: -moz-max-content;
|
|
2624
2760
|
width: max-content;
|
|
2625
2761
|
}
|
|
2626
2762
|
.bs-filter-button::after {
|
|
2627
|
-
border: solid var(--filterbtn-focus-color
|
|
2763
|
+
border: solid var(--filterbtn-focus-color) 2px;
|
|
2628
2764
|
border-radius: 0.25rem;
|
|
2629
2765
|
content: '';
|
|
2630
2766
|
display: block;
|
|
@@ -2636,12 +2772,12 @@ button:where(.bs-filter-button) {
|
|
|
2636
2772
|
.bs-filter-button :where(.bs-icon),
|
|
2637
2773
|
.bs-filter-button :where(span:has(svg:only-child)) {
|
|
2638
2774
|
display: block;
|
|
2639
|
-
height: var(--filterbtn-caret-size
|
|
2775
|
+
height: var(--filterbtn-caret-size);
|
|
2640
2776
|
line-height: 1;
|
|
2641
|
-
transform: var(--filterbtn-caret-transform
|
|
2777
|
+
transform: var(--filterbtn-caret-transform);
|
|
2642
2778
|
transform-origin: center;
|
|
2643
2779
|
transition: var(--bs-trans-rotate180);
|
|
2644
|
-
width: var(--filterbtn-caret-size
|
|
2780
|
+
width: var(--filterbtn-caret-size);
|
|
2645
2781
|
}
|
|
2646
2782
|
.bs-filter-button:where([data-size="sm"],[data-size="xs"]) {
|
|
2647
2783
|
|
|
@@ -2687,6 +2823,64 @@ button:where(.bs-filter-button) {
|
|
|
2687
2823
|
--badge-bg: var(--bs-bg-disabled);
|
|
2688
2824
|
--badge-text: var(--bs-ink-disabled);
|
|
2689
2825
|
}
|
|
2826
|
+
.bs-flyout {
|
|
2827
|
+
background-color: var(--bs-bg-base-to-light);
|
|
2828
|
+
box-shadow: var(--bs-shadow-drawerRight);
|
|
2829
|
+
height: 100%;
|
|
2830
|
+
left: 0;
|
|
2831
|
+
margin: 0;
|
|
2832
|
+
max-width: 100vw;
|
|
2833
|
+
opacity: 0;
|
|
2834
|
+
padding: 1.5rem;
|
|
2835
|
+
position: fixed;
|
|
2836
|
+
top: 0;
|
|
2837
|
+
transform: translateX(-100%);
|
|
2838
|
+
transition-duration: 300ms;
|
|
2839
|
+
transition-property: opacity, transform;
|
|
2840
|
+
transition-timing-function: ease;
|
|
2841
|
+
width: 360px;
|
|
2842
|
+
z-index: 1000;
|
|
2843
|
+
}
|
|
2844
|
+
.bs-flyout:where([data-absolute="true"]) {
|
|
2845
|
+
position: absolute;
|
|
2846
|
+
}
|
|
2847
|
+
.bs-flyout:where([data-position="right"]) {
|
|
2848
|
+
box-shadow: var(--bs-shadow-drawerLeft);
|
|
2849
|
+
left: auto;
|
|
2850
|
+
right: 0;
|
|
2851
|
+
transform: translateX(100%);
|
|
2852
|
+
}
|
|
2853
|
+
.bs-flyout:where([data-size="lg"]) {
|
|
2854
|
+
width: 535px;
|
|
2855
|
+
}
|
|
2856
|
+
.bs-flyout:where([data-shown="true"]) {
|
|
2857
|
+
opacity: 1;
|
|
2858
|
+
transform: translateX(0);
|
|
2859
|
+
}
|
|
2860
|
+
.bs-flyout :where(.bs-flyout-close-container) {
|
|
2861
|
+
display: flex;
|
|
2862
|
+
justify-content: flex-end;
|
|
2863
|
+
}
|
|
2864
|
+
.bs-flyout :where(.bs-flyout-close-container button) {
|
|
2865
|
+
cursor: pointer;
|
|
2866
|
+
outline-offset: 2px;
|
|
2867
|
+
padding: 2px;
|
|
2868
|
+
}
|
|
2869
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
2870
|
+
.bs-flyout:where(.bs-flyout-enter-from),
|
|
2871
|
+
.bs-flyout:where(.bs-flyout-leave-to) {
|
|
2872
|
+
opacity: 0;
|
|
2873
|
+
transform: translateX(-100%);
|
|
2874
|
+
}
|
|
2875
|
+
.bs-flyout:where([data-position="right"].bs-flyout-enter-from),
|
|
2876
|
+
.bs-flyout:where([data-position="right"].bs-flyout-leave-to) {
|
|
2877
|
+
transform: translateX(100%);
|
|
2878
|
+
}
|
|
2879
|
+
.bs-flyout:where(.bs-flyout-enter-to),
|
|
2880
|
+
.bs-flyout:where(.bs-flyout-leave-from) {
|
|
2881
|
+
opacity: 1;
|
|
2882
|
+
transform: translateX(0);
|
|
2883
|
+
}
|
|
2690
2884
|
.bs-modal {
|
|
2691
2885
|
background-color: var(--bs-bg-base-to-medium);
|
|
2692
2886
|
border-radius: 4px;
|
|
@@ -2737,6 +2931,15 @@ button:where(.bs-filter-button) {
|
|
|
2737
2931
|
width: 35rem;
|
|
2738
2932
|
}
|
|
2739
2933
|
}
|
|
2934
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
2935
|
+
.bs-modal:where(.bs-modal-enter-from),
|
|
2936
|
+
.bs-modal:where(.bs-modal-leave-to) {
|
|
2937
|
+
opacity: 0;
|
|
2938
|
+
}
|
|
2939
|
+
.bs-modal:where(.bs-modal-enter-to),
|
|
2940
|
+
.bs-modal:where(.bs-modal-leave-from) {
|
|
2941
|
+
opacity: 1;
|
|
2942
|
+
}
|
|
2740
2943
|
.bs-overlay {
|
|
2741
2944
|
-webkit-backdrop-filter: blur(4px);
|
|
2742
2945
|
backdrop-filter: blur(4px);
|
|
@@ -2755,6 +2958,15 @@ button:where(.bs-filter-button) {
|
|
|
2755
2958
|
.bs-overlay:where([data-shown]:not([data-shown="false"])) {
|
|
2756
2959
|
opacity: 1;
|
|
2757
2960
|
}
|
|
2961
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
2962
|
+
.bs-overlay:where(.bs-overlay-enter-from),
|
|
2963
|
+
.bs-overlay:where(.bs-overlay-leave-to) {
|
|
2964
|
+
opacity: 0;
|
|
2965
|
+
}
|
|
2966
|
+
.bs-overlay:where(.bs-overlay-enter-to),
|
|
2967
|
+
.bs-overlay:where(.bs-overlay-leave-from) {
|
|
2968
|
+
opacity: 1;
|
|
2969
|
+
}
|
|
2758
2970
|
.bs-pagination {
|
|
2759
2971
|
background-color: var(--bs-bg-base);
|
|
2760
2972
|
color: var(--bs-ink-base);
|
|
@@ -3588,6 +3800,8 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
|
|
|
3588
3800
|
}
|
|
3589
3801
|
/* Base Toast Styles */
|
|
3590
3802
|
.bs-toast {
|
|
3803
|
+
--toast-transform: translate(0, calc(100% + 1.5rem));
|
|
3804
|
+
|
|
3591
3805
|
background-color: var(--bs-bg-base-elevated);
|
|
3592
3806
|
border-top: 4px solid var(--bs-blue-base);
|
|
3593
3807
|
bottom: 1.5rem;
|
|
@@ -3598,7 +3812,7 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
|
|
|
3598
3812
|
opacity: 0;
|
|
3599
3813
|
position: fixed;
|
|
3600
3814
|
right: 0;
|
|
3601
|
-
transform:
|
|
3815
|
+
transform: var(--toast-transform);
|
|
3602
3816
|
transition-duration: 200ms;
|
|
3603
3817
|
transition-property: transform, opacity;
|
|
3604
3818
|
transition-timing-function: ease;
|
|
@@ -3681,12 +3895,13 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
|
|
|
3681
3895
|
}
|
|
3682
3896
|
@media (min-width: 440px) {
|
|
3683
3897
|
.bs-toast {
|
|
3898
|
+
--toast-transform: translate(calc(100% + 1.5rem), 0);
|
|
3899
|
+
|
|
3684
3900
|
left: auto;
|
|
3685
3901
|
margin-left: 0;
|
|
3686
3902
|
margin-right: 0;
|
|
3687
3903
|
opacity: 0;
|
|
3688
3904
|
right: 1.5rem;
|
|
3689
|
-
transform: translate(calc(100% + 1.5rem), 0);
|
|
3690
3905
|
}
|
|
3691
3906
|
|
|
3692
3907
|
.bs-toast:where([data-shown]:not([data-shown="false"])) {
|
|
@@ -3698,6 +3913,17 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
|
|
|
3698
3913
|
flex-direction: row;
|
|
3699
3914
|
}
|
|
3700
3915
|
}
|
|
3916
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
3917
|
+
.bs-toast:where(.bs-toast-enter-from),
|
|
3918
|
+
.bs-toast:where(.bs-toast-leave-to) {
|
|
3919
|
+
opacity: 0;
|
|
3920
|
+
transform: var(--toast-transform);
|
|
3921
|
+
}
|
|
3922
|
+
.bs-toast:where(.bs-toast-enter-to),
|
|
3923
|
+
.bs-toast:where(.bs-toast-leave-from) {
|
|
3924
|
+
opacity: 1;
|
|
3925
|
+
transform: translate(0, 0);
|
|
3926
|
+
}
|
|
3701
3927
|
/* Container for holding all toasts that will be visible */
|
|
3702
3928
|
.bs-toaster {
|
|
3703
3929
|
/* Mobile - Center the toasts on the screen */
|