@wwtdev/bsds-css 1.6.5 → 1.8.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 (51) hide show
  1. package/dist/components/_accordions.scss +3 -3
  2. package/dist/components/_badge.scss +13 -11
  3. package/dist/components/_banner.scss +2 -10
  4. package/dist/components/_buttons.scss +11 -5
  5. package/dist/components/_circle-buttons.scss +6 -6
  6. package/dist/components/_dropdown-options.scss +119 -0
  7. package/dist/components/_dropdown.scss +29 -154
  8. package/dist/components/_form-booleans.scss +8 -8
  9. package/dist/components/_form-character-count.scss +2 -2
  10. package/dist/components/_form-elements.scss +4 -4
  11. package/dist/components/_form-hints.scss +3 -2
  12. package/dist/components/_form-input-composite.scss +1 -1
  13. package/dist/components/_form-labels.scss +2 -2
  14. package/dist/components/_form-switches.scss +6 -6
  15. package/dist/components/_form-text-fields.scss +12 -10
  16. package/dist/components/_loader.scss +89 -0
  17. package/dist/components/_modal.scss +36 -0
  18. package/dist/components/_overlay.scss +22 -0
  19. package/dist/components/_pills.scss +9 -11
  20. package/dist/components/_profile-layout.scss +1 -5
  21. package/dist/components/_tables.scss +1 -1
  22. package/dist/components/_toast.scss +19 -25
  23. package/dist/components/_tooltip.scss +2 -2
  24. package/dist/components/accordions.css +3 -3
  25. package/dist/components/badge.css +12 -10
  26. package/dist/components/banner.css +2 -10
  27. package/dist/components/buttons.css +11 -5
  28. package/dist/components/circle-buttons.css +6 -6
  29. package/dist/components/dropdown-options.css +115 -0
  30. package/dist/components/dropdown.css +29 -154
  31. package/dist/components/form-booleans.css +8 -8
  32. package/dist/components/form-character-count.css +2 -2
  33. package/dist/components/form-elements.css +4 -4
  34. package/dist/components/form-hints.css +3 -2
  35. package/dist/components/form-input-composite.css +1 -1
  36. package/dist/components/form-labels.css +2 -2
  37. package/dist/components/form-switches.css +6 -6
  38. package/dist/components/form-text-fields.css +12 -10
  39. package/dist/components/loader.css +85 -0
  40. package/dist/components/modal.css +32 -0
  41. package/dist/components/overlay.css +18 -0
  42. package/dist/components/pills.css +9 -11
  43. package/dist/components/profile-layout.css +1 -5
  44. package/dist/components/tables.css +1 -1
  45. package/dist/components/toast.css +19 -25
  46. package/dist/components/tooltip.css +2 -2
  47. package/dist/wwt-bsds-preset.js +5 -2
  48. package/dist/wwt-bsds-wc-base.css +110 -15
  49. package/dist/wwt-bsds.css +408 -201
  50. package/dist/wwt-bsds.min.css +1 -1
  51. package/package.json +1 -1
@@ -46,7 +46,7 @@
46
46
 
47
47
  .bs-switch input:where(:checked) ~ span,
48
48
  .bs-switch:where([aria-pressed]):where(:not([aria-pressed="false"])) span {
49
- --switch-background: var(--bs-blue-400);
49
+ --switch-background: var(--bs-blue-base);
50
50
  }
51
51
 
52
52
  /* Toggle "ball" */
@@ -112,21 +112,21 @@
112
112
 
113
113
  .bs-switch :where(input:focus-visible) + span {
114
114
  box-shadow: 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
115
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
115
+ 0 0 0 4px var(--outline-color, var(--bs-blue-base));
116
116
  outline: 2px solid transparent;
117
117
  }
118
118
  :where(.box) .bs-switch :where(input:focus-visible) + span {
119
- --offset-color: var(--bs-bg-subtle);
119
+ --offset-color: var(--bs-bg-medium);
120
120
  }
121
121
  :where(.box[data-invert]) .bs-switch :where(input:focus-visible) + span {
122
- --offset-color: var(--bs-bg-invert);
122
+ --offset-color: var(--bs-bg-invert-base);
123
123
  }
