@bi-digital/css 0.11.10 → 0.12.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 (36) hide show
  1. package/dist/baseline.css +4 -2
  2. package/dist/components/alert.css +52 -114
  3. package/dist/components/avatar.css +11 -59
  4. package/dist/components/badge.css +25 -92
  5. package/dist/components/button.css +108 -131
  6. package/dist/components/card.css +232 -309
  7. package/dist/components/checkbox-subsection.css +13 -17
  8. package/dist/components/chip.css +41 -185
  9. package/dist/components/details.css +86 -105
  10. package/dist/components/dialog.css +97 -102
  11. package/dist/components/dropdown.css +19 -30
  12. package/dist/components/field.css +203 -219
  13. package/dist/components/fieldset.css +18 -26
  14. package/dist/components/filter-group.css +76 -94
  15. package/dist/components/footer.css +104 -124
  16. package/dist/components/icons.css +30 -30
  17. package/dist/components/input.css +188 -206
  18. package/dist/components/label.css +15 -21
  19. package/dist/components/link.css +36 -56
  20. package/dist/components/logo.css +45 -41
  21. package/dist/components/navbar.css +49 -52
  22. package/dist/components/pagination.css +27 -30
  23. package/dist/components/popover.css +37 -46
  24. package/dist/components/search.css +12 -8
  25. package/dist/components/skip-link.css +8 -10
  26. package/dist/components/spinner.css +22 -25
  27. package/dist/components/sticky-header.css +1 -3
  28. package/dist/components/sub-navbar.css +25 -25
  29. package/dist/components/tabs.css +105 -121
  30. package/dist/components/tooltip.css +32 -32
  31. package/dist/components/validation-message.css +11 -11
  32. package/dist/components.css +1695 -2281
  33. package/dist/index.css +509 -10
  34. package/dist/salesforce.css +2200 -2289
  35. package/dist/tokens.css +505 -8
  36. package/package.json +2 -2
@@ -1,46 +1,34 @@
1
+ :root, [data-color-scheme="light"] {
2
+ --_bic-input-select-chevron: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"%23222d38\" fill-rule=\"evenodd\" d=\"M5.97 9.47a.75.75 0 0 1 1.06 0L12 14.44l4.97-4.97a.75.75 0 1 1 1.06 1.06l-5.5 5.5a.75.75 0 0 1-1.06 0l-5.5-5.5a.75.75 0 0 1 0-1.06\" clip-rule=\"evenodd\"></path></svg>");
3
+ }
4
+
5
+ [data-color-scheme="dark"] {
6
+ --_bic-input-select-chevron: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"white\" fill-rule=\"evenodd\" d=\"M5.97 9.47a.75.75 0 0 1 1.06 0L12 14.44l4.97-4.97a.75.75 0 1 1 1.06 1.06l-5.5 5.5a.75.75 0 0 1-1.06 0l-5.5-5.5a.75.75 0 0 1 0-1.06\" clip-rule=\"evenodd\"></path></svg>");
7
+ }
8
+
1
9
  :where(.bi-input) {
2
10
  margin: 0;
3
11
  }
4
12
 
