在 Angular 8 环境中将配色方案 JSON 列表添加到 Scss 文件
Add Color Scheme JSON list to Scss file in Angular 8 Environment
我正在使用 Angular 构建一个基于 Web 的项目 8. 在应用程序开始时,我需要检索 JSON 文件中定义的预定义配色方案列表,并且我有将它们动态添加到应用程序中。配色方案 JSON 如下所示:
{
"bar": "#FFFFFF",
"text_small": "#FFFFFF",
"text_nav_header": "#FFFFFF"
............ ...........
........... ...........
}
我已经经历了一些 link 如下所示,但不知何故我错过了将这个 JSON 导入 SCSS 处理的要点。
https://scotch.io/tutorials/angular-shortcut-to-importing-styles-files-in-components
https://medium.com/@dmitriy.borodiy/easy-color-theming-with-scss-bc38fd5734d1
https://css-tricks.com/making-sass-talk-to-javascript-with-json/
https://www.viget.com/articles/sharing-data-between-sass-and-javascript-with-json/
请参考下面link我想用SCSS
实现
Sample code with gist on SassMeister.
有人可以通过一些光线了解我在这里缺少的东西吗?另外,我不是 CSS 的期望,但可以理解 CSS 和媒体查询的基本用法。
提前致谢
您确定这些颜色变量必须在 json 文件中吗?
如果生成值:则将输出格式更改为 scss 文件。
如果值只定义一次(或不经常定义):copy/paste 它们到 scss 文件。
以下是我使用 Angular 和后端脚本实现它的步骤。
应用程序启动后Angular。我在后台下载了 JSON 并编写了一个文件,其中的改动很少,如下所述。
- 将 JSON 转换为 JSON 字符串。
在JSON字符串前添加一个字符串':root'
。
在Python中:
data = ":root %s" % jsonString
在PHP中:
$data = ":root ". $jsonString;
替换字符串中的几个字符如下:
在Python
data = data.replace('\"', '')
data = data.replace(',', ';')
在PHP中:
$data = str_replace('\"', '', $data);
$data = str_replace(',', ';', $data);
将文件写入 Angular 项目的 src
文件夹。
在 Python:
f = open("src/themes.scss", "w+")
f.write(data)
f.close()
在PHP中:
$fp = fopen('src/themes.scss', 'w');
fwrite($fp, $data);
fclose($fp);
在 Angular 项目的 styles.css
文件中导入 filename.scss
。
@import "themes.scss";
因此,我如何生成带有 JSON 颜色代码的 dynamic scss file
。它看起来很奇怪,但是是的,它就像一个魅力。
注意:在Angular的生产环境下同样有效
我正在使用 Angular 构建一个基于 Web 的项目 8. 在应用程序开始时,我需要检索 JSON 文件中定义的预定义配色方案列表,并且我有将它们动态添加到应用程序中。配色方案 JSON 如下所示:
{
"bar": "#FFFFFF",
"text_small": "#FFFFFF",
"text_nav_header": "#FFFFFF"
............ ...........
........... ...........
}
我已经经历了一些 link 如下所示,但不知何故我错过了将这个 JSON 导入 SCSS 处理的要点。
https://scotch.io/tutorials/angular-shortcut-to-importing-styles-files-in-components
https://medium.com/@dmitriy.borodiy/easy-color-theming-with-scss-bc38fd5734d1
https://css-tricks.com/making-sass-talk-to-javascript-with-json/
https://www.viget.com/articles/sharing-data-between-sass-and-javascript-with-json/
请参考下面link我想用SCSS
实现Sample code with gist on SassMeister.
有人可以通过一些光线了解我在这里缺少的东西吗?另外,我不是 CSS 的期望,但可以理解 CSS 和媒体查询的基本用法。
提前致谢
您确定这些颜色变量必须在 json 文件中吗? 如果生成值:则将输出格式更改为 scss 文件。 如果值只定义一次(或不经常定义):copy/paste 它们到 scss 文件。
以下是我使用 Angular 和后端脚本实现它的步骤。
应用程序启动后Angular。我在后台下载了 JSON 并编写了一个文件,其中的改动很少,如下所述。
- 将 JSON 转换为 JSON 字符串。
在JSON字符串前添加一个字符串
':root'
。在Python中:
data = ":root %s" % jsonString
在PHP中:
$data = ":root ". $jsonString;
替换字符串中的几个字符如下:
在Python
data = data.replace('\"', '') data = data.replace(',', ';')
在PHP中:
$data = str_replace('\"', '', $data); $data = str_replace(',', ';', $data);
将文件写入 Angular 项目的
src
文件夹。 在 Python:f = open("src/themes.scss", "w+") f.write(data) f.close()
在PHP中:
$fp = fopen('src/themes.scss', 'w'); fwrite($fp, $data); fclose($fp);
在 Angular 项目的
styles.css
文件中导入filename.scss
。@import "themes.scss";
因此,我如何生成带有 JSON 颜色代码的 dynamic scss file
。它看起来很奇怪,但是是的,它就像一个魅力。
注意:在Angular的生产环境下同样有效