Go to file
wangchangqi 902d05b05a (chore)更新Ura Components的README 2023-01-18 14:41:01 +08:00
.husky (build)添加git提交前执行pre-commit钩子的husky和lint-staged工具 2022-11-07 09:59:46 +08:00
.vscode add prettier tool 2022-08-16 15:53:02 +08:00
bin TASK: #104293 - add clock widgets for homescreen 2022-10-04 09:11:37 +08:00
public TASK: #113126 - add gauss blur component 2022-09-27 15:18:53 +08:00
src Merge branch 'master' of ssh://172.20.184.160:7999/yr/star-web-components 2023-01-14 16:57:28 +08:00
tasks (build)import wireit build tool 2022-12-09 10:43:31 +08:00
.gitignore (build)import wireit build tool 2022-12-09 10:43:31 +08:00
.prettierignore (improve)integrate base-style to base-element 2022-09-24 15:27:51 +08:00
.prettierrc.yaml fix filenames 2022-08-18 20:42:28 +08:00
CHANGELOG.md TASK: #115114 - 添加分页管理功能 2022-10-11 13:43:51 +08:00
README.md (chore)更新Ura Components的README 2023-01-18 14:41:01 +08:00
index.html (improve) update button 2022-09-20 15:39:00 +08:00
package.json (improve)将时钟组件的图片从svg替换成png,提升抗锯齿效果。 2022-12-22 16:14:52 +08:00
pnpm-lock.yaml add prettier tool 2022-08-16 15:53:02 +08:00
tsconfig-all.json add build widgets script and format code 2022-10-07 11:20:36 +08:00
tsconfig.json TASK:#109167 增加手势框架和星光组件基类代码,修复代码使其通过编译。 2022-09-19 09:38:45 +08:00
tsconfig.node.json init vite-lit project 2022-08-09 11:11:54 +08:00
vite.config.ts (chore) format:prettier code 2022-09-19 09:45:47 +08:00

README.md

Ura Components 简介

Ura Components 是一套构建星光麒麟操作系统界面的组件式 UI 框架,可支撑开发者高效地构建跨端应用的 UI 界面。

拉取代码

git clone https://gitee.com/openkylin/ura-components.git

解决需求

  1. 代码复用,提升界面开发效率,支撑系统 UI 的设计落地;
  2. 跨端运行,提供响应式 UI 解决方案,做到一次开发多端部署;
  3. 开发生态,为以后的开发者在星光麒麟上开发应用提供方法和工具;

自研原因

  1. 普通的 UI 组件内聚程度较低、组合灵活度低。
  2. 与操作系统功能深度融合,提供面向系统功能的组件支持;
  3. 跨设备响应式解决方案兼容多个平台手机、平板、腕表、PC 等)上的 UI 表现。

架构概述

┌─────────────────────────────────────────────────────────────────────────┐
│            ┌─────────┐ ┌─────────────────────────────────┐ ┌──────────┐ │
│            │         │ │          ┌─────────┐ ┌─────────┐│ │          │ │
│            │  Actor  │ │Composite │  Actor  │ │  Actor  ││ │          │ │
│            │Component│ │Component │Component│ │Component││ │          │ │
│            │         │ │          └─────────┘ └─────────┘│ │          │ │
│            └─────────┘ └─────────────────────────────────┘ │Functional│ │
│            ┌─────────┐ ┌─────────────────────────────────┐ │Component │ │
│            │         │ │          ┌─────────┐ ┌─────────┐│ │          │ │
│            │  Actor  │ │Composite │Composite│ │  Actor  ││ │          │ │
│     Ura    │Component│ │Component │Component│ │Component││ │          │ │
│ Components │         │ │          └─────────┘ └─────────┘│ │          │ │
│            └─────────┘ └─────────────────────────────────┘ └──────────┘ │
│            ┌──────────────────────────────────────────────────────────┐ │
│            │         ┌─────────┐ ┌──────┐ ┌──────┐ ┌────────────────┐ │ │
│            │         │ Gesture │ │ Blur │ │ L10n │ │ Press Feedback │ │ │
│            │  Base   └─────────┘ └──────┘ └──────┘ └────────────────┘ │ │
│            │ Element ┌──────────┐ ┌─────────────────┐ ┌─────────────┐ │ │
│            │         │ Darkmode │ │ Adaptive Layout │ │ ...         │ │ │
│            │         └──────────┘ └─────────────────┘ └─────────────┘ │ │
│            └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│            ┌─────────────────┐ ┌────────────┐ ┌────────────┐ ┌────────┐ │
│ LitElement │ ReactiveElement │ │ Decorators │ │ Directives │ │ ...    │ │
│            └─────────────────┘ └────────────┘ └────────────┘ └────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│      Web       ┌────────────┐ ┌───────────────┐ ┌─────────────────────┐ │
│   Component    │ Shadow DOM │ │ HTML Template │ │ HTML Custom Element │ │
│ Specification  └────────────┘ └───────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘

支持功能包括

  • 深色模式
  • 图标字体
  • 国际化
  • 按压反馈
  • 复杂手势交互
  • 侵入性样式修改

组件分类

目前分为三类组件:

  • 原子组件
    • 特点:可独立执行、单一功能
    • 如:按钮、单选框、复选框、开关等
  • 复合组件
    • 特点:由原子组件及由原子组件组成的复合组件之间的组合或嵌套
    • 如:组、行、块、窗等
  • 功能卡片组件
    • 特点:结合系统硬件能力和接口,实现某一块功能
    • 如:解锁卡片、电池卡片、音乐卡片等