5
13
  .bi-input {
6
- --bic-input-border-color-invalid: var(--bi-alert-50);
7
14
  --bic-input-box-shadow: 0 0 0 var(--bi-stroke-thin) var(--bic-input-border-color);
8
- --bic-input-box-shadow-hover: 0 0 0 var(--bi-stroke-thick) var(--bic-input-border-color-hover);
9
- --bic-input-caret-color: var(--bi-primary-50);
15
+ --bic-input-caret-color: var(--bi-color-primary-fill);
10
16
  --bic-input-font-size: 1rem;
11
17
  --bic-input-padding: var(--bi-scale-3x);
12
18
  --bic-input-size: var(--bi-scale-11x);
13
- --bic-input-toggle-background: var(--bi-primary-50);
14
- --bic-input-toggle-color: var(--bi-basic-white);
19
+ --bic-input-toggle-background: var(--bi-color-primary-fill);
20
+ --bic-input-toggle-color: var(--bi-color-primary-on-fill);
15
21
  --bic-input-toggle-size: 1.125rem;
16
- --bic-input-background: var(--bi-basic-white);
17
- --bic-input-background-readonly: var(--bi-neutral-10);
18
- --bic-input-border-color: var(--bi-neutral-50);
19
- --bic-input-border-color-hover: var(--bi-neutral-50);
20
- --bic-input-border-color-readonly: var(--bi-neutral-50);
21
- --bic-input-color-readonly: var(--bi-neutral-95);
22
- --bic-input-color: var(--bi-neutral-95);
23
- --bic-input-disabled-color: var(--bi-neutral-50);
24
- --bic-input-placeholder-color: var(--bi-neutral-60);
25
- --bic-input-focus-outline-color: var(--bi-primary-50);
26
- --bic-input-focus-shadow-color: var(--bi-basic-white);
27
- --bic-input-select-chevron: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"%23222d38\" fill-rule=\"evenodd\" d=\"M5.97 9.47a.75.75 0 0 1 1.06 0L12 14.44l4.97-4.97a.75.75 0 1 1 1.06 1.06l-5.5 5.5a.75.75 0 0 1-1.06 0l-5.5-5.5a.75.75 0 0 1 0-1.06\" clip-rule=\"evenodd\"></path></svg>");
28
- }
29
-
30
- .bi-input[data-dark="true"] {
31
- --bic-input-background: var(--bi-neutral-95);
32
- --bic-input-background-readonly: var(--bi-neutral-50);
33
- --bic-input-border-color-hover: var(--bi-neutral-25);
34
- --bic-input-color-readonly: var(--bi-basic-white);
35
- --bic-input-color: var(--bi-basic-white);
36
- --bic-input-disabled-color: var(--bi-neutral-40);
37
- --bic-input-placeholder-color: var(--bi-neutral-30);
38
- --bic-input-focus-outline-color: var(--bi-primary-30);
39
- --bic-input-focus-shadow-color: var(--bi-neutral-95);
40
- --bic-input-select-chevron: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"white\" fill-rule=\"evenodd\" d=\"M5.97 9.47a.75.75 0 0 1 1.06 0L12 14.44l4.97-4.97a.75.75 0 1 1 1.06 1.06l-5.5 5.5a.75.75 0 0 1-1.06 0l-5.5-5.5a.75.75 0 0 1 0-1.06\" clip-rule=\"evenodd\"></path></svg>");
41
- }
42
-
43
- .bi-input {
22
+ --bic-input-background: var(--bi-color-surface-subtle);
23
+ --bic-input-background-readonly: var(--bi-color-surface);
24
+ --bic-input-border-color: var(--bi-color-stroke-contrast);
25
+ --bic-input-border-color-invalid: var(--bi-color-alert-stroke-contrast);
26
+ --bic-input-color-readonly: var(--bi-color-text-subtle);
27
+ --bic-input-color: var(--bi-color-text);
28
+ --bic-input-disabled-color: var(--bi-color-text-subtle);
29
+ --bic-input-placeholder-color: var(--bi-color-text-secondary);
30
+ --bic-input-focus-outline-color: var(--bi-states-focus);
31
+ --bic-input-focus-shadow-color: var(--bi-states-focus-background);
44
32
  appearance: none;
45
33
  background: var(--bic-input-background);
46
34
  border-radius: var(--bi-radius-medium);
@@ -58,179 +46,173 @@
58
46
  border: none;
59
47
  line-height: 1;
60
48
  position: relative;
61
- }
62
-
63
- .bi-input[data-size="large"] {
64
- --bic-input-size: var(--bi-scale-14x);
65
- --bic-input-font-size: 1.25rem;
66
- }
67
-
68
- .bi-input:where(:not([type="checkbox"], [type="radio"])):hover {
69
- box-shadow: var(--_bi--hover, var(--bic-input-box-shadow-hover));
70
- }
71
-
72
- .bi-input:where(:not([type="checkbox"], [type="radio"])):focus-visible {
73
- --bic-input-border-color: var(--bic-input-focus-outline-color);
74
- }
75
49
 
