Skip to content

Commit fa5b0e2

Browse files
refactor(theme/tag): update focus/hover styling for close button
1 parent 3a9e5ff commit fa5b0e2

File tree

1 file changed

+20
-9
lines changed
  • src/@chakra-ui/gatsby-plugin/components/Tag

1 file changed

+20
-9
lines changed

src/@chakra-ui/gatsby-plugin/components/Tag/index.ts

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ const baseStyleCloseButton = defineStyle({
4242
...tagTheme.baseStyle?.closeButton,
4343
opacity: 1,
4444
m: 0,
45+
// Clear default
46+
_focusVisible: null,
47+
"&:focus-visible, &:hover": {
48+
outline: "3px solid",
49+
outlineOffset: "-2px",
50+
},
4551
})
4652

4753
const baseStyle = definePartsStyle({
@@ -50,49 +56,54 @@ const baseStyle = definePartsStyle({
5056
closeButton: baseStyleCloseButton,
5157
})
5258

59+
const getStatusStyles = (status: string, variant: string) => {
60+
const statusStyles = STATUS_COLORS[status][variant]
61+
62+
return {
63+
container: statusStyles,
64+
}
65+
}
66+
5367
const variantSubtle = definePartsStyle((props) => {
5468
const { status = "normal" } = props
5569
const defaultStyles = tagTheme.variants?.subtle(props)
56-
const statusStyles = STATUS_COLORS[status].subtle
70+
const statusStyles = getStatusStyles(status, "subtle")
5771
return {
5872
container: {
5973
...defaultStyles?.container,
6074
// Remove default dark mode styles
6175
_dark: {},
62-
...statusStyles,
63-
},
64-
label: {
65-
// ...warningLabelStyles
76+
...statusStyles.container,
6677
},
6778
}
6879
})
6980

7081
const variantSolid = definePartsStyle((props) => {
7182
const { status = "normal" } = props
7283
const defaultStyles = tagTheme.variants?.solid(props)
73-
const statusStyles = STATUS_COLORS[status].solid
84+
const statusStyles = getStatusStyles(status, "solid")
7485
return {
7586
container: {
7687
...defaultStyles?.container,
7788
// Remove default dark mode styles
7889
_dark: {},
79-
...statusStyles,
90+
...statusStyles.container,
8091
},
8192
}
8293
})
8394

8495
const variantOutline = definePartsStyle((props) => {
8596
const { status = "normal" } = props
8697
const defaultStyles = tagTheme.variants?.outline(props)
87-
const statusStyles = STATUS_COLORS[status].outline
98+
const statusStyles = getStatusStyles(status, "outline")
8899
return {
89100
container: {
90101
...defaultStyles?.container,
91102
boxShadow: "none",
92103
borderColor: $badgeColor.reference,
93104
// Remove default dark mode styles
94105
_dark: {},
95-
...statusStyles,
106+
...statusStyles.container,
96107
},
97108
}
98109
})

0 commit comments

Comments
 (0)