apps/docs/content/docs/cn/react/releases/v3-0-0-beta-2.mdx
此版本引入了六个重要的新组件,改进了 Select 组件的 API,并包含多项优化与 bug 修复。
<DocsImage src="https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/docs/versions/[email protected]" darkSrc="https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/docs/versions/[email protected]" alt="HeroUI v3 Beta 2" />
升级到最新版本:
<Tabs items={["npm", "pnpm", "yarn", "bun"]}>
<Tab value="npm">
bash npm i @heroui/styles@beta @heroui/react@beta
</Tab>
<Tab value="pnpm">
bash pnpm add @heroui/styles@beta @heroui/react@beta
</Tab>
<Tab value="yarn">
bash yarn add @heroui/styles@beta @heroui/react@beta
</Tab>
<Tab value="bun">
bash bun add @heroui/styles@beta @heroui/react@beta
</Tab>
</Tabs>
本次发布引入了 6 个 新的基础组件:
<ComponentPreview name="alert-dialog-default" />
<ComponentPreview name="combo-box-default" />
<ComponentPreview name="dropdown-default" />
<ComponentPreview name="modal-default" />
<ComponentPreview name="input-group-with-icon-prefix-and-text-suffix" />
<ComponentPreview name="number-field-basic" />
增强了 CSS 变体与主题系统,提供更好的可定制性:
动效偏好:
motion-safe 变体,可与 data-reduce-motion="true" 属性配合使用motion-reduce 现在支持祖先元素与伪元素深色模式:
data-theme="dark" 属性选择器现在优先于 prefers-color-scheme主题变量:
:root、.light、.default、[data-theme="light"]、[data-theme="default"])Select 组件的 API 已经过改进,与其他组件保持一致。Content 子组件已重命名为 Popover。
之前:
<Select>
<Select.Trigger>
<Select.Value />
<Select.Indicator />
</Select.Trigger>
<Select.Content>
<ListBox>
</ListBox>
</Select.Content>
</Select>
之后:
<Select>
<Select.Trigger>
<Select.Value />
<Select.Indicator />
</Select.Trigger>
<Select.Popover>
<ListBox>
</ListBox>
</Select.Popover>
</Select>
Chip 组件的尺寸已更新,以提升一致性:
sm):px-1 py-0 text-xsmd):text-xs(现在显式设置)lg):px-3 py-1 text-sm font-mediumSeparator 组件现在能自动检测是否被放置在 surface 组件中(使用 bg-surface),并应用合适的分隔线颜色以获得更好的可见性。同时新增了 isOnSurface prop,用于手动控制。
新增的计算变量:
--color-separator-on-surface:通过 color-mix 自动生成的计算变量,确保分隔线在 surface 背景上仍然清晰可见。与其他计算变量一样,可在你的主题中覆盖它。用法:
<div className="bg-surface">
<Separator isOnSurface />
</div>
当 Separator 检测到外层存在 SurfaceContext Provider(由 Card、Alert、Popover、Modal 等组件提供)时,isOnSurface prop 会自动启用。
你也可以直接在 Tailwind 类中使用这个计算变量:
<div className="bg-surface">
<div className="h-px w-full bg-separator-on-surface" />
</div>
prefers-reduced-motion为与 ComboBox、Dropdown 等组件保持一致,Select.Content 子组件已重命名为 Select.Popover。
迁移:
将所有 Select.Content 替换为 Select.Popover:
// Before
<Select.Content>
<ListBox>...</ListBox>
</Select.Content>
// After
<Select.Popover>
<ListBox>...</ListBox>
</Select.Popover>
类型导入:
// Before
import type { SelectContentProps } from "@heroui/react"
// After
import type { SelectPopoverProps } from "@heroui/react"
命名导出:
// Before
import { SelectContent } from "@heroui/react"
// After
import { SelectPopover } from "@heroui/react"
为与 Separator 组件名保持一致,所有与 divider 相关的 CSS 变量与工具类均已重命名为 separator。
CSS 变量:
/* Before */
border-bottom: 1px solid var(--divider);
/* After */
border-bottom: 1px solid var(--separator);
Tailwind 工具类:
// Before
<div className="bg-divider" />
<div className="border-divider" />
// After
<div className="bg-separator" />
<div className="border-separator" />
主题覆盖:
如果你的自定义主题中覆盖了 separator 相关变量,请同步更新:
/* Before */
:root {
--divider: oklch(92% 0.004 286.32);
}
.dark {
--divider: oklch(22% 0.006 286.033);
}
/* After */
:root {
--separator: oklch(92% 0.004 286.32);
}
.dark {
--separator: oklch(22% 0.006 286.033);
}
@media (hover: hover) 媒体查询中。同时通过移除不必要的 ="true" data 属性值选择器,简化了相关代码。感谢每一位为本次发布做出贡献的开发者!
<PRContributors />