mirror of
https://github.com/zombieFox/nightTab.git
synced 2025-02-16 18:20:49 +01:00
add saturation and contrast slider styles
This commit is contained in:
parent
e8381981d3
commit
a3bc9ff495
@ -19,13 +19,13 @@ export const Control_slider = function({
|
||||
path = false,
|
||||
id = 'name',
|
||||
labelText = 'Name',
|
||||
hue = false,
|
||||
value = 0,
|
||||
defaultValue = false,
|
||||
min = 0,
|
||||
max = 100,
|
||||
step = 1,
|
||||
action = false,
|
||||
style = false,
|
||||
focusAction = false,
|
||||
blurAction = false,
|
||||
sliderAction = false,
|
||||
@ -42,8 +42,24 @@ export const Control_slider = function({
|
||||
|
||||
const classList = [];
|
||||
|
||||
if (hue) {
|
||||
classList.push('input-range-hue-spectrum');
|
||||
if (style) {
|
||||
|
||||
switch (style) {
|
||||
|
||||
case 'hue':
|
||||
classList.push('input-range-hue-spectrum');
|
||||
break;
|
||||
|
||||
case 'saturation':
|
||||
classList.push('input-range-saturation-spectrum');
|
||||
break;
|
||||
|
||||
case 'contrast':
|
||||
classList.push('input-range-contrast-spectrum');
|
||||
break;
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
this.range = form.input.range({
|
||||
|
@ -18,6 +18,7 @@ import { minMax } from '../../../utility/minMax';
|
||||
export const Control_sliderDouble = function({
|
||||
object = {},
|
||||
labelText = 'Name',
|
||||
style = false,
|
||||
left = {
|
||||
path: false,
|
||||
id: 'name',
|
||||
@ -93,6 +94,7 @@ export const Control_sliderDouble = function({
|
||||
min: left.min,
|
||||
max: left.max,
|
||||
step: left.step,
|
||||
style: style,
|
||||
action: () => {
|
||||
|
||||
if (get({ object: state.get.current(), path: left.path }) > get({ object: state.get.minMax(), path: left.path }).max - 10) {
|
||||
@ -133,6 +135,7 @@ export const Control_sliderDouble = function({
|
||||
min: right.min,
|
||||
max: right.max,
|
||||
step: right.step,
|
||||
style: style,
|
||||
action: () => {
|
||||
|
||||
if (get({ object: state.get.current(), path: right.path }) < get({ object: state.get.minMax(), path: right.path }).min + 10) {
|
||||
|
@ -17,6 +17,57 @@
|
||||
--form-range-hue: linear-gradient(to right, hsl(0, 100%, 50%), hsl(30, 100%, 50%), hsl(60, 100%, 50%), hsl(90, 100%, 50%), hsl(120, 100%, 50%), hsl(150, 100%, 50%), hsl(180, 100%, 50%), hsl(210, 100%, 50%), hsl(240, 100%, 50%), hsl(270, 100%, 50%), hsl(300, 100%, 50%), hsl(330, 100%, 50%), hsl(360, 100%, 50%));
|
||||
}
|
||||
|
||||
:root {
|
||||
--form-range-saturation: linear-gradient(to right, hsl(var(--theme-primary-1-h), 0%, 50%), hsl(var(--theme-primary-1-h), 50%, 50%), hsl(var(--theme-primary-1-h), 100%, 50%));
|
||||
}
|
||||
|
||||
:root {
|
||||
--form-range-contrast-low-to-high:
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 0%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 10%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 20%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 30%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 40%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 50%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 60%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 70%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 80%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 90%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 100%);
|
||||
--form-range-contrast-high-to-low:
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 100%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 90%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 80%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 70%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 60%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 50%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 40%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 30%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 20%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 10%),
|
||||
hsl(var(--theme-primary-1-h), calc(var(--theme-primary-1-s) * 1%), 0%);
|
||||
}
|
||||
|
||||
.is-theme-style-light {
|
||||
--form-range-contrast: linear-gradient(to right, var(--form-range-contrast-high-to-low));
|
||||
}
|
||||
|
||||
.is-theme-style-dark {
|
||||
--form-range-contrast: linear-gradient(to right, var(--form-range-contrast-low-to-high));
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
.is-theme-style-system {
|
||||
--form-range-contrast: linear-gradient(to right, var(--form-range-contrast-high-to-low));
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.is-theme-style-system {
|
||||
--form-range-contrast: linear-gradient(to right, var(--form-range-contrast-low-to-high));
|
||||
}
|
||||
}
|
||||
|
||||
input[type="range"] {
|
||||
background-color: transparent;
|
||||
padding: 0;
|
||||
@ -107,6 +158,14 @@ input[type="range"].input-range-hue-spectrum::-webkit-slider-runnable-track {
|
||||
background-image: var(--form-range-hue);
|
||||
}
|
||||
|
||||
input[type="range"].input-range-saturation-spectrum::-webkit-slider-runnable-track {
|
||||
background-image: var(--form-range-saturation);
|
||||
}
|
||||
|
||||
input[type="range"].input-range-contrast-spectrum::-webkit-slider-runnable-track {
|
||||
background-image: var(--form-range-contrast);
|
||||
}
|
||||
|
||||
input[type="range"]:disabled.input-range-hue-spectrum::-webkit-slider-runnable-track {
|
||||
background-image: none;
|
||||
background-color: hsl(var(--form-range-track-background-disabled));
|
||||
@ -170,6 +229,14 @@ input[type="range"].input-range-hue-spectrum::-moz-range-track {
|
||||
background-image: var(--form-range-hue);
|
||||
}
|
||||
|
||||
input[type="range"].input-range-saturation-spectrum::-moz-range-track {
|
||||
background-image: var(--form-range-saturation);
|
||||
}
|
||||
|
||||
input[type="range"].input-range-contrast-spectrum::-moz-range-track {
|
||||
background-image: var(--form-range-contrast);
|
||||
}
|
||||
|
||||
input[type="range"]:disabled.input-range-hue-spectrum::-moz-range-track {
|
||||
background-image: none;
|
||||
background-color: hsl(var(--form-range-track-background-disabled));
|
||||
|
@ -465,11 +465,11 @@ themeSetting.colour = (parent) => {
|
||||
path: 'theme.color.range.primary.h',
|
||||
id: 'theme-color-range-primary-h',
|
||||
labelText: 'Primary colour',
|
||||
hue: true,
|
||||
value: state.get.current().theme.color.range.primary.h,
|
||||
defaultValue: state.get.default().theme.color.range.primary.h,
|
||||
min: state.get.minMax().theme.color.range.primary.h.min,
|
||||
max: state.get.minMax().theme.color.range.primary.h.max,
|
||||
style: 'hue',
|
||||
action: () => {
|
||||
theme.color.render();
|
||||
data.save();
|
||||
@ -484,6 +484,7 @@ themeSetting.colour = (parent) => {
|
||||
defaultValue: state.get.default().theme.color.range.primary.s,
|
||||
min: state.get.minMax().theme.color.range.primary.s.min,
|
||||
max: state.get.minMax().theme.color.range.primary.s.max,
|
||||
style: 'saturation',
|
||||
action: () => {
|
||||
theme.color.render();
|
||||
data.save();
|
||||
@ -494,6 +495,7 @@ themeSetting.colour = (parent) => {
|
||||
contrast: new Control_sliderDouble({
|
||||
object: state.get.current(),
|
||||
labelText: 'Contrast range',
|
||||
style: 'contrast',
|
||||
left: {
|
||||
path: 'theme.color.contrast.start',
|
||||
id: 'theme-color-contrast-start',
|
||||
|
Loading…
Reference in New Issue
Block a user