@fjyueke/arco-mcp 1.0.1 → 1.0.3
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/dist/index.js +150 -1
- package/metaData/components/action-sheet/css-variables.md +32 -0
- package/metaData/components/action-sheet/style.md +57 -0
- package/metaData/components/avatar/css-variables.md +64 -0
- package/metaData/components/avatar/style.md +147 -0
- package/metaData/components/badge/style.md +74 -0
- package/metaData/components/button/css-variables.md +29 -0
- package/metaData/components/button/style.md +151 -0
- package/metaData/components/carousel/css-variables.md +15 -0
- package/metaData/components/carousel/style.md +208 -0
- package/metaData/components/cell/css-variables.md +32 -0
- package/metaData/components/cell/style.md +123 -0
- package/metaData/components/checkbox/css-variables.md +11 -0
- package/metaData/components/checkbox/style.md +62 -0
- package/metaData/components/circle-progress/css-variables.md +15 -0
- package/metaData/components/circle-progress/style.md +52 -0
- package/metaData/components/collapse/css-variables.md +14 -0
- package/metaData/components/collapse/style.md +53 -0
- package/metaData/components/context-provider/css-variables.md +9 -0
- package/metaData/components/context-provider/style.md +1 -0
- package/metaData/components/count-down/css-variables.md +32 -0
- package/metaData/components/count-down/style.md +7 -0
- package/metaData/components/date-picker/style.md +27 -0
- package/metaData/components/dialog/css-variables.md +31 -0
- package/metaData/components/dialog/style.md +271 -0
- package/metaData/components/divider/css-variables.md +13 -0
- package/metaData/components/divider/style.md +68 -0
- package/metaData/components/dropdown/css-variables.md +23 -0
- package/metaData/components/dropdown/style.md +108 -0
- package/metaData/components/dropdown-menu/css-variables.md +23 -0
- package/metaData/components/dropdown-menu/style.md +60 -0
- package/metaData/components/ellipsis/css-variables.md +9 -0
- package/metaData/components/ellipsis/style.md +31 -0
- package/metaData/components/form/css-variables.md +12 -0
- package/metaData/components/form/style.md +105 -0
- package/metaData/components/grid/css-variables.md +18 -0
- package/metaData/components/grid/style.md +109 -0
- package/metaData/components/icon/css-variables.md +32 -0
- package/metaData/components/image/css-variables.md +18 -0
- package/metaData/components/image/style.md +144 -0
- package/metaData/components/image-picker/css-variables.md +18 -0
- package/metaData/components/image-picker/style.md +116 -0
- package/metaData/components/image-preview/css-variables.md +18 -0
- package/metaData/components/image-preview/style.md +103 -0
- package/metaData/components/index-bar/css-variables.md +20 -0
- package/metaData/components/index-bar/style.md +122 -0
- package/metaData/components/input/css-variables.md +20 -0
- package/metaData/components/input/style.md +108 -0
- package/metaData/components/keyboard/css-variables.md +16 -0
- package/metaData/components/keyboard/style.md +80 -0
- package/metaData/components/load-more/css-variables.md +32 -0
- package/metaData/components/load-more/style.md +7 -0
- package/metaData/components/loading/css-variables.md +10 -0
- package/metaData/components/loading/style.md +102 -0
- package/metaData/components/masking/style.md +30 -0
- package/metaData/components/nav-bar/css-variables.md +13 -0
- package/metaData/components/nav-bar/style.md +112 -0
- package/metaData/components/notice-bar/css-variables.md +14 -0
- package/metaData/components/notice-bar/style.md +124 -0
- package/metaData/components/notify/css-variables.md +10 -0
- package/metaData/components/notify/style.md +40 -0
- package/metaData/components/pagination/css-variables.md +15 -0
- package/metaData/components/pagination/style.md +105 -0
- package/metaData/components/picker/css-variables.md +16 -0
- package/metaData/components/picker/style.md +46 -0
- package/metaData/components/picker-view/css-variables.md +16 -0
- package/metaData/components/picker-view/style.md +75 -0
- package/metaData/components/popover/css-variables.md +14 -0
- package/metaData/components/popover/style.md +226 -0
- package/metaData/components/popup/style.md +115 -0
- package/metaData/components/popup-swiper/style.md +10 -0
- package/metaData/components/portal/css-variables.md +32 -0
- package/metaData/components/portal/style.md +1 -0
- package/metaData/components/progress/css-variables.md +15 -0
- package/metaData/components/progress/style.md +114 -0
- package/metaData/components/pull-refresh/css-variables.md +9 -0
- package/metaData/components/pull-refresh/style.md +86 -0
- package/metaData/components/radio/style.md +57 -0
- package/metaData/components/rate/style.md +63 -0
- package/metaData/components/search-bar/css-variables.md +18 -0
- package/metaData/components/search-bar/style.md +115 -0
- package/metaData/components/show-monitor/css-variables.md +32 -0
- package/metaData/components/show-monitor/style.md +1 -0
- package/metaData/components/skeleton/css-variables.md +15 -0
- package/metaData/components/skeleton/style.md +147 -0
- package/metaData/components/slider/css-variables.md +22 -0
- package/metaData/components/slider/style.md +292 -0
- package/metaData/components/stepper/css-variables.md +11 -0
- package/metaData/components/stepper/style.md +85 -0
- package/metaData/components/steps/css-variables.md +17 -0
- package/metaData/components/steps/style.md +304 -0
- package/metaData/components/sticky/style.md +5 -0
- package/metaData/components/swipe-action/css-variables.md +12 -0
- package/metaData/components/swipe-action/style.md +89 -0
- package/metaData/components/swipe-load/css-variables.md +12 -0
- package/metaData/components/swipe-load/style.md +29 -0
- package/metaData/components/switch/css-variables.md +18 -0
- package/metaData/components/switch/style.md +158 -0
- package/metaData/components/tab-bar/css-variables.md +14 -0
- package/metaData/components/tab-bar/style.md +57 -0
- package/metaData/components/tabs/css-variables.md +18 -0
- package/metaData/components/tabs/style.md +436 -0
- package/metaData/components/tag/css-variables.md +19 -0
- package/metaData/components/tag/style.md +133 -0
- package/metaData/components/textarea/css-variables.md +11 -0
- package/metaData/components/textarea/style.md +37 -0
- package/metaData/components/toast/css-variables.md +19 -0
- package/metaData/components/toast/style.md +93 -0
- package/metaData/components/transition/css-variables.md +32 -0
- package/metaData/components/transition/style.md +28 -0
- package/metaData/components/uploader/css-variables.md +18 -0
- package/metaData/components/uploader/style.md +86 -0
- package/metaData/tokens.json +2358 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -23,7 +23,8 @@ var config = {
|
|
|
23
23
|
componentsIndexPath: resolve(
|
|
24
24
|
__dirname,
|
|
25
25
|
"../metaData/components-index.json"
|
|
26
|
-
)
|
|
26
|
+
),
|
|
27
|
+
tokensPath: resolve(__dirname, "../metaData/tokens.json")
|
|
27
28
|
},
|
|
28
29
|
server: {
|
|
29
30
|
name: "arco-mcp",
|
|
@@ -156,6 +157,91 @@ ${content}
|
|
|
156
157
|
return `Failed to load examples for ${component.name}`;
|
|
157
158
|
}
|
|
158
159
|
};
|
|
160
|
+
var fetchComponentStyle = async (componentName) => {
|
|
161
|
+
const component = await locateComponentByName(componentName);
|
|
162
|
+
if (!component) {
|
|
163
|
+
return "Component not found";
|
|
164
|
+
}
|
|
165
|
+
const stylePath = join3(
|
|
166
|
+
config.paths.componentsDir,
|
|
167
|
+
component.dirName,
|
|
168
|
+
"style.md"
|
|
169
|
+
);
|
|
170
|
+
try {
|
|
171
|
+
if (existsSync(stylePath)) {
|
|
172
|
+
const content = await readFile(stylePath, "utf-8");
|
|
173
|
+
return `\`\`\`less
|
|
174
|
+
${content}
|
|
175
|
+
\`\`\``;
|
|
176
|
+
}
|
|
177
|
+
return `Style documentation for ${component.name} not found`;
|
|
178
|
+
} catch (error) {
|
|
179
|
+
await logService.error(`${component.name}: ${error.message}`);
|
|
180
|
+
return `Failed to load style for ${component.name}`;
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
var fetchComponentCssVariables = async (componentName) => {
|
|
184
|
+
const component = await locateComponentByName(componentName);
|
|
185
|
+
if (!component) {
|
|
186
|
+
return "Component not found";
|
|
187
|
+
}
|
|
188
|
+
const cssVariablesPath = join3(
|
|
189
|
+
config.paths.componentsDir,
|
|
190
|
+
component.dirName,
|
|
191
|
+
"css-variables.md"
|
|
192
|
+
);
|
|
193
|
+
try {
|
|
194
|
+
if (existsSync(cssVariablesPath)) {
|
|
195
|
+
const content = await readFile(cssVariablesPath, "utf-8");
|
|
196
|
+
return content;
|
|
197
|
+
}
|
|
198
|
+
return `CSS variables documentation for ${component.name} not found`;
|
|
199
|
+
} catch (error) {
|
|
200
|
+
await logService.error(`${component.name}: ${error.message}`);
|
|
201
|
+
return `Failed to load CSS variables for ${component.name}`;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
var fetchCssTokens = async (category) => {
|
|
205
|
+
try {
|
|
206
|
+
const tokensData = await readFile(config.paths.tokensPath, "utf-8");
|
|
207
|
+
const tokens = JSON.parse(tokensData);
|
|
208
|
+
if (category) {
|
|
209
|
+
const categoryTokens = tokens[category];
|
|
210
|
+
if (categoryTokens) {
|
|
211
|
+
const result2 = categoryTokens.map(
|
|
212
|
+
(token) => `- **${token.name}**: ${token.value} - ${token.description}`
|
|
213
|
+
).join("\n");
|
|
214
|
+
return `## ${category}
|
|
215
|
+
|
|
216
|
+
${result2}`;
|
|
217
|
+
}
|
|
218
|
+
return `Category "${category}" not found`;
|
|
219
|
+
}
|
|
220
|
+
const categories = Object.keys(tokens);
|
|
221
|
+
const result = categories.map((cat) => {
|
|
222
|
+
const catTokens = tokens[cat].map(
|
|
223
|
+
(token) => ` - ${token.name}: ${token.value}`
|
|
224
|
+
).join("\n");
|
|
225
|
+
return `## ${cat}
|
|
226
|
+
|
|
227
|
+
${catTokens}`;
|
|
228
|
+
}).join("\n\n");
|
|
229
|
+
return result;
|
|
230
|
+
} catch (error) {
|
|
231
|
+
await logService.error(`Failed to load CSS tokens: ${error.message}`);
|
|
232
|
+
return "Failed to load CSS tokens";
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
var listTokenCategories = async () => {
|
|
236
|
+
try {
|
|
237
|
+
const tokensData = await readFile(config.paths.tokensPath, "utf-8");
|
|
238
|
+
const tokens = JSON.parse(tokensData);
|
|
239
|
+
return Object.keys(tokens).join(", ");
|
|
240
|
+
} catch (error) {
|
|
241
|
+
await logService.error(`Failed to load CSS tokens: ${error.message}`);
|
|
242
|
+
return "Failed to load CSS token categories";
|
|
243
|
+
}
|
|
244
|
+
};
|
|
159
245
|
|
|
160
246
|
// src/tools/components.ts
|
|
161
247
|
function registerArcoTools(server) {
|
|
@@ -224,6 +310,69 @@ function registerArcoTools(server) {
|
|
|
224
310
|
};
|
|
225
311
|
}
|
|
226
312
|
);
|
|
313
|
+
server.tool(
|
|
314
|
+
"get-component-style",
|
|
315
|
+
"Gets the style/less file content for a specific Arco Design Mobile component",
|
|
316
|
+
{ componentName: z.string() },
|
|
317
|
+
async (args) => {
|
|
318
|
+
const styleContent = await fetchComponentStyle(args.componentName);
|
|
319
|
+
return {
|
|
320
|
+
content: [
|
|
321
|
+
{
|
|
322
|
+
type: "text",
|
|
323
|
+
text: styleContent
|
|
324
|
+
}
|
|
325
|
+
]
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
);
|
|
329
|
+
server.tool(
|
|
330
|
+
"get-component-css-variables",
|
|
331
|
+
"Gets CSS variables documentation for a specific Arco Design Mobile component",
|
|
332
|
+
{ componentName: z.string() },
|
|
333
|
+
async (args) => {
|
|
334
|
+
const cssVariables = await fetchComponentCssVariables(args.componentName);
|
|
335
|
+
return {
|
|
336
|
+
content: [
|
|
337
|
+
{
|
|
338
|
+
type: "text",
|
|
339
|
+
text: cssVariables
|
|
340
|
+
}
|
|
341
|
+
]
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
);
|
|
345
|
+
server.tool(
|
|
346
|
+
"list-token-categories",
|
|
347
|
+
"Lists all CSS token categories available in Arco Design Mobile",
|
|
348
|
+
async () => {
|
|
349
|
+
const categories = await listTokenCategories();
|
|
350
|
+
return {
|
|
351
|
+
content: [
|
|
352
|
+
{
|
|
353
|
+
type: "text",
|
|
354
|
+
text: categories
|
|
355
|
+
}
|
|
356
|
+
]
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
);
|
|
360
|
+
server.tool(
|
|
361
|
+
"get-css-tokens",
|
|
362
|
+
"Gets CSS tokens for a specific category or all categories in Arco Design Mobile",
|
|
363
|
+
{ category: z.string().optional() },
|
|
364
|
+
async (args) => {
|
|
365
|
+
const tokens = await fetchCssTokens(args.category);
|
|
366
|
+
return {
|
|
367
|
+
content: [
|
|
368
|
+
{
|
|
369
|
+
type: "text",
|
|
370
|
+
text: tokens
|
|
371
|
+
}
|
|
372
|
+
]
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
);
|
|
227
376
|
}
|
|
228
377
|
|
|
229
378
|
// src/index.ts
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
## 主题定制
|
|
2
|
+
|
|
3
|
+
### 样式变量
|
|
4
|
+
|
|
5
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
|
|
6
|
+
|
|
7
|
+
| 名称 | 默认值 | 描述 |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| --arco-actionsheet-load-more-font-size | getRem(14) | 加载更多文字颜色 |
|
|
10
|
+
| --arco-actionsheet-cell-desc-font-size | getRem(14) | 单元格标题文字大小 |
|
|
11
|
+
| --arco-actionsheet-cell-title-font-size | getRem(15) | 单元格标题文字字重 |
|
|
12
|
+
| --arco-actionsheet-cell-desc-margin-top | getRem(2) | 单元格内容文字大小 |
|
|
13
|
+
| --arco-actionsheet-cell-content-font-size | getRem(14) | 单元格右箭头图标颜色 |
|
|
14
|
+
| --arco-actionsheet-cell-arrow-gutter | getRem(8) | 单元格右箭头自定义图标大小 |
|
|
15
|
+
| --arco-actionsheet-cell-arrow-font-size | getRem(12) | 单元格背景色 |
|
|
16
|
+
| --arco-actionsheet-cell-font-size | getRem(16) | 单元格两侧横向间距 |
|
|
17
|
+
| --arco-actionsheet-cell-horizontal-padding | getRem(16) | 单元格基础样式高度 |
|
|
18
|
+
| --arco-actionsheet-cell-item-height | getRem(54) | 单元格有描述文字时的高度 |
|
|
19
|
+
| --arco-actionsheet-cell-item-has-desc-height | getRem(74) | 单元格标签文字右侧间距 |
|
|
20
|
+
| --arco-actionsheet-cell-label-gutter | getRem(24) | 单元格标签图标右侧间距 |
|
|
21
|
+
| --arco-actionsheet-cell-label-icon-gutter | getRem(12) | 单元格标签图标大小 |
|
|
22
|
+
| --arco-actionsheet-cell-label-icon-font-size | getRem(20) | 单元格头部和尾部说明文字大小 |
|
|
23
|
+
| --arco-actionsheet-cell-extra-font-size | getRem(14) | 单元格头部和尾部说明文字行高 |
|
|
24
|
+
| --arco-actionsheet-cell-extra-line-height | getRem(20) | 单元格头部和尾部说明内边距 |
|
|
25
|
+
| --arco-actionsheet-count-down-font-size | getRem(16) | 倒计时默认字体行高 |
|
|
26
|
+
| --arco-actionsheet-count-down-line-height | getRem(22) | 倒计时默认字体颜色 |
|
|
27
|
+
| --arco-actionsheet-item-height | getRem(54) | 动作面板选项字体大小 |
|
|
28
|
+
| --arco-actionsheet-item-font-size | getRem(16) | 动作面板顶部圆角值 |
|
|
29
|
+
| --arco-actionsheet-border-radius | getRem(8) | 动作面板取消按钮顶线颜色 |
|
|
30
|
+
| --arco-actionsheet-header-padding | getRem(16) | 动作面板头部标题字体大小 |
|
|
31
|
+
| --arco-actionsheet-title-font-size | getRem(16) | 动作面板头部描述字体大小 |
|
|
32
|
+
| --arco-actionsheet-sub-title-font-size | getRem(14) | 搜索栏内边距大小 |
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
@import "../../../style/mixin.less";
|
|
2
|
+
|
|
3
|
+
.@{prefix}-action-sheet {
|
|
4
|
+
.use-var(color, font-color);
|
|
5
|
+
|
|
6
|
+
&-header {
|
|
7
|
+
.use-var(padding, action-sheet-header-padding);
|
|
8
|
+
text-align: center;
|
|
9
|
+
.onepx-border-var(bottom, line-color);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&-title {
|
|
13
|
+
.use-var(font-size, action-sheet-title-font-size);
|
|
14
|
+
.text-medium();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&-sub-title {
|
|
18
|
+
.use-var(color, sub-info-font-color);
|
|
19
|
+
.use-var(font-size, action-sheet-sub-title-font-size);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&-title + &-sub-title {
|
|
23
|
+
.rem(margin-top, 4);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&-content {
|
|
27
|
+
.use-var(border-top-left-radius, action-sheet-border-radius);
|
|
28
|
+
.use-var(border-top-right-radius, action-sheet-border-radius);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&-item {
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
justify-content: center;
|
|
35
|
+
.use-var(height, action-sheet-item-height);
|
|
36
|
+
.use-var(font-size, action-sheet-item-font-size);
|
|
37
|
+
.noselect();
|
|
38
|
+
|
|
39
|
+
&:not(:last-child) {
|
|
40
|
+
.onepx-border-var(bottom, line-color);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&.disabled {
|
|
44
|
+
.use-var(color, disabled-color);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&.danger {
|
|
48
|
+
.use-var(color, danger-color);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&.cancel-item {
|
|
52
|
+
border-top-style: solid;
|
|
53
|
+
.use-var(border-top-color, action-sheet-cancel-border-color);
|
|
54
|
+
.use-var(border-top-width, action-sheet-cancel-border-width);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
## 主题定制
|
|
2
|
+
|
|
3
|
+
### 样式变量
|
|
4
|
+
|
|
5
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
|
|
6
|
+
|
|
7
|
+
| 名称 | 默认值 | 描述 |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| --arco-avatar-large-size | getRem(56) | medium 头像组件的大小 |
|
|
10
|
+
| --arco-avatar-medium-size | getRem(48) | small 头像组件的大小 |
|
|
11
|
+
| --arco-avatar-small-size | getRem(40) | smaller 头像组件的大小 |
|
|
12
|
+
| --arco-avatar-smaller-size | getRem(32) | ultra-small 头像组件的大小 |
|
|
13
|
+
| --arco-avatar-ultra-small-size | getRem(24) | large 头像组件默认头像图标大小 |
|
|
14
|
+
| --arco-avatar-default-overlap-large-size | getRem(28) | medium 头像组件默认头像图标大小 |
|
|
15
|
+
| --arco-avatar-default-overlap-medium-size | getRem(24) | small 头像组件默认头像图标大小 |
|
|
16
|
+
| --arco-avatar-default-overlap-small-size | getRem(20) | smaller 头像组件默认头像图标大小 |
|
|
17
|
+
| --arco-avatar-default-overlap-smaller-size | getRem(16) | ultra-small 头像组件默认头像图标大小 |
|
|
18
|
+
| --arco-avatar-default-overlap-ultra-small-size | getRem(12) | 头像组件背景色 |
|
|
19
|
+
| --arco-avatar-large-text-font-size | getRem(16) | medium 字体头像字体大小 |
|
|
20
|
+
| --arco-avatar-medium-text-font-size | getRem(16) | small 字体头像字体大小 |
|
|
21
|
+
| --arco-avatar-small-text-font-size | getRem(14) | smaller 字体头像字体大小 |
|
|
22
|
+
| --arco-avatar-smaller-text-font-size | getRem(12) | ultra-small 字体头像字体大小 |
|
|
23
|
+
| --arco-avatar-ultra-small-text-font-size | getRem(10) | large 头像叠层组件头像重叠偏移量 |
|
|
24
|
+
| --arco-avatar-group-large-size-offset | getRem(-12) | large 头像叠层组件头像border宽度 |
|
|
25
|
+
| --arco-avatar-group-large-size-border | getRem(1.5) | medium 头像叠层组件头像重叠偏移量 |
|
|
26
|
+
| --arco-avatar-group-medium-size-offset | getRem(-12) | medium 头像叠层组件头像border宽度 |
|
|
27
|
+
| --arco-avatar-group-medium-size-border | getRem(1.5) | small 头像叠层组件头像重叠偏移量 |
|
|
28
|
+
| --arco-avatar-group-small-size-offset | getRem(-12) | small 头像叠层组件头像border宽度 |
|
|
29
|
+
| --arco-avatar-group-small-size-border | getRem(1.5) | smaller 头像叠层组件头像重叠偏移量 |
|
|
30
|
+
| --arco-avatar-group-smaller-size-offset | getRem(-8) | smaller 头像叠层组件头像border宽度 |
|
|
31
|
+
| --arco-avatar-group-smaller-size-border | getRem(1) | ultra-small 头像叠层组件头像重叠偏移量 |
|
|
32
|
+
| --arco-avatar-group-ultra-small-size-offset | getRem(-8) | ultra-small 头像叠层组件头像border宽度 |
|
|
33
|
+
| --arco-avatar-group-ultra-small-size-border | getRem(1) | 头像叠层border颜色 |
|
|
34
|
+
| --arco-avatar-info-box-large-size | getRem(88) | medium大小带有辅助信息的头像组件容器高度 |
|
|
35
|
+
| --arco-avatar-info-box-medium-size | getRem(80) | small大小带有辅助信息的头像组件容器高度 |
|
|
36
|
+
| --arco-avatar-info-box-small-size | getRem(80) | smaller大小带有辅助信息的头像组件容器高度 |
|
|
37
|
+
| --arco-avatar-info-box-smaller-size | getRem(64) | ultra-small大小带有辅助信息的头像组件容器高度 |
|
|
38
|
+
| --arco-avatar-info-box-ultra-small-size | getRem(56) | large 头像组件用户名文字大小 |
|
|
39
|
+
| --arco-avatar-name-large-font-size | getRem(18) | large 头像组件用户名文字行高 |
|
|
40
|
+
| --arco-avatar-name-large-line-height | getRem(26) | large 头像组件辅助信息文字大小 |
|
|
41
|
+
| --arco-avatar-desc-large-font-size | getRem(14) | large 头像组件辅助信息文字行高 |
|
|
42
|
+
| --arco-avatar-desc-large-line-height | getRem(20) | large 头像组件用户名和辅助信息间距的大小 |
|
|
43
|
+
| --arco-avatar-desc-large-margin-top | getRem(2) | medium 头像组件用户名文字大小 |
|
|
44
|
+
| --arco-avatar-name-medium-font-size | getRem(18) | medium 头像组件用户名文字行高 |
|
|
45
|
+
| --arco-avatar-name-medium-line-height | getRem(26) | medium 头像组件辅助信息文字大小 |
|
|
46
|
+
| --arco-avatar-desc-medium-font-size | getRem(14) | medium 头像组件辅助信息文字行高 |
|
|
47
|
+
| --arco-avatar-desc-medium-line-height | getRem(20) | medium 头像组件用户名和辅助信息间距的大小 |
|
|
48
|
+
| --arco-avatar-desc-medium-margin-top | getRem(2) | small 头像组件用户名文字大小 |
|
|
49
|
+
| --arco-avatar-name-small-font-size | getRem(16) | small 头像组件用户名文字行高 |
|
|
50
|
+
| --arco-avatar-name-small-line-height | getRem(24) | small 头像组件辅助信息文字大小 |
|
|
51
|
+
| --arco-avatar-desc-small-font-size | getRem(12) | small 头像组件辅助信息文字行高 |
|
|
52
|
+
| --arco-avatar-desc-small-line-height | getRem(16) | small 头像组件用户名和辅助信息间距的大小 |
|
|
53
|
+
| --arco-avatar-desc-small-margin-top | getRem(0) | smaller 头像组件用户名文字大小 |
|
|
54
|
+
| --arco-avatar-name-smaller-font-size | getRem(14) | smaller 头像组件用户名文字行高 |
|
|
55
|
+
| --arco-avatar-name-smaller-line-height | getRem(20) | smaller 头像组件辅助信息文字大小 |
|
|
56
|
+
| --arco-avatar-desc-smaller-font-size | getRem(12) | smaller 头像组件辅助信息文字行高 |
|
|
57
|
+
| --arco-avatar-desc-smaller-line-height | getRem(16) | smaller 头像组件用户名和辅助信息间距的大小 |
|
|
58
|
+
| --arco-avatar-desc-smaller-margin-top | getRem(0) | ultra-small 头像组件用户名文字大小 |
|
|
59
|
+
| --arco-avatar-name-ultra-small-font-size | getRem(13) | ultra-small 头像组件用户名文字行高 |
|
|
60
|
+
| --arco-avatar-name-ultra-small-line-height | getRem(18) | ultra-small 头像组件辅助信息文字大小 |
|
|
61
|
+
| --arco-avatar-desc-ultra-small-font-size | getRem(10) | ultra-small 头像组件辅助信息文字行高 |
|
|
62
|
+
| --arco-avatar-desc-ultra-small-line-height | getRem(14) | ultra-small 头像组件用户名和辅助信息间距的大小 |
|
|
63
|
+
| --arco-avatar-desc-ultra-small-margin-top | getRem(2) | 头像组件用户名字体颜色 |
|
|
64
|
+
| --arco-avatar-skeleton-avatar-size | getRem(32) | 骨架屏金刚位图标区宽度 |
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
@import "../../../style/mixin.less";
|
|
2
|
+
|
|
3
|
+
@size-map: @avatar-size-map;
|
|
4
|
+
|
|
5
|
+
.@{prefix}-avatar {
|
|
6
|
+
position: relative;
|
|
7
|
+
font-size: 0;
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
.use-var(color, avatar-text-font-color);
|
|
12
|
+
.use-var(background-color, avatar-background);
|
|
13
|
+
|
|
14
|
+
&-mode-image {
|
|
15
|
+
background-color: transparent !important;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&-default-overlap {
|
|
19
|
+
.use-var(background-color, avatar-default-overlap-background);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&-shape-circle {
|
|
23
|
+
.set-avatar-radius(50%);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&-shape-square {
|
|
27
|
+
.set-avatar-radius(.08rem);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.set-avatar-size(length(@size-map));
|
|
31
|
+
|
|
32
|
+
&-img {
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: 100%;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&-decoration {
|
|
38
|
+
position: absolute;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&-text {
|
|
42
|
+
flex: 0 0 auto;
|
|
43
|
+
font-weight: bold;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&-wrapper {
|
|
47
|
+
display: inline-block;
|
|
48
|
+
|
|
49
|
+
&-with-info {
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&-info {
|
|
56
|
+
display: flex;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
flex-direction: column;
|
|
59
|
+
.rem-with-rtl(margin-left, 16);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&-name {
|
|
63
|
+
.use-var(color, avatar-name-color);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&-desc {
|
|
67
|
+
.use-var(color, avatar-desc-color);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.@{prefix}-avatar-group {
|
|
72
|
+
.@{prefix}-avatar-wrapper-shape-circle {
|
|
73
|
+
position: relative; // 为了让z-index属性生效
|
|
74
|
+
|
|
75
|
+
&:first-child {
|
|
76
|
+
margin-left: 0;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.@{prefix}-avatar {
|
|
81
|
+
border-style: solid;
|
|
82
|
+
.use-var(border-color, avatar-group-border-color);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.set-avatar-group-size(length(@size-map));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.set-avatar-radius(@radius) {
|
|
89
|
+
border-radius: @radius;
|
|
90
|
+
.@{prefix}-avatar-img .image-content {
|
|
91
|
+
border-radius: @radius;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// 循环设置头像叠层的样式
|
|
96
|
+
.set-avatar-group-size(@index) when (@index > 0) {
|
|
97
|
+
|
|
98
|
+
@size: extract(@size-map, @index);
|
|
99
|
+
|
|
100
|
+
&-size-@{size} {
|
|
101
|
+
.@{prefix}-avatar-wrapper {
|
|
102
|
+
.use-var-with-rtl(margin-left, "avatar-group-@{size}-size-offset");
|
|
103
|
+
}
|
|
104
|
+
.@{prefix}-avatar {
|
|
105
|
+
.use-var(border-width, "avatar-group-@{size}-size-border");
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.set-avatar-group-size(@index - 1);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// 循环设置头像的样式
|
|
113
|
+
.set-avatar-size(@index) when (@index > 0) {
|
|
114
|
+
|
|
115
|
+
@size: extract(@size-map, @index);
|
|
116
|
+
|
|
117
|
+
&-size-@{size} {
|
|
118
|
+
.use-var(width, "avatar-@{size}-size");
|
|
119
|
+
.use-var(height, "avatar-@{size}-size");
|
|
120
|
+
}
|
|
121
|
+
&-default-icon-size-@{size} {
|
|
122
|
+
.use-var(font-size, "avatar-default-overlap-@{size}-size");
|
|
123
|
+
}
|
|
124
|
+
&-text-size-@{size} {
|
|
125
|
+
.use-var(font-size, "avatar-@{size}-text-font-size");
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// 有辅助信息的样式
|
|
129
|
+
&-wrapper-with-info-size-@{size} {
|
|
130
|
+
.use-var(height, "avatar-info-box-@{size}-size");
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// 用户名样式
|
|
134
|
+
&-name-size-@{size} {
|
|
135
|
+
.use-var(font-size, "avatar-name-@{size}-font-size");
|
|
136
|
+
.use-var(line-height, "avatar-name-@{size}-line-height");
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// 用户描述样式
|
|
140
|
+
&-desc-size-@{size} {
|
|
141
|
+
.use-var(margin-top, "avatar-desc-@{size}-margin-top");
|
|
142
|
+
.use-var(font-size, "avatar-desc-@{size}-font-size");
|
|
143
|
+
.use-var(line-height, "avatar-desc-@{size}-line-height");
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.set-avatar-size(@index - 1);
|
|
147
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
@import "../../../style/mixin.less";
|
|
2
|
+
|
|
3
|
+
@keyframes scale-on {
|
|
4
|
+
|
|
5
|
+
0% {
|
|
6
|
+
transform: scale(0);opacity: 0; }
|
|
7
|
+
|
|
8
|
+
100% {
|
|
9
|
+
transform: scale(1); opacity: 1; }
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@keyframes scale-off {
|
|
13
|
+
|
|
14
|
+
0% {
|
|
15
|
+
transform: scale(1); opacity: 1; }
|
|
16
|
+
|
|
17
|
+
100% {
|
|
18
|
+
transform: scale(0); opacity: 0; }
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.@{prefix}-scale-enter-active {
|
|
22
|
+
animation: scale-on cubic-bezier(.3, 1.3, .3, 1) forwards;
|
|
23
|
+
animation-duration: var(--builtin-transition-scale-enter-duration, .4s);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.@{prefix}-scale-exit-active {
|
|
27
|
+
animation: scale-off cubic-bezier(.3, 1.3, .3, 1) forwards;
|
|
28
|
+
animation-duration: var(--builtin-transition-scale-exit-duration, .4s);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.@{prefix}-badge {
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
box-sizing: content-box;
|
|
34
|
+
display: inline-block;
|
|
35
|
+
z-index: 2;
|
|
36
|
+
.use-var(color, badge-text-color);
|
|
37
|
+
.use-var(background-color, badge-background-color);
|
|
38
|
+
white-space: nowrap;
|
|
39
|
+
.use-var(border-radius, badge-border-radius);
|
|
40
|
+
.use-var(height, badge-text-width);
|
|
41
|
+
.use-var(line-height, badge-text-width);
|
|
42
|
+
.set-content-box-width-var(min-width, badge-text-width, badge-text-padding, badge-text-padding);
|
|
43
|
+
.use-var(padding, badge-text-padding, 0);
|
|
44
|
+
|
|
45
|
+
&-text {
|
|
46
|
+
display: block;
|
|
47
|
+
font-weight: 500;
|
|
48
|
+
.set-font-size-var(badge-font-size);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&-dot {
|
|
52
|
+
.use-var(width, badge-dot-width);
|
|
53
|
+
.use-var(height, badge-dot-width);
|
|
54
|
+
padding: 0;
|
|
55
|
+
min-width: auto;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&-bordered {
|
|
59
|
+
.use-var(border, badge-border-color, 1PX solid);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&-absolute {
|
|
63
|
+
position: absolute;
|
|
64
|
+
top: 0;
|
|
65
|
+
.set-prop-with-rtl(left, 100%);
|
|
66
|
+
.use-var-with-rtl(margin-left, badge-text-deviation);
|
|
67
|
+
.use-var(margin-top, badge-text-deviation);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&-absolute&-dot {
|
|
71
|
+
.use-var-with-rtl(margin-left, badge-dot-deviation);
|
|
72
|
+
.use-var(margin-top, badge-dot-deviation);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
## 主题定制
|
|
2
|
+
|
|
3
|
+
### 样式变量
|
|
4
|
+
|
|
5
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
|
|
6
|
+
|
|
7
|
+
| 名称 | 默认值 | 描述 |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| --arco-button-dialog-footer-android-button-gutter | getRem(28) | 对话框(独立按钮样式)主按钮背景色 |
|
|
10
|
+
| --arco-button-dialog-button-footer-height | getRem(36) | 对话框(独立按钮样式)按钮圆角值 |
|
|
11
|
+
| --arco-button-dialog-button-footer-border-radius | getRem(30) | 对话框(独立按钮样式)按钮间距 |
|
|
12
|
+
| --arco-button-dialog-button-footer-gutter | getRem(8) | 轮播图自动轮播时的动画曲线 |
|
|
13
|
+
| --arco-button-icon-text-gutter | getRem(4) | primary 类型按钮背景色 |
|
|
14
|
+
| --arco-button-huge-height | getRem(44) | huge 按钮文字大小 |
|
|
15
|
+
| --arco-button-huge-text-size | getRem(16) | large 按钮内部padding |
|
|
16
|
+
| --arco-button-large-height | getRem(36) | large 按钮文字大小 |
|
|
17
|
+
| --arco-button-large-text-size | getRem(15) | medium 按钮内部padding |
|
|
18
|
+
| --arco-button-medium-height | getRem(32) | medium 按钮文字大小 |
|
|
19
|
+
| --arco-button-medium-text-size | getRem(14) | small 按钮内部padding |
|
|
20
|
+
| --arco-button-small-height | getRem(28) | small 按钮文字大小 |
|
|
21
|
+
| --arco-button-small-text-size | getRem(14) | mini 按钮内部padding |
|
|
22
|
+
| --arco-button-mini-height | getRem(24) | mini 按钮文字大小 |
|
|
23
|
+
| --arco-button-mini-text-size | getRem(12) | 文字缩略组件默认字体大小 |
|
|
24
|
+
| --arco-button-picker-button-font-size | getRem(15) | 选择器按钮内边距 |
|
|
25
|
+
| --arco-button-picker-button-padding | getRem(16) | 选择器左侧按钮字体颜色 |
|
|
26
|
+
| --arco-button-pagination-field-button-min-height | getRem(32) | 分页器翻页按钮圆角值 |
|
|
27
|
+
| --arco-button-pagination-field-button-border-radius | getRem(2) | 分页器翻页按钮内边距 |
|
|
28
|
+
| --arco-button-stepper-button-size | getRem(28) | 步进器按钮图标尺寸 |
|
|
29
|
+
| --arco-button-stepper-button-icon-size | getRem(10) | 步进器默认背景颜色 |
|