@zfqh/uniapp 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/docs/components/styles/base-styles.md +239 -367
  3. package/docs/guide/project-frame.md +26 -2
  4. package/docs/index.md +1 -1
  5. package/lib/components/g-back-button/g-back-button.vue +2 -2
  6. package/lib/components/g-checkbox-list/g-checkbox-list.vue +1 -1
  7. package/lib/components/g-float/g-float.vue +1 -1
  8. package/lib/components/g-grid-image/g-grid-image.vue +1 -1
  9. package/lib/components/g-grid-swiper/g-grid-swiper.vue +1 -1
  10. package/lib/components/g-more/g-more.vue +2 -2
  11. package/lib/components/g-page-container/g-page-container.vue +1 -1
  12. package/lib/components/g-popup/g-popup.vue +3 -3
  13. package/lib/components/g-refresh-view/g-refresh-view.vue +1 -1
  14. package/lib/components/g-search/g-search.vue +4 -4
  15. package/lib/components/g-share-photo/g-share-photo.vue +1 -1
  16. package/lib/components/g-share-view/g-share-view.vue +2 -2
  17. package/lib/components/g-share-weixin/g-share-weixin.vue +1 -1
  18. package/lib/components/g-tag-editor/g-tag-editor.vue +2 -2
  19. package/lib/components/g-trtc-room/g-trtc-room.vue +1 -1
  20. package/lib/styles/bg.scss +1 -22
  21. package/lib/styles/border.scss +1 -158
  22. package/lib/styles/{flex-vue.scss → flex.scss} +15 -12
  23. package/lib/styles/index.scss +5 -17
  24. package/lib/styles/layout.scss +17 -75
  25. package/lib/styles/reset-vue.scss +3 -1
  26. package/lib/styles/text-nvue.scss +1 -10
  27. package/lib/styles/text-vue.scss +0 -55
  28. package/lib/styles/text.scss +1 -43
  29. package/lib/styles/var.module.scss +1 -0
  30. package/package.json +2 -2
  31. package/lib/styles/animate-vue.scss +0 -3
  32. package/lib/styles/animate.scss +0 -27
  33. package/lib/styles/bg-vue.scss +0 -21
  34. package/lib/styles/flex-nvue.scss +0 -64
  35. package/lib/styles/font.scss +0 -59
  36. package/lib/styles/layout-nvue.scss +0 -24
  37. package/lib/styles/layout-vue.scss +0 -30
  38. package/lib/styles/opacity.scss +0 -10
  39. package/lib/styles/shadow.scss +0 -12
  40. package/lib/styles/sizing-vue.scss +0 -21
  41. package/lib/styles/sizing.scss +0 -21
  42. package/lib/styles/spacing.scss +0 -234
