Skip to content

Commit 50c5669

Browse files
committed
Replace focus-ring-visible usage with Tailwind's built-in equivalent
Replace uses of our custom `focus-ring-visible` utility with Tailwind's built-in equivalent styles (`focus-ring:visible focus-ring:outline-none`). The original reason for our custom utility was to support a polyfill for `:focus-visible`, but we no longer need/use that polyfill. This looks the same as before but will be easier to migrate to Tailwind v4. In Tailwind v3 `outline-none` doesn't actually generate `outline-style: none`, but the result is equivalent for our purposes. See https://tailwindcss.com/docs/upgrade-guide#renamed-outline-utility. The focus-ring-visible plugin is still included in the package because downstream apps are still using it. We can remove it after the same migration is applied there.
1 parent 5679fa5 commit 50c5669

File tree

11 files changed

+13
-13
lines changed

11 files changed

+13
-13
lines changed

src/components/data/Table.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export default function Table({
6262
aria-label={title}
6363
className={classnames(
6464
'w-full h-full',
65-
'focus-visible-ring ring-inset',
65+
'focus-visible:ring focus-visible:outline-none ring-inset',
6666
// Set the width of columns based on the width of the columns in the
6767
// first table row (typically headers)
6868
'table-fixed',

src/components/data/TableRow.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default function TableRow({
4343
ref={downcastRef(rowRef)}
4444
className={classnames(
4545
'group',
46-
'focus-visible-ring ring-inset',
46+
'focus-visible:ring focus-visible:outline-none ring-inset',
4747
{
4848
// Low-opacity backgrounds allow any scroll shadows to be visible
4949
'odd:bg-slate-9/[.03]': striped && !isHeadRow && !selected,

src/components/input/Button.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export default function Button({
9696
{...htmlAttributes}
9797
className={classnames(
9898
{
99-
'focus-visible-ring transition-colors whitespace-nowrap flex items-center':
99+
'focus-visible:ring focus-visible:outline-none transition-colors whitespace-nowrap flex items-center':
100100
styled,
101101
},
102102
themed && {

src/components/input/IconButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export default function IconButton({
5151
{...htmlAttributes}
5252
classes={classnames(
5353
{
54-
'focus-visible-ring transition-colors rounded whitespace-nowrap':
54+
'focus-visible:ring focus-visible:outline-none transition-colors rounded whitespace-nowrap':
5555
styled,
5656
'flex items-center justify-center': styled,
5757
},

src/components/input/Input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export type InputStylesOptions = {
1414

1515
export function inputStyles({ classes, feedback }: InputStylesOptions) {
1616
return classnames(
17-
'focus-visible-ring ring-inset border rounded w-full p-2',
17+
'focus-visible:ring focus-visible:outline-none ring-inset border rounded w-full p-2',
1818
'bg-grey-0 focus:bg-white disabled:bg-grey-1',
1919
'placeholder:text-grey-6 disabled:placeholder:text-grey-7',
2020

src/components/input/RadioGroup.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ function Radio<T extends RadioValue>({
4242
aria-checked={isSelected}
4343
aria-disabled={disabled}
4444
className={classnames(
45-
'focus-visible-ring rounded-lg px-3 py-2 flex-1 group',
45+
'focus-visible:ring focus-visible:outline-none rounded-lg px-3 py-2 flex-1 group',
4646
{
4747
'hover:bg-grey-3/25 aria-checked:bg-grey-3/50 cursor-pointer':
4848
!disabled,

src/components/input/Select.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ function SelectMain<T>({
396396
<button
397397
id={buttonId ?? defaultButtonId}
398398
className={classnames(
399-
'focus-visible-ring transition-colors whitespace-nowrap',
399+
'focus-visible:ring focus-visible:outline-none transition-colors whitespace-nowrap',
400400
'w-full flex items-center justify-between gap-x-2',
401401
'bg-grey-0 disabled:bg-grey-1 disabled:text-grey-6',
402402
// Buttons are center-aligned by default. Overwrite it.

src/components/navigation/Link.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export default function Link({
4040
{...htmlAttributes}
4141
className={classnames(
4242
styled && {
43-
'focus-visible-ring rounded': true,
43+
'focus-visible:ring focus-visible:outline-none rounded': true,
4444
// underline
4545
// TODO: Underline should be controlled by `variant` and should default
4646
// to `always`

src/components/navigation/LinkButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default function LinkButton({
4343
elementRef={downcastRef(elementRef)}
4444
classes={classnames(
4545
styled && {
46-
'focus-visible-ring transition-colors whitespace-nowrap rounded': true,
46+
'focus-visible:ring focus-visible:outline-none transition-colors whitespace-nowrap rounded': true,
4747
inline: inline,
4848
'flex items-center': !inline,
4949
},

src/components/navigation/TabList.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export default function TabList({
4747
{...htmlAttributes}
4848
ref={downcastRef(tabListRef)}
4949
className={classnames(
50-
'flex focus-visible-ring',
50+
'flex focus-visible:ring focus-visible:outline-none',
5151
{ 'flex-col': vertical },
5252
classes,
5353
)}

0 commit comments

Comments
 (0)