staceycomcn111's recent timeline updates
staceycomcn111

staceycomcn111

V2EX member #480289, joined on 2020-03-31 16:13:00 +08:00
staceycomcn111's recent replies
@lyxxxh2 我实现了!!! 我太激动了

packages/components/theme/var.scss

$hl-color-primary: #ffe240 !default; // 保持纯 Sass 变量

packages/components/theme/variables.scss


@use './var' as *;

// 正确写法:直接使用 Sass 变量,并在根部导出 CSS 变量
// 这个文件用于生成最终的主题 :root{}

:root {
--hl-color-primary: #{$hl-color-primary}; // 将 Sass 变量值同步到 CSS 变量
}


然后组件库的 scss 使用 变量$hl-color-primary
packages/components/theme/hl-base-button.scss

@use "./var.scss" as *;

.my-button {
padding: 8px 16px;
border: none;
border-radius: 4px;
cursor: pointer;

&--default {
background-color: #f0f0f0;
}

&--primary {
background-color: $hl-color-primary;
color: white;
}

&--success {
background-color: #67c23a;
color: white;
}

&--warning {
background-color: #e6a23c;
color: white;
}

&--danger {
background-color: #f56c6c;
color: white;
}
}


组件库主题就设置好了


用户使用主题时,默认使用的是组件库的主题,也可以替换组件库主题

用户替换主题代码
play/src/styles/hl/index.scss
@use 'hl-fe-component/theme/var.scss' with (
$hl-color-primary: pink
);

vite.confit.ts
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "~/styles/hl/index.scss" as vars;`,
},
},
},

然后 大工告成
@lyxxxh2
@lyxxxh2 组件库按官网那样配置了一套主题,打包后生成的变量已经写死了,使用方使用组件,并且也配置了一套 element-plus 的主题,加载顺序要早,覆盖不了组件库的主题
May 27, 2020
Replied to a topic by UserNameisNull 程序员 工作后,如何才能静下心来学习?
要不要整个打卡群
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5458 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 01:25 · PVG 09:25 · LAX 18:25 · JFK 21:25
♥ Do have faith in what you're doing.