@@ -253,15 +253,39 @@ export function getToken() {
253
253
 
254
254
  ## 样式接入
255
255
 
256
- `@zfqh/uniapp` 提供一套 UnoCSS 风格的工具样式类,需要在项目全局样式中导入一次:
256
+ `@zfqh/uniapp` 内置的静态样式仅覆盖平台差异类和使用 `$uv-*` SCSS 变量的语义色类,间距、尺寸、字号、圆角、透明度、阴影等通用原子类由 `@gmcb/vite` 的 unocss 插件在构建时动态生成。
257
+
258
+ 在项目全局样式中导入静态样式,放在 `App.vue` 的 `<style>` 块:
257
259
 
258
260
  ```scss
259
- /* App.vue 的 <style> 块 */
260
261
  @import '@zfqh/uniapp/lib/styles/index.scss';
261
262
  ```
262
263
 
263
264
  此入口同时引入 `@gmcb/uv-ui/index.scss`,无需再单独导入 uv-ui 基础样式。
264
265
 
266
+ ### 配置 unocss 插件
267
+
268
+ 在 `vite.config.js` 中注册 unocss 插件,并传入 `blockList` 避免与内置静态类名冲突:
269
+
270
+ ```js
271
+ import { join } from 'path';
272
+ import { defineConfig } from '@gmcb/vite';
273
+ import { unocss } from '@gmcb/vite/lib/plugins';
274
+ import { blockList } from '@gmcb/vite/lib/unocss';
275
+
276
+ // 解决工程化和非工程化编译兼容问题
277
+ const uni = require(join(process.cwd(), 'node_modules/@dcloudio/vite-plugin-uni')).default;
278
+
279
+ export default defineConfig({
280
+ plugins: [
281
+ uni(),
282
+ unocss({
283
+ blockList,
284
+ }),
285
+ ],
286
+ });
287
+ ```
288
+
265
289
  ### 覆盖 SCSS 主题变量
266
290
 
267
291
  如果项目通过 `defineConfig({ color })` 覆盖了主题色,建议同步覆盖 SCSS 变量,确保 uv-ui 组件和工具类使用一致的颜色。在 `uni.scss` 中先导入 `@gmcb/uv-ui/theme.scss` 默认变量,再声明同名变量覆盖:
package/docs/index.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @zfqh/uniapp
2
2
 
3
- `@zfqh/uniapp` 是面向 uni-app Vue 3 项目的公共能力包,包含配置系统、环境配置、请求封装、导航提示、COS 上传、应用更新、hooks、工具函数、Vuex modules、mixins、`g-*` 公共组件和工具样式类。
3
+ `@zfqh/uniapp` 是面向 uni-app Vue 3 项目的公共能力包,包含配置系统、环境配置、请求封装、导航提示、COS 上传、应用更新、hooks、工具函数、Vuex modules、mixins、`g-*` 公共组件和工具样式类(内置平台差异及语义色类,完整原子类需配合 `@gmcb/vite` 的 unocss 插件使用)。
4
4
 
5
5
  ## 快速入口
6
6
 
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <view class="back-button" :style="[_customStyle]">
3
- <view class="flex justify-center" @click="goBack" :class="[showHome ? '' : 'back']">
3
+ <view class="flex justify-center items-center" @click="goBack" :class="[showHome ? '' : 'back']">
4
4
  <g-icon v-if="showIcon" :type="type" :font="iconFont" :name="iconName" :size="iconSize || 18" :color="color" />
5
5
  <uv-icon v-else :name="iconName" :size="iconSize || 22" :color="color" />
6
6
  </view>
7
- <view v-if="showHome" class="flex justify-center" @click="goHome">
7
+ <view v-if="showHome" class="flex justify-center items-center" @click="goHome">
8
8
  <g-icon
9
9
  v-if="showIcon"
10
10
  :type="type"
@@ -4,7 +4,7 @@
4
4
  <view
5
5
  v-for="(item, index) in dataList"
6
6
  :key="item.key"
7
- class="flex justify-between pr-20rpx"
7
+ class="flex justify-between items-center pr-20rpx"
8
8
  :class="{ 'uv-border-top': border && index > 0 }"
9
9
  :style="[style]"
10
10
  @tap="select(item)"
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <view class="float" :style="[style]" @tap.stop="click">
3
3
  <slot>
4
- <g-icon :name="iconName" :font="iconFont" :size="iconSize" :color="iconColor" class="flex" />
4
+ <g-icon :name="iconName" :font="iconFont" :size="iconSize" :color="iconColor" class="flex items-center" />
5
5
  </slot>
6
6
  </view>
7
7
  </template>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <view class="grid" :style="[_style]">
3
3
  <view v-for="(item, index) in list" :key="index" :style="[_imageStyle]" class="overflow-hidden" @tap.stop="click(item)">
4
- <image :src="item.image" style="width: 100%; height: 100%" :mode="mode" class="flex" />
4
+ <image :src="item.image" style="width: 100%; height: 100%" :mode="mode" class="flex items-center" />
5
5
  </view>
6
6
  </view>
7
7
  </template>
@@ -4,7 +4,7 @@
4
4
  <swiper-item v-for="(list, index) in dataList" :key="index">
5
5
  <uv-grid :col="col" :border="false" align="left">
6
6
  <uv-grid-item v-for="(ele, i) in list" :key="i" bgColor="transparent" :customStyle="_colStyle">
7
- <view class="flex justify-center flex-col" :style="[_itemStyle(ele)]" @tap.stop="click(index, i)">
7
+ <view class="flex justify-center items-center flex-col" :style="[_itemStyle(ele)]" @tap.stop="click(index, i)">
8
8
  <uv-image
9
9
  v-if="ele[iconKey]"
10
10
  :src="ele[iconKey]"
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <view :style="[style]">
3
- <view class="flex" @tap.stop="click">
3
+ <view class="flex items-center" @tap.stop="click">
4
4
  <slot name="text">
5
5
  <text> {{ text }} </text>
6
6
  </slot>
7
7
  <slot name="arrow">
8
- <g-icon :name="iconName" :size="iconSize" class="flex" />
8
+ <g-icon :name="iconName" :size="iconSize" class="flex items-center" />
9
9
  </slot>
10
10
  </view>
11
11
  </view>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <view class="container" :style="[containerStyle]">
3
3
  <view v-if="showHeader" class="header" id="page_header" :style="[_headerStyle]">
4
- <view v-if="showNavbar" class="flex justify-center" :style="[_navbarStyle]">
4
+ <view v-if="showNavbar" class="flex justify-center items-center" :style="[_navbarStyle]">
5
5
  <view :style="[_leftStyle]">
6
6
  <g-back-button
7
7
  v-if="showBack"
@@ -20,7 +20,7 @@
20
20
  <view :style="[_customStyle]">
21
21
  <slot v-if="opts.showHeader" name="header">
22
22
  <view
23
- class="flex"
23
+ class="flex items-center"
24
24
  :class="[{ 'border-b': opts.headerBorder }, { 'justify-start': opts.titleAlign === 'left', 'justify-end': opts.titleAlign === 'right', 'justify-center': opts.titleAlign === 'center', 'justify-between': opts.titleAlign === 'between', 'justify-around': opts.titleAlign === 'around' }]"
25
25
  :style="[_headerStyle]"
26
26
  >
@@ -31,7 +31,7 @@
31
31
  </slot>
32
32
  <slot v-if="opts.showContent" name="content">
33
33
  <scroll-view scroll-y :style="[_scrollStyle]">
34
- <view class="flex justify-center break-all" :class="[{ 'text-left': opts.align === 'left', 'text-right': opts.align === 'right', 'text-center': opts.align === 'center' }]" :style="[_contentStyle]">
34
+ <view class="flex justify-center items-center break-all" :class="[{ 'text-left': opts.align === 'left', 'text-right': opts.align === 'right', 'text-center': opts.align === 'center' }]" :style="[_contentStyle]">
35
35
  <slot name="default">
36
36
  <rich-text :nodes="opts.content" />
37
37
  </slot>
@@ -41,7 +41,7 @@
41
41
  <slot v-if="opts.showFooter" name="footer">
42
42
  <view
43
43
  v-if="opts.showConfirm || opts.showCancel"
44
- class="flex justify-center footer"
44
+ class="flex justify-center items-center footer"
45
45
  :class="{ 'border-t': opts.footerBorder }"
46
46
  :style="[_footerStyle]"
47
47
  >
@@ -19,7 +19,7 @@
19
19
  @refresherabort="refresherabort"
20
20
  >
21
21
  <slot v-if="mode === 'none' && enabled" name="refresher">
22
- <view class="w-full flex flex-col justify-center text-tips" :style="[_loadingStyle]">
22
+ <view class="w-full flex flex-col justify-center items-center text-tips" :style="[_loadingStyle]">
23
23
  <slot v-if="completed" name="completeText" :text="completeText">
24
24
  <text> {{ completeText }} </text>
25
25
  </slot>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <view class="search-input flex" @tap="click()" :style="[style]" :class="[shape]">
2
+ <view class="search-input flex items-center" @tap="click()" :style="[style]" :class="[shape]">
3
3
  <slot name="icon">
4
4
  <uv-icon name="search" size="20" class="text-tips" />
5
5
  </slot>
@@ -14,7 +14,7 @@
14
14
  @change="change"
15
15
  >
16
16
  <swiper-item v-for="(keyword, index) in data" :key="index">
17
- <text class="ml-16rpx flex h-full" :style="[_inputStyle, _placeholderStyle]"> {{ keyword }} </text>
17
+ <text class="ml-16rpx flex h-full items-center" :style="[_inputStyle, _placeholderStyle]"> {{ keyword }} </text>
18
18
  </swiper-item>
19
19
  </swiper>
20
20
  <view v-else class="flex-1 ml-16rpx h-full relative">
@@ -33,12 +33,12 @@
33
33
  @input="input()"
34
34
  />
35
35
  <view v-if="clearable" class="search-input-clear" @tap.stop="clear" :style="[closeStyle]">
36
- <uv-icon v-if="keyword" name="close-circle-fill" class="flex text-tips" :size="clearSize" />
36
+ <uv-icon v-if="keyword" name="close-circle-fill" class="flex text-tips items-center" :size="clearSize" />
37
37
  </view>
38
38
  </view>
39
39
  <view v-if="showButton" @tap.stop="search()">
40
40
  <slot name="button">
41
- <view class="flex" :style="[buttonStyle]">
41
+ <view class="flex items-center" :style="[buttonStyle]">
42
42
  <uv-line direction="col" :color="lineColor" length="26" margin="0 16rpx" />
43
43
  <text class="text-26rpx"> 搜索 </text>
44
44
  </view>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <view class="flex justify-center flex-col" :style="[customStyle]" @tap.stop="$uv.throttle(click)">
2
+ <view class="flex justify-center items-center flex-col" :style="[customStyle]" @tap.stop="$uv.throttle(click)">
3
3
  <image :src="url" :style="[style]" mode="heightFix" />
4
4
  <text v-if="text" :style="[textStyle]"> {{ text }} </text>
5
5
  </view>
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <view class="flex flex-col pt-20rpx pl-20rpx pr-20rpx" :style="[customStyle]">
2
+ <view class="flex flex-col items-center pt-20rpx pl-20rpx pr-20rpx" :style="[customStyle]">
3
3
  <view v-if="title" class="w-full pl-20rpx">
4
4
  <text class="font-bold" :style="[titleStyle]"> {{ title }} </text>
5
5
  </view>
6
- <view class="w-full flex flex-wrap">
6
+ <view class="w-full flex flex-wrap items-center">
7
7
  <template v-for="item in buttons" :key="item.type">
8
8
  <g-share-weixin
9
9
  v-if="hasWeixin && item.type === 'weixin'"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <view class="flex justify-center flex-col" :style="[customStyle]" @tap.stop="$uv.throttle(click)">
2
+ <view class="flex justify-center items-center flex-col" :style="[customStyle]" @tap.stop="$uv.throttle(click)">
3
3
  <image :src="url" :style="[style]" mode="heightFix" />
4
4
  <text v-if="text" :style="[textStyle]"> {{ text }} </text>
5
5
  </view>
@@ -11,7 +11,7 @@
11
11
  :customStyle="_tagStyle"
12
12
  @close="removeTag(i)"
13
13
  />
14
- <view v-if="!disabled" class="flex-1 flex" style="min-width: 160rpx">
14
+ <view v-if="!disabled" class="flex-1 flex items-center" style="min-width: 160rpx">
15
15
  <input
16
16
  v-model.trim="content"
17
17
  class="box-border flex-1"
@@ -51,7 +51,7 @@
51
51
  <view v-for="(item, index) in list" :key="index" class="tag-editor-labels">
52
52
  <view v-if="item.title" :style="[titleStyle]"> {{ item.title }} </view>
53
53
  <view v-if="item.list" class="flex items-start">
54
- <view class="flex-1 flex flex-wrap">
54
+ <view class="flex-1 flex flex-wrap items-center">
55
55
  <uv-tags
56
56
  v-for="ele in item.list"
57
57
  :key="ele.label"
@@ -14,7 +14,7 @@
14
14
  </view>
15
15
  <view :style="[titleStyle]">
16
16
  <slot v-if="!start || !enableCamera" name="title">
17
- <view class="flex flex-col justify-center">
17
+ <view class="flex flex-col justify-center items-center">
18
18
  <uv-avatar :src="avatar" size="120rpx" mode="aspectFill" class="u-flex" />
19
19
  <text v-if="title" class="text-28rpx mt-12rpx"> {{ title }} </text>
20
20
  <text v-if="description" :class="[title ? 'mt-6rpx' : 'mt-12rpx']" class="text-24rpx">
@@ -1,12 +1,3 @@
1
- .bg-transparent {
2
- background-color: transparent;
3
- }
4
- .bg-white {
5
- background-color: #ffffff;
6
- }
7
- .bg-black {
8
- background-color: #000000;
9
- }
10
1
  .bg-primary {
11
2
  background-color: $uv-primary;
12
3
  }
@@ -67,24 +58,12 @@
67
58
  .bg-info-disabled {
68
59
  background-color: $uv-info-disabled;
69
60
  }
70
- .bg-main {
71
- background-color: $uv-main-color;
72
- }
73
- .bg-content {
74
- background-color: $uv-content-color;
75
- }
76
- .bg-tips {
77
- background-color: $uv-tips-color;
78
- }
79
- .bg-light {
80
- background-color: $uv-light-color;
81
- }
82
61
  .bg-border {
83
62
  background-color: $uv-border-color;
84
63
  }
85
64
  .bg {
86
65
  background-color: $uv-bg-color;
87
- }
66
+ }
88
67
  .bg-light {
89
68
  background-color: $uv-bg-light-color;
90
69
  }
