@ruixinkeji/prism-ui 1.0.17 → 1.0.18

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ruixinkeji/prism-ui",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "description": "Prism UI - 现代化玻璃态设计 uni-app 组件库",
5
5
  "main": "index.js",
6
6
  "module": "index.esm.js",
@@ -8,8 +8,6 @@
8
8
  "files": [
9
9
  "dist/prism-ui.css",
10
10
  "dist/prism-ui.min.css",
11
- "styles",
12
- "theme",
13
11
  "components",
14
12
  "fonts",
15
13
  "store",
package/styles/base.scss DELETED
@@ -1,227 +0,0 @@
1
- /**
2
- * Prism UI - 基础样式
3
- * CSS 变量定义和全局样式重置
4
- */
5
-
6
- /* ============================================================
7
- 一、CSS 变量定义 - 支持动态主题切换
8
- ============================================================ */
9
-
10
- /* -------------------- 浅色模式(默认) -------------------- */
11
- :root, page {
12
- // 主题色
13
- --prism-primary-color: #{$prism-primary-color}; // 主要按钮、链接、选中状态
14
- --prism-primary-light: #{$prism-primary-light}; // 主题色浅色背景、hover 状态
15
- --prism-primary-alpha-15: #{$prism-primary-alpha-15}; // 主题色 15% 透明度
16
- --prism-primary-alpha-25: #{$prism-primary-alpha-25}; // 主题色 25% 透明度
17
- --prism-primary-alpha-35: #{$prism-primary-alpha-35}; // 主题色 35% 透明度
18
- --prism-primary-gradient: #{$prism-primary-gradient}; // 主题色渐变
19
- --prism-primary-gradient-alpha: #{$prism-primary-gradient-alpha}; // 主题色半透明渐变
20
- --prism-primary-gradient-shadow: #{$prism-primary-gradient-shadow}; // 主题色渐变阴影
21
- --prism-btn-text-color: #{$prism-btn-text-color}; // 按钮文字颜色
22
-
23
- // 状态色
24
- --prism-success-color: #{$prism-success-color}; // 成功提示、完成状态
25
- --prism-warning-color: #{$prism-warning-color}; // 警告提示、待处理状态
26
- --prism-danger-color: #{$prism-danger-color}; // 错误提示、删除操作
27
- --prism-info-color: #{$prism-info-color}; // 信息提示、辅助说明
28
-
29
- // 文字颜色
30
- --prism-text-primary: #{$prism-text-primary}; // 标题、重要信息
31
- --prism-text-regular: #{$prism-text-regular}; // 正文内容
32
- --prism-text-secondary: #{$prism-text-secondary}; // 描述、辅助信息
33
- --prism-text-placeholder: #{$prism-text-placeholder}; // 输入框占位符
34
- --prism-text-code: #{$prism-primary-color}; // 代码文字,浅色模式用主题色
35
- --prism-icon-color: #{$prism-icon-color}; // 图标默认颜色
36
-
37
- // 边框颜色
38
- --prism-border-color-base: #{$prism-border-color-base}; // 输入框、卡片边框
39
- --prism-border-color-light: #{$prism-border-color-light}; // 分割线、列表边框
40
-
41
- // 背景颜色
42
- --prism-bg-color: #{$prism-bg-color}; // 内容区域背景
43
- --prism-bg-color-page: #{$prism-bg-color-base}; // 页面最底层背景
44
- --prism-bg-color-card: #{$prism-bg-color-card}; // 卡片、弹窗、菜单背景
45
- --prism-bg-color-icon-btn: rgba(59, 130, 246, 0.12); // 图标按钮背景
46
-
47
- // 阴影
48
- --prism-shadow-color: rgba(0, 0, 0, 0.08); // 卡片、弹窗阴影
49
-
50
- // 输入框
51
- --prism-input-bg: #{$prism-bg-color-input}; // 输入框背景
52
- --prism-input-text: #{$prism-text-primary}; // 输入框文字
53
- --prism-input-placeholder: #{$prism-text-placeholder}; // 输入框占位符
54
- --prism-input-border: #{$prism-border-color-base}; // 输入框边框
55
- }
56
-
57
- /* -------------------- 深色模式 -------------------- */
58
- .dark-mode {
59
- // 主题色
60
- --prism-primary-color: #{$prism-primary-color-dark};
61
- --prism-primary-light: #{$prism-primary-light-dark};
62
- --prism-primary-alpha-15: #{$prism-primary-alpha-15};
63
- --prism-primary-alpha-25: #{$prism-primary-alpha-25};
64
- --prism-primary-alpha-35: #{$prism-primary-alpha-35};
65
- --prism-primary-gradient: #{$prism-primary-gradient};
66
- --prism-primary-gradient-alpha: #{$prism-primary-gradient-alpha};
67
- --prism-primary-gradient-shadow: #{$prism-primary-gradient-shadow};
68
- --prism-btn-text-color: #{$prism-btn-text-color-dark}; // 按钮文字颜色
69
-
70
- // 状态色
71
- --prism-success-color: #{$prism-success-color-dark};
72
- --prism-warning-color: #{$prism-warning-color-dark};
73
- --prism-danger-color: #{$prism-danger-color-dark};
74
- --prism-info-color: #{$prism-info-color-dark};
75
-
76
- // 文字颜色
77
- --prism-text-primary: #{$prism-text-primary-dark};
78
- --prism-text-regular: #{$prism-text-regular-dark};
79
- --prism-text-secondary: #{$prism-text-secondary-dark};
80
- --prism-text-placeholder: #{$prism-text-placeholder-dark};
81
- --prism-text-code: #{$prism-text-regular-dark}; // 代码文字,深色模式用常规文字色
82
- --prism-icon-color: #{$prism-icon-color-dark};
83
-
84
- // 边框颜色
85
- --prism-border-color-base: #{$prism-border-color-base-dark};
86
- --prism-border-color-light: #{$prism-border-color-light-dark};
87
-
88
- // 背景颜色(深色模式三层背景:page 最深 → bg 中间 → card 最亮)
89
- --prism-bg-color: #{$prism-bg-color-dark}; // #1A1A1A 内容区域
90
- --prism-bg-color-page: #{$prism-bg-color-page-dark}; // #121212 页面底层
91
- --prism-bg-color-card: #{$prism-bg-color-card-dark}; // #242424 卡片
92
- --prism-bg-color-icon-btn: #{$prism-primary-alpha-15};
93
-
94
- // 阴影
95
- --prism-shadow-color: rgba(0, 0, 0, 0.3);
96
-
97
- // 输入框
98
- --prism-input-bg: #{$prism-bg-color-input-dark};
99
- --prism-input-text: #{$prism-text-primary-dark};
100
- --prism-input-placeholder: #{$prism-text-placeholder-dark};
101
- --prism-input-border: #{$prism-border-color-base-dark};
102
- }
103
-
104
- /* ============================================================
105
- 二、全局样式重置
106
- ============================================================ */
107
-
108
- /* -------------------- 页面基础样式 -------------------- */
109
- page {
110
- background-color: var(--prism-bg-color-page);
111
- font-size: 28rpx;
112
- color: var(--prism-text-primary);
113
- line-height: 1.6;
114
- width: 100%;
115
- max-width: 100vw;
116
- overflow-x: hidden;
117
- overscroll-behavior: none;
118
- }
119
-
120
- /* #ifdef H5 */
121
- /* H5 环境下的容器背景色,防止页面切换闪白 */
122
- uni-app, uni-page, uni-page-wrapper, uni-page-body {
123
- background-color: var(--prism-bg-color-page) !important;
124
- }
125
-
126
- /* 固定 tabbar 页面容器高度,防止切换时高度跳动 */
127
- uni-page-wrapper, uni-page-body {
128
- min-height: 100vh !important;
129
- height: 100vh !important;
130
- }
131
- /* #endif */
132
-
133
- /* -------------------- 页面容器 -------------------- */
134
- .prism-page {
135
- width: 100%;
136
- min-height: 100vh;
137
- background: var(--prism-bg-color-page);
138
- position: relative;
139
- }
140
-
141
- /* -------------------- 主内容区(scroll-view) -------------------- */
142
- .prism-main {
143
- height: 100vh;
144
- box-sizing: border-box;
145
- background: var(--prism-bg-color-page);
146
- }
147
-
148
- /* -------------------- 元素盒模型重置 -------------------- */
149
- view, scroll-view, swiper, button, input, textarea, label, navigator {
150
- box-sizing: border-box;
151
- }
152
-
153
- /* -------------------- Button 重置 -------------------- */
154
- button {
155
- margin: 0 !important;
156
- padding: 0;
157
- background: none;
158
- border: none;
159
- line-height: inherit;
160
- font-size: inherit;
161
- color: inherit;
162
- width: auto !important;
163
- min-width: 0 !important;
164
- }
165
-
166
- button::after {
167
- display: none !important;
168
- }
169
-
170
- /* -------------------- 表单元素样式 -------------------- */
171
- input, textarea {
172
- color: var(--prism-text-primary) !important;
173
- background-color: transparent !important;
174
- caret-color: var(--prism-primary-color);
175
- }
176
-
177
- .input-placeholder,
178
- .uni-input-placeholder {
179
- color: var(--prism-text-placeholder) !important;
180
- }
181
-
182
- /* #ifdef H5 */
183
- input::placeholder,
184
- textarea::placeholder {
185
- color: var(--prism-text-placeholder) !important;
186
- }
187
- /* #endif */
188
-
189
- /* -------------------- 固定底部容器 -------------------- */
190
- .prism-fixed-bottom {
191
- position: fixed;
192
- left: 0;
193
- right: 0;
194
- bottom: 0;
195
- padding: 24rpx 30rpx;
196
- padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
197
- background: var(--prism-bg-color-card, #fff);
198
- border-top: 1rpx solid var(--prism-border-color-light, #E5E6EB);
199
- box-shadow: 0 -4rpx 20rpx rgba(0, 0, 0, 0.08);
200
- z-index: 100;
201
-
202
- .dark-mode & {
203
- background: var(--prism-bg-color-card, #242424);
204
- border-top-color: rgba(255, 255, 255, 0.1);
205
- box-shadow: 0 -4rpx 20rpx rgba(0, 0, 0, 0.3);
206
- }
207
- }
208
-
209
- /* -------------------- 固定顶部容器 -------------------- */
210
- .prism-fixed-top {
211
- position: fixed;
212
- left: 0;
213
- right: 0;
214
- top: 0;
215
- padding: 24rpx 30rpx;
216
- padding-top: calc(24rpx + env(safe-area-inset-top));
217
- background: var(--prism-bg-color-card, #fff);
218
- border-bottom: 1rpx solid var(--prism-border-color-light, #E5E6EB);
219
- box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.08);
220
- z-index: 100;
221
-
222
- .dark-mode & {
223
- background: var(--prism-bg-color-card, #242424);
224
- border-bottom-color: rgba(255, 255, 255, 0.1);
225
- box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.3);
226
- }
227
- }
@@ -1,120 +0,0 @@
1
- /**
2
- * Prism UI - 按钮组件样式
3
- * 支持多种颜色、风格和尺寸
4
- */
5
-
6
- /* ============================================================
7
- 按钮基础样式
8
- ============================================================ */
9
-
10
- .prism-btn {
11
- display: flex;
12
- align-items: center;
13
- justify-content: center;
14
- border: none;
15
- border-radius: 16rpx;
16
- font-weight: 600;
17
- line-height: 1;
18
- transition: all 0.3s ease;
19
- gap: 8rpx;
20
-
21
- &:active {
22
- opacity: 0.9;
23
- transform: scale(0.99);
24
- }
25
-
26
- &::after {
27
- border: none;
28
- }
29
-
30
- /* -------------------- 尺寸修饰符 -------------------- */
31
- &--lg {
32
- height: 100rpx;
33
- padding: 0 48rpx;
34
- font-size: 34rpx;
35
- }
36
-
37
- &--md {
38
- height: 88rpx;
39
- padding: 0 40rpx;
40
- font-size: 32rpx;
41
- }
42
-
43
- &--sm {
44
- height: 72rpx;
45
- padding: 0 32rpx;
46
- font-size: 28rpx;
47
- }
48
-
49
- &--xs {
50
- height: 56rpx;
51
- padding: 0 24rpx;
52
- font-size: 24rpx;
53
- border-radius: 12rpx;
54
- }
55
-
56
- /* -------------------- 块级按钮 -------------------- */
57
- &--block {
58
- width: 100%;
59
- display: flex;
60
- }
61
-
62
- /* -------------------- 圆角按钮 -------------------- */
63
- &--round {
64
- border-radius: 100rpx;
65
- }
66
-
67
- }
68
-
69
- /* ============================================================
70
- 渐变按钮
71
- ============================================================ */
72
-
73
- .prism-btn-gradient {
74
- display: flex;
75
- align-items: center;
76
- justify-content: center;
77
- border: none;
78
- border-radius: 16rpx;
79
- font-weight: 600;
80
- line-height: 1;
81
- transition: all 0.3s ease;
82
- padding: 16rpx 32rpx;
83
- color: #FFFFFF;
84
-
85
- &:active {
86
- opacity: 0.9;
87
- transform: scale(0.99);
88
- }
89
-
90
- &--blue {
91
- background: linear-gradient(135deg, #3478F6 0%, #5da3f5 100%);
92
- box-shadow: 0 8rpx 24rpx rgba(52, 120, 246, 0.3);
93
- }
94
-
95
- &--green {
96
- background: linear-gradient(135deg, #00B42A 0%, #52c41a 100%);
97
- box-shadow: 0 8rpx 24rpx rgba(0, 180, 42, 0.3);
98
- }
99
-
100
- &--purple {
101
- background: linear-gradient(135deg, #722ED1 0%, #9254DE 100%);
102
- box-shadow: 0 8rpx 24rpx rgba(114, 46, 209, 0.3);
103
- }
104
-
105
- &--orange {
106
- background: linear-gradient(135deg, #FF7D00 0%, #FFA940 100%);
107
- box-shadow: 0 8rpx 24rpx rgba(255, 125, 0, 0.3);
108
- }
109
- }
110
-
111
- /* ============================================================
112
- 禁用状态
113
- ============================================================ */
114
-
115
- .prism-btn--disabled {
116
- opacity: 0.5;
117
- pointer-events: none;
118
- }
119
-
120
- /* 注意:.prism-icon-btn 已统一在 @/styles/colors.scss 中定义 */
package/styles/card.scss DELETED
@@ -1,306 +0,0 @@
1
- /**
2
- * Prism UI - 卡片和容器组件样式
3
- *
4
- * 基础样式 .prism-card-base 定义在 @/styles/colors.scss
5
- */
6
-
7
- /* ============================================================
8
- prism-card - 卡片容器(带背景)
9
-
10
- 结构:
11
- .prism-card
12
- .card-title - 卡片标题(带左侧色块)
13
- .card-desc - 卡片描述
14
- 内容
15
- ============================================================ */
16
-
17
- .prism-card {
18
- position: relative;
19
- border-radius: 20rpx;
20
- padding: 32rpx;
21
- transition: all 0.2s ease;
22
- background: var(--prism-bg-color-card, #FFFFFF);
23
- box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
24
-
25
- .dark-mode & {
26
- box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.2);
27
- }
28
-
29
- // 卡片标题(带左侧色块)
30
- .card-title {
31
- font-size: 32rpx;
32
- font-weight: 600;
33
- color: var(--prism-text-primary, #1D2129);
34
- margin-bottom: $prism-section-spacing;
35
- padding-left: 16rpx;
36
- position: relative;
37
- display: flex;
38
- align-items: center;
39
-
40
- &::before {
41
- content: '';
42
- position: absolute;
43
- left: 0;
44
- top: 50%;
45
- transform: translateY(-50%);
46
- width: 6rpx;
47
- height: 32rpx;
48
- background: var(--prism-primary-color, #3478F6);
49
- border-radius: 3rpx;
50
- }
51
-
52
- .dark-mode & {
53
- color: var(--prism-text-primary, #E5E6EB);
54
- }
55
- }
56
-
57
- // 卡片描述
58
- .card-desc {
59
- display: block;
60
- font-size: 24rpx;
61
- color: var(--prism-text-secondary, #86909C);
62
- margin-bottom: 16rpx;
63
- line-height: 1.5;
64
-
65
- .dark-mode & {
66
- color: var(--prism-text-secondary, #A9AEB8);
67
- }
68
- }
69
-
70
- // 子区块(复用 prism-section 的 subsection 结构)
71
- .subsection {
72
- margin-bottom: $prism-section-spacing;
73
-
74
- &:last-child {
75
- margin-bottom: 0;
76
- }
77
- }
78
-
79
- .subsection-title {
80
- font-size: 26rpx;
81
- color: var(--prism-text-secondary, #86909C);
82
- margin-bottom: 16rpx;
83
-
84
- .dark-mode & {
85
- color: var(--prism-text-secondary, #A9AEB8);
86
- }
87
- }
88
-
89
- .subsection-desc {
90
- font-size: 24rpx;
91
- color: var(--prism-text-secondary, #86909C);
92
- padding: 16rpx 24rpx;
93
- margin-bottom: 16rpx;
94
- background: var(--prism-bg-color, #F7F8FA);
95
- border-radius: 8rpx;
96
- line-height: 1.5;
97
-
98
- .dark-mode & {
99
- background: rgba(255, 255, 255, 0.06);
100
- color: var(--prism-text-secondary, #A9AEB8);
101
- }
102
- }
103
- }
104
-
105
-
106
- /* ============================================================
107
- prism-section - 区块容器(透明背景)
108
-
109
- 结构:
110
- .prism-section
111
- .section-title - 区块标题
112
- .section-desc - 区块描述
113
- .subsection - 子区块
114
- .subsection-title - 子区块标题
115
- .subsection-desc - 子区块描述
116
- 内容
117
- ============================================================ */
118
-
119
- .prism-section {
120
- padding: $prism-section-spacing $prism-page-spacing;
121
-
122
- // 相邻 section 之间的间距(减半避免叠加过大)
123
- & + & {
124
- padding-bottom: calc($prism-section-spacing / 2);
125
- }
126
-
127
- // 区块标题
128
- .section-title {
129
- font-size: 32rpx;
130
- font-weight: 600;
131
- color: var(--prism-text-primary, #1D2129);
132
- margin-bottom: $prism-section-spacing;
133
-
134
- .dark-mode & {
135
- color: var(--prism-text-primary, #E5E6EB);
136
- }
137
- }
138
-
139
- // 区块描述
140
- .section-desc {
141
- font-size: 24rpx;
142
- color: var(--prism-text-secondary, #86909C);
143
- margin-bottom: 16rpx;
144
- line-height: 1.5;
145
-
146
- .dark-mode & {
147
- color: var(--prism-text-secondary, #A9AEB8);
148
- }
149
- }
150
-
151
- // prism-section 内的卡片间距(排除 glass 形态)
152
- .prism-card:not(.glass) {
153
- margin-bottom: $prism-section-spacing;
154
-
155
- &:last-child {
156
- margin-bottom: 0;
157
- }
158
- }
159
-
160
- // 子区块
161
- .subsection {
162
- margin-bottom: $prism-section-spacing;
163
-
164
- &:last-child {
165
- margin-bottom: 0;
166
- }
167
- }
168
-
169
- // 子区块标题
170
- .subsection-title {
171
- font-size: 26rpx;
172
- color: var(--prism-text-secondary, #86909C);
173
- margin-bottom: 16rpx;
174
-
175
- .dark-mode & {
176
- color: var(--prism-text-secondary, #A9AEB8);
177
- }
178
- }
179
-
180
- // 子区块描述
181
- .subsection-desc {
182
- font-size: 24rpx;
183
- color: var(--prism-text-secondary, #86909C);
184
- padding: 16rpx 24rpx;
185
- margin-bottom: 16rpx;
186
- background: var(--prism-bg-color, #F7F8FA);
187
- border-radius: 8rpx;
188
- line-height: 1.5;
189
-
190
- .dark-mode & {
191
- background: rgba(255, 255, 255, 0.06);
192
- color: var(--prism-text-secondary, #A9AEB8);
193
- }
194
- }
195
- }
196
-
197
- /* ============================================================
198
- 区块头部
199
- ============================================================ */
200
-
201
- .prism-section-header {
202
- display: flex;
203
- justify-content: space-between;
204
- align-items: center;
205
- margin-bottom: 16rpx;
206
- }
207
-
208
- .prism-section-title {
209
- font-size: 32rpx;
210
- font-weight: 600;
211
- padding: 24rpx 0;
212
- color: var(--prism-text-primary, #1D2129);
213
-
214
- .dark-mode & {
215
- color: var(--prism-text-primary, #E5E6EB);
216
- }
217
- }
218
-
219
- .prism-more-link {
220
- display: flex;
221
- align-items: center;
222
- gap: 4rpx;
223
-
224
- .more-text,
225
- .more-icon {
226
- font-size: 24rpx;
227
- color: var(--prism-primary-color, #3478F6);
228
- }
229
- }
230
-
231
- /* ============================================================
232
- prism-grid - 通用宫格布局
233
-
234
- 用法:
235
- .prism-grid.col-{3|4|5} - 指定列数(默认4列)
236
-
237
- 结构:
238
- .prism-grid.col-4
239
- .grid-item
240
- .prism-icon.{color}
241
- .grid-label
242
- ============================================================ */
243
-
244
- .prism-grid {
245
- display: grid;
246
- grid-template-columns: repeat(4, 1fr);
247
- gap: 16rpx;
248
-
249
- &.col-3 { grid-template-columns: repeat(3, 1fr); }
250
- &.col-4 { grid-template-columns: repeat(4, 1fr); }
251
- &.col-5 { grid-template-columns: repeat(5, 1fr); }
252
-
253
- // glass 形态
254
- &.glass {
255
- padding: 24rpx 16rpx;
256
- background: var(--prism-bg-color-card, #FFFFFF);
257
- border-radius: 16rpx;
258
- box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04);
259
-
260
- .dark-mode & {
261
- box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.2);
262
- }
263
- }
264
-
265
- .grid-item {
266
- display: flex;
267
- flex-direction: column;
268
- align-items: center;
269
- position: relative;
270
-
271
- &:active {
272
- opacity: 0.8;
273
- }
274
-
275
- // 图标下边距
276
- .prism-icon {
277
- margin-bottom: 12rpx;
278
- width: 80rpx;
279
- height: 80rpx;
280
- border-radius: 20rpx;
281
-
282
- .fa, .fa-solid, .iconfont {
283
- font-size: 32rpx;
284
- }
285
- }
286
-
287
- .prism-badge {
288
- top: -4rpx;
289
- right: 16rpx;
290
- }
291
-
292
- .prism-number-badge {
293
- top: -4rpx;
294
- right: 12rpx;
295
- }
296
- }
297
-
298
- .grid-label {
299
- font-size: 22rpx;
300
- color: var(--prism-text-primary, #1D2129);
301
-
302
- .dark-mode & {
303
- color: var(--prism-text-primary, #E5E6EB);
304
- }
305
- }
306
- }