diff options
| author | Henry Jameson <me@hjkos.com> | 2020-01-13 21:30:55 +0200 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2020-01-13 21:30:55 +0200 |
| commit | 4b8e0f0afa2c7f1d0f4f0c2f39f289b75b3cae08 (patch) | |
| tree | 9554968d9b2c78eb8acfc9fae80643c3fa7f2190 /src/services/theme_data/theme_data.service.js | |
| parent | 8a7f3fc16a511e6c5917c0e25cba1f6163659264 (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.js | 46 |
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' ) } |
