@helpwave/hightide
Version:
helpwave's component and theming library
48 lines (40 loc) • 1.27 kB
CSS
:root {
--focus-transitions:
outline-offset var(--animation-duration-in, 250ms) ease-in-out,
outline-color var(--animation-duration-in, 250ms) ease-in-out,
border-color var(--animation-duration-in, 250ms) ease-in-out,
shadow var(--animation-duration-in, 250ms) ease-in-out;
}
@utility focus-style-outline {
--focus-outline: 2px solid var(--color-focus);
--focus-outline-offset: calc(var(--spacing) * 0.5);
}
@utility focus-style-border {
--focus-border-color: var(--color-focus);
}
@utility focus-style-shadow {
--focus-box-shadow: 0 0 calc(var(--spacing) * 1) calc(var(--spacing) * 0.8)
color-mix(in srgb, var(--color-focus) 35%, transparent);
@variant dark {
--focus-box-shadow: 0 0 calc(var(--spacing) * 1.5)
calc(var(--spacing) * 0.8)
color-mix(in srgb, var(--color-focus) 60%, transparent);
}
}
@utility focus-style-none {
--focus-outline: none;
--focus-outline-offset: 0;
--focus-box-shadow: none;
--focus-border-color: inherit;
}
@utility focus-style-apply {
outline: var(--focus-outline);
outline-offset: var(--focus-outline-offset);
box-shadow: var(--focus-box-shadow);
border-color: var(--focus-border-color);
}
@utility focusable {
&:focus-visible {
@apply focus-style-apply;
}
}