124
124
 
125
125
  /* Disabled state */
126
126
 
127
127
  .bs-switch:where([data-disabled]) {
128
- --ball-background: var(--bs-gray-400);
129
- --switch-background: var(--bs-gray-200);
128
+ --ball-background: var(--bs-ink-disabled);
129
+ --switch-background: var(--bs-bg-disabled);
130
130
  }
131
131
 
132
132
  .bs-switch input:where(:disabled) {
@@ -7,13 +7,15 @@
7
7
 
8
8
  input:where(:not([type='checkbox'], [type='radio'], [type='file'], [type='range'])),
9
9
  textarea, select {
10
+ --input-bg: var(--bs-bg-base);
11
+ --input-border: var(--bs-violet-medium);
10
12
  appearance: none;
11
- background-color: var(--input-bg, var(--bs-bg-base));
12
- border-color: var(--input-border, var(--bs-violet-300));
13
+ background-color: var(--input-bg);
14
+ border-color: var(--input-border);
13
15
  border-radius: 0.25rem;
14
16
  border-style: solid;
15
17
  border-width: var(--input-border-width, 1px);
16
- caret-color: var(--bs-blue-400);
18
+ caret-color: var(--bs-blue-base);
17
19
  color: var(--bs-ink-base);
18
20
  font-size: var(--bs-text-base);
19
21
  font-weight: 400;
@@ -36,26 +38,26 @@ textarea {
36
38
  }
37
39
 
38
40
  :is(input, textarea, select)::placeholder {
39
- color: var(--bs-violet-200);
41
+ color: var(--bs-violet-lightest);
40
42
  }
41
43
  :is(input, textarea, select):where(:focus-visible)::placeholder {
42
44
  opacity: 0;
43
45
  }
44
46
 
45
47
  :is(input:where(:not([type='checkbox'], [type='radio'])), textarea, select):where(:focus-visible) {
46
- --input-border: var(--bs-blue-400);
48
+ --input-border: var(--bs-blue-base);
47
49
  outline-width: 0px;
48
50
  }
49
51
 
50
52
  :is(input:where(:not([type='checkbox'],[type='radio'])), textarea, select):where(:disabled) {
51
- --input-border: var(--bs-gray-400);
52
- background-color: var(--bs-gray-200);
53
- color: var(--bs-gray-400);
53
+ --input-border: var(--bs-ink-disabled);
54
+ --input-bg: var(--bs-bg-disabled);
55
+ color: var(--bs-ink-disabled);
54
56
  }
55
57
 
56
58
  /* Errors and Messages */
57
59
  :is(input, select, textarea):where([data-error]) {
58
- --input-border: var(--bs-red-500);
60
+ --input-border: var(--bs-ink-red);
59
61
  }
60
62
 
61
63
  /*
@@ -75,7 +77,7 @@ see https://bugs.chromium.org/p/chromium/issues/detail?id=89530
75
77
 
76
78
  :is(input, textarea, select):disabled::placeholder,
77
79
  :is(input, textarea, select)[disabled]::placeholder {
78
- color: var(--bs-gray-400);
80
+ color: var(--bs-ink-disabled);
79
81
  opacity: 1;
80
82
  }
81
83
 
@@ -0,0 +1,89 @@
1
+ @mixin loader() {
2
+ .bs-loader {
3
+ --loader-dot-bg: var(--bs-blue-500); /* possibly add variants if requested */
4
+ --loader-dot-size: .75rem;
5
+ --loader-dot-top: 18px;
6
+ --loader-dot-top: calc(50% - var(--loader-dot-size)/2);
7
+ --loader-dot-translate: 1.75rem; /* i.e., calc(var(--loader-width)/2 - var(--loader-dot-size)/2); */
8
+ --loader-height: 3rem;
9
+ --loader-width: 4rem;
10
+ display: block;
11
+ height: var(--loader-height);
12
+ margin-inline-start: auto;
13
+ margin-inline-end: auto;
14
+ position: relative;
15
+ width: var(--loader-width);
16
+ }
17
+ .bs-loader:where([data-size="sm"]) {
18
+ --loader-dot-size: .5rem;
19
+ --loader-dot-top: 0;
20
+ --loader-dot-translate: 1.125rem;
21
+ --loader-height: .5rem;
22
+ --loader-width: 3rem;
23
+ }
24
+ .bs-loader:where([data-size="lg"]) {
25
+ --loader-dot-size: 1rem;
26
+ --loader-dot-translate: 2.375rem;
27
+ --loader-height: 4rem;
28
+ --loader-width: 6rem;
29
+ }
30
+
31
+ /* ----- loader dots ----- */
32
+ .bs-loader > :where(div) {
33
+ background-color: var(--loader-dot-bg);
34
+ border-radius: 50%;
35
+ height: var(--loader-dot-size);
36
+ position: absolute;
37
+ top: var(--loader-dot-top);
38
+ width: var(--loader-dot-size);
39
+ }
40
+
41
+ .bs-loader > :where(div) {
42
+ animation-timing-function: cubic-bezier(0, 1, 1, 0);
43
+ }
44
+ .bs-loader > :where(div:nth-child(1)) {
45
+ animation: loading-1 0.6s infinite;
46
+ left: 0%;
47
+ }
48
+ .bs-loader > :where(div:nth-child(2)) {
49
+ animation: loading-2 0.6s infinite;
50
+ left: 0%;
51
+ }
52
+ .bs-loader > :where(div:nth-child(3)) {
53
+ animation: loading-2 0.6s infinite;
54
+ left: 40%;
55
+ }
56
+ .bs-loader > :where(div:nth-child(4)) {
57
+ animation: loading-3 0.6s infinite;
58
+ left: 80%;
59
+ }
60
+
61
+ @keyframes loading-1 {
62
+ 0% {
63
+ transform: scale(0);
64
+ }
65
+ 100% {
66
+ transform: scale(1);
67
+ }
68
+ }
69
+
70
+ @keyframes loading-2 {
71
+ 0% {
72
+ transform: translate(0, 0);
73
+ }
74
+ 100% {
75
+ transform: translate(var(--loader-dot-translate), 0);
76
+ }
77
+ }
78
+
79
+ @keyframes loading-3 {
80
+ 0% {
81
+ transform: scale(1);
82
+ }
83
+ 100% {
84
+ transform: scale(0);
85
+ }
86
+ }
87
+
88
+ }
89
+
@@ -0,0 +1,36 @@
1
+ @mixin modal() {
2
+ .bs-modal {
3
+ background-color: var(--bs-bg-base-elevated);
4
+ border-radius: 4px;
5
+ box-shadow: var(--bs-shadow-contentHigh);
6
+ left: 1.5rem;
7
+ max-height: calc(100% - 3rem);
8
+ opacity: 0;
9
+ overflow: auto;
10
+ padding: 1.5rem;
11
+ position: fixed;
12
+ right: 1.5rem;
13
+ top: 50%;
14
+ transform: translateY(-50%);
15
+ transition-duration: 75ms;
16
+ transition-property: opacity;
17
+ transition-timing-function: ease-in-out;
18
+ z-index: 9999;
19
+ }
20
+
21
+ .bs-modal:where([data-shown]) {
22
+ opacity: 1;
23
+ }
24
+
25
+ @media (min-width: 752px) {
26
+ .bs-modal {
27
+ left: 50%;
28
+ margin: 0;
29
+ max-height: 40.625rem;
30
+ transform: translate(-50%, -50%);
31
+ width: 35rem;
32
+ }
33
+ }
34
+
35
+ }
36
+
@@ -0,0 +1,22 @@
1
+ @mixin overlay() {
2
+ .bs-overlay {
3
+ backdrop-filter: blur(4px);
4
+ background: rgba(29, 30, 72, 0.05);
5
+ bottom: 0;
6
+ left: 0;
7
+ opacity: 0;
8
+ position: fixed;
9
+ right: 0;
10
+ top: 0;
11
+ transition-duration: 75ms;
12
+ transition-property: opacity;
13
+ transition-timing-function: ease-in-out;
14
+ z-index: 9998;
15
+ }
16
+
17
+ .bs-overlay:where([data-shown]) {
18
+ opacity: 1;
19
+ }
20
+
21
+ }
22
+
@@ -1,8 +1,8 @@
1
1
  @mixin pills() {
2
2
  .bs-pill {
3
- --pill-background: var(--bs-bg-subtle);
3
+ --pill-background: var(--bs-bg-medium);
4
4
  --pill-border: transparent;
5
- --pill-text: var(--bs-royal-400);
5
+ --pill-text: var(--bs-royal-base);
6
6
  --pill-gap: var(--bs-space-2);
7
7
 
8
8
  align-items: center;
@@ -19,9 +19,7 @@
19
19
  text-decoration: none;
20
20
  vertical-align: middle;
21
21
  }
22
- :where(.dark) .bs-pill {
23
- --pill-text: var(--bs-royal-100);
24
- }
22
+
25
23
  :where(.bs-pill > svg) {
26
24
  height: 1rem;
27
25
  }
@@ -47,7 +45,7 @@
47
45
  --pill-background: var(--bs-bg-base);
48
46
  }