@@ -8,79 +8,6 @@
8
8
  border-style: solid;
9
9
  border-color: $uv-border-color;
10
10
  }
11
- .border-0 {
12
- border-width: 0;
13
- }
14
- .border-t-0 {
15
- border-top-width: 0;
16
- }
17
- .border-r-0 {
18
- border-right-width: 0;
19
- }
20
- .border-b-0 {
21
- border-bottom-width: 0;
22
- }
23
- .border-l-0 {
24
- border-left-width: 0;
25
- }
26
- @for $i from 1 through 4 {
27
- $s: $i * 2;
28
- .border-width-#{$s}px {
29
- border-width: #{$s}px;
30
- }
31
- .border-width-#{$s}rpx {
32
- border-width: #{$s}rpx;
33
- }
34
- .border-t-width-#{$s}px {
35
- border-top-width: #{$s}px;
36
- }
37
- .border-t-width-#{$s}rpx {
38
- border-top-width: #{$s}rpx;
39
- }
40
- .border-r-width-#{$s}px {
41
- border-right-width: #{$s}px;
42
- }
43
- .border-r-width-#{$s}rpx {
44
- border-right-width: #{$s}rpx;
45
- }
46
- .border-b-width-#{$s}px {
47
- border-bottom-width: #{$s}px;
48
- }
49
- .border-b-width-#{$s}rpx {
50
- border-bottom-width: #{$s}rpx;
51
- }
52
- .border-l-width-#{$s}px {
53
- border-left-width: #{$s}px;
54
- }
55
- .border-l-width-#{$s}rpx {
56
- border-left-width: #{$s}rpx;
57
- }
58
- .border-x-width-#{$s}px {
59
- border-left-width: #{$s}px;
60
- border-right-width: #{$s}px;
61
- }
62
- .border-x-width-#{$s}rpx {
63
- border-left-width: #{$s}rpx;
64
- border-right-width: #{$s}rpx;
65
- }
66
- .border-y-width-#{$s}px {
67
- border-top-width: #{$s}px;
68
- border-bottom-width: #{$s}px;
69
- }
70
- .border-y-width-#{$s}rpx {
71
- border-top-width: #{$s}rpx;
72
- border-bottom-width: #{$s}rpx;
73
- }
74
- }
75
- .border-solid {
76
- border-style: solid;
77
- }
78
- .border-dashed {
79
- border-style: dashed;
80
- }
81
- .border-dotted {
82
- border-style: dotted;
83
- }
84
11
  .border-t {
85
12
  border-top-width: 1px;
86
13
  border-top-style: solid;
@@ -131,88 +58,4 @@
131
58
  }
