|
1 | 1 | import flattenColorPalette from "tailwindcss/lib/util/flattenColorPalette";
|
2 | 2 | import plugin from "tailwindcss/plugin";
|
3 | 3 |
|
| 4 | +/** |
| 5 | + * This helper inverts a value based on a boolean CSS prop flag |
| 6 | + * |
| 7 | + * When the flag is 0, it will not be inverted. When 1, it will invert it (multiplied by -1) |
| 8 | + * |
| 9 | + * @param {string} value - the CSS value to invert |
| 10 | + * @param {string} flagPropName - the boolean CSS prop (value must be 0 or 1) |
| 11 | + */ |
| 12 | +function invert(value: string, flagPropName: string): string { |
| 13 | + return `calc( |
| 14 | + ${value} * |
| 15 | + calc( |
| 16 | + 1 - |
| 17 | + 2 * clamp( |
| 18 | + 0, |
| 19 | + var(${flagPropName}), |
| 20 | + 1 |
| 21 | + ) |
| 22 | + ) |
| 23 | + )`; |
| 24 | +} |
| 25 | + |
4 | 26 | export default {
|
5 | 27 | theme: {
|
6 | 28 | borderColor: ({ theme }): object => ({
|
@@ -233,23 +255,23 @@ export default {
|
233 | 255 | "outline-color": "transparent"
|
234 | 256 | },
|
235 | 257 | ".focus-normal": {
|
236 |
| - outline: "2px solid var(--calcite-ui-brand)" |
| 258 | + outline: "2px solid var(--calcite-ui-focus-color)" |
237 | 259 | },
|
238 | 260 | ".focus-outset": {
|
239 |
| - outline: "2px solid var(--calcite-ui-brand)", |
240 |
| - "outline-offset": "2px" |
| 261 | + outline: "2px solid var(--calcite-ui-focus-color)", |
| 262 | + "outline-offset": invert("2px", "--calcite-ui-focus-offset-invert") |
241 | 263 | },
|
242 | 264 | ".focus-inset": {
|
243 |
| - outline: "2px solid var(--calcite-ui-brand)", |
244 |
| - "outline-offset": "-2px" |
| 265 | + outline: "2px solid var(--calcite-ui-focus-color)", |
| 266 | + "outline-offset": invert("-2px", "--calcite-ui-focus-offset-invert") |
245 | 267 | },
|
246 | 268 | ".focus-outset-danger": {
|
247 | 269 | outline: "2px solid var(--calcite-ui-danger)",
|
248 |
| - "outline-offset": "2px" |
| 270 | + "outline-offset": invert("2px", "--calcite-ui-focus-offset-invert") |
249 | 271 | },
|
250 | 272 | ".focus-inset-danger": {
|
251 | 273 | outline: "2px solid var(--calcite-ui-danger)",
|
252 |
| - "outline-offset": "-2px" |
| 274 | + "outline-offset": invert("-2px", "--calcite-ui-focus-offset-invert") |
253 | 275 | },
|
254 | 276 | ".transition-default": {
|
255 | 277 | transition: "all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s"
|
|
0 commit comments