@fox-js/foxui-pad 4.1.5 → 4.1.7

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 (55) hide show
  1. package/dist/index.cjs.js +1 -1
  2. package/dist/index.esm.js +6398 -6297
  3. package/dist/index.umd.js +1 -1
  4. package/dist/style.css +58 -41
  5. package/dist/style.js +1 -1
  6. package/dist/theme/common/base.scss +44 -0
  7. package/dist/theme/common/border.scss +25 -0
  8. package/dist/theme/common/color.scss +143 -0
  9. package/dist/theme/common/fill.scss +38 -0
  10. package/dist/theme/common/shadow.scss +19 -0
  11. package/dist/theme/common/typography.scss +34 -0
  12. package/dist/theme/common/var.scss +7 -0
  13. package/dist/theme/components/actionsheet.scss +58 -0
  14. package/dist/theme/components/buttons-item.scss +18 -0
  15. package/dist/theme/components/calendar.scss +35 -0
  16. package/dist/theme/components/cascader.scss +37 -0
  17. package/dist/theme/components/content.scss +21 -0
  18. package/dist/theme/components/dialog.scss +53 -0
  19. package/dist/theme/components/floating-button.scss +25 -0
  20. package/dist/theme/components/floating-window.scss +36 -0
  21. package/dist/theme/components/footer-bar.scss +24 -0
  22. package/dist/theme/components/group.scss +32 -0
  23. package/dist/theme/components/header-bar.scss +39 -0
  24. package/dist/theme/components/hint-text.scss +24 -0
  25. package/dist/theme/components/index.scss +36 -0
  26. package/dist/theme/components/infiniteloading.scss +16 -0
  27. package/dist/theme/components/input-item.scss +52 -0
  28. package/dist/theme/components/input-number-item.scss +23 -0
  29. package/dist/theme/components/input.scss +20 -0
  30. package/dist/theme/components/link-item.scss +19 -0
  31. package/dist/theme/components/messagebox.scss +68 -0
  32. package/dist/theme/components/numberkeyboard.scss +37 -0
  33. package/dist/theme/components/picker.scss +28 -0
  34. package/dist/theme/components/popover-dialog.scss +28 -0
  35. package/dist/theme/components/popup-wrapper.scss +47 -0
  36. package/dist/theme/components/popup.scss +21 -0
  37. package/dist/theme/components/price.scss +24 -0
  38. package/dist/theme/components/radio.scss +36 -0
  39. package/dist/theme/components/row-item.scss +21 -0
  40. package/dist/theme/components/searchbar.scss +29 -0
  41. package/dist/theme/components/shortpassword.scss +19 -0
  42. package/dist/theme/components/slot-item.scss +17 -0
  43. package/dist/theme/components/steps-bar.scss +59 -0
  44. package/dist/theme/components/switch-item.scss +16 -0
  45. package/dist/theme/components/tabs-bar.scss +111 -0
  46. package/dist/theme/components/tabs-frame.scss +16 -0
  47. package/dist/theme/components/text.scss +38 -0
  48. package/dist/theme/components/toast.scss +22 -0
  49. package/dist/theme/dark/css-vars.scss +31 -0
  50. package/dist/theme/dark/var.scss +10 -0
  51. package/dist/theme/index.scss +162 -0
  52. package/dist/theme/mixins/_css-var.scss +47 -0
  53. package/dist/theme/mixins/index.scss +1 -0
  54. package/dist/theme/readme.md +244 -0
  55. package/package.json +1 -1
