@ruixinkeji/prism-ui 1.0.0

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 (48) hide show
  1. package/README.md +141 -0
  2. package/components/PrismAIAssist/PrismAIAssist.vue +98 -0
  3. package/components/PrismAddressInput/PrismAddressInput.vue +597 -0
  4. package/components/PrismCityCascadeSelect/PrismCityCascadeSelect.vue +793 -0
  5. package/components/PrismCityPicker/PrismCityPicker.vue +1008 -0
  6. package/components/PrismCitySelect/PrismCitySelect.vue +435 -0
  7. package/components/PrismCode/PrismCode.vue +749 -0
  8. package/components/PrismCodeInput/PrismCodeInput.vue +156 -0
  9. package/components/PrismDateTimePicker/PrismDateTimePicker.vue +953 -0
  10. package/components/PrismDropdown/PrismDropdown.vue +77 -0
  11. package/components/PrismGroupSticky/PrismGroupSticky.vue +352 -0
  12. package/components/PrismIdCardInput/PrismIdCardInput.vue +253 -0
  13. package/components/PrismImagePicker/PrismImagePicker.vue +457 -0
  14. package/components/PrismIndexBar/PrismIndexBar.vue +243 -0
  15. package/components/PrismLicensePlateInput/PrismLicensePlateInput.vue +1100 -0
  16. package/components/PrismMusicPlayer/PrismMusicPlayer.vue +530 -0
  17. package/components/PrismNavBar/PrismNavBar.vue +199 -0
  18. package/components/PrismSecureInput/PrismSecureInput.vue +360 -0
  19. package/components/PrismSticky/PrismSticky.vue +173 -0
  20. package/components/PrismSwiper/PrismSwiper.vue +339 -0
  21. package/components/PrismSwitch/PrismSwitch.vue +202 -0
  22. package/components/PrismTabBar/PrismTabBar.vue +147 -0
  23. package/components/PrismTabs/PrismTabs.vue +49 -0
  24. package/components/PrismVoiceInput/PrismVoiceInput.vue +529 -0
  25. package/index.d.ts +24 -0
  26. package/index.esm.js +25 -0
  27. package/index.js +25 -0
  28. package/package.json +89 -0
  29. package/styles/base.scss +227 -0
  30. package/styles/button.scss +120 -0
  31. package/styles/card.scss +306 -0
  32. package/styles/colors.scss +877 -0
  33. package/styles/data.scss +1229 -0
  34. package/styles/effects.scss +407 -0
  35. package/styles/feedback.scss +698 -0
  36. package/styles/form.scss +1574 -0
  37. package/styles/index.scss +46 -0
  38. package/styles/list.scss +184 -0
  39. package/styles/navigation.scss +554 -0
  40. package/styles/overlay.scss +182 -0
  41. package/styles/utilities.scss +134 -0
  42. package/styles/variables.scss +138 -0
  43. package/theme/blue.scss +36 -0
  44. package/theme/cyan.scss +32 -0
  45. package/theme/green.scss +32 -0
  46. package/theme/orange.scss +32 -0
  47. package/theme/purple.scss +32 -0
  48. package/theme/red.scss +32 -0
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Prism UI - 主入口样式文件
3
+ * @ruixin/prism-ui
4
+ *
5
+ * 现代化玻璃态设计 uni-app 组件库
6
+ * 支持深浅主题切换
7
+ */
8
+
9
+ // SCSS 变量(必须最先引入,供其他文件使用)
10
+ @import './variables';
11
+
12
+ // 基础样式和 CSS 变量
13
+ @import './base';
14
+
15
+ // 图标颜色主题
16
+ @import './colors.scss';
17
+
18
+ // 按钮组件
19
+ @import './button';
20
+
21
+ // 表单组件
22
+ @import './form';
23
+
24
+ // 卡片和容器组件
25
+ @import './card';
26
+
27
+ // 列表组件
28
+ @import './list';
29
+
30
+ // 弹出层组件
31
+ @import './overlay';
32
+
33
+ // 数据展示组件
34
+ @import './data';
35
+
36
+ // 反馈组件
37
+ @import './feedback';
38
+
39
+ // 导航组件
40
+ @import './navigation';
41
+
42
+ // 特效组件
43
+ @import './effects';
44
+
45
+ // 工具类
46
+ @import './utilities';
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Prism UI - 列表组件样式
3
+ * 菜单列表、列表项卡片等
4
+ */
5
+
6
+ /* ============================================================
7
+ 菜单列表 - 可独立使用,也可嵌套在卡片内
8
+ ============================================================ */
9
+
10
+ .prism-menu-list {
11
+ position: relative;
12
+ border-radius: 16rpx;
13
+ overflow: hidden;
14
+ background: var(--prism-bg-color-card, #FFFFFF);
15
+ box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
16
+ transition: all 0.2s ease;
17
+
18
+ .dark-mode & {
19
+ background: var(--prism-bg-color-card, #1E1E1E);
20
+ box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.2);
21
+ }
22
+
23
+ // 当同时使用 prism-card 时,去掉 padding
24
+ &.prism-card {
25
+ padding: 0;
26
+ }
27
+
28
+ .menu-item {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: space-between;
32
+ padding: 28rpx 24rpx;
33
+ border-bottom: 1rpx solid var(--prism-border-color-light, #F2F3F5);
34
+ transition: background 0.2s ease;
35
+
36
+ // 第一个 item 需要顶部圆角
37
+ &:first-child {
38
+ border-radius: 16rpx 16rpx 0 0;
39
+ }
40
+
41
+ // 最后一个 item 需要底部圆角
42
+ &:last-child {
43
+ border-bottom: none;
44
+ border-radius: 0 0 16rpx 16rpx;
45
+ }
46
+
47
+ // 只有一个 item 时需要全部圆角
48
+ &:only-child {
49
+ border-radius: 16rpx;
50
+ }
51
+
52
+ &:active {
53
+ background: var(--prism-bg-color, #F7F8FA);
54
+ }
55
+
56
+ .dark-mode & {
57
+ border-bottom-color: var(--prism-border-color-light, #2D2D2D);
58
+
59
+ &:active {
60
+ background: var(--prism-bg-color, #2A2A2A);
61
+ }
62
+ }
63
+ }
64
+
65
+ .menu-left {
66
+ display: flex;
67
+ align-items: center;
68
+ flex: 1;
69
+ }
70
+
71
+ .menu-icon {
72
+ margin-right: 20rpx;
73
+
74
+ // 当使用 prism-icon 时,覆盖默认尺寸为 sm
75
+ &.prism-icon {
76
+ width: 56rpx;
77
+ height: 56rpx;
78
+ border-radius: 12rpx;
79
+
80
+ .fa, .fa-solid, .fa-regular, .iconfont {
81
+ font-size: 24rpx;
82
+ }
83
+ }
84
+ }
85
+
86
+ .menu-text {
87
+ font-size: 30rpx;
88
+ color: var(--prism-text-primary, #1D2129);
89
+
90
+ .dark-mode & {
91
+ color: var(--prism-text-primary, #E5E6EB);
92
+ }
93
+ }
94
+
95
+ .menu-right {
96
+ display: flex;
97
+ align-items: center;
98
+ }
99
+
100
+ .menu-value {
101
+ font-size: 26rpx;
102
+ color: var(--prism-text-secondary, #86909C);
103
+ margin-right: 8rpx;
104
+ }
105
+
106
+ .menu-arrow,
107
+ .arrow {
108
+ font-size: 28rpx;
109
+ color: var(--prism-text-placeholder, #C9CDD4);
110
+ }
111
+ }
112
+
113
+ /* ============================================================
114
+ 列表项卡片 - 左图标 + 中间内容 + 右箭头
115
+ ============================================================ */
116
+
117
+ .prism-list-item {
118
+ display: flex;
119
+ align-items: center;
120
+ padding: 24rpx;
121
+ background: var(--prism-bg-color-card, #FFFFFF);
122
+ border-radius: 16rpx;
123
+ box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.04);
124
+
125
+ &:active {
126
+ opacity: 0.8;
127
+ }
128
+
129
+ .dark-mode & {
130
+ background: var(--prism-bg-color-card, #1E1E1E);
131
+ box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.2);
132
+ }
133
+
134
+ .list-item-icon {
135
+ width: 88rpx;
136
+ height: 88rpx;
137
+ border-radius: 16rpx;
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: center;
141
+ margin-right: 24rpx;
142
+ flex-shrink: 0;
143
+
144
+ .fa {
145
+ font-size: 36rpx;
146
+ }
147
+ }
148
+
149
+ .list-item-content {
150
+ flex: 1;
151
+ min-width: 0;
152
+ }
153
+
154
+ .list-item-title {
155
+ display: block;
156
+ font-size: 30rpx;
157
+ font-weight: 600;
158
+ color: var(--prism-text-primary, #1D2129);
159
+ margin-bottom: 6rpx;
160
+
161
+ .dark-mode & {
162
+ color: var(--prism-text-primary, #E5E6EB);
163
+ }
164
+ }
165
+
166
+ .list-item-desc {
167
+ display: block;
168
+ font-size: 24rpx;
169
+ color: var(--prism-text-secondary, #86909C);
170
+ overflow: hidden;
171
+ text-overflow: ellipsis;
172
+ white-space: nowrap;
173
+
174
+ .dark-mode & {
175
+ color: var(--prism-text-secondary, #A9AEB8);
176
+ }
177
+ }
178
+
179
+ .list-item-arrow {
180
+ font-size: 28rpx;
181
+ color: var(--prism-text-placeholder, #C9CDD4);
182
+ margin-left: 16rpx;
183
+ }
184
+ }