76
- .bi-input:focus-visible {
77
- outline: var(--_bi--focus, 3px solid var(--bic-input-focus-outline-color));
78
- outline-offset: 0;
79
- box-shadow: var(--_bi--focus, 0px 0px 20px var(--bi-scale-1-5x) #0000000d,
50
+ &[data-size="large"] {
51
+ --bic-input-size: var(--bi-scale-14x);
52
+ --bic-input-font-size: 1.25rem;
53
+ }
54
+
55
+ &:where(:not([type="checkbox"], [type="radio"])) {
56
+ &:hover {
57
+ background: var(--_bi--hover, linear-gradient(0deg, var(--bi-states-hover) 0%, var(--bi-states-hover) 100%),
58
+ var(--bic-input-background));
59
+ }
60
+
61
+ &:focus-visible {
62
+ --bic-input-border-color: var(--bic-input-focus-outline-color);
63
+ background: var(--_bi--focus, var(--bic-input-background));
64
+ }
65
+ }
66
+
67
+ &:focus-visible {
68
+ outline: var(--_bi--focus, 3px solid var(--bic-input-focus-outline-color));
69
+ outline-offset: 0;
70
+ box-shadow: var(--_bi--focus, 0px 0px 20px var(--bi-scale-1-5x) #0000000d,
80
71
  0px 0px 10px 0px #0000000d);
81
- }
82
-
83
- .bi-input:focus-visible * {
84
- --_bi--focus: ;
85
- }
86
-
87
- .bi-input::placeholder {
88
- color: var(--bic-input-placeholder-color);
89
- }
90
-
91
- .bi-input:not([size], [cols]) {
92
- width: 100%;
93
- }
94
-
95
- .bi-input:disabled, .bi-input[aria-disabled="true"] {
96
- cursor: not-allowed;
97
- }
98
-
99
- .bi-input[aria-invalid="true"] {
100
- --bic-input-border-color: var(--bic-input-border-color-invalid);
101
- }
102
-
103
- .bi-input[readonly], .bi-input:disabled, .bi-input[aria-disabled="true"] {
104
- background: var(--bic-input-background-readonly);
105
- --bic-input-border-color: var(--bic-input-border-color-readonly);
106
- color: var(--bic-input-color-readonly);
107
- }
108
-
109
- .bi-input:is(textarea) {
110
- height: auto;
111
- min-height: calc(var(--bic-input-size) * 2);
112
- resize: vertical;
113
- }
114
-
115
- .bi-input:is(textarea):not([rows]) {
116
- field-sizing: content;
117
- }
118
-
119
- .bi-input:is(select):not([readonly], [aria-disabled="true"], :disabled) {
120
- cursor: pointer;
121
- }
122
-
123
- .bi-input:is(select) {
124
- background-image: var(--bic-input-select-chevron);
125
- background-position: calc(100% - .5em);
126
- background-repeat: no-repeat;
127
- background-size: 1.5em;
128
- }
129
-
130
- .bi-input[type="checkbox"], .bi-input[type="radio"] {
131
- padding: var(--bi-scale-0-50x);
132
- line-height: inherit;
133
- height: var(--bic-input-toggle-size);
134
- width: var(--bic-input-toggle-size);
135
- box-shadow: none;
136
- border-width: var(--bi-stroke-medium);
137
- border-style: solid;
138
- border-color: var(--bic-input-border-color);
139
- background: none;
140
- flex-shrink: 0;
141
- }
142
-
143
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"]):focus-visible {
144
- box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bic-input-focus-shadow-color));
145
- outline: var(--_bi--focus, 3px solid var(--bic-input-focus-outline-color));
146
- outline-offset: var(--_bi--focus, 3px);
147
- }
148
-
149
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"]):focus-visible * {
150
- --_bi--focus: ;
151
- }
152
-
153
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"]):read-only:not([readonly], [aria-disabled="true"], :disabled) {
154
- cursor: pointer;
155
- }
156
-
157
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="radio"] {
158
- border-radius: var(--bi-radius-full);
159
- }
160
-
161
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="radio"]:before {
162
- content: "";
163
- background-color: var(--bic-input-toggle-background);
164
- border-radius: 100%;
165
- width: 0;
166
- height: 0;
167
- transition: width .1s ease-in-out, height .1s ease-in-out;
168
- display: block;
169
- position: absolute;
170
- top: 50%;
171
- left: 50%;
172
- transform: translate(-50%, -50%);
173
- }
174
-
175
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="radio"]:checked {
176
- --bic-input-border-color: var(--bic-input-toggle-background);
177
- }
178
-
179
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="radio"]:checked:before {
180
- width: 12px;
181
- height: 12px;
182
- }
183
-
184
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]) {
185
- border-radius: var(--bi-radius-small);
186
- place-content: center;
187
- display: grid;
188
- }
189
-
190
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]):before {
191
- content: "";
192
- width: .7em;
193
- height: .7em;
194
- box-shadow: inset 1em 1em var(--bic-input-toggle-color);
195
- transform-origin: center;
196
- clip-path: polygon(9.73% 39.66%, 0% 49.25%, 34.81% 84.58%, 100% 20%, 90.45% 10.31%, 34.81% 65.12%);
197
- transition: transform .2s ease-in-out;
198
- transform: scale(0);
199
- }
200
-
201
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]):where(:checked, :indeterminate) {
202
- background: var(--bic-input-toggle-background);
203
- --bic-input-border-color: var(--bic-input-toggle-background);
204
- }
205
-
206
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]):where(:checked, :indeterminate):before {
207
- transform: scale(1);
208
- }
209
-
210
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]):indeterminate:before {
211
- clip-path: polygon(0% 42%, 0% 58%, 100% 58%, 100% 42%);
212
- }
213
-
214
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"][role="switch"] {
215
- --_bic-input-circle-position-x: var(--bi-scale-0-50x);
216
- background: var(--bi-neutral-50);
217
- }
218
-
219
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"][role="switch"]:where(:checked) {
220
- --_bic-input-circle-position-x: calc(100% - var(--bi-scale-0-50x));
221
- background: var(--bic-input-toggle-background);
222
- --bic-input-border-color: var(--bic-input-toggle-background);
223
- }
224
-
225
- :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"][role="switch"] {
226
- background-image: radial-gradient(circle closest-side, var(--bi-basic-white) 95%, transparent 100%);
227
- background-origin: content-box;
228
- background-position: var(--_bic-input-circle-position-x);
229
- background-repeat: no-repeat;
230
- background-size: calc(var(--bic-input-toggle-size)) 100%;
231
- border-radius: var(--bi-radius-full);
232
- width: var(--bi-scale-11x);
233
- height: var(--bi-scale-6x);
234
- padding-inline: 0;
235
- transition: background-position .2s;
72
+ }
73
+
74
+ &::placeholder {
75
+ color: var(--bic-input-placeholder-color);
76
+ }
77
+
78
+ &:not([size], [cols]) {
79
+ width: 100%;
80
+ }
81
+
82
+ &:disabled, &[aria-disabled="true"] {
83
+ cursor: not-allowed;
84
+ }
85
+
86
+ &[aria-invalid="true"] {
87
+ --bic-input-border-color: var(--bic-input-border-color-invalid);
88
+ --bic-input-focus-outline-color: var(--bic-input-border-color-invalid);
89
+ }
90
+
91
+ &[readonly], &:disabled, &[aria-disabled="true"] {
92
+ background: var(--bic-input-background-readonly);
93
+ color: var(--bic-input-color-readonly);
94
+ }
95
+
96
+ &:is(textarea) {
97
+ height: auto;
98
+ min-height: calc(var(--bic-input-size) * 2);
99
+ resize: vertical;
100
+
101
+ &:not([rows]) {
102
+ field-sizing: content;
103
+ }
104
+ }
105
+
106
+ &:is(select) {
107
+ &:not([readonly], [aria-disabled="true"], :disabled) {
108
+ cursor: pointer;
109
+ }
110
+
111
+ background-image: var(--_bic-input-select-chevron);
112
+ background-position: calc(100% - .5em);
113
+ background-repeat: no-repeat;
114
+ background-size: 1.5em;
115
+ }
116
+
117
+ &[type="checkbox"], &[type="radio"] {
118
+ padding: var(--bi-scale-0-50x);
119
+ line-height: inherit;
120
+ height: var(--bic-input-toggle-size);
121
+ width: var(--bic-input-toggle-size);
122
+ box-shadow: none;
123
+ border-width: var(--bi-stroke-medium);
124
+ border-style: solid;
125
+ border-color: var(--bic-input-border-color);
126
+ background: none;
127
+ flex-shrink: 0;
128
+
129
+ &:focus-visible {
130
+ box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bic-input-focus-shadow-color));
131
+ outline: var(--_bi--focus, 3px solid var(--bic-input-focus-outline-color));
132
+ outline-offset: var(--_bi--focus, 3px);
133
+ }
134
+
135
+ &:read-only:not([readonly], [aria-disabled="true"], :disabled) {
136
+ cursor: pointer;
137
+ }
138
+
139
+ &[type="radio"] {
140
+ border-radius: var(--bi-radius-full);
141
+
142
+ &:before {
143
+ content: "";
144
+ background-color: var(--bic-input-toggle-background);
145
+ border-radius: 100%;
146
+ width: 0;
147
+ height: 0;
148
+ transition: width .1s ease-in-out, height .1s ease-in-out;
149
+ display: block;
150
+ position: absolute;
151
+ top: 50%;
152
+ left: 50%;
153
+ transform: translate(-50%, -50%);
154
+ }
155
+
156
+ &:checked {
157
+ --bic-input-border-color: var(--bic-input-toggle-background);
158
+
159
+ &:before {
160
+ width: 12px;
161
+ height: 12px;
162
+ }
163
+ }
164
+ }
165
+
166
+ &[type="checkbox"]:not([role="switch"]) {
167
+ border-radius: var(--bi-radius-small);
168
+ place-content: center;
169
+ display: grid;
170
+
171
+ &:before {
172
+ content: "";
173
+ width: .7em;
174
+ height: .7em;
175
+ box-shadow: inset 1em 1em var(--bic-input-toggle-color);
176
+ transform-origin: center;
177
+ clip-path: polygon(9.73% 39.66%, 0% 49.25%, 34.81% 84.58%, 100% 20%, 90.45% 10.31%, 34.81% 65.12%);
178
+ transition: transform .2s ease-in-out;
179
+ transform: scale(0);
180
+ }
181
+
182
+ &:where(:checked, :indeterminate) {
183
+ background: var(--bic-input-toggle-background);
184
+ --bic-input-border-color: var(--bic-input-toggle-background);
185
+
186
+ &:before {
187
+ transform: scale(1);
188
+ }
189
+ }
190
+
191
+ &:indeterminate:before {
192
+ clip-path: polygon(0% 42%, 0% 58%, 100% 58%, 100% 42%);
193
+ }
194
+ }
195
+
196
+ &[type="checkbox"][role="switch"] {
197
+ --_bic-input-circle-position-x: var(--bi-scale-0-50x);
198
+ background: var(--bi-neutral-50);
199
+
200
+ &:where(:checked) {
201
+ --_bic-input-circle-position-x: calc(100% - var(--bi-scale-0-50x));
202
+ background: var(--bic-input-toggle-background);
203
+ --bic-input-border-color: var(--bic-input-toggle-background);
204
+ }
205
+
206
+ background-image: radial-gradient(circle closest-side, var(--bi-basic-white) 95%, transparent 100%);
207
+ background-origin: content-box;
208
+ background-position: var(--_bic-input-circle-position-x);
209
+ background-repeat: no-repeat;
210
+ background-size: calc(var(--bic-input-toggle-size)) 100%;
211
+ border-radius: var(--bi-radius-full);
212
+ width: var(--bi-scale-11x);
213
+ height: var(--bi-scale-6x);
214
+ padding-inline: 0;
215
+ transition: background-position .2s;
216
+ }
217
+ }
236
218
  }