@@ -0,0 +1,162 @@
1
+ @use 'sass:map';
2
+ @use './common/color' as *;
3
+ @use './common/typography' as *;
4
+ @use './common/border' as *;
5
+ @use './common/fill' as *;
6
+ @use './common/shadow' as *;
7
+ @use './common/base' as *;
8
+ @use './mixins/css-var' as *;
9
+ @use './components/actionsheet' as *;
10
+ @use './components/buttons-item' as *;
11
+ @use './components/calendar' as *;
12
+ @use './components/cascader' as *;
13
+ @use './components/content' as *;
14
+ @use './components/dialog' as *;
15
+ @use './components/floating-button' as *;
16
+ @use './components/floating-window' as *;
17
+ @use './components/footer-bar' as *;
18
+ @use './components/group' as *;
19
+ @use './components/header-bar' as *;
20
+ @use './components/hint-text' as *;
21
+ @use './components/infiniteloading' as *;
22
+ @use './components/input' as *;
23
+ @use './components/input-item' as *;
24
+ @use './components/input-number-item' as *;
25
+ @use './components/link-item' as *;
26
+ @use './components/messagebox' as *;
27
+ @use './components/numberkeyboard' as *;
28
+ @use './components/picker' as *;
29
+ @use './components/popover-dialog' as *;
30
+ @use './components/popup' as *;
31
+ @use './components/popup-wrapper' as *;
32
+ @use './components/price' as *;
33
+ @use './components/radio' as *;
34
+ @use './components/row-item' as *;
35
+ @use './components/searchbar' as *;
36
+ @use './components/shortpassword' as *;
37
+ @use './components/slot-item' as *;
38
+ @use './components/steps-bar' as *;
39
+ @use './components/switch-item' as *;
40
+ @use './components/tabs-bar' as *;
41
+ @use './components/tabs-frame' as *;
42
+ @use './components/text' as *;
43
+ @use './components/toast' as *;
44
+
45
+ // foxui-desktop 主题入口
46
+ // 生成 :root 下的 fox CSS 自定义属性, 基础 token 委托 element-plus 变量,
47
+ // element-plus 主题(含暗黑模式)变化时 fox 主题自动跟随
48
+ :root {
49
+ // ---- 颜色 ----
50
+ @include gen-color-css-vars($colors);
51
+ // 补充简写形式的基础色变量
52
+ --fox-color-primary: #{$color-primary};
53
+ --fox-color-success: #{$color-success};
54
+ --fox-color-warning: #{$color-warning};
55
+ --fox-color-danger: #{$color-danger};
56
+ --fox-color-info: #{$color-info};
57
+
58
+ // ---- 文字颜色 ----
59
+ @each $type, $value in $text-color {
60
+ --fox-text-color-#{$type}: #{$value};
61
+ }
62
+ --fox-title-color: #{$title-color};
63
+ --fox-title-color-secondary: #{$title-color-secondary};
64
+ --fox-text-color-regular: #{$text-color-regular};
65
+ --fox-text-color-secondary: #{$text-color-secondary};
66
+ --fox-disabled-color: #{$disabled-color};
67
+ --fox-readonly-color: #{$readonly-color};
68
+ --fox-required-color: #{$required-color};
69
+
70
+ // ---- 边框颜色 ----
71
+ @each $type, $value in $border-color {
72
+ --fox-border-color-#{$type}: #{$value};
73
+ }
74
+
75
+ // ---- 填充色 ----
76
+ @each $type, $value in $fill-color {
77
+ --fox-fill-color-#{$type}: #{$value};
78
+ }
79
+
80
+ // ---- 背景色 ----
81
+ @each $type, $value in $bg-color {
82
+ --fox-bg-color-#{$type}: #{$value};
83
+ }
84
+ --fox-background-color: #{$background-color};
85
+
86
+ // ---- 黑白 ----
87
+ --fox-white: #{$white};
88
+ --fox-black: #{$black};
89
+
90
+ // ---- 字体 ----
91
+ --fox-font-size-extra-small: #{$font-size-extra-small};
92
+ --fox-font-size-small: #{$font-size-small};
93
+ --fox-font-size-base: #{$font-size-base};
94
+ --fox-font-size-medium: #{$font-size-medium};
95
+ --fox-font-size-large: #{$font-size-large};
96
+ --fox-font-size-extra-large: #{$font-size-extra-large};
97
+ --fox-font-weight-bold: #{$font-weight-bold};
98
+ --fox-line-height-base: #{$line-height-base};
99
+ --fox-font-family: #{$font-family};
100
+
101
+ // ---- 动画 ----
102
+ --fox-animation-duration: #{$animation-duration};
103
+ --fox-animation-timing-fun: #{$animation-timing-fun};
104
+
105
+ // ---- 阴影 ----
106
+ --fox-box-shadow: #{$box-shadow};
107
+ --fox-box-shadow-light: #{$box-shadow-light};
108
+ --fox-box-shadow-lighter: #{$box-shadow-lighter};
109
+ --fox-box-shadow-dark: #{$box-shadow-dark};
110
+
111
+ // ---- 遮罩 ----
112
+ --fox-overlay-bg-color: #{$overlay-bg-color};
113
+ --fox-overlay-text-bg-color: #{$overlay-text-bg-color};
114
+
115
+ // ---- 暗黑风格(fox 独有) ----
116
+ --fox-dark-background: #{$dark-background};
117
+ --fox-dark-background-2: #{$dark-background-2};
118
+ --fox-dark-background-3: #{$dark-background-3};
119
+ --fox-dark-background-4: #{$dark-background-4};
120
+ --fox-dark-background-5: #{$dark-background-5};
121
+ --fox-dark-color: #{$dark-color};
122
+ --fox-dark-color-2: #{$dark-color-2};
123
+ --fox-dark-color-gray: #{$dark-color-gray};
124
+ --fox-dark-calendar-choose-color: #{$dark-calendar-choose-color};
125
+
126
+ // ---- 组件 Design Token ----
127
+ @include gen-component-css-vars('actionsheet', $actionsheet);
128
+ @include gen-component-css-vars('buttons-item', $buttons-item);
129
+ @include gen-component-css-vars('calendar', $calendar);
130
+ @include gen-component-css-vars('cascader', $cascader);
131
+ @include gen-component-css-vars('content', $content);
132
+ @include gen-component-css-vars('dialog', $dialog);
133
+ @include gen-component-css-vars('floating-button', $floating-button);
134
+ @include gen-component-css-vars('floating-window', $floating-window);
135
+ @include gen-component-css-vars('footer-bar', $footer-bar);
136
+ @include gen-component-css-vars('group', $group);
137
+ @include gen-component-css-vars('header-bar', $header-bar);
138
+ @include gen-component-css-vars('hint-text', $hint-text);
139
+ @include gen-component-css-vars('infiniteloading', $infiniteloading);
140
+ @include gen-component-css-vars('input', $input);
141
+ @include gen-component-css-vars('input-item', $input-item);
142
+ @include gen-component-css-vars('input-number-item', $input-number-item);
143
+ @include gen-component-css-vars('link-item', $link-item);
144
+ @include gen-component-css-vars('messagebox', $messagebox);
145
+ @include gen-component-css-vars('numberkeyboard', $numberkeyboard);
146
+ @include gen-component-css-vars('picker', $picker);
147
+ @include gen-component-css-vars('popover-dialog', $popover-dialog);
148
+ @include gen-component-css-vars('popup', $popup);
149
+ @include gen-component-css-vars('popup-wrapper', $popup-wrapper);
150
+ @include gen-component-css-vars('price', $price);
151
+ @include gen-component-css-vars('radio', $radio);
152
+ @include gen-component-css-vars('row-item', $row-item);
153
+ @include gen-component-css-vars('searchbar', $searchbar);
154
+ @include gen-component-css-vars('shortpassword', $shortpassword);
155
+ @include gen-component-css-vars('slot-item', $slot-item);
156
+ @include gen-component-css-vars('steps-bar', $steps-bar);
157
+ @include gen-component-css-vars('switch-item', $switch-item);
158
+ @include gen-component-css-vars('tabs-bar', $tabs-bar);
159
+ @include gen-component-css-vars('tabs-frame', $tabs-frame);
160
+ @include gen-component-css-vars('text', $text);
161
+ @include gen-component-css-vars('toast', $toast);
162
+ }
@@ -0,0 +1,47 @@
1
+ @use 'sass:map';
2
+ @use 'sass:meta';
3
+
4
+ // 生成颜色系统 CSS 变量
5
+ // ('primary': ('base': xxx, 'light-1': xxx)) => --fox-color-primary-base / --fox-color-primary-light-1
6
+ // ('white': xxx) => --fox-color-white
7
+ @mixin gen-color-css-vars($colors-map, $prefix: 'fox') {
8
+ @each $type, $variants in $colors-map {
9
+ @if meta.type-of($variants) == 'map' {
10
+ @each $level, $value in $variants {
11
+ --#{$prefix}-color-#{$type}-#{$level}: #{$value};
12
+ }
13
+ } @else {
14
+ --#{$prefix}-color-#{$type}: #{$variants};
15
+ }
16
+ }
17
+ }
18
+
19
+ // 生成基础模块 CSS 变量
20
+ // ('key': ('sub': xxx)) => --fox-key-sub
21
+ // ('key': xxx) => --fox-key
22
+ @mixin gen-css-vars($map, $prefix: 'fox') {
23
+ @each $key, $value in $map {
24
+ @if meta.type-of($value) == 'map' {
25
+ @each $sub-key, $sub-value in $value {
26
+ --#{$prefix}-#{$key}-#{$sub-key}: #{$sub-value};
27
+ }
28
+ } @else {
29
+ --#{$prefix}-#{$key}: #{$value};
30
+ }
31
+ }
32
+ }
33
+
34
+ // 生成组件 CSS 变量
35
+ // ('key': ('sub': xxx)) => --fox-{component}-key-sub
36
+ // ('key': xxx) => --fox-{component}-key
37
+ @mixin gen-component-css-vars($component-name, $map, $prefix: 'fox') {
38
+ @each $key, $value in $map {
39
+ @if meta.type-of($value) == 'map' {
40
+ @each $sub-key, $sub-value in $value {
41
+ --#{$prefix}-#{$component-name}-#{$key}-#{$sub-key}: #{$sub-value};
42
+ }
43
+ } @else {
44
+ --#{$prefix}-#{$component-name}-#{$key}: #{$value};
45
+ }
46
+ }
47
+ }
@@ -0,0 +1 @@
1
+ @forward 'css-var';
@@ -0,0 +1,244 @@
1
+ <!--
2
+ * @Author: 江成
3
+ * @Date: 2026-09-06
4
+ -->
5
+
6
+ # FoxUI Desktop 主题 Design 系统
7
+
8
+ FoxUI Desktop 主题 Design 系统用于替代 `ui/foxui-desktop/src/styles/variables.scss`,采用 Design Token 架构,将变量从扁平的 Sass 变量重构为结构化的 Map 体系,并自动生成 CSS 自定义属性(CSS Custom Properties),实现运行时主题切换能力。
9
+
10
+ 与移动端 `foxui` 主题系统的核心差异:**基础 Token 全部委托 Element Plus 变量**(`var(--el-*)`),Element Plus 主题(含暗黑模式)变化时 Fox 主题自动跟随,避免两套变量体系不一致。
11
+
12
+ ## 目录结构
13
+
14
+ ```
15
+ theme/
16
+ ├── index.scss # 主入口,生成 :root 下的 CSS 自定义属性
17
+ ├── readme.md
18
+ ├── common/ # 基础 Design Token
19
+ │ ├── var.scss # 基础变量统一导出
20
+ │ ├── color.scss # 颜色系统(委托 element-plus 颜色变量)
21
+ │ ├── typography.scss # 排版系统(文字颜色、字号、字重)
22
+ │ ├── border.scss # 边框系统
23
+ │ ├── fill.scss # 填充色系统
24
+ │ ├── shadow.scss # 阴影系统
25
+ │ └── base.scss # 其他基础变量(动画、遮罩、暗黑、字体等)
26
+ ├── components/ # 组件 Design Token
27
+ │ ├── index.scss # 组件变量统一导出
28
+ │ ├── actionsheet.scss # 动作面板组件变量
29
+ │ ├── buttons-item.scss # 按钮容器组件变量
30
+ │ ├── calendar.scss # 日历组件变量
31
+ │ ├── cascader.scss # 级联选择组件变量
32
+ │ ├── content.scss # 内容容器组件变量
33
+ │ ├── dialog.scss # 对话框组件变量
34
+ │ ├── floating-button.scss # 悬浮按钮组件变量
35
+ │ ├── floating-window.scss # 悬浮窗组件变量
36
+ │ ├── footer-bar.scss # 底部栏组件变量
37
+ │ ├── group.scss # 分组容器组件变量
38
+ │ ├── header-bar.scss # 头部栏组件变量
39
+ │ ├── hint-text.scss # 提示文本组件变量
40
+ │ ├── infiniteloading.scss # 无限加载组件变量
41
+ │ ├── input.scss # 输入框组件变量
42
+ │ ├── input-item.scss # 表单输入组件变量
43
+ │ ├── input-number-item.scss # 数字输入组件变量
44
+ │ ├── link-item.scss # 链接组件变量
45
+ │ ├── messagebox.scss # 消息框组件变量
46
+ │ ├── numberkeyboard.scss # 数字键盘组件变量
47
+ │ ├── picker.scss # 选择器组件变量
48
+ │ ├── popover-dialog.scss # 气泡弹层组件变量
49
+ │ ├── popup.scss # 弹出层组件变量
50
+ │ ├── popup-wrapper.scss # 弹出层容器组件变量
51
+ │ ├── price.scss # 价格组件变量
52
+ │ ├── radio.scss # 单选组件变量
53
+ │ ├── row-item.scss # 行容器组件变量
54
+ │ ├── searchbar.scss # 搜索栏组件变量
55
+ │ ├── shortpassword.scss # 密码输入组件变量
56
+ │ ├── slot-item.scss # 插槽容器组件变量
57
+ │ ├── steps-bar.scss # 步骤条栏组件变量
58
+ │ ├── switch-item.scss # 开关组件变量
59
+ │ ├── tabs-bar.scss # 标签栏组件变量
60
+ │ ├── tabs-frame.scss # 标签框架组件变量
61
+ │ ├── text.scss # 文本组件变量
62
+ │ └── toast.scss # 轻提示组件变量
63
+ ├── dark/ # 暗黑模式
64
+ │ ├── var.scss # 暗黑模式变量定义
65
+ │ └── css-vars.scss # 暗黑模式 CSS 自定义属性生成(html.dark)
66
+ └── mixins/ # 混入工具
67
+ ├── index.scss # 混入统一导出
68
+ └── _css-var.scss # CSS 变量生成混入
69
+ ```
70
+
71
+ ## 核心设计
72
+
73
+ ### 1. Map 结构替代扁平变量
74
+
75
+ **旧方式(variables.scss):**
76
+ ```scss
77
+ $messagebox-width: 80% !default;
78
+ $messagebox-height: auto !default;
79
+ $messagebox-font-size: $font-size-base !default;
80
+ // ... 每个属性一个变量,数百个扁平变量
81
+ ```
82
+
83
+ **新方式(theme 系统):**
84
+ ```scss
85
+ $messagebox: () !default;
86
+ $messagebox: map.deep-merge(
87
+ (
88
+ 'z-index': 3000,
89
+ 'width': 80%,
90
+ 'height': auto,
91
+ 'font-size': $font-size-base,
92
+ 'header': (
93
+ 'title-font-size': $font-size-medium,
94
+ 'title-color': $title-color
95
+ )
96
+ ),
97
+ $messagebox
98
+ );
99
+ ```
100
+
101
+ ### 2. 自动生成 CSS 自定义属性
102
+
103
+ 通过 `gen-component-css-vars` 混入,将 Map 结构自动展开为 CSS 自定义属性:
104
+
105
+ ```scss
106
+ @include gen-component-css-vars('messagebox', $messagebox);
107
+ // 生成:
108
+ // --fox-messagebox-z-index: 3000;
109
+ // --fox-messagebox-width: 80%;
110
+ // --fox-messagebox-height: auto;
111
+ // --fox-messagebox-font-size: var(--el-font-size-base);
112
+ // --fox-messagebox-header-title-font-size: var(--el-font-size-medium);
113
+ // --fox-messagebox-header-title-color: var(--el-text-color-primary);
114
+ ```
115
+
116
+ ### 3. CSS 变量生成规则
117
+
118
+ | Map 结构 | 生成的 CSS 变量 |
119
+ |---|---|
120
+ | `'key': value` | `--fox-{component}-key: value` |
121
+ | `'key': ('sub': value)` | `--fox-{component}-key-sub: value` |
122
+
123
+ **注意**:Map key 不应包含组件名前缀。例如 `tabs-bar` 组件的 key 应为 `'icon-size'` 而非 `'bar-icon-size'`,否则会生成重复的 `--fox-tabs-bar-bar-icon-size`。
124
+
125
+ ### 4. 委托 Element Plus 变量
126
+
127
+ 基础 Token(颜色、文字、边框、填充、阴影、字体)全部委托 Element Plus:
128
+
129
+ ```scss
130
+ // common/color.scss
131
+ $colors: (
132
+ 'primary': (
133
+ 'base': var(--el-color-primary),
134
+ 'light-1': var(--el-color-primary-light-1),
135
+ // ...
136
+ 'dark-2': var(--el-color-primary-dark-2)
137
+ )
138
+ );
139
+
140
+ // common/typography.scss
141
+ $text-color: (
142
+ 'primary': var(--el-text-color-primary),
143
+ 'regular': var(--el-text-color-regular),
144
+ // ...
145
+ 'readonly': #808080, // fox 独有,无 element-plus 对应
146
+ 'required': var(--el-color-error)
147
+ );
148
+ ```
149
+
150
+ 生成结果:
151
+
152
+ ```css
153
+ :root {
154
+ --fox-color-primary: var(--el-color-primary);
155
+ --fox-text-color-primary: var(--el-text-color-primary);
156
+ --fox-readonly-color: #808080;
157
+ }
158
+ ```
159
+
160
+ Element Plus 切换主题(含暗黑模式)时,Fox 主题自动跟随,无需额外处理。
161
+
162
+ ## 使用方式
163
+
164
+ ### 基本使用
165
+
166
+ ```scss
167
+ // 在项目入口引入(以 @fox-js/foxui-pc 为例,pad 同理)
168
+ @use '@fox-js/foxui-pc/dist/theme/index.scss' as *;
169
+ ```
170
+
171
+ ### 暗黑模式
172
+
173
+ 基础 Token 已委托 Element Plus,`html.dark` 下自动跟随。如需覆盖 fox 独有变量:
174
+
175
+ ```scss
176
+ @use '@fox-js/foxui-pc/dist/theme/dark/css-vars.scss' as *;
177
+ ```
178
+
179
+ 暗黑模式会在 `html.dark` 选择器下覆盖 CSS 自定义属性:
180
+
181
+ - fox 独有变量(如 `--fox-readonly-color`)
182
+ - 亮色下写死为白色/浅色的组件背景变量(切换为 `var(--el-bg-color-overlay)`)
183
+
184
+ ### 自定义主题
185
+
186
+ 由于基础 Token 委托 Element Plus,推荐直接覆盖 Element Plus 变量:
187
+
188
+ ```scss
189
+ :root {
190
+ --el-color-primary: #1890ff;
191
+ }
192
+ // fox 主题自动跟随
193
+ ```
194
+
195
+ 也可通过 `@forward ... with` 覆盖 fox 的 Design Token(适用于 fox 独有变量):
196
+
197
+ ```scss
198
+ @forward '@fox-js/foxui-pc/dist/theme/dark/var.scss' with (
199
+ $dark-readonly-color: #b1b3b8
200
+ );
201
+
202
+ @use '@fox-js/foxui-pc/dist/theme/dark/css-vars.scss' as *;
203
+ ```
204
+
205
+ ### 在组件中使用变量
206
+
207
+ ```scss
208
+ // 通过 CSS 变量引用(推荐,支持运行时切换)
209
+ .messagebox {
210
+ width: var(--fox-messagebox-width);
211
+ font-size: var(--fox-messagebox-font-size);
212
+ }
213
+
214
+ // 通过 Sass 变量引用(编译时确定)
215
+ @use '@fox-js/foxui-pc/dist/theme/common/var' as *;
216
+
217
+ .messagebox {
218
+ font-size: map.get($messagebox, 'font-size');
219
+ }
220
+ ```
221
+
222
+ ## 与 variables.scss 的对比
223
+
224
+ | 特性 | variables.scss | theme 系统 |
225
+ |---|---|---|
226
+ | 变量结构 | 扁平变量(900+) | 结构化 Map |
227
+ | CSS 变量生成 | 手动 var() 声明 | 自动生成 |
228
+ | 运行时切换 | 部分(逐个声明) | 支持(全量生成) |
229
+ | 主题定制 | 逐个覆盖变量 | 委托 element-plus + Map 合并覆盖 |
230
+ | 暗黑模式 | 需手动定义 | 内置支持,自动跟随 element-plus |
231
+ | 组件变量数 | 35 个组件 | 35 个组件 |
232
+
233
+ ## 迁移指南
234
+
235
+ 从 `variables.scss` 迁移到 theme 系统:
236
+
237
+ 1. **替换入口引用**:将 `@use '@/styles/variables.scss'` 替换为 `@use '@/theme/common/var'`
238
+ 2. **组件变量访问**:将 `$messagebox-width` 替换为 `map.get($messagebox, 'width')`
239
+ 3. **CSS 变量使用**:推荐直接使用 `var(--fox-messagebox-width)`,无需修改
240
+ 4. **主题定制**:覆盖 `--el-*` 变量(element-plus 部分)或使用 `@forward ... with`(fox 独有部分)
241
+
242
+ ## 打包说明
243
+
244
+ `scripts/fox-generate/pack-foxui.cjs` 会将 `src/theme` 完整拷贝到 release 的 `dist/theme` 目录,发布后通过 `@fox-js/foxui-pc/dist/theme/index.scss`(或 `@fox-js/foxui-pad/dist/theme/index.scss`)引用。
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fox-js/foxui-pad",
3
3
  "type": "module",
4
- "version": "4.1.5",
4
+ "version": "4.1.7",
5
5
  "description": "FoxUI PAD端组件库",
6
6
  "author": "jiangcheng",
7
7
  "main": "./dist/index.umd.js",