staceycomcn111 最近的时间轴更新
staceycomcn111

staceycomcn111

V2EX 第 480289 号会员,加入于 2020-03-31 16:13:00 +08:00
staceycomcn111 最近回复了
@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 的主题,加载顺序要早,覆盖不了组件库的主题
2020-05-27 17:39:01 +08:00
回复了 UserNameisNull 创建的主题 程序员 工作后,如何才能静下心来学习?
要不要整个打卡群
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2583 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.