@@ -1,28 +1,22 @@
1
1
  .bi-label {
2
- --bic-label-color: var(--bic-field-label-color, var(--bi-neutral-95));
3
- --bic-label-required-color: var(--bic-field-label-required-color, var(--bi-primary-50));
4
- }
5
-
6
- .bi-label[data-dark="true"] {
7
- --bic-label-color: var(--bic-field-label-color, var(--bi-basic-white));
8
- --bic-label-required-color: var(--bic-field-label-required-color, var(--bi-secondary-50));
9
- }
10
-
11
- .bi-label {
2
+ --bic-label-color: var(--bic-field-label-color, var(--bi-color-text));
3
+ --bic-label-required-color: var(--bic-field-label-required-color, var(--bi-states-required));
12
4
  color: var(--bic-label-color);
13
5
  font: var(--bi-font-label-medium);
14
- }
15
6
 
16
- .bi-label[data-weight="medium"] {
17
- font-weight: var(--bi-font-weight-regular);
18
- }
7
+ &[data-weight="medium"] {
8
+ font-weight: var(--bi-font-weight-regular);
9
+ }
19
10
 
20
- .bi-label[data-weight="regular"] {
21
- font-weight: 300;
22
- }
11
+ &[data-weight="regular"] {
12
+ font-weight: 300;
13
+ }
23
14
 
