使用高级 Chakra UI 组件更快地构建 💎

了解更多
跳到内容
文档在线示例指南博客
赞助

焦点环

如何在 Chakra UI 中设置焦点状态的样式

焦点环用于标识页面上当前获得焦点的元素。虽然这对于可访问性很重要,但为每个组件设置焦点环样式可能会很繁琐。

Chakra UI 提供了focusRingfocusVisibleRing 样式属性,可以轻松设置焦点环的样式。focusRing 属性的值可以是 "outside"(外部)、"inside"(内部)或 "mixed"(混合)。

焦点环

此焦点环映射到 &:is(:focus, [data-focus]) CSS 选择器。

以下是如何从头开始为按钮设置焦点环样式

<chakra.button px="4" py="2" focusRing="outside">
  Click me
</chakra.button>

可见焦点环

此焦点环映射到 &:is(:focus-visible, [data-focus-visible]) CSS 选择器。

<chakra.button px="4" py="2" focusVisibleRing="outside">
  Click me
</chakra.button>

焦点环与可见焦点环的区别

可见焦点环的功能与焦点环类似,但有一个关键区别:它仅在元素通过键盘获得焦点时应用焦点指示器样式。

这确保了焦点环仅在通过键盘导航时可见,从而在不影响鼠标交互的情况下提高了可访问性。

内置焦点环

以下是支持的焦点环预览。

内部
外部
混合

自定义

环颜色

要更改特定组件的焦点环颜色,可以使用 focusRingColor 属性。

<Button focusRingColor="red.500">Click me</Button>

要全局更改焦点环的颜色,可以配置 focusRing 语义令牌。

const colors = defineSemanticTokens.colors({
  focusRing: {
    value: { base: "{colors.red.500}", _dark: "{colors.red.500}" },
  },
})

环宽度

要更改特定组件的焦点环宽度,可以使用 focusRingWidth 属性。

<Button focusRingWidth="2px">Click me</Button>

环样式

要更改特定组件的焦点环样式,可以使用 focusRingStyle 属性。

<Button focusRingStyle="dashed">Click me</Button>

上一页

动画样式

下一页

背景