Skip to content
This repository has been archived by the owner on Nov 17, 2022. It is now read-only.

docs: plugin antd and fusion #617

Merged
merged 1 commit into from
Oct 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions website/docs/guide/advanced/antd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: 使用 antd 组件
---

icejs 项目中可以直接使用 antd 组件,关于 antd 组件按需引入的问题说明:
- 脚本代码按需引入:不推荐使用 babel-plugin-import,社区主流工具 Webpack/Vite 等都已支持 tree-shaking,构建时默认都会做按需的引入
- 样式代码按需引入:结合社区讨论 [issue](https://github.com/ant-design/ant-design/issues/16600#issuecomment-492572520),大多数场景下样式按需引入并无太大意义,反而会引入其他工程问题,因此推荐组件样式在项目级全量引入

综上所述,如果不存在主题定制以及样式大小极致的要求,项目中并不需要使用 antd 插件,通过在 `src/global.css` 中全量引入样式即可:

```css title="src/global.css"
@import 'antd/dist/antd.css';

body {}
```

## 开启插件

安装插件:

```bash
$ npm i -D @ice/plugin-antd
```

在 `ice.config.mts` 中添加插件:

```ts title="ice.config.mts"
import { defineConfig } from '@ice/app';
import antd from '@ice/plugin-antd';

export default defineConfig({
plugins: [
antd({
importStyle: true,
}),
],
});
```

## 配置

### importStyle

- 类型: `boolean`
- 默认值: `false`

为 antd 组件按需加载样式。

### dark

- 类型: `boolean`
- 默认值: `false`

开启暗色主题。

### compact

- 类型: `boolean`
- 默认值: `false`

开启紧凑主题。
luhc228 marked this conversation as resolved.
Show resolved Hide resolved

### theme

- 类型: `Record<string, string>`
- 默认值: `{}`

配置 antd 的 theme 主题,配置形式如下:

```ts title="ice.config.mts"
import { defineConfig } from '@ice/app';
import antd from '@ice/plugin-antd';

export default defineConfig({
plugins: [
antd({
theme: {
// primary-color 为 antd 的 theme token
'primary-color': '#1DA57A',
},
}),
],
});
```
89 changes: 89 additions & 0 deletions website/docs/guide/advanced/fusion.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
title: 使用 fusion 组件
---

icejs 项目中可以直接使用 fusion 组件,关于 fusion 组件按需引入的问题说明:
- 脚本代码按需引入:不推荐使用 babel-plugin-import,社区主流工具 Webpack/Vite 等都已支持 tree-shaking,构建时默认都会做按需的引入
- 样式代码按需引入:结合社区讨论 [issue](https://github.com/ant-design/ant-design/issues/16600#issuecomment-492572520),大多数场景下样式按需引入并无太大意义,反而会引入其他工程问题,因此推荐组件样式在项目级全量引入

综上所述,如果不存在主题定制以及样式大小极致的要求,项目中并不需要使用 fusion 插件,通过在 `src/global.css` 中全量引入样式即可:

```css title="src/global.css"
@import '@alifd/next/dist/next.var.css';

body {}
```

## 开启插件

安装插件:

```bash
$ npm i -D @ice/plugin-fusion
```

在 `ice.config.mts` 中添加插件:

```ts title="ice.config.mts"
import { defineConfig } from '@ice/app';
import fusion from '@ice/plugin-fusion';

export default defineConfig({
plugins: [
fusion({
importStyle: true,
}),
],
});
```

## 配置

### importStyle

- 类型: `boolean|'sass'`
- 默认值: `false`

为 fusion 组件按需加载样式,目前 fusion 组件提供两种类型样式,默认加载 `css` 样式,如果希望加载 `sass` 样式可以将 `importStyle` 配置为 `sass`。

### themePackage

- 类型: `string`
- 默认值: `''`

为 fusion 组件配置主题包,比如:

```ts title="ice.config.mts"
import { defineConfig } from '@ice/app';
import fusion from '@ice/plugin-fusion';

export default defineConfig({
plugins: [
fusion({
themePackage: '@alifd/theme-design-pro',
}),
],
});
```

### theme

- 类型: `Record<string, string>`
- 默认值: `{}`

配置 antd 的 theme 主题,配置形式如下:

```ts title="ice.config.mts"
import { defineConfig } from '@ice/app';
import fusion from '@ice/plugin-fusion';

export default defineConfig({
plugins: [
fusion({
theme: {
'css-prefix': 'next-icestark-',
},
}),
],
});
```
8 changes: 8 additions & 0 deletions website/docs/guide/plugins/plugin-list.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,11 @@ order: 2
## [@ice/plugin-css-assets-local](../advanced/css-assets-local)

提供将 CSS 中的网络资源本地化的能力。

## [@ice/plugin-antd](../advanced/antd)

提供 antd 组件样式按需加载及主题配置能力。

## [@ice/plugin-fusion](../advanced/fusion)

提供 fusion 组件样式按需加载及主题配置能力。