24
- .bi-label:has( ~ .bi-input:required, ~ .bi-field--affixes > .bi-input:required):before {
25
- content: "*";
26
- color: var(--bic-label-required-color);
27
- padding-inline-end: var(--bi-scale-0-25x);
15
+ &:has( ~ .bi-input:required, ~ .bi-field--affixes > .bi-input:required) {
16
+ &:before {
17
+ content: "*";
18
+ color: var(--bic-label-required-color);
19
+ padding-inline-end: var(--bi-scale-0-25x);
20
+ }
21
+ }
28
22
  }
@@ -1,74 +1,54 @@
1
1
  .bi-link {
2
- --bic-link-background-active: var(--bi-primary-20);
3
- --bic-link-color-active: var(--bi-primary-60);
4
- --bic-link-color-hover: var(--bi-primary-60);
5
- --bic-link-color: var(--bi-primary-50);
2
+ --bic-link-color-hover: var(--bi-color-primary-contrast-hover);
3
+ --bic-link-color: var(--bi-color-primary-contrast);
6
4
  --bic-link-text-decoration-thickness--hover: .125em;
7
5
  --bic-link-text-decoration-thickness: .0625em;
8
- --bic-link-focus-shadow-color: var(--bi-basic-white);
9
- --bic-link-focus-outline-color: var(--bi-primary-50);
6
+
7
+ &[data-color] {
8
+ --bic-link-color-hover: var(--bi-color-contrast-hover);
9
+ --bic-link-color: var(--bi-color-contrast);
10
+ }
11
+
10
12
  color: var(--bic-link-color);
11
13
  text-decoration-line: underline;
12
14
  text-decoration-style: solid;
13
15
  text-decoration-thickness: var(--bic-link-text-decoration-thickness);
14
16
  text-underline-offset: .25em;
15
17
  outline: none;
16
- }
17
-
18
- .bi-link :is(img, svg) {
19
- vertical-align: middle;
20
- }
21
18
 