132
59
  .border-info {
133
60
  border-color: $uv-info;
134
- }
135
- .border-main {
136
- border-color: $uv-main-color;
137
- }
138
- .border-light {
139
- border-color: $uv-light-color;
140
- }
141
- .border-content {
142
- border-color: $uv-content-color;
143
- }
144
- .border-transparent {
145
- border-color: transparent;
146
- }
147
- .rounded-0 {
148
- border-radius: 0;
149
- }
150
- .rounded-full {
151
- border-radius: 9999px;
152
- }
153
-
154
- @for $i from 1 through 50 {
155
- $s: $i * 2;
156
- .rounded-#{$s}px {
157
- border-radius: #{$s}px;
158
- }
159
- .rounded-t-#{$s}px {
160
- border-top-left-radius: #{$s}px;
161
- border-top-right-radius: #{$s}px;
162
- }
163
- .rounded-b-#{$s}px {
164
- border-bottom-left-radius: #{$s}px;
165
- border-bottom-right-radius: #{$s}px;
166
- }
167
- .rounded-l-#{$s}px {
168
- border-top-left-radius: #{$s}px;
169
- border-bottom-left-radius: #{$s}px;
170
- }
171
- .rounded-r-#{$s}px {
172
- border-top-right-radius: #{$s}px;
173
- border-bottom-right-radius: #{$s}px;
174
- }
175
- .rounded-tl-#{$s}px {
176
- border-top-left-radius: #{$s}px;
177
- }
178
- .rounded-tr-#{$s}px {
179
- border-top-right-radius: #{$s}px;
180
- }
181
- .rounded-bl-#{$s}px {
182
- border-bottom-left-radius: #{$s}px;
183
- }
184
- .rounded-br-#{$s}px {
185
- border-bottom-right-radius: #{$s}px;
186
- }
187
- .rounded-#{$s}rpx {
188
- border-radius: #{$s}rpx;
189
- }
190
- .rounded-t-#{$s}rpx {
191
- border-top-left-radius: #{$s}rpx;
192
- border-top-right-radius: #{$s}rpx;
193
- }
194
- .rounded-b-#{$s}rpx {
195
- border-bottom-left-radius: #{$s}rpx;
196
- border-bottom-right-radius: #{$s}rpx;
197
- }
198
- .rounded-l-#{$s}rpx {
199
- border-top-left-radius: #{$s}rpx;
200
- border-bottom-left-radius: #{$s}rpx;
201
- }
202
- .rounded-r-#{$s}rpx {
203
- border-top-right-radius: #{$s}rpx;
204
- border-bottom-right-radius: #{$s}rpx;
205
- }
206
- .rounded-tl-#{$s}rpx {
207
- border-top-left-radius: #{$s}rpx;
208
- }
209
- .rounded-tr-#{$s}rpx {
210
- border-top-right-radius: #{$s}rpx;
211
- }
212
- .rounded-bl-#{$s}rpx {
213
- border-bottom-left-radius: #{$s}rpx;
214
- }
215
- .rounded-br-#{$s}rpx {
216
- border-bottom-right-radius: #{$s}rpx;
217
- }
218
- }
61
+ }
@@ -1,16 +1,17 @@
1
- page {
2
- height: 100%;
3
- display: flex;
4
- flex-direction: column;
5
- .flex {
6
- display: flex;
1
+ /* #ifdef H5 */
2
+ page {
3
+ /* #endif */
4
+ .flex {
5
+ /* #ifndef APP-NVUE */
6
+ display: flex;
7
+ /* #endif */
7
8
  flex-direction: row;
8
- align-items: center;
9
9
  }
10
- .flex-inline {
11
- display: inline-flex;
10
+ .flex-inline {
11
+ /* #ifndef APP-NVUE */
12
+ display: inline-flex;
13
+ /* #endif */
12
14
  flex-direction: row;
13
- align-items: center;
14
15
  }
15
16
  .flex-row {
16
17
  flex-direction: row;
@@ -33,7 +34,7 @@ page {
33
34
  .flex-wrap-reverse {
34
35
  flex-wrap: wrap-reverse;
35
36
  }
36
- @for $n from 0 through 5 {
37
+ @for $n from 0 through 8 {
37
38
  .flex-#{$n} {
38
39
  flex: $n;
39
40
  }
@@ -71,5 +72,7 @@ page {
71
72
  .justify-around {
72
73
  justify-content: space-around;
73
74
  }
74
- }
75
+ /* #ifdef H5 */
76
+ }
77
+ /* #endif */
75
78
 
@@ -1,25 +1,13 @@
1
1
  @import '@gmcb/uv-ui/index.scss';
2
- @import './font.scss';
3
- @import './spacing.scss';
4
- @import './opacity.scss';
5
- @import './sizing.scss';
6
- @import './layout.scss';
7
- @import './shadow.scss';
8
2
  @import './border.scss';
9
3
  @import './bg.scss';
10
- @import './text.scss';
11
- @import './animate.scss';
4
+ @import './text.scss';
5
+ @import './layout.scss';
6
+ @import './flex.scss';
12
7
  /* #ifndef APP-NVUE */
13
- @import './reset-vue.scss';
14
- @import './flex-vue.scss';
15
- @import './layout-vue.scss';
16
- @import './sizing-vue.scss';
8
+ @import './reset-vue.scss';
17
9
  @import './text-vue.scss';
18
- @import './bg-vue.scss';
19
- @import './animate-vue.scss';
20
10
  /* #endif */
21
11
  /* #ifdef APP-NVUE */
22
- @import './flex-nvue.scss';
23
- @import './layout-nvue.scss';
24
- @import './text-nvue.scss';
12
+ @import './text-nvue.scss';
25
13
  /* #endif */
@@ -1,76 +1,18 @@
1
- .overflow-hidden {
2
- overflow: hidden;
3
- }
4
- .inset-0 {
5
- top: 0;
6
- right: 0;
7
- bottom: 0;
8
- left: 0;
9
- }
10
- .inset-x-0 {
11
- left: 0;
12
- right: 0;
13
- }
14
- .inset-y-0 {
15
- top: 0;
16
- bottom: 0;
17
- }
18
- @for $i from 0 through 50 {
19
- $s: $i * 2;
20
- .top-#{$s}px {
21
- top: #{$s}px;
22
- }
23
- .right-#{$s}px {
24
- right: #{$s}px;
25
- }
26
- .bottom-#{$s}px {
27
- bottom: #{$s}px;
28
- }
29
- .left-#{$s}px {
30
- left: #{$s}px;
31
- }
32
- .top-#{$s}rpx {
33
- top: #{$s}rpx;
34
- }
35
- .right-#{$s}rpx {
36
- right: #{$s}rpx;
37
- }
38
- .bottom-#{$s}rpx {
39
- bottom: #{$s}rpx;
40
- }
41
- .left-#{$s}rpx {
42
- left: #{$s}rpx;
43
- }
44
- }
45
- @for $i from 1 through 50 {
46
- $s: $i * 2;
47
- .-top-#{$s}px {
48
- top: -#{$s}px;
49
- }
50
- .-right-#{$s}px {
51
- right: -#{$s}px;
52
- }
53
- .-bottom-#{$s}px {
54
- bottom: -#{$s}px;
55
- }
56
- .-left-#{$s}px {
57
- left: -#{$s}px;
58
- }
59
- .-top-#{$s}rpx {
60
- top: -#{$s}rpx;
61
- }
62
- .-right-#{$s}rpx {
63
- right: -#{$s}rpx;
64
- }
65
- .-bottom-#{$s}rpx {
66
- bottom: -#{$s}rpx;
67
- }
68
- .-left-#{$s}rpx {
69
- left: -#{$s}rpx;
70
- }
71
- }
72
- @for $n from 0 through 10 {
73
- .z-#{$n} {
74
- z-index: $n;
75
- }
1
+ /* #ifdef H5 */
2
+ page {
3
+ /* #endif */
4
+ .relative {
5
+ position: relative;
6
+ }
7
+ .absolute {
8
+ position: absolute;
9
+ }
10
+ .fixed {
11
+ position: fixed;
12
+ }
13
+ .sticky {
14
+ position: sticky;
15
+ }
16
+ /* #ifdef H5 */
76
17
  }
18
+ /* #endif */
@@ -11,7 +11,9 @@ page {
11
11
  width: 100%;
12
12
  height: 100%;
13
13
  font-family: Microsoft YaHei;
14
- color: $uv-main-color;
14
+ color: $uv-main-color;
15
+ display: flex;
16
+ flex-direction: column;
15
17
  }
16
18
 
17
19
  view,
@@ -9,13 +9,4 @@
9
9
  text-overflow: ellipsis;
10
10
  lines: $n;
11
11
  }
12
- }
13
- @for $i from 8 through 11 {
14
- $s: $i * 2;
15
- .text-#{$i}px {
16
- font-size: #{$i}px;
17
- }
18
- .text-#{$s}rpx {
19
- font-size: #{$s}rpx;
20
- }
21
- }
12
+ }