scss 支持多个主题和组织所需颜色的个人方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scss 支持多个主题和组织所需颜色的个人方法相关的知识,希望对你有一定的参考价值。

@import 'utils/functions';
@import 'utils/colors';
@import 'themes/default';
@function map-deep-get($map, $keys...) {
  $value: $map;
  @each $key in $keys {
    $value: map-get($value, $key);
  }
  @return $value;
}
$CURRENT_THEME: 'dark';

body {
  background-color: color('background', $CURRENT_THEME)
}
$shared: (
	yellow: #fec52e,
	purple: #ca4392,
	blue: #2259e4,
	sky_blue: #22ade1,
	green: #1bdddb
);

$themes: (
	dark: map-merge(
		$shared_colors,
		(
      text: #887f8c, 
      background: #1c1a1d
    )
	),
	light: map-merge(
		$shared_colors,
		(
      text: #1c1a1d, 
      background: #f5f7f8
    )
	)
);

@function color($key, $theme: 'dark') {
	@return map-deep-get($themes, $theme, $key);

	@return $color;
}

以上是关于scss 支持多个主题和组织所需颜色的个人方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在其他 scss 文件中使用角度材质主题颜色变量

Shopware 6 如何在scss中使用配置好的主题原色?

Angular 材质设置主题颜色与颜色选择器

Vue项目动态主题切换

前端切换主题颜色的几种思路

如何使用 webpack 提取多个主题样式表?