NumberTicker 数字跳动
通用基础组件
数字跳动 — Chaos UI 的通用基础组件。
何时使用
需要数字跳动功能时使用本组件。
代码示例
基础用法
tsx
import { NumberTicker } from "@/components/ui/number-ticker"
export function Basic() {
return <NumberTicker />
}变体
tsx
{/* 展示 variant 变体 */}
<div className="flex flex-wrap items-center gap-3">
<NumberTicker variant="default">Default</NumberTicker>
<NumberTicker variant="primary">Primary</NumberTicker>
<NumberTicker variant="success">Success</NumberTicker>
<NumberTicker variant="warning">Warning</NumberTicker>
<NumberTicker variant="destructive">Destructive</NumberTicker>
</div>尺寸
tsx
{/* 尺寸对照 */}
<div className="flex flex-wrap items-center gap-3">
<NumberTicker size="sm">Sm</NumberTicker>
<NumberTicker size="default">Default</NumberTicker>
<NumberTicker size="lg">Lg</NumberTicker>
</div>样式变体
变体
| Variant | 说明 | 默认 |
|---|---|---|
default | 默认样式 | ✓ |
primary | 主要样式 | |
success | 成功状态 | |
warning | 警告状态 | |
destructive | 危险/删除样式 |
尺寸
| Size | 说明 | 默认 |
|---|---|---|
default | 默认尺寸 | ✓ |
sm | 小号 | |
lg | 大号 | |
xl | 超大 |
API / Props
NumberTicker
| Prop | Type | Default | 说明 |
|---|---|---|---|
className | string | — | 自定义样式类名 |
value | number | — | Target value |
duration | number | 1000 | Duration of animation in ms |
decimals | number | 0 | Decimal places to show |
prefix | string | — | Prefix text |
suffix | string | — | Suffix text |
easing | boolean | true | Use easing instead of linear |
| ...rest | React.ComponentProps<"span"> | — | 透传 <span> 原生属性 |
注意事项
- Client Component: 使用
"use client",依赖 React hooks/状态,需在客户端渲染。 - CVA 变体: 通过
class-variance-authority管理样式变体,类型安全。变体对象可导出复用。 - 原生属性: 继承所有
<span>原生 HTML 属性。
📘 完整交互式示例与控件属性请查看 Storybook 文档。