Semi Design 评分组件(Rating)使用指南

Semi Design 评分组件(Rating)使用指南

semi-design 🚀A modern, comprehensive, flexible design system and React UI library. 🎨 Provide more than 2800+ Design Tokens, easy to build your design system. Make Semi Design to Any Design. 🧑🏻‍💻 Design to Code in one click semi-design 项目地址: https://gitcode.com/gh_mirrors/se/semi-design

概述

评分组件(Rating)是 Semi Design 提供的一个用于展示和收集用户评分的输入类组件。它允许用户通过点击星星(或其他自定义图标)来表达对某事物的评价等级。该组件支持多种定制化选项,包括半星选择、自定义图标、尺寸调整等,能够满足不同场景下的评分需求。

基础使用

引入组件

首先需要从 Semi Design 中引入 Rating 组件:

import { Rating } from '@douyinfe/semi-ui';

基本用法

最简单的用法是显示默认的五星评分:

<Rating defaultValue={3} />

组件支持两种预设尺寸:default(默认)和small(小尺寸)。也可以通过传入数字来自定义尺寸。

<div>
    <Rating defaultValue={5}/>
    <Rating size='small' defaultValue={5}/>
</div>

进阶功能

半星评分

通过设置 allowHalf 属性可以启用半星评分功能。这个属性不仅支持0.5的增量,还可以显示任意小数评分。

<div>
    <Rating allowHalf defaultValue={3.5}/>
    <Rating allowHalf defaultValue={3.65} disabled/>
</div>

只读模式

设置 disabled 属性可以将评分组件设为只读状态,用户无法进行交互。

<Rating disabled defaultValue={3} />

清除功能

默认情况下,点击已选中的星星会清除评分。可以通过 allowClear 属性控制这一行为。

<div>
    <span>允许清除</span>
    <Rating allowClear={true} defaultValue={3}/>
    
    <span>禁止清除</span>
    <Rating allowClear={false} defaultValue={3}/>
</div>

自定义配置

添加描述文案

可以配合评分显示相应的描述文字,提升用户体验。

const [value, setValue] = useState(0);
const desc = ['很差', '较差', '一般', '良好', '优秀'];

return (
    <div>
        <span>您的评价: {value ? <span>{desc[value - 1]}</span> : ''}</span>
        <Rating tooltips={desc} onChange={setValue} value={value} />
    </div>
);

完全自定义

Rating 组件支持高度自定义,包括:

  • 自定义评分图标(支持使用 Semi 图标库或其他 React 节点)
  • 自定义评分数量
  • 自定义尺寸和样式
<div>
    {/* 使用心形图标 */}
    <Rating character={<IconLikeHeart />} defaultValue={3}/>
    
    {/* 自定义尺寸的心形图标 */}
    <Rating size={48} allowHalf character={<IconLikeHeart />} defaultValue={3}/>
    
    {/* 使用文字作为评分符号 */}
    <Rating character="赞" size={18} defaultValue={3}/>
    
    {/* 10分制评分 */}
    <Rating count={10} defaultValue={6}/>
</div>

无障碍访问

Rating 组件遵循 WAI-ARIA 规范,确保残障用户也能正常使用:

  1. ARIA 属性

    • aria-checked 表示当前选中状态
    • aria-posinset 表示当前项在列表中的位置
    • aria-setsize 表示评分项总数
  2. 键盘导航

    • 使用方向键(上/下/左/右)在评分项间导航
    • 初始焦点会根据当前值自动设置
  3. 语义化

    • 支持通过 aria-label 或字符串类型的 character 属性提供语义化描述

设计规范

Rating 组件遵循 Semi Design 的设计系统,包括:

  • 尺寸规范:提供标准和小两种预设尺寸,也支持自定义数值尺寸
  • 颜色系统:使用主题色表示选中状态,可通过样式覆盖
  • 交互状态:包含正常、悬停、选中、禁用等多种状态

最佳实践

  1. 明确评分标准:配合文字说明或提示,让用户清楚每个等级代表的含义
  2. 合理使用半星:在需要更精确评分的场景使用半星功能
  3. 及时反馈:评分变化后应立即给予视觉或文字反馈
  4. 移动端适配:确保评分组件在移动设备上有足够的点击区域

通过以上指南,开发者可以充分利用 Semi Design 的 Rating 组件构建出美观、易用且无障碍的评分功能。

semi-design 🚀A modern, comprehensive, flexible design system and React UI library. 🎨 Provide more than 2800+ Design Tokens, easy to build your design system. Make Semi Design to Any Design. 🧑🏻‍💻 Design to Code in one click semi-design 项目地址: https://gitcode.com/gh_mirrors/se/semi-design

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廉娴鹃Everett

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值