├── .github
└── ISSUE_TEMPLATE
│ ├── bug-report.yml
│ └── feature-report.yml
├── .gitignore
├── App.vue
├── LICENSE
├── README.md
├── components
└── demo.vue
├── index.html
├── main.js
├── manifest.json
├── packages
├── LICENSE
├── components
│ ├── iui-action-sheet
│ │ └── iui-action-sheet.vue
│ ├── iui-avatar
│ │ ├── assets
│ │ │ └── default.js
│ │ └── iui-avatar.vue
│ ├── iui-badge
│ │ └── iui-badge.vue
│ ├── iui-button
│ │ ├── iui-button.vue
│ │ └── style
│ │ │ └── token.scss
│ ├── iui-card
│ │ └── iui-card.vue
│ ├── iui-cell
│ │ └── iui-cell.vue
│ ├── iui-checkbox-group
│ │ └── iui-checkbox-group.vue
│ ├── iui-checkbox
│ │ └── iui-checkbox.vue
│ ├── iui-collapse-group
│ │ └── iui-collapse-group.vue
│ ├── iui-collapse
│ │ └── iui-collapse.vue
│ ├── iui-dialog
│ │ └── iui-dialog.vue
│ ├── iui-divider
│ │ └── iui-divider.vue
│ ├── iui-ellipsis
│ │ └── iui-ellipsis.vue
│ ├── iui-form-item
│ │ └── iui-form-item.vue
│ ├── iui-form
│ │ └── iui-form.vue
│ ├── iui-grid-item
│ │ └── iui-grid-item.vue
│ ├── iui-grid-row
│ │ └── iui-grid-row.vue
│ ├── iui-grid
│ │ └── iui-grid.vue
│ ├── iui-icon
│ │ └── iui-icon.vue
│ ├── iui-image
│ │ └── iui-image.vue
│ ├── iui-input
│ │ └── iui-input.vue
│ ├── iui-list
│ │ ├── iui-list.vue
│ │ └── style.scss
│ ├── iui-mask
│ │ └── iui-mask.vue
│ ├── iui-navbar
│ │ └── iui-navbar.vue
│ ├── iui-noticebar
│ │ └── iui-noticebar.vue
│ ├── iui-notify
│ │ └── iui-notify.vue
│ ├── iui-page
│ │ └── iui-page.vue
│ ├── iui-pagination
│ │ └── iui-pagination.vue
│ ├── iui-picker
│ │ └── iui-picker.vue
│ ├── iui-popover
│ │ └── iui-popover.vue
│ ├── iui-popup
│ │ └── iui-popup.vue
│ ├── iui-progress
│ │ └── iui-progress.vue
│ ├── iui-radio-group
│ │ └── iui-radio-group.vue
│ ├── iui-radio
│ │ └── iui-radio.vue
│ ├── iui-rate
│ │ └── iui-rate.vue
│ ├── iui-search
│ │ └── iui-search.vue
│ ├── iui-slider
│ │ └── iui-slider.vue
│ ├── iui-space
│ │ └── iui-space.vue
│ ├── iui-spin
│ │ └── iui-spin.vue
│ ├── iui-statistic
│ │ └── iui-statistic.vue
│ ├── iui-stepper
│ │ └── iui-stepper.vue
│ ├── iui-sticky
│ │ └── iui-sticky.vue
│ ├── iui-swipe-action
│ │ └── iui-swipe-action.vue
│ ├── iui-swiper
│ │ └── iui-swiper.vue
│ ├── iui-switch
│ │ └── iui-switch.vue
│ ├── iui-tabbar
│ │ └── iui-tabbar.vue
│ ├── iui-tabs
│ │ └── iui-tabs.vue
│ ├── iui-tag
│ │ └── iui-tag.vue
│ ├── iui-textarea
│ │ └── iui-textarea.vue
│ ├── iui-toast
│ │ └── iui-toast.vue
│ └── iui-translation
│ │ └── iui-translation.vue
├── helper
│ ├── base64.js
│ ├── is.js
│ ├── rect.js
│ └── validator.js
├── package.json
├── readme.md
└── style
│ ├── anim.scss
│ ├── color
│ ├── colors.scss
│ ├── global.scss
│ └── variables.scss
│ ├── index.scss
│ ├── theme.scss
│ └── theme
│ ├── common.scss
│ ├── h5.scss
│ ├── icon.scss
│ └── mp.scss
├── pages.json
├── pages
├── components
│ ├── actionsheet.vue
│ ├── avatar.vue
│ ├── badge.vue
│ ├── button.vue
│ ├── card.vue
│ ├── cell.vue
│ ├── checkbox.vue
│ ├── collapse.vue
│ ├── dialog.vue
│ ├── divider.vue
│ ├── ellipsis.vue
│ ├── form.vue
│ ├── grid.vue
│ ├── icon.vue
│ ├── image.vue
│ ├── input.vue
│ ├── mask.vue
│ ├── navbar.vue
│ ├── noticebar.vue
│ ├── notify.vue
│ ├── pagination.vue
│ ├── picker.vue
│ ├── popover.vue
│ ├── popup.vue
│ ├── progress.vue
│ ├── radio.vue
│ ├── rate.vue
│ ├── search.vue
│ ├── slider.vue
│ ├── space.vue
│ ├── spin.vue
│ ├── statistic.vue
│ ├── stepper.vue
│ ├── sticky.vue
│ ├── swipeaction.vue
│ ├── swiper.vue
│ ├── switch.vue
│ ├── tabbar.vue
│ ├── tabs.vue
│ ├── tag.vue
│ ├── textarea.vue
│ └── toast.vue
└── index
│ └── index.vue
├── static
├── logo.jpg
└── logo.png
├── theme.json
├── uni.promisify.adaptor.js
└── uni.scss
/.github/ISSUE_TEMPLATE/bug-report.yml:
--------------------------------------------------------------------------------
1 | name: 反馈 Bug
2 | description: 反馈问题帮助我们改进。
3 | title: "[组件名称] 问题描述"
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | # 欢迎你的参与
9 | iui-design 的 Issue 列表接受 bug 报告或是新功能请求。
10 |
11 | 在发布一个 Issue 前,请确保:
12 | - 在 常见问题、更新日志 和 旧Issue列表 中搜索过你的问题。(你的问题可能已有人提出,也可能已在最新版本中被修正)
13 | - 如果你发现一个已经关闭的旧 Issue 在最新版本中仍然存在,不要在旧 Issue 下面留言,请建一个新的 issue。
14 |
15 | - type: input
16 | id: version
17 | attributes:
18 | label: iui-design 版本
19 | description: 请检查在最新项目版本中能否重现此 issue。
20 | placeholder: 请填写
21 | validations:
22 | required: true
23 |
24 | - type: textarea
25 | id: reproduceSteps
26 | attributes:
27 | label: 重现步骤
28 | description: 请清晰的描述重现该 Issue 的步骤,这能帮助我们快速定位问题。没有清晰重现步骤将不会被修复,标有 'need reproduction' 的 Issue 在 7 天内不提供相关步骤,将被关闭。
29 | placeholder: 请填写
30 |
31 | - type: textarea
32 | id: expect
33 | attributes:
34 | label: 期望结果
35 | placeholder: 请填写
36 |
37 | - type: textarea
38 | id: actual
39 | attributes:
40 | label: 实际结果
41 | placeholder: 请填写
42 |
43 | - type: input
44 | id: frameworkVersion
45 | attributes:
46 | label: 框架版本
47 | placeholder: uni-app(3.8.7.20230703)
48 |
49 | - type: input
50 | id: browsersVersion
51 | attributes:
52 | label: 浏览器版本
53 | placeholder: Chrome(8.213.231.123)
54 |
55 | - type: input
56 | id: systemVersion
57 | attributes:
58 | label: 系统版本
59 | placeholder: IOS(16.3)
60 |
61 | - type: input
62 | id: platform
63 | attributes:
64 | label: 运行平台
65 | placeholder: 微信小程序
66 |
67 | - type: textarea
68 | id: remarks
69 | attributes:
70 | label: 补充说明
71 | description: 可以是遇到这个 bug 的业务场景、上下文等信息。
72 | placeholder: 请填写
73 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature-report.yml:
--------------------------------------------------------------------------------
1 | name: 新功能
2 | description: 进行新功能反馈。
3 | title: "[组件名称] 问题描述"
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | # 欢迎你的参与
9 | iui-design 的 Issue 列表接受 bug 报告或是新功能请求。
10 |
11 | 在发布一个 Issue 前,请确保:
12 | - 在 常见问题、更新日志 和 旧Issue列表 中搜索过你的问题。(你的问题可能已有人提出,也可能已在最新版本中被修正)
13 | - 如果你发现一个已经关闭的旧 Issue 在最新版本中仍然存在,不要在旧 Issue 下面留言,请建一个新的 issue。
14 |
15 | - type: textarea
16 | id: functionContent
17 | attributes:
18 | label: 这个功能解决了什么问题
19 | description: 请详尽说明这个需求的用例和场景。最重要的是:解释清楚是怎样的用户体验需求催生了这个功能上的需求。我们将考虑添加在现有 API 无法轻松实现的功能。新功能的用例也应当足够常见。
20 | placeholder: 请填写
21 | validations:
22 | required: true
23 |
24 | - type: textarea
25 | id: functionalExpectations
26 | attributes:
27 | label: 你建议的方案是什么
28 | placeholder: 请填写
29 | validations:
30 | required: true
31 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .hbuilderx
3 | unpackage
4 | .github
5 | .DS_Store
--------------------------------------------------------------------------------
/App.vue:
--------------------------------------------------------------------------------
1 |
14 |
15 |
104 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
iui Design
9 |
10 |
11 |
12 |
13 | 基于 Uni-app 的 Vue3 UI 组件库。
14 |
15 | [](https://github.com/yuncishuzi/iui-design/blob/master/LICENSE)
16 |
17 |
18 |
19 | ### 简介
20 |
21 | iui Design 是一款基于 `uni-app` 的前端组件库,它提供了一套可复用、易扩展、低耦合的移动端 UI 组件库,帮助开发者快速搭建移动应用。
22 |
23 | 设计灵感来自 [ArcoDesign](https://arco.design/),感谢巨人!
24 |
25 | ### 预览
26 |
27 | 请使用微信搜索小程序 `iui Design` 进行体验。
28 |
29 | 移动端 H5:[预览地址](https://iui.iyunci.cn)
30 |
31 | ### 交流反馈
32 |
33 | [iui Design 交流群](https://iyunci.cn/design/uni/feedback.html)
34 |
35 | ### 版权信息
36 |
37 | iui Design 遵循 [Apache-2.0](https://github.com/yuncishuzi/iui-design/blob/master/LICENSE) 开源协议,意味着您无需支付任何费用,也无需授权,即可将 iui Design 应用到您的产品中。
38 |
39 | 这并不意味着您可以将 iui Design 应用到非法的领域,比如涉及赌博,暴力等方面。如因此产生纠纷或法律问题,iui Design 相关方及云磁数字不承担任何责任。
40 |
41 | ### 安装
42 |
43 | 使用前,请确保你已经学习过 `uni-app` 的使用,你可以阅读 [uni-app 文档](https://uniapp.dcloud.net.cn/)。
44 |
45 | #### 组件库
46 |
47 | **方式一:通过 npm 安装**
48 |
49 | ```bash
50 | npm i iui-design
51 | # or
52 | yarn add iui-design
53 | ```
54 |
55 | **方式二:通过 HBuilderX 导入**
56 |
57 | 如果您是使用 HbuilderX 开发的用户,您可以在 `uni-app` 插件市场通过 `uni_modules` 的形式进行安装。
58 |
59 | [下载地址](https://ext.dcloud.net.cn/plugin?id=13987)
60 |
61 | #### Scss 插件
62 |
63 | `iui-design` 依赖 `sass`,您必须要安装此插件,否则无法正常运行。
64 |
65 | - 如果您使用的是 HbuilderX,您可以在 `插件市场` 中搜索 `sass` 进行安装。
66 | - 如果您的项目是由 vue-cli 创建的,请通过以下命令安装对 sass(scss)的支持,如果已安装,请略过。
67 |
68 | ```bash
69 | # 安装sass
70 | npm i sass -D
71 |
72 | # 安装sass-loader
73 | npm i sass-loader -D
74 | ```
75 |
76 | ### 配置
77 |
78 | #### 引入样式
79 |
80 | 在 `App.vue` 中引入 `iui-design` 的样式。
81 |
82 | ```vue
83 |
90 | ```
91 |
92 | 在 `uni.scss` 中引入 `iui-design` 的主题样式和变量。
93 |
94 | ```scss
95 | // npm 模式安装
96 | @import "iui-design/style/theme.scss";
97 |
98 | // HBuilderX 插件市场安装
99 | @import "@/components/iui-design/style/theme.scss";
100 | ```
101 |
102 | #### easycom 模式
103 |
104 | `iui-design` 支持 `easycom` 模式,您可以在 `pages.json` 中配置 `easycom`,然后无需引入即可使用组件。
105 |
106 | npm 模式安装:
107 |
108 | ```json
109 | {
110 | "easycom": {
111 | "custom": {
112 | "^iui-(.*)": "iui-design/components/iui-$1/iui-$1.vue"
113 | }
114 | }
115 | }
116 | ```
117 |
118 | HBuilderX 插件市场安装:
119 |
120 | ```json
121 | {
122 | "easycom": {
123 | "custom": {
124 | "^iui-(.*)": "@/components/iui-design/components/iui-$1/iui-$1.vue"
125 | }
126 | }
127 | }
128 | ```
129 |
130 | ### 贡献指南
131 |
132 | 感谢你使用 iui Design
133 |
134 | 以下是关于向 iui Design 提交反馈或代码的指南。在向 iui Design 提交 issue 或者 PR 之前,请先花几分钟时间阅读以下内容。
135 |
136 | #### 提交 issue
137 |
138 | - 遇到问题时,请先确认这个问题是否已经在 issue 中有记录或者已被修复。
139 | - 提 issue 时,请用简短的语言描述遇到的问题,并添加出现问题时的环境和复现步骤。
140 |
141 | #### 参与开发
142 |
143 | 我们非常乐意接受各位的优质 PR,但在此之前我希望您了解 iui Design 是一个需要兼容多个平台的组件库。 所以希望在您修复 bug 并提交之前尽可能的去这些平台测试一下兼容性。最好能携带测试截图以方便审核。非常感谢!
144 |
145 | ### Github
146 |
147 | 如果你喜欢 iui Design,欢迎给我们点一个 [⭐ Star](https://github.com/yuncishuzi/iui-design)
148 |
--------------------------------------------------------------------------------
/components/demo.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ title }}
3 |
4 |
5 |
6 |
7 |
8 |
24 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/main.js:
--------------------------------------------------------------------------------
1 | import App from "./App";
2 |
3 | // #ifndef VUE3
4 | import Vue from "vue";
5 | import "./uni.promisify.adaptor";
6 | Vue.config.productionTip = false;
7 | App.mpType = "app";
8 | const app = new Vue({
9 | ...App,
10 | });
11 | app.$mount();
12 | // #endif
13 |
14 | // #ifdef VUE3
15 | import { createSSRApp } from "vue";
16 | import Demo from "./components/demo.vue";
17 |
18 | export function createApp() {
19 | const app = createSSRApp(App);
20 |
21 | // #ifdef MP-WEIXIN
22 | app.mixin({
23 | onShareAppMessage: function () {
24 | return {
25 | title: "美观、易用的多端 UI 组件库",
26 | };
27 | },
28 | onShareTimeline: function () {
29 | return {
30 | title: "美观、易用的多端 UI 组件库",
31 | };
32 | },
33 | });
34 | // #endif
35 |
36 | app.component("Demo", Demo);
37 |
38 | return {
39 | app,
40 | };
41 | }
42 | // #endif
43 |
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "iuiDesign",
3 | "appid" : "__UNI__EAF007D",
4 | "description" : "",
5 | "versionName" : "1.0.0",
6 | "versionCode" : "100",
7 | "transformPx" : false,
8 | /* 5+App特有相关 */
9 | "app-plus" : {
10 | "usingComponents" : true,
11 | "nvueStyleCompiler" : "uni-app",
12 | "compilerVersion" : 3,
13 | "splashscreen" : {
14 | "alwaysShowBeforeRender" : true,
15 | "waiting" : true,
16 | "autoclose" : true,
17 | "delay" : 0
18 | },
19 | /* 模块配置 */
20 | "modules" : {},
21 | /* 应用发布信息 */
22 | "distribute" : {
23 | /* android打包配置 */
24 | "android" : {
25 | "permissions" : [
26 | "",
27 | "",
28 | "",
29 | "",
30 | "",
31 | "",
32 | "",
33 | "",
34 | "",
35 | "",
36 | "",
37 | "",
38 | "",
39 | "",
40 | ""
41 | ]
42 | },
43 | /* ios打包配置 */
44 | "ios" : {},
45 | /* SDK配置 */
46 | "sdkConfigs" : {}
47 | }
48 | },
49 | /* 快应用特有相关 */
50 | "quickapp" : {},
51 | /* 小程序特有相关 */
52 | "mp-weixin" : {
53 | "appid" : "wxdc2addffe3573e93",
54 | "setting" : {
55 | "urlCheck" : false
56 | },
57 | "usingComponents" : true,
58 | "darkmode" : true,
59 | "themeLocation" : "theme.json"
60 | },
61 | "mp-alipay" : {
62 | "usingComponents" : true
63 | },
64 | "mp-baidu" : {
65 | "usingComponents" : true
66 | },
67 | "mp-toutiao" : {
68 | "usingComponents" : true
69 | },
70 | "uniStatistics" : {
71 | "enable" : false
72 | },
73 | "h5" : {
74 | "darkmode" : true,
75 | "themeLocation" : "theme.json",
76 | "title" : "iui Design 组件库",
77 | "optimization" : {
78 | "treeShaking" : {
79 | "enable" : false
80 | }
81 | },
82 | "devServer" : {
83 | "https" : false
84 | }
85 | },
86 | "vueVersion" : "3"
87 | }
88 |
--------------------------------------------------------------------------------
/packages/components/iui-action-sheet/iui-action-sheet.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
16 |
17 |
21 |
22 | {{ action }}
23 |
24 |
25 |
26 |
27 |
28 |
29 |
35 | {{ action.name }}
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | {{ sheet.cancelText }}
44 |
45 |
46 |
47 |
48 |
49 |
50 |
151 |
152 |
187 |
--------------------------------------------------------------------------------
/packages/components/iui-avatar/assets/default.js:
--------------------------------------------------------------------------------
1 | export default "data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaXVpLWF2YXRhciIgc3R5bGU9ImNvbG9yOndoaXRlIiB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIuNSAxMC44MzNjMi4zMDEgMCA1IDEuNzg2IDUgNXYyLjVjMCAuNDYtLjM3My44MzQtLjgzMy44MzRIMy4zMzNhLjgzMy44MzMgMCAwMS0uODMzLS44MzR2LTIuNWMwLTMuMjExIDIuNjk5LTUgNS01aDV6TTEwIDEuMjVhNC4xNjcgNC4xNjcgMCAxMTAgOC4zMzMgNC4xNjcgNC4xNjcgMCAwMTAtOC4zMzN6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N2Zz4=";
2 |
--------------------------------------------------------------------------------
/packages/components/iui-badge/iui-badge.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
19 |
20 |
21 | {{ getBadgeText() }}
22 |
23 |
24 |
25 |
26 |
27 |
28 |
117 |
118 |
188 |
--------------------------------------------------------------------------------
/packages/components/iui-card/iui-card.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | {{ title }}
24 |
25 |
26 |
27 |
28 |
29 | {{ extra }}
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
45 |
46 |
47 |
48 |
49 |
50 |
135 |
136 |
182 |
--------------------------------------------------------------------------------
/packages/components/iui-cell/iui-cell.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | {{ label }}
16 | {{ desc }}
17 |
18 |
19 |
20 |
21 |
22 |
26 | {{ extra }}
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | |
35 |
36 |
37 |
38 |
120 |
121 |
181 |
--------------------------------------------------------------------------------
/packages/components/iui-checkbox-group/iui-checkbox-group.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/packages/components/iui-checkbox/iui-checkbox.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 | {{ label }}
13 |
14 |
15 |
16 |
134 |
135 |
191 |
--------------------------------------------------------------------------------
/packages/components/iui-collapse-group/iui-collapse-group.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
58 |
59 |
80 |
--------------------------------------------------------------------------------
/packages/components/iui-collapse/iui-collapse.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
26 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
157 |
158 |
185 |
--------------------------------------------------------------------------------
/packages/components/iui-divider/iui-divider.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
85 |
86 |
143 |
--------------------------------------------------------------------------------
/packages/components/iui-ellipsis/iui-ellipsis.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
18 | {{ expand ? collapseText : expandText }}
19 |
20 |
21 |
22 |
23 |
80 |
81 |
112 |
--------------------------------------------------------------------------------
/packages/components/iui-form/iui-form.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
148 |
149 |
154 |
155 |
156 |
--------------------------------------------------------------------------------
/packages/components/iui-grid-item/iui-grid-item.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 |
15 |
31 |
32 |
53 |
--------------------------------------------------------------------------------
/packages/components/iui-grid-row/iui-grid-row.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
38 |
39 |
60 |
--------------------------------------------------------------------------------
/packages/components/iui-icon/iui-icon.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
21 |
22 |
23 |
24 |
76 |
77 |
99 |
--------------------------------------------------------------------------------
/packages/components/iui-image/iui-image.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
13 | {{ errorText }}
14 |
15 |
16 |
26 |
27 |
28 |
29 |
110 |
111 |
146 |
--------------------------------------------------------------------------------
/packages/components/iui-list/iui-list.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
59 |
60 |
63 |
--------------------------------------------------------------------------------
/packages/components/iui-list/style.scss:
--------------------------------------------------------------------------------
1 | @import "../../style/index.scss";
2 |
3 | .iui-list {
4 | width: 100%;
5 | overflow: hidden;
6 | border-radius: inherit;
7 |
8 | &-split {
9 |
10 | /* #ifndef MP */
11 | :deep(:not(:last-child)) .iui-cell {
12 | border-bottom: 1rpx solid $color-border-dark;
13 | }
14 |
15 |
16 | /* #endif */
17 |
18 | /* #ifdef MP */
19 | :deep(:not(:last-child)) cell {
20 | border-bottom: 1rpx solid $color-border-dark;
21 | }
22 |
23 |
24 | /* #endif */
25 | }
26 | }
--------------------------------------------------------------------------------
/packages/components/iui-mask/iui-mask.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
73 |
74 |
88 |
--------------------------------------------------------------------------------
/packages/components/iui-navbar/iui-navbar.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
13 |
14 |
15 |
16 |
22 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | {{ title }}
35 |
36 |
37 |
38 |
39 |
40 |
157 |
158 |
217 |
--------------------------------------------------------------------------------
/packages/components/iui-page/iui-page.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
52 |
53 |
66 |
--------------------------------------------------------------------------------
/packages/components/iui-pagination/iui-pagination.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
12 |
13 |
14 | {{
15 | prevText
16 | }}
17 |
18 | {{ prevText }}
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
33 | {{ innerValue }} / {{ total / pageSize }}
34 |
35 |
36 |
40 |
41 |
42 | {{
43 | nextText
44 | }}
45 |
46 | {{ nextText }}
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
139 |
140 |
162 |
--------------------------------------------------------------------------------
/packages/components/iui-progress/iui-progress.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 | {{ props.modelValue }}%
13 |
14 |
15 |
16 |
17 |
67 |
68 |
100 |
--------------------------------------------------------------------------------
/packages/components/iui-radio-group/iui-radio-group.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/packages/components/iui-radio/iui-radio.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 | {{ label }}
13 |
14 |
15 |
16 |
123 |
124 |
178 |
--------------------------------------------------------------------------------
/packages/components/iui-rate/iui-rate.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
19 |
20 |
21 |
96 |
97 |
117 |
--------------------------------------------------------------------------------
/packages/components/iui-search/iui-search.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
24 |
25 |
26 |
27 |
28 | 取消
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
113 |
114 |
172 |
173 |
179 |
--------------------------------------------------------------------------------
/packages/components/iui-space/iui-space.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
126 |
127 |
209 |
--------------------------------------------------------------------------------
/packages/components/iui-spin/iui-spin.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 | {{ tip }}
13 |
14 |
15 |
16 |
17 |
18 |
19 |
90 |
91 |
137 |
--------------------------------------------------------------------------------
/packages/components/iui-statistic/iui-statistic.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ title }}
4 |
5 |
13 |
14 |
15 |
16 |
17 |
18 | {{ formatValue }}
19 |
20 |
21 |
22 |
23 |
24 |
25 | {{ extra }}
26 |
27 |
28 |
29 |
110 |
111 |
142 |
--------------------------------------------------------------------------------
/packages/components/iui-sticky/iui-sticky.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
36 |
37 |
43 |
--------------------------------------------------------------------------------
/packages/components/iui-switch/iui-switch.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
13 | {{ checkedText }}
14 |
15 |
16 |
17 |
18 |
19 | {{ uncheckedText }}
20 |
21 |
22 |
23 |
24 |
25 |
26 |
120 |
121 |
216 |
--------------------------------------------------------------------------------
/packages/components/iui-tabbar/iui-tabbar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
17 |
18 |
19 | {{ tab.name }}
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
92 |
93 |
160 |
--------------------------------------------------------------------------------
/packages/components/iui-tag/iui-tag.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
101 |
102 |
148 |
--------------------------------------------------------------------------------
/packages/components/iui-textarea/iui-textarea.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
24 |
25 | {{ innerValue.length || 0 }}/{{ maxlength }}
26 |
27 |
28 |
29 |
30 |
117 |
118 |
151 |
152 |
158 |
--------------------------------------------------------------------------------
/packages/components/iui-translation/iui-translation.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
128 |
129 |
132 |
--------------------------------------------------------------------------------
/packages/helper/base64.js:
--------------------------------------------------------------------------------
1 | var BASE64_MAPPING=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/",];var URLSAFE_BASE64_MAPPING=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","-","_",];var _toBinary=function(ascii){var binary=[];while(ascii>0){var b=ascii%2;ascii=Math.floor(ascii/2);binary.push(b)}binary.reverse();return binary};var _toDecimal=function(binary){var dec=0;var p=0;for(var i=binary.length-1;i>=0;--i){var b=binary[i];if(b==1){dec+=Math.pow(2,p)}++p}return dec};var _toUTF8Binary=function(c,binaryArray){var mustLen=8-(c+1)+(c-1)*6;var fatLen=binaryArray.length;var diff=mustLen-fatLen;while(--diff>=0){binaryArray.unshift(0)}var binary=[];var _c=c;while(--_c>=0){binary.push(1)}binary.push(0);var i=0,len=8-(c+1);for(;i=0){binary.push(binaryArray[i++])}}return binary};var _toBinaryArray=function(str){var binaryArray=[];for(var i=0,len=str.length;i=0){_tmpBinary.unshift(0)}binaryArray=binaryArray.concat(_tmpBinary)}else if(unicode>=0x80&&unicode<=0x7ff){binaryArray=binaryArray.concat(_toUTF8Binary(2,_tmpBinary))}else if(unicode>=0x800&&unicode<=0xffff){binaryArray=binaryArray.concat(_toUTF8Binary(3,_tmpBinary))}else if(unicode>=0x10000&&unicode<=0x1fffff){binaryArray=binaryArray.concat(_toUTF8Binary(4,_tmpBinary))}else if(unicode>=0x200000&&unicode<=0x3ffffff){binaryArray=binaryArray.concat(_toUTF8Binary(5,_tmpBinary))}else if(unicode>=4000000&&unicode<=0x7fffffff){binaryArray=binaryArray.concat(_toUTF8Binary(6,_tmpBinary))}}return binaryArray};var _encode=function(str,url_safe){var base64_Index=[];var binaryArray=_toBinaryArray(str);var dictionary=url_safe?URLSAFE_BASE64_MAPPING:BASE64_MAPPING;var extra_Zero_Count=0;for(var i=0,len=binaryArray.length;i=0){binaryArray.push(0)}base64_Index.push(_toDecimal(binaryArray.slice(i,i+6)))}var base64="";for(var i=0,len=base64_Index.length;i {
3 | // #ifdef H5
4 | setTimeout(() => {
5 | // #endif
6 | uni
7 | .createSelectorQuery()
8 | .in(context)
9 | [needAll ? "selectAll" : "select"](selector)
10 | .boundingClientRect((rect) => {
11 | if (rect) {
12 | resolve(rect);
13 | } else {
14 | reject(rect);
15 | }
16 | })
17 | .exec();
18 | // #ifdef H5
19 | }, 5);
20 | // #endif
21 | });
22 | }
23 |
--------------------------------------------------------------------------------
/packages/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "iui-design",
3 | "version": "1.0.0-alpha.5",
4 | "description": "A uni-app UI components library",
5 | "keywords": [
6 | "uniapp",
7 | "UI",
8 | "components",
9 | "iui-design",
10 | "iui",
11 | "vue"
12 | ],
13 | "repository": {
14 | "type": "git",
15 | "url": "git+https://github.com/yuncishuzi/iui-design.git"
16 | },
17 | "author": "Nobu121",
18 | "license": "Apache-2.0",
19 | "bugs": {
20 | "url": "https://github.com/yuncishuzi/iui-design/issues"
21 | },
22 | "homepage": "https://github.com/yuncishuzi/iui-design#readme"
23 | }
24 |
--------------------------------------------------------------------------------
/packages/readme.md:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
iui Design
9 |
10 |
11 |
12 |
13 | 基于 Uni-app 的 Vue3 UI 组件库。
14 |
15 | [](https://github.com/yuncishuzi/iui-design/blob/master/LICENSE)
16 |
17 |
18 |
19 | ### 简介
20 |
21 | iui Design 是一款基于 `uni-app` 的前端组件库,它提供了一套可复用、易扩展、低耦合的移动端 UI 组件库,帮助开发者快速搭建移动应用。
22 |
23 | 设计灵感来自 [ArcoDesign](https://arco.design/),感谢巨人!
24 |
25 | ### 预览
26 |
27 | 请使用微信搜索小程序 `iui Design` 进行体验。
28 |
29 | 移动端 H5:[预览地址](https://iui.iyunci.cn)
30 |
31 | ### 交流反馈
32 |
33 | [iui Design 交流群](https://iyunci.cn/design/uni/feedback.html)
34 |
35 | ### 版权信息
36 |
37 | iui Design 遵循 [Apache-2.0](https://github.com/yuncishuzi/iui-design/blob/master/LICENSE) 开源协议,意味着您无需支付任何费用,也无需授权,即可将 iui Design 应用到您的产品中。
38 |
39 | 这并不意味着您可以将 iui Design 应用到非法的领域,比如涉及赌博,暴力等方面。如因此产生纠纷或法律问题,iui Design 相关方及云磁数字不承担任何责任。
40 |
41 | ### 安装
42 |
43 | 使用前,请确保你已经学习过 `uni-app` 的使用,你可以阅读 [uni-app 文档](https://uniapp.dcloud.net.cn/)。
44 |
45 | #### 组件库
46 |
47 | **方式一:通过 npm 安装**
48 |
49 | ```bash
50 | npm i iui-design
51 | # or
52 | yarn add iui-design
53 | ```
54 |
55 | **方式二:通过 HBuilderX 导入**
56 |
57 | 如果您是使用 HbuilderX 开发的用户,您可以在 `uni-app` 插件市场通过 `uni_modules` 的形式进行安装。
58 |
59 | [下载地址](https://ext.dcloud.net.cn/plugin?id=13987)
60 |
61 | #### Scss 插件
62 |
63 | `iui-design` 依赖 `sass`,您必须要安装此插件,否则无法正常运行。
64 |
65 | - 如果您使用的是 HbuilderX,您可以在 `插件市场` 中搜索 `sass` 进行安装。
66 | - 如果您的项目是由 vue-cli 创建的,请通过以下命令安装对 sass(scss)的支持,如果已安装,请略过。
67 |
68 | ```bash
69 | # 安装sass
70 | npm i sass -D
71 |
72 | # 安装sass-loader
73 | npm i sass-loader -D
74 | ```
75 |
76 | ### 配置
77 |
78 | #### 引入样式
79 |
80 | 在 `App.vue` 中引入 `iui-design` 的样式。
81 |
82 | ```vue
83 |
90 | ```
91 |
92 | 在 `uni.scss` 中引入 `iui-design` 的主题样式和变量。
93 |
94 | ```scss
95 | // npm 模式安装
96 | @import "iui-design/style/theme.scss";
97 |
98 | // HBuilderX 插件市场安装
99 | @import "@/components/iui-design/style/theme.scss";
100 | ```
101 |
102 | #### easycom 模式
103 |
104 | `iui-design` 支持 `easycom` 模式,您可以在 `pages.json` 中配置 `easycom`,然后无需引入即可使用组件。
105 |
106 | npm 模式安装:
107 |
108 | ```json
109 | {
110 | "easycom": {
111 | "custom": {
112 | "^iui-(.*)": "iui-design/components/iui-$1/iui-$1.vue"
113 | }
114 | }
115 | }
116 | ```
117 |
118 | HBuilderX 插件市场安装:
119 |
120 | ```json
121 | {
122 | "easycom": {
123 | "custom": {
124 | "^iui-(.*)": "@/components/iui-design/components/iui-$1/iui-$1.vue"
125 | }
126 | }
127 | }
128 | ```
129 |
130 | ### 贡献指南
131 |
132 | 感谢你使用 iui Design
133 |
134 | 以下是关于向 iui Design 提交反馈或代码的指南。在向 iui Design 提交 issue 或者 PR 之前,请先花几分钟时间阅读以下内容。
135 |
136 | #### 提交 issue
137 |
138 | - 遇到问题时,请先确认这个问题是否已经在 issue 中有记录或者已被修复。
139 | - 提 issue 时,请用简短的语言描述遇到的问题,并添加出现问题时的环境和复现步骤。
140 |
141 | #### 参与开发
142 |
143 | 我们非常乐意接受各位的优质 PR,但在此之前我希望您了解 iui Design 是一个需要兼容多个平台的组件库。 所以希望在您修复 bug 并提交之前尽可能的去这些平台测试一下兼容性。最好能携带测试截图以方便审核。非常感谢!
144 |
145 | ### Github
146 |
147 | 如果你喜欢 iui Design,欢迎给我们点一个 [⭐ Star](https://github.com/yuncishuzi/iui-design)
148 |
--------------------------------------------------------------------------------
/packages/style/anim.scss:
--------------------------------------------------------------------------------
1 | // 旋转动画
2 | @keyframes spin {
3 | 0% {
4 | transform: rotate(0);
5 | }
6 |
7 | 100% {
8 | transform: rotate(360deg);
9 | }
10 | }
11 |
12 | // 渐变动画
13 | @keyframes fadeIn {
14 | 0% {
15 | opacity: 0;
16 | }
17 |
18 | 100% {
19 | opacity: 1;
20 | }
21 | }
22 |
23 | // 渐变动画
24 | @keyframes fadeOut {
25 | 0% {
26 | opacity: 1;
27 | }
28 |
29 | 100% {
30 | opacity: 0;
31 | }
32 | }
33 |
34 |
35 | // 缩放动画
36 | @keyframes zoomIn {
37 | 0% {
38 | transform: scale(0);
39 | }
40 |
41 | 100% {
42 | transform: scale(1);
43 | }
44 | }
45 |
46 | @keyframes zoomOut {
47 | 0% {
48 | transform: scale(1);
49 | }
50 |
51 |
52 | 100% {
53 | transform: scale(0);
54 | }
55 | }
56 |
57 | // 缩放动画
58 | @keyframes fadeZoomIn {
59 | 0% {
60 | opacity: 0;
61 | transform: scale(0);
62 | }
63 |
64 | 50% {
65 | opacity: 0;
66 | transform: scale(0.5);
67 | }
68 |
69 | 100% {
70 | opacity: 1;
71 | transform: scale(1);
72 | }
73 | }
74 |
75 | @keyframes fadeZoomOut {
76 | 0% {
77 | opacity: 1;
78 | transform: scale(1);
79 | }
80 |
81 | 50% {
82 | opacity: 0;
83 | transform: scale(0.5);
84 | }
85 |
86 | 100% {
87 | opacity: 0;
88 | transform: scale(0);
89 | }
90 | }
91 |
92 | // 从底部滑入
93 | @keyframes slideInUp {
94 | 0% {
95 | transform: translateY(100%);
96 | }
97 |
98 | 100% {
99 | transform: translateY(0);
100 | }
101 | }
102 |
103 | // 从底部滑出
104 | @keyframes slideOutDown {
105 | 0% {
106 | transform: translateY(0);
107 | }
108 |
109 | 100% {
110 | transform: translateY(100%);
111 | }
112 | }
113 |
114 | // 从顶部滑入
115 | @keyframes slideInDown {
116 | 0% {
117 | transform: translateY(-100%);
118 | }
119 |
120 | 100% {
121 | transform: translateY(0);
122 | }
123 | }
124 |
125 | // 从顶部滑出
126 | @keyframes slideOutUp {
127 | 0% {
128 | transform: translateY(0);
129 | }
130 |
131 | 100% {
132 | transform: translateY(-100%);
133 | }
134 | }
135 |
136 | // 从右侧滑入
137 | @keyframes slideInRight {
138 | 0% {
139 | transform: translateX(100%);
140 | }
141 |
142 | 100% {
143 | transform: translateX(0);
144 | }
145 | }
146 |
147 | // 从右侧滑出
148 |
149 | @keyframes slideOutRight {
150 | 0% {
151 | transform: translateX(0);
152 | }
153 |
154 | 100% {
155 | transform: translateX(100%);
156 | }
157 | }
158 |
159 | // 从左侧滑入
160 | @keyframes slideInLeft {
161 | 0% {
162 | transform: translateX(-100%);
163 | }
164 |
165 | 100% {
166 | transform: translateX(0);
167 | }
168 | }
169 |
170 | // 从左侧滑出
171 | @keyframes slideOutLeft {
172 | 0% {
173 | transform: translateX(0);
174 | }
175 |
176 | 100% {
177 | transform: translateX(-100%);
178 | }
179 | }
--------------------------------------------------------------------------------
/packages/style/color/global.scss:
--------------------------------------------------------------------------------
1 | // 主题色
2 | $primary-color: #165DFF !default;
3 | $success-color: #00B42A !default;
4 | $warning-color: #FF7D00 !default;
5 | $error-color: #F53F3F !default;
6 |
7 | // 深色主题色,默认根据主题色生成,也可以自定义
8 | $dark-primary-color: desaturate($primary-color, 30%) !default;
9 | $dark-success-color: desaturate($success-color, 30%) !default;
10 | $dark-warning-color: desaturate($warning-color, 30%) !default;
11 | $dark-error-color: desaturate($error-color, 30%) !default;
12 |
13 | // 背景色
14 | $color-bg: var(--iui-bg) !default;
15 | $color-bg-secondary: var(--iui-bg-secondary) !default;
16 | $color-bg-active: var(--iui-bg-active) !default;
17 | $color-bg-light: var(--iui-bg-light) !default;
18 | $color-bg-opacity: var(--iui-bg-opacity) !default;
19 | $color-bg-white: var(--iui-white) !default;
20 |
21 |
22 | // 文字色
23 | $color-text: var(--iui-gray-8) !default;
24 | $color-text-dark: var(--iui-gray-9) !default;
25 | $color-text-light: var(--iui-gray-7) !default;
26 | $color-text-lighten: var(--iui-gray-5) !default;
27 |
28 | // 边框颜色
29 | $color-border: var(--iui-gray-3) !default;
30 | $color-border-dark: var(--iui-gray-4) !default;
31 | $color-border-light: var(--iui-gray-2) !default;
32 | $color-border-lighten: var(--iui-gray-1) !default;
33 |
34 | // 字体大小
35 | $font-size-body: 14px !default;
36 | $font-size-title: 24px !default;
37 | $font-size-display: 54px !default;
38 | $font-size-huge: 16px !default;
39 | $font-size-large: 15px !default;
40 | $font-size-medium: 14px !default;
41 | $font-size-small: 13px !default;
42 | $font-size-mini: 12px !default;
43 |
44 | //边框圆角
45 | $border-radius-none: 0 !default;
46 | $border-radius-small: 2px !default;
47 | $border-radius-medium: 4px !default;
48 | $border-radius-large: 8px !default;
49 | $border-radius-huge: 36px !default;
50 | $border-radius-round: 50% !default;
--------------------------------------------------------------------------------
/packages/style/index.scss:
--------------------------------------------------------------------------------
1 | @import "./color/colors.scss";
2 | @import "./color/variables.scss";
3 | @import "./anim.scss";
4 |
5 | $prefix: '--iui';
6 |
7 | $font-family: Inter, "-apple-system", BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "noto sans", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
8 |
9 | $font-size-body: 14px;
10 |
11 |
12 |
13 | @mixin safe-area {
14 | padding-top: env(safe-area-inset-top);
15 | // 底部安全区域
16 | padding-bottom: 0;
17 | padding-bottom: constant(safe-area-inset-bottom);
18 | padding-bottom: env(safe-area-inset-bottom);
19 | }
--------------------------------------------------------------------------------
/packages/style/theme.scss:
--------------------------------------------------------------------------------
1 | @import './theme/common.scss';
2 |
3 |
4 | /* #ifdef H5 */
5 | @import "./theme/h5.scss";
6 | /* #endif */
7 |
8 | /* #ifdef MP */
9 | @import "./theme/mp.scss";
10 | /* #endif */
--------------------------------------------------------------------------------
/packages/style/theme/h5.scss:
--------------------------------------------------------------------------------
1 | // H5特有样式
2 | .dark {
3 | :deep(.uni-picker-view-mask) {
4 | background-image: linear-gradient(180deg, $color-bg-secondary),
5 | linear-gradient(0deg, $color-bg, $color-bg);
6 | }
7 | }
8 |
9 | @media (prefers-color-scheme: dark) {
10 | :deep(.uni-picker-view-mask) {
11 | background-image: linear-gradient(180deg, $color-bg-secondary),
12 | linear-gradient(0deg, $color-bg, $color-bg);
13 | }
14 | }
--------------------------------------------------------------------------------
/packages/style/theme/mp.scss:
--------------------------------------------------------------------------------
1 | // 小程序特有样式
2 |
3 | iui-space {
4 | width: 100%;
5 | }
6 |
7 | iui-button,
8 | iui-grid-item,
9 | iui-cell,
10 | iui-checkbox,
11 | iui-radio,
12 | iui-swiper,
13 | iui-image,
14 | iui-icon {
15 | display: contents;
16 | }
17 |
18 |
19 |
20 | iui-picker {
21 | :deep(.iui-popup-container-content) {
22 | background-color: $mp-picker-title-bg !important;
23 | }
24 | }
25 |
26 | @media (prefers-color-scheme: dark) {
27 | picker-view-column {
28 | background-color: $color-bg-secondary !important;
29 | }
30 | }
--------------------------------------------------------------------------------
/pages/components/actionsheet.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | This is a line of header text
31 |
32 | This is one or two lines of descriptive information. This is one or
33 | two lines of description.
35 |
36 |
37 |
38 |
39 |
40 |
67 |
68 |
91 |
--------------------------------------------------------------------------------
/pages/components/avatar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | YC
26 | T
30 |
31 |
32 |
33 |
34 |
35 |
42 |
43 |
44 |
45 |
46 |
55 |
63 |
71 |
72 |
73 |
74 |
75 |
76 |
80 |
81 | Slot AvatarName
82 |
83 |
85 |
91 |
92 | Slot AvatarDesc
94 |
96 |
103 |
104 | Slot Extra
105 |
106 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
119 |
--------------------------------------------------------------------------------
/pages/components/badge.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
115 |
--------------------------------------------------------------------------------
/pages/components/card.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This is content
5 | This is content
6 | This is content
7 |
8 |
9 |
10 |
11 |
12 | This is content
13 | This is content
14 | This is content
15 |
16 |
17 |
18 |
19 |
20 | This is content
21 | This is content
22 | This is content
23 |
24 |
25 |
26 |
27 |
28 | This is content
29 | This is content
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
42 |
43 |
44 |
45 | This is content
46 | This is content
47 | This is content
48 |
49 |
50 |
51 |
52 |
53 | This is content
54 | This is content
55 | This is content
56 |
57 |
58 | This is footer
59 |
60 |
61 |
62 |
63 | This is content
64 | This is content
65 | This is content
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | This is Parent Content
84 | This is Child Content
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/pages/components/cell.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | Extra
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/pages/components/checkbox.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | {{
57 | isCheckedAll ? "Uncheck all" : "Check all"
58 | }}
59 |
60 |
61 |
62 | Reversely select
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
102 |
103 |
104 |
105 |
106 |
107 |
124 |
125 |
126 |
--------------------------------------------------------------------------------
/pages/components/collapse.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This is content area
5 | This is content area
6 | This is content area
7 |
8 |
9 |
10 |
11 |
12 |
13 | This is content area
14 | This is content area
15 | This is content area
16 |
17 |
18 | This is content area
19 | This is content area
20 | This is content area
21 |
22 |
23 | This is content area
24 | This is content area
25 | This is content area
26 |
27 |
28 |
29 |
30 |
31 |
32 | This is content area
33 | This is content area
34 | This is content area
35 |
36 |
37 |
38 | This is content area
39 | This is content area
40 | This is content area
41 |
42 |
43 |
44 |
45 |
46 |
47 | This is content area
48 | This is content area
49 | This is content area
50 |
51 |
52 | This is content area
53 | This is content area
54 | This is content area
55 |
56 |
57 | This is content area
58 | This is content area
59 | This is content area
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/pages/components/divider.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Note that this is a message.
4 |
5 | Note that this is a message.
7 |
8 |
9 | Note that this is a message.
10 | Text
11 | Note that this is a message.
12 | Text
13 | Note that this is a message.
14 | Text
15 |
16 |
17 |
18 |
21 | Item 1
22 |
23 | Item 2
24 |
25 | Item 3
26 |
27 |
28 |
29 |
30 |
31 |
32 |
38 |
--------------------------------------------------------------------------------
/pages/components/ellipsis.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This was long before digital audio: this was done with razor blades.
5 | Today, it's called sampling, and the influence of these bands is felt in
6 | nearly all branches of modern pop music.
7 |
8 |
9 |
10 |
11 |
12 | This was long before digital audio: this was done with razor blades.
13 | Today, it's called sampling, and the influence of these bands is felt in
14 | nearly all branches of modern pop music.
15 |
16 |
17 |
18 |
19 |
20 | This was long before digital audio: this was done with razor blades.
21 | Today, it's called sampling, and the influence of these bands is felt in
22 | nearly all branches of modern pop music.
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/pages/components/grid.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Title Text
9 |
10 |
11 |
12 |
13 |
14 | Title Text
15 |
16 |
17 |
18 |
19 |
20 | Title Text
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | Title Text
29 |
30 |
31 |
32 |
33 |
34 | Title Text
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
68 |
74 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
94 |
95 |
96 |
97 |
98 |
99 |
106 |
114 |
115 |
116 |
117 |
141 |
142 |
162 |
--------------------------------------------------------------------------------
/pages/components/image.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
13 |
14 |
15 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
29 |
30 |
31 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
45 |
46 |
47 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
64 |
--------------------------------------------------------------------------------
/pages/components/mask.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
24 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/pages/components/navbar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
97 |
98 |
113 |
--------------------------------------------------------------------------------
/pages/components/noticebar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Note that this is a reminder message.
5 |
6 |
7 |
8 |
9 | Note that this is a reminder message.
10 |
11 |
12 |
13 |
14 |
15 | Note that this is a reminder message. The message is long, but I can
16 | choose to have it scroll or wrap, as it does now.
17 |
18 |
19 |
20 |
21 |
22 | Note that this is a reminder message. The message is long, but I can
23 | choose to have it scroll or wrap, as it does now.
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | Note that this is a reminder message.
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | Note that this is a reminder message. The message is long, but I can
41 | choose to have it scroll or wrap, as it does now.
42 |
43 |
44 |
45 |
46 |
47 |
48 | Note that this is a notification message. The background color is
49 | customized here, and the gradient theme color will also be automatically
50 | set as the background color changes.
51 |
52 |
53 | Turn on
56 |
57 |
58 |
59 |
60 |
66 | Custom Background and Font Color
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 | File is uploaded successfully!
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 | Card style
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/pages/components/notify.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{ msg }}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
105 |
106 |
119 |
--------------------------------------------------------------------------------
/pages/components/pagination.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | 第 {{ current }} 页
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
58 |
--------------------------------------------------------------------------------
/pages/components/picker.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
130 |
131 |
132 |
--------------------------------------------------------------------------------
/pages/components/popup.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | Content area, click mask to close
44 |
45 |
46 |
55 |
56 | Extra
57 |
58 | Content area, click mask to close
59 |
60 |
61 |
62 | Scroll content area
63 |
64 |
65 |
66 |
74 |
75 |
80 |
--------------------------------------------------------------------------------
/pages/components/progress.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
48 |
49 |
54 |
--------------------------------------------------------------------------------
/pages/components/radio.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/pages/components/rate.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 24
18 |
19 |
20 | 36
26 |
27 |
28 | 48
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 | 1 point per star
62 |
63 |
64 |
65 | 20 points per star
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/pages/components/search.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Search
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | Search
29 |
30 |
31 |
32 |
33 |
34 |
38 |
39 |
40 |
41 |
42 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/pages/components/slider.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
50 | {{ value }}
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/pages/components/spin.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | Hi
29 | This is a container
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/pages/components/statistic.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
37 |
38 |
39 |
40 | %
41 |
42 |
43 |
44 |
45 |
46 |
47 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/pages/components/stepper.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/pages/components/sticky.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 基本用法
6 |
7 |
8 |
9 | 顶部距离
10 |
11 |
12 |
13 |
14 |
15 |
16 | 基本用法
17 |
18 |
28 | scroll-view content
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
46 |
--------------------------------------------------------------------------------
/pages/components/swipeaction.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
14 |
15 |
16 |
17 |
18 |
19 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
53 |
54 | 通过Slot自定义内容
57 |
58 |
59 |
60 |
61 |
62 |
63 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/pages/components/swiper.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | {{ current + 1 }}/{{ list.length }}
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | {{ listWithContent[current].content }}
33 | {{ current + 1 }}/{{ listWithContent.length }}
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
46 |
47 |
48 |
49 |
70 |
71 |
99 |
--------------------------------------------------------------------------------
/pages/components/switch.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/pages/components/tabbar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
15 |
16 |
17 |
18 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
40 |
41 |
42 |
43 |
44 |
50 |
51 |
52 |
53 |
129 |
130 |
131 |
--------------------------------------------------------------------------------
/pages/components/tabs.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Content area
5 |
6 |
7 |
8 |
9 | Content area
10 |
11 |
12 |
13 |
14 | Content area
15 |
16 |
17 |
18 |
19 | Content area
20 |
21 |
22 |
23 |
24 | Content area
25 |
26 |
27 |
28 |
29 | Content area
30 |
31 |
32 |
33 |
34 | Content area
35 |
36 |
37 |
38 |
39 | Content area
40 |
41 |
42 |
43 |
44 | Content area
45 |
46 |
47 |
48 |
49 | Content area
50 |
51 |
52 |
53 |
54 | Content area
55 |
56 |
57 |
58 |
59 | Content area
60 |
61 |
62 |
63 |
136 |
137 |
147 |
--------------------------------------------------------------------------------
/pages/components/tag.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Default
7 |
8 |
9 | Tag1
10 |
11 |
12 | Tag2
13 |
14 |
15 | Compolete
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | Large
24 |
25 |
26 |
27 | Medium
28 |
29 |
30 |
31 | small
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | {{ color }}
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | Github
48 |
49 |
50 |
51 | QQ
52 |
53 |
54 |
55 | Wechat
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 | Tag
64 |
65 |
66 | Tag
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | Checkable
75 |
76 |
77 | Default Checked
78 |
79 |
80 |
81 | Custom CheckedColor
84 |
85 |
86 |
87 |
88 |
89 |
90 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/pages/components/textarea.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/pages/components/toast.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
69 |
70 |
71 |
72 |
81 |
82 |
83 |
84 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
112 |
113 |
114 |
--------------------------------------------------------------------------------
/pages/index/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
35 |
36 |
37 |
84 |
85 |
136 |
--------------------------------------------------------------------------------
/static/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuncishuzi/iui-design/df5feee43a7b94cfdf52442c587e72edbcd7ee77/static/logo.jpg
--------------------------------------------------------------------------------
/static/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuncishuzi/iui-design/df5feee43a7b94cfdf52442c587e72edbcd7ee77/static/logo.png
--------------------------------------------------------------------------------
/theme.json:
--------------------------------------------------------------------------------
1 | {
2 | "light": {
3 | "navBgColor": "#f8f8f8",
4 | "navTxtStyle": "black"
5 | },
6 | "dark": {
7 | "navBgColor": "#292929",
8 | "navTxtStyle": "white"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/uni.promisify.adaptor.js:
--------------------------------------------------------------------------------
1 | uni.addInterceptor({
2 | returnValue (res) {
3 | if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
4 | return res;
5 | }
6 | return new Promise((resolve, reject) => {
7 | res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
8 | });
9 | },
10 | });
--------------------------------------------------------------------------------
/uni.scss:
--------------------------------------------------------------------------------
1 | // iui Design 全局主题变量
2 | @import "/packages/style/theme.scss";
--------------------------------------------------------------------------------