aboutsummaryrefslogtreecommitdiff
path: root/src/services/theme_data/theme_data.service.js
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2020-01-13 21:30:55 +0200
committerHenry Jameson <me@hjkos.com>2020-01-13 21:30:55 +0200
commit4b8e0f0afa2c7f1d0f4f0c2f39f289b75b3cae08 (patch)
tree9554968d9b2c78eb8acfc9fae80643c3fa7f2190 /src/services/theme_data/theme_data.service.js
parent8a7f3fc16a511e6c5917c0e25cba1f6163659264 (diff)
buttonPressed & buttonDisabled slots
Diffstat (limited to 'src/services/theme_data/theme_data.service.js')
-rw-r--r--src/services/theme_data/theme_data.service.js46
1 files changed, 42 insertions, 4 deletions
diff --git a/src/services/theme_data/theme_data.service.js b/src/services/theme_data/theme_data.service.js
index dd5f8fd0..c5dd8047 100644
--- a/src/services/theme_data/theme_data.service.js
+++ b/src/services/theme_data/theme_data.service.js
@@ -36,7 +36,8 @@ export const DEFAULT_OPACITY = {
input: 0.5,
faint: 0.5,
underlay: 0.15,
- poll: 1
+ poll: 1,
+ topBar: 1
}
export const SLOT_INHERITANCE = {
@@ -222,7 +223,8 @@ export const SLOT_INHERITANCE = {
btn: '--fg',
btnText: {
depends: ['fgText'],
- layer: 'btn'
+ layer: 'btn',
+ textColor: true
},
btnPanelText: {
depends: ['panelText'],
@@ -257,6 +259,32 @@ export const SLOT_INHERITANCE = {
textColor: true
},
+ btnDisabled: {
+ depends: ['btn', 'bg'],
+ color: (mod, btn, bg) => alphaBlend(btn, 0.5, bg)
+ },
+ btnDisabledText: {
+ depends: ['btnText'],
+ layer: 'btn',
+ variant: 'btnDisabled',
+ textColor: true,
+ color: (mod, text) => brightness(mod * -60, text).rgb
+ },
+ btnDisabledPanelText: {
+ depends: ['btnPanelText'],
+ layer: 'btnPanel',
+ variant: 'btnDisabled',
+ textColor: true,
+ color: (mod, text) => brightness(mod * -60, text).rgb
+ },
+ btnDisabledTopBarText: {
+ depends: ['btnTopBarText'],
+ layer: 'btnTopBar',
+ variant: 'btnDisabled',
+ textColor: true,
+ color: (mod, text) => brightness(mod * -60, text).rgb
+ },
+
// Input fields
input: '--fg',
inputText: {
@@ -329,7 +357,10 @@ export const getLayers = (layer, variant = layer, colors, opacity) => {
currentLayer === layer
? colors[variant]
: colors[currentLayer],
- opacity[currentLayer]
+ // TODO: Remove this hack when opacities/layers system is improved
+ currentLayer.startsWith('btn')
+ ? opacity.btn
+ : opacity[currentLayer]
]))
}
@@ -443,11 +474,18 @@ export const getColors = (sourceColors, sourceOpacity, mod) => SLOT_ORDERED.redu
[key]: contrastRatio(bg).rgb
}
} else {
+ let color = { ...acc[deps[0]] }
+ if (value.color) {
+ const isLightOnDark = convert(bg).hsl.l < convert(color).hsl.l
+ const mod = isLightOnDark ? 1 : -1
+ color = value.color(mod, ...deps.map((dep) => ({ ...acc[dep] })))
+ }
+
return {
...acc,
[key]: getTextColor(
bg,
- { ...acc[deps[0]] },
+ { ...color },
value.textColor === 'preserve'
)
}