49
47
  :where(.box[data-invert]) .bs-pill {
50
- --pill-background: var(--bs-bg-invert-subtle);
48
+ --pill-background: var(--bs-bg-invert-base-subtle);
51
49
  --pill-text: var(--bs-gray-100);
52
50
  }
53
51
  :where(.box[data-invert]) :is(a, button).bs-pill:is(:hover, :focus) {
@@ -62,7 +60,7 @@
62
60
 
63
61
  /* ------------------------------ Status Styles ------------------------------ */
64
62
  .bs-pill:where([data-status]) {
65
- --status-color: var(--bs-blue-400);
63
+ --status-color: var(--bs-blue-base);
66
64
  }
67
65
  .bs-pill:where([data-status])::before {
68
66
  background-color: var(--status-color);
@@ -74,7 +72,7 @@
74
72
 
75
73
  /* ----- Status Colors ----- */
76
74
  .bs-pill:where([data-status^="active"]) {
77
- --status-color: var(--bs-blue-400);
75
+ --status-color: var(--bs-blue-base);
78
76
  }
79
77
  .bs-pill:where([data-status^="complete"]) {
80
78
  --status-color: var(--bs-purple-400);
@@ -136,7 +134,7 @@
136
134
 
137
135
  /* ----- Filter Active Styles ----- */
138
136
  .bs-pill:where([data-variant^="filter"][data-active]) {
139
- --pill-background: var(--bs-blue-400);
137
+ --pill-background: var(--bs-blue-base);
140
138
  --pill-border: transparent;
141
139
  --pill-text: var(--bs-white);
142
140
  }
@@ -178,8 +176,8 @@
178
176
  /* ----- Disabled Styles ----- */
179
177
  .bs-pill:is(:disabled, [aria-disabled="true"]) {
180
178
  pointer-events: none;
181
- color: var(--bs-gray-400);
182
- background-color: var(--bs-gray-200);
179
+ color: var(--bs-ink-disabled);
180
+ background-color: var(--bs-bg-disabled);
183
181
  }
184
182
 
185
183
  .bs-pill:where([data-variant^="filter"]):not([data-active]):is(:disabled, [aria-disabled="true"]) {
@@ -18,16 +18,12 @@ a.bs-profile:where([data-layout]) {
18
18
  }
19
19
 
20
20
  a.bs-profile:where([data-layout]) .bs-profile-details > *:first-child {
21
- --profile-name-color: var(--bs-blue-500);
21
+ --profile-name-color: var(--bs-ink-blue);
22
22
  }
23
23
 
24
24
  a.bs-profile:where([data-layout]):hover .bs-profile-details > *:first-child {
25
25
  text-decoration: underline;
26
26
  }
27
27
 
28
- .dark a.bs-profile:where([data-layout]) .bs-profile-details > *:first-child {
29
- --profile-name-color: var(--bs-blue-200);
30
- }
31
-
32
28
  }
33
29
 
@@ -40,7 +40,7 @@ table[data-borders^="all"] th {
40
40
 
41
41
  /* Table Rows */
42
42
  table:where([data-rows^="striped"]) tbody > tr:nth-child(even) {
43
- background-color: var(--bs-bg-subtle);
43
+ background-color: var(--bs-bg-medium);
44
44
  }
45
45
 
46
46
  /* Table Cells */
@@ -1,8 +1,8 @@
1
1
  @mixin toast() {
2
2
  /* Base Toast Styles */
3
3
  .bs-toast {
4
- background-color: var(--bs-white);
5
- border-top: 4px solid var(--bs-blue-400);
4
+ background-color: var(--bs-bg-base-elevated);
5
+ border-top: 4px solid var(--bs-blue-base);
6
6
  bottom: 1.5rem;
7
7
  box-shadow: var(--bs-shadow-contentMedium);
8
8
  left: 0;
@@ -48,11 +48,6 @@
48
48
  }
49
49
  }
50
50
 
51
- /* Dark mode toast */
52
- :where(.dark) .bs-toast {
53
- background-color: var(--bs-navy-400);
54
- }
55
-
56
51
  .bs-toast:where([data-shown]) {
57
52
  /* Small delay on load to alow for HTML element to exist */
58
53
  animation-delay: 10ms;
@@ -63,50 +58,52 @@
63
58
  }
64
59
 
65
60
  .bs-toast:where([data-dismissed]) {
66
- animation-duration: 200ms;
61
+ animation-duration: 200ms;
67
62
  animation-fill-mode: forwards;
68
63
  animation-name: slideDown;
69
64
  animation-timing-function: ease;
70
65
  }
71
66
 
72
- .bs-toast :where(.bs-toast-header) {
67
+ .bs-toast-header {
73
68
  align-items: center;
74
69
  color: var(--bs-ink-base);
75
70
  display: flex;
76
71
  gap: 0.5rem;
77
- padding-left: 1rem;
78
- padding-right: 1rem;
79
- padding-top: 1rem;
72
+ padding: 1rem;
80
73
  }
81
74
 
82
- .bs-toast :where(.bs-toast-header .bs-toast-header-icon) {
83
- color: var(--bs-blue-400);
75
+ .bs-toast-header :where(.bs-toast-header-icon) {
76
+ color: var(--bs-blue-base);
84
77
  }
85
78
 
86
- .bs-toast :where(h5) {
79
+ .bs-toast-header :where(h5) {
87
80
  font-weight: 400;
88
81
  }
89
82
 
90
- .bs-toast :where(.bs-toast-content) {
83
+ .bs-toast-body {
91
84
  border-bottom: 1px solid var(--bs-border);
92
85
  color: var(--bs-ink-light);
93
86
  padding-bottom: 1rem;
94
87
  padding-left: 1rem;
95
88
  padding-right: 1rem;
96
- padding-top: 0.25rem;
97
89
  }
98
90
 
99
- .bs-toast :where(.bs-toast-actions) {
91
+ .bs-toast-actions {
100
92
  /* Mobile - Buttons will be stacked */
101
93
  display: flex;
102
- flex-direction: column-reverse;
94
+ flex-direction: row;
103
95
  gap: 1rem;
96
+ justify-content: flex-end;
104
97
  padding-bottom: 0.5rem;
105
98
  padding-left: 1rem;
106
99
  padding-right: 1rem;
107
100
  padding-top: 0.5rem;
108
101
  }
109
102
 
103
+ .bs-toast-actions:where([data-stacked]) {
104
+ flex-direction: column-reverse;
105
+ }
106
+
110
107
  /* Warning Toast Styles */
111
108
  .bs-toast:where([data-variant^='warning']) {
112
109
  border-top: 4px solid var(--bs-orange-warning);
@@ -163,7 +160,7 @@
163
160
  }
164
161
 
165
162
  .bs-toast:where([data-dismissed]) {
166
- animation-duration: 200ms;
163
+ animation-duration: 200ms;
167
164
  animation-fill-mode: forwards;
168
165
  animation-name: slideRight;
169
166
  animation-timing-function: ease;
@@ -180,7 +177,7 @@
180
177
  transform: translateX(calc(100% + 1.5rem));
181
178
  }
182
179
  }
183
-
180
+
184
181
  @keyframes slideLeft {
185
182
  0% {
186
183
  opacity: 0;
@@ -192,12 +189,9 @@
192
189
  }
193
190
  }
194
191
 
195
- .bs-toast :where(.bs-toast-actions) {
196
- /* Non-mobile - Buttons will be side-by-side */
192
+ .bs-toast-actions:where([data-stacked]) {
197
193
  flex-direction: row;
198
- justify-content: flex-end;
199
194
  }
200
-
201
195
  }
202
196
 
203
197
  }
@@ -7,10 +7,10 @@
7
7
 
8
8
  .bs-tooltip :where(.bs-tooltip-text) {
9
9
  align-items: center;
10
- background-color: var(--bs-bg-base);
10
+ background-color: var(--bs-bg-base-elevated);
11
11
  border-radius: 4px;
12
12
  box-shadow: var(--bs-shadow-contentLowCenter);
13
- color: var(--bs-violet-400);
13
+ color: var(--bs-violet-base);
14
14
  display: flex;
15
15
  font-size: var(--bs-text-sm);
16
16
  justify-content: center;
@@ -1,10 +1,10 @@
1
1
  .bs-accordion {
2
2
  --accordion-link-color: var(--bs-purple-400);
3
- --accordion-link-outline-color: var(--bs-blue-400);
3
+ --accordion-link-outline-color: var(--bs-blue-base);
4
4
  --accordion-outline-color: transparent;
5
5
  --accordion-padding-inline: 0;
6
6
  --accordion-text-size: var(--bs-text-sm);
7
- border-block: 1px solid var(--bs-border);
7
+ border-block: 1px solid var(--bs-border-base);
8
8
  display: block;
9
9
  }
10
10
 
@@ -37,7 +37,7 @@
37
37
  }
38
38
 
39
39
  .bs-accordion :where(header button:focus-visible) {
40
- --accordion-outline-color: var(--bs-blue-400);
40
+ --accordion-outline-color: var(--bs-blue-base);
41
41
  }
42
42
 
43
43
  .bs-accordion :where(header button) > * {
@@ -1,7 +1,12 @@
1
+ .bs-badge {
2
+ --badge-bg: var(--bs-red-base);
3
+ --badge-text: var(--bs-white);
4
+ }
5
+
1
6
  .bs-badge[data-position^='left']::before,
2
7
  .bs-badge:where(:not([data-position^='left']))::after {
3
8
  align-items: center;
4
- background: var(--bs-red-500);
9
+ background: var(--badge-bg);
5
10
  border-radius: 0.5rem;
6
11
  content: '';
7
12
  display: inline-flex;
@@ -23,7 +28,7 @@
23
28
 
24
29
  .bs-badge[data-count]:where([data-position^='left'])::before,
25
30
  .bs-badge[data-count]:where(:not([data-position^='left']))::after {
26
- color: white;
31
+ color: var(--badge-text);
27
32
  content: attr(data-count);
28
33
  min-height: 1rem;
29
34
  min-width: 1rem;
@@ -51,13 +56,10 @@
51
56
  display: inline-flex;
52
57
  }
53
58
 
54
- .bs-badge[data-badge-color^='blue']::before,
55
- .bs-badge[data-badge-color^='blue']::after {
56
- background: var(--bs-blue-500);
59
+ .bs-badge[data-badge-color^='blue'] {
60
+ --badge-bg: var(--bs-blue-base);
57
61
  }
58
-
59
- .bs-badge[data-badge-color^='white']::before,
60
- .bs-badge[data-badge-color^='white']::after {
61
- background: white;
62
- color: var(--badge-text, var(--bs-black));
62
+ .bs-badge[data-badge-color^='white'] {
63
+ --badge-bg: var(--bs-white);
64
+ --badge-text: var(--bs-black);
63
65
  }
@@ -1,5 +1,5 @@
1
1
  .bs-banner {
2
- background-color: var(--bs-bg-invert-subtle);
2
+ background-color: var(--bs-royal-400);
3
3
  color: var(--bs-gray-100);
4
4
  display: flex;
5
5
  justify-content: center;
@@ -13,10 +13,6 @@
13
13
  display: none;
14
14
  }
15
15
 
16
- :where(.dark) .bs-banner {
17
- color: var(--bs-black);
18
- }
19
-
20
16
  .bs-banner :where(.bs-banner-content) {
21
17
  align-items: center;
22
18
  display: flex;
@@ -37,14 +33,10 @@
37
33
  }
38
34
 
39
35
  .bs-banner :where(.bs-banner-content p a) {
40
- color: var(--bs-pink-200);
36
+ color: var(--bs-pink-light);
41
37
  text-decoration: none;
42
38
  }
43
39
 
44
- :where(.dark) .bs-banner :where(.bs-banner-content p a) {
45
- color: var(--bs-pink-500);
46
- }
47
-
48
40
  .bs-banner :where(.bs-banner-content p a:hover) {
49
41
  text-decoration: underline;
50
42
  }
@@ -1,7 +1,9 @@
1
1
  .bs-button {
2
- --btn-main: var(--bs-blue-400);
3
- --btn-secondary: var(--bs-blue-300);
2
+ --btn-main: var(--bs-blue-base);
3
+ --btn-secondary: var(--bs-blue-medium);
4
4
  --btn-highlight: var(--bs-blue-100);
5
+ --btn-padding: var(--bs-space-1) var(--bs-space-4) calc(var(--bs-space-1) * 1.5);
6
+ --btn-focus-pseudo-width: calc(100% + 0.5rem);
5
7
  align-items: center;
6
8
  background-color: var(--btn-main);
7
9
  border: none;
@@ -14,7 +16,7 @@
14
16
  justify-content: center;
15
17
  line-height: 1.5;
16
18
  outline: 2px solid transparent;
17
- padding: var(--bs-space-1) var(--bs-space-4) calc(var(--bs-space-1) * 1.5);
19
+ padding: var(--btn-padding);
18
20
  position: relative;
19
21
  text-decoration: none;
20
22
  transition: all 100ms ease-in-out;
@@ -41,9 +43,11 @@
41
43
  content: '';
42
44
  height: calc(100% + 0.5rem);
43
45
  inset: -0.25rem;
46
+ left: auto;
44
47
  position: absolute;
48
+ right: auto;
45
49
  transition: border-color 0.125s ease-in-out;
46
- width: calc(100% + 0.5rem);
50
+ width: var(--btn-focus-pseudo-width);
47
51
  }
48
52
 
49
53
  .bs-button:focus::before {
@@ -115,6 +119,8 @@
115
119
 
116
120
  /* Text Button */
117
121
  .bs-button:where([data-text]) {
122
+ --btn-padding: 0 0;
123
+ --btn-focus-pseudo-width: calc(100% + 1.25rem); /* text btns don't have side padding, but we do want focus outline to look padded */
118
124
  background-color: transparent;
119
125
  color: var(--bs-blue-500);
120
126
  cursor: pointer;
@@ -123,7 +129,7 @@
123
129
  line-height: 150%;
124
130
  }
125
131
  .bs-button:where([data-text]):hover {
126
- color: var(--bs-blue-400);
132
+ color: var(--bs-blue-base);
127
133
  background-color: transparent;
128
134
  text-decoration: underline;
129
135
  }
@@ -1,7 +1,7 @@
1
1
  .bs-circle-button {
2
- --btn-main: var(--bs-blue-400);
3
- --btn-secondary: var(--bs-blue-300);
4
- --btn-highlight: var(--bs-blue-100);
2
+ --btn-main: var(--bs-blue-base);
3
+ --btn-secondary: var(--bs-blue-medium);
4
+ --btn-highlight: var(--bs-blue-lightest);
5
5
  --btn-border-color: transparent;
6
6
  --btn-border-radius: 50%;
7
7
  --btn-icon-bg-color: var(--btn-main);
@@ -123,10 +123,10 @@ a.bs-circle-button {
123
123
 
124
124
  /* Disabled State */
125
125
  .bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) /* for links as buttons */ {
126
- --btn-icon-stroke-color: var(--bs-gray-400);
127
- --btn-text-color: var(--bs-gray-400);
126
+ --btn-icon-stroke-color: var(--bs-ink-disabled);
127
+ --btn-text-color: var(--bs-ink-disabled);
128
128
  pointer-events: none;
129
129
  }
130
130
  .bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) :where(.bs-circle-button-icon) {
131
- background-color: var(--bs-gray-200);
131
+ background-color: var(--bs-bg-disabled);
132
132
  }