22
- .bi-link[data-dark="true"] {
23
- --bic-link-background-active: var(--bi-primary-80);
24
- --bic-link-color-active: var(--bi-primary-30);
25
- --bic-link-color-hover: var(--bi-primary-30);
26
- --bic-link-color: var(--bi-primary-40);
27
- --bic-link-focus-shadow-color: var(--bi-neutral-95);
28
- --bic-link-focus-outline-color: var(--bi-primary-30);
29
- }
30
-
31
- .bi-link[data-color="neutral"] {
32
- --bic-link-background-active: var(--bi-neutral-10);
33
- --bic-link-color-active: var(--bi-neutral-100);
34
- --bic-link-color-hover: var(--bi-neutral-100);
35
- --bic-link-color: var(--bi-neutral-90);
36
- }
37
-
38
- .bi-link[data-color="neutral"][data-dark="true"] {
39
- --bic-link-background-active: var(--bi-neutral-90);
40
- --bic-link-color-active: var(--bi-neutral-15);
41
- --bic-link-color-hover: var(--bi-neutral-15);
42
- --bic-link-color: var(--bi-neutral-5);
43
- }
19
+ & :is(img, svg) {
20
+ vertical-align: middle;
21
+ }
44
22
 
45
- .bi-link[data-underline="hover"]:not(:hover) {
46
- text-decoration: none;
47
- }
23
+ &[data-underline="hover"]:not(:hover) {
24
+ text-decoration: none;
25
+ }
48
26
 
49
- .bi-link:visited {
50
- color: var(--bic-link-color);
51
- }
27
+ &:visited {
28
+ color: var(--bic-link-color);
29
+ }
52
30
 
53
- @media (hover: hover) and (pointer: fine) {
54
- .bi-link:hover {
55
- color: var(--bic-link-color-hover);
56
- --bic-link-text-decoration-thickness: var(--bic-link-text-decoration-thickness--hover);
31
+ @media (hover: hover) and (pointer: fine) {
32
+ &:hover {
33
+ color: var(--bic-link-color-hover);
34
+ --bic-link-text-decoration-thickness: var(--bic-link-text-decoration-thickness--hover);
35
+ }
57
36
  }
58
- }
59
37
 
60
- .bi-link:focus-visible {
61
- box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bic-link-focus-shadow-color), var(--bic-button-box-shadow));
62
- outline: var(--_bi--focus, 3px solid var(--bic-link-focus-outline-color));
63
- outline-offset: var(--_bi--focus, 2px);
64
- border-radius: var(--bi-radius-small);
65
- }
38
+ &:focus-visible {
39
+ box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bi-states-focus-background));
40
+ outline: var(--_bi--focus, 3px solid var(--bi-states-focus));
41
+ outline-offset: var(--_bi--focus, 2px);
42
+ border-radius: var(--bi-radius-small);
43
+ text-decoration: none;
66
44
 
67
- .bi-link:focus-visible * {
68
- --_bi--focus: ;
69
- }
45
+ & * {
46
+ --_bi--focus: ;
47
+ }
48
+ }
70
49
 
71
- .bi-link:active {
72
- background: var(--bic-link-background-active);
73
- color: var(--bic-link-color-active);
50
+ &:active {
51
+ background-color: var(--bi-states-press);
52
+ border-radius: var(--bi-radius-small);
53
+ }
74
54
  }