|
há 4 anos atrás | |
---|---|---|
.. | ||
src | há 4 anos atrás | |
README.md | há 4 anos atrás | |
package.json | há 4 anos atrás | |
tsconfig.json | há 4 anos atrás |
A webpack plugin for Semi Design to custom theme、replace prefix and so on.
The plugin is designed for Semi Design, support webpack4 and webpack5, provides two major abilities:
Install @douyinfe/semi-webpack-plugin
as a development dependency:
npm install --save-dev @douyinfe/semi-webpack-plugin
# or
yarn add --dev @douyinfe/semi-webpack-plugin
Semi Design uses the Scss variables to extract thousands of Design Tokens. You can replace Token through this plugin to achieve theme customization. More info
You can custom theme through three ways:
Pass key-value pair parameters to plugin Priority from low to high.
In order to use the npm package, you need to customize the theme through Semi Design System.After finishing the customization, Semi DSM will generate a npm package for you, and then you can use it like this.
// webpack.config.js
const SemiPlugin = require('@douyinfe/semi-webpack-plugin').default;
module.exports = {
// ...
plugins: [
new SemiPlugin({
theme: '@douyinfe/semi-theme-default'
})
]
// ...
};
You can check which tokens can be customized on the Semi WebSite.
step1: add a local file
// local.scss
$font-size-small: 16px;
step2: config webpack
// webpack.config.js
const path = require('path');
const SemiPlugin = require('@douyinfe/semi-webpack-plugin').default;
module.exports = {
// ...
plugins: [
new SemiPlugin({
include: path.join(__dirname, 'local.scss')
})
]
};
// webpack.config.js
const SemiPlugin = require('@douyinfe/semi-webpack-plugin').default;
module.exports = {
// ...
plugins: [
new SemiPlugin({
variables: {
"$font-size-small": '16px'
}
})
]
};
The CSS selectors used by Semi Design is prefixed with semi by default(e.g, .semi-button
).You can replace the prefix through this plugin.
// webpack.config.js
const SemiPlugin = require('@douyinfe/semi-webpack-plugin').default;
module.exports = {
// ...
plugins: [
new SemiPlugin({
prefixCls: 'custom'
})
]
// ...
};
Then you get the replaced CSS selectors(e.g, .custom-button
).
Type: String
The prefix of CSS selector.
Type: String
or Object
When the type is string, it represents the name of npm for custom theme.You can use Semi Design System to custom theme.
Same performance as when the type of options.theme
is string.
Type: String
The absolute path of the local Scss file.
Type: Object
The key-value pair of Scss token.