Rating

评分组件,支持半星、hover 预览、点击清零与键盘操作,遵循 APG Slider 模式。

设计文档

如何引入

import { Rating } from '@chenzy-design/svelte';

基础用法

半星评分,受控值绑定。

评分:2.5

基础评分

可交互评分与只读半星展示。

评分:3
半星只读展示

允许清除

allowClear 控制再次点击当前值是否清零。

允许清除(再次点击当前值清零):3
禁止清除:3

只读与禁用

readonly 仅展示分值,disabled 置灰且不可交互。

只读:展示分值,不可交互
禁用:置灰且不可交互

自定义字符与提示

character 自定义字符/图标,tooltips 提供逐项提示。

自定义字符 + 逐项提示:一般
A AA AA AA AA A
自定义字符(字母):3

尺寸与数量

size 调整尺寸,count 自定义评分项数量。

小号:3
大号:3
十分制(count=10):7

可交互半星与自定义尺寸

allowHalf 可交互半星选值;size 传 number 配合自定义字符实现任意尺寸。

可交互半星:2.5
size=40 + 自定义字符 + 半星

API 参考

Rating

Props

属性说明类型默认值
value受控值;提供则为受控numberundefined
defaultValue非受控初始值number0
count图标总数number5
allowHalf允许半星(步进 0.5)booleanfalse
allowClear点击当前值清零booleantrue
character自定义字符/图标;不传则默认星形string | Snippet<[{index,state,value}]>undefined
size'small'|'default'|'large'|numberdefault
disabledbooleanfalse
readonlybooleanfalse
status'default'|'warning'|'error'default
tooltips逐项提示文案(native title),长度应等于 countstring[]undefined
autoFocus挂载时聚焦booleanfalse
namestringundefined
id根元素 id,关联 ariastring自动生成
ariaLabel无可视标签时的辅助名stringi18n 默认
style根元素内联样式,与内部 token 样式合并stringundefined
preventScrollautoFocus 聚焦时是否阻止滚动booleanundefined
onChange(v: number) => voidundefined
onHoverChange悬停预览值变化;移出时为当前 value(v: number) => voidundefined
onFocus根元素获得焦点() => voidundefined
onBlur根元素失去焦点() => voidundefined
onKeyDown按键事件(内部处理后透传)(e: KeyboardEvent) => voidundefined

Accessibility

ARIA roleslider
键盘交互ArrowRight/UpArrowLeft/DownHomeEndDeleteBackspace
  • role=slider + aria-valuenow/valuemin/valuemax/valuetext
  • hover 预览为纯本地状态,不影响受控值
  • allowHalf 时按指针落在星左/右半决定 .5
  • disabled→aria-disabled,readonly→aria-readonly,error→aria-invalid

设计变量

变量默认值用法
--cd-rating-transition-duration var(--cd-motion-duration-fast)星填充色过渡动画时长(组件消费)
--cd-rating-transition-easing var(--cd-motion-ease-standard)星填充色过渡动画曲线(组件消费)