aboutsummaryrefslogtreecommitdiff
path: root/src/services/style_setter/style_setter.js
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2018-11-25 21:48:16 +0300
committerHenry Jameson <me@hjkos.com>2018-11-25 21:48:16 +0300
commit1a65895bfd441ea57163ee3e185785c82a81b736 (patch)
tree6acf07e334d43b08740bf68d3bfbc7e257d99693 /src/services/style_setter/style_setter.js
parente8536f3d95144945dcbd6bd96542f8401de3f1ed (diff)
initial font support
Diffstat (limited to 'src/services/style_setter/style_setter.js')
-rw-r--r--src/services/style_setter/style_setter.js48
1 files changed, 44 insertions, 4 deletions
diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js
index e11ee90c..f2c9c13e 100644
--- a/src/services/style_setter/style_setter.js
+++ b/src/services/style_setter/style_setter.js
@@ -85,6 +85,7 @@ const setColors = (input, commit) => {
styleSheet.insertRule(`body { ${rules.radii} }`, 'index-max')
styleSheet.insertRule(`body { ${rules.colors} }`, 'index-max')
styleSheet.insertRule(`body { ${rules.shadows} }`, 'index-max')
+ styleSheet.insertRule(`body { ${rules.fonts} }`, 'index-max')
body.style.display = 'initial'
// commit('setOption', { name: 'colors', value: htmlColors })
@@ -267,6 +268,41 @@ const generateRadii = (input) => {
}
}
+const generateFonts = (input) => {
+ const fonts = Object.entries(input.fonts || {}).filter(([k, v]) => v).reduce((acc, [k, v]) => {
+ acc[k] = Object.entries(v).filter(([k, v]) => v).reduce((acc, [k, v]) => {
+ acc[k] = v
+ return acc
+ }, acc[k])
+ return acc
+ }, {
+ interface: {
+ family: 'sans-serif'
+ },
+ input: {
+ family: 'inherit'
+ },
+ post: {
+ family: 'inherit'
+ },
+ postCode: {
+ family: 'monospace'
+ }
+ })
+
+ return {
+ rules: {
+ fonts: Object
+ .entries(fonts)
+ .filter(([k, v]) => v)
+ .map(([k, v]) => `--${k}Font: ${v.family}`).join(';')
+ },
+ theme: {
+ fonts
+ }
+ }
+}
+
const generateShadows = (input) => {
const border = (top, shadow) => ({
x: 0,
@@ -355,17 +391,19 @@ const generateShadows = (input) => {
}
}
-const composePreset = (colors, radii, shadows) => {
+const composePreset = (colors, radii, shadows, fonts) => {
return {
rules: {
...shadows.rules,
...colors.rules,
- ...radii.rules
+ ...radii.rules,
+ ...fonts.rules
},
theme: {
...shadows.theme,
...colors.theme,
- ...radii.theme
+ ...radii.theme,
+ ...fonts.theme
}
}
}
@@ -374,8 +412,9 @@ const generatePreset = (input) => {
const shadows = generateShadows(input)
const colors = generateColors(input)
const radii = generateRadii(input)
+ const fonts = generateFonts(input)
- return composePreset(colors, radii, shadows)
+ return composePreset(colors, radii, shadows, fonts)
}
const setPreset = (val, commit) => {
@@ -424,6 +463,7 @@ export {
generateColors,
generateRadii,
generateShadows,
+ generateFonts,
generatePreset,
composePreset,
getCssShadow