# ibest-ui
**Repository Path**: ibestservices/ibest-ui
## Basic Information
- **Project Name**: ibest-ui
- **Description**: IBest-UI是一个轻量、简单易用、可定制主题、支持深色模式和浅色模式的鸿蒙开源UI组件库, 包含 Button、Calendar、Form、Field、Picker、Popup、Toast、Dialog、ImageCropper 等50+个优质组件。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://ibestui.ibestservices.com/
- **GVP Project**: No
## Statistics
- **Stars**: 33
- **Forks**: 10
- **Created**: 2024-04-16
- **Last Updated**: 2025-07-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
IBest-UI
轻量、可定制的 HarmonyOS NEXT 组件库
文档
·
三方库中心仓
---
## 介绍
IBest-UI由 安徽百得思维信息科技有限公司
开源,是一个**轻量、简单易用、可定制主题、支持深色模式和浅色模式**的鸿蒙开源UI组件库, 包含 Button、Calendar、Form、Field、Picker、Popup、Toast、Dialog、ImageCropper 等50+个优质组件,上手简单,使用方便,可大大提高鸿蒙开发者的开发效率。
目前 ibestservices 官方 提供了 V1 和 V2 版本, 当前为状态管理 **V1** 版本,开发者可根据自己项目使用的**状态管理版本**选择对应的版本进行开发。
## 特性
- 🚀 50+ 个高质量组件,覆盖移动端主流场景
- 💪 单元测试覆盖率超过 90%,提供稳定性保障
- 📖 提供丰富的中文文档和组件示例
- 🍭 支持主题定制,内置 100+ 个主题变量
- 🍭 支持元服务
- 🍭 支持深色模式
- 🌍 支持国际化
## 体验预览
升级到 HarmonyOS NEXT 的手机, 可在应用商店搜索 `best`、`ibest` 关键字, 下载第一个名为 `IBest-UI` 的应用, 即可体验。
## 下载安装
```ts
ohpm install @ibestservices/ibest-ui
```
OpenHarmony ohpm 环境配置等更多内容,请参考[如何安装 OpenHarmony ohpm 包](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_har_usage.md)
## 组件介绍
### 基础组件
| 组件 | 介绍 | |
|:----------|:--------------------------------------|---------------------------------------------------------------------------------------|
| Button 按钮 | 按钮用于触发一个操作,如提交表单。 | 文档 |
| Cell 单元格 | 单元格为列表中的单个展示项。 | 文档 |
| Icon 图标 | 基于字体的图标集,可以通过 IBestIcon 组件使用。 | 文档 |
| Popup 弹出层 | 弹出层容器,用于展示弹窗、信息提示等内容,支持多个弹出层叠加展示。 | 文档 |
| Toast 轻提示 | 在页面中间弹出黑色半透明提示,用于消息通知、加载提示、操作结果提示等场景。 | 文档 |
### 表单组件
| 组件 | 介绍 | |
|:----------------------|:-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
| Calendar 日历 | 日历用于选择单个、多个日期或日期范围。 | 文档 |
| CarInput 车牌输入框 | 用于输入车牌号码。 | 文档 |
| CarKeyboard 车牌键盘 | 带网格的输入框组件,通常与车牌输入框组件或其它自定义输入框配合使用。 | 文档 |
| Cascader 级联选择器 | 级联选择框,用于多层级数据的选择,典型场景为省市区选择。 | 文档 |
| Checkbox 复选框 | 在一组备选项中进行多选。 | 文档 |
| DatePicker 日期选择 | 日期选择器,用于选择年、月、日,通常与弹出层组件配合使用。 | 文档 |
| DateTimePicker 日期时间选择 | 日期时间选择器,用于选择年、月、日、时、分、秒,通常与弹出层组件配合使用。 | 文档 |
| Field 输入框 | 用户可以在文本框内输入或编辑文字。 | 文档 |
| Form 表单 | 用于数据录入、校验,支持输入框、单选框、复选框、文件上传等类型,需要与 Field 输入框 组件搭配使用。 | 文档 |
| NumberKeyboard 数字键盘 | 虚拟数字键盘,可以配合密码输入框组件或自定义的输入框组件使用。 | 文档 |
| PasswordInput 密码输入框 | 带网格的输入框组件,可以用于输入密码、短信验证码等场景,通常与数字键盘组件配合使用。 | 文档 |
| Picker 选择器 | 提供多个选项集合供用户选择,支持单列选择、多列选择和级联选择,通常与弹出层组件配合使用。 | 文档 |
| PickerGroup 选择器组 | 用于结合多个 Picker 选择器组件,在一次交互中完成多个值的选择。 | 文档 |
| Radio 单选框 | 在一组备选项中进行单选。 | 文档 |
| Rate 评分 | 用于对事物进行评级操作。 | 文档 |
| Search 搜索 | 用于搜索场景的输入框组件。 | 文档 |
| Slider 滑块 | 滑动输入条,用于在给定的范围内选择一个值。 | 文档 |
| Signature 签名 | 用于签名场景的组件,基于 Canvas 实现。 | 文档 |
| Stepper 步进器 | 步进器由增加按钮、减少按钮和输入框组成,用于在一定范围内输入、调整数字。 | 文档 |
| Switch 开关 | 用于在打开和关闭状态之间进行切换。 | 文档 |
| TimePicker 时间选择 | 日期选择器,用于选择年、月、日,通常与弹出层组件配合使用。 | 文档 |
| Uploader 文件上传 | 用于将本地的图片或文件上传至服务器,并在上传过程中展示预览图和上传状态。目前 Uploader 组件不包含将文件上传至服务器的接口逻辑,该步骤需要自行实现。 | 文档 |
### 反馈组件
| 组件 | 介绍 | |
|:------------------|:-----------------------------------------------------|---------------------------------------------------------------------------------------------|
| ActionSheet 动作面板 | 底部弹起的模态面板,包含与当前情境相关的多个选项。 | 文档 |
| Dialog 弹出框 | 弹出模态框,常用于消息提示、消息确认,或在当前页面内完成特定的交互操作。支持组件调用和函数调用两种方式。 | 文档 |
| DropdownMenu 下拉菜单 | 向下弹出的菜单列表。 | 文档 |
| FloatBubble 浮动气泡 | 悬浮在页面边缘的可点击气泡。 | 文档 |
| Guide 引导 | 分步引导用户了解产品功能的气泡组件,用来引导用户并介绍产品。 | 文档 |
| Loading 加载 | 加载图标,用于表示加载中的过渡状态。 | 文档 |
| Notify 消息提示 | 在页面顶部展示消息提示。 | 文档 |
| PullRefresh 下拉刷新 | 轻量级, 用于提供下拉刷新的交互操作。 | 文档 |
| SwipeCell 滑动单元格 | 可以左右滑动来展示操作按钮的单元格组件。 | 文档 |
### 展示组件
| 组件 | 介绍 | |
|:---------------------|:---------------------------------------------|-----------------------------------------------------------------------------------------------|
| Badge 徽标 | 在右上角展示徽标数字或小红点。 | 文档 |
| CircleProgress 环形进度条 | 圆环形的进度条组件。 | 文档 |
| Collapse 折叠面板 | 将一组内容放置在多个折叠面板中,点击面板的标题可以展开或收缩其内容。 | 文档 |
| CountDown 倒计时 | 用于实时展示倒计时数值,支持毫秒精度。 | 文档 |
| CountTo 数字滚动 | 用于需要滚动数字到某一个值的场景,目标要求是一个递增的值。 | 文档 |
| Divider 分割线 | 用于将内容分隔为多个区域。 | 文档 |
| Empty 空状态 | 空状态时的占位提示。 | 文档 |
| Highlight 高亮文本 | 高亮指定文本内容。 | 文档 |
| ImagePreview 图片预览 | 图片放大预览。 | 文档 |
| NoticeBar 通知栏 | 用于循环播放展示一组消息通知。 | 文档 |
| Popover 气泡弹出框 | 弹出式的气泡菜单。 | 文档 |
| Progress 进度条 | 用于展示操作的当前进度。 | 文档 |
| Skeleton 骨架屏 | 用于在内容加载过程中展示一组占位图形。 | 文档 |
| Steps 步骤条 | 用于展示操作流程的各个环节,让用户了解当前的操作在整体流程中的位置。 | 文档 |
| Table 表格 | 用于展示多条结构类似的数据。 | 文档 |
| Tag 标签 | 用于标记关键词和概括主要内容。 | 文档 |
| TextEllipsis 文本省略 | 对长文本进行省略,支持展开/收起。 | 文档 |
| Watermark 水印 | 在页面上添加特定的文字或图案作为水印,可用于防止信息盗用。 | 文档 |
### 导航组件
| 组件 | 介绍 | |
|:--------------|:-------------------------------|-------------------------------------------------------------------------------------------|
| NavBar 导航栏 | 为页面提供导航功能,常用于页面顶部。 | 文档 |
| Pagination 分页 | 数据量过多时,采用分页的形式将数据分隔,每次只加载一个页面。 | 文档 |
| SideBar 侧边导航 | 垂直展示的导航栏,用于在不同的内容区域之间进行切换。 | 文档 |
| Tab 标签页 | 选项卡组件,用于在不同的内容区域之间进行切换。 | 文档 |
### 业务组件
| 组件 | 介绍 | |
|:---------------------|:------------------|:----------------------------------------------------------------------------------------------|
| CanvasDrawer 画布绘制 | 用于绘制海报、图片加水印等场景。 | 文档 |
| ColorPicker 颜色选择 | 用于选择颜色。 | 文档 |
| ContactAddress 联系人地址 | 用于选择联系人地址, 可粘贴识别。 | 文档 |
| ImageCropper 图片裁剪 | 用于裁剪图片。 | 文档 |
## 需要权限
ohos.permission.INTERNET
## 官方生态
| 项目 | 描述 | |
|:-------------------------|:-----------------------------------------------------------------|:----------------------------------------------------------------------------------------------------|
| @ibestservices/area-data | 中国省市区数据,适用于鸿蒙 ArkUI 的 TextPicker 和 IBest-UI 的 IBestCascader 等组件。 | 地址 |
| @ibestservices/ucharts | 一个类型丰富、高性能、可扩展、支持主题定制的图表库。 | 地址 |
## 链接
- [Github](https://github.com/ibestservices/ibest-ui)
- [Gitee](https://gitee.com/ibestservices/ibest-ui)
- [更新日志](https://github.com/ibestservices/ibest-ui/releases)
## 交流QQ群
官方QQ群 953492584

## 微信群
添加IBest-UI助手, 备注 "鸿蒙开发"

## 约束与限制
在下述版本验证通过:
```text
DevEco Studio 5.1.1 Release
Build #DS-233.14475.28.36.511823
构建版本:5.1.1.823, built on July 12, 2025
Runtime version: 17.0.12+1-b1087.25 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 15.5
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 12
Metal Rendering is ON
Registry:
idea.plugins.compatible.build=IC-233.14475.28
Non-Bundled Plugins:
com.harmonyos.cases (1.0.10-Alpha)
com.huawei.agc.ecomarket.component.plugin (233.14475.28)
com.alibabacloud.intellij.cosy (2.5.15)
```
## 开源协议
本项目基于 Apache License 2.0,请自由地享受和参与开源。
## 贡献者
感谢以下同学对IBest-UI做的贡献: