57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
// Slider
|
|
var slider = document.getElementById("range");
|
|
var output = document.getElementById("range-value");
|
|
output.innerHTML = slider.value;
|
|
|
|
slider.oninput = function() {
|
|
output.innerHTML = this.value;
|
|
}
|
|
|
|
// Spaceship control center
|
|
const colorPickerLight = document.querySelector("#color-picker-light");
|
|
const colorPickerDark = document.querySelector("#color-picker-dark");
|
|
|
|
let accentColorLight = colorPickerLight.value;
|
|
let accentColorDark = colorPickerDark.value;
|
|
|
|
colorPickerLight.addEventListener("input", updateAccentColorLight);
|
|
colorPickerDark.addEventListener("input", updateAccentColorDark);
|
|
|
|
function updateAccentColorLight() {
|
|
accentColorLight = colorPickerLight.value;
|
|
updateStyles();
|
|
}
|
|
|
|
function updateAccentColorDark() {
|
|
accentColorDark = colorPickerDark.value;
|
|
updateStyles();
|
|
}
|
|
|
|
function updateStyles() {
|
|
let styleElement = document.getElementById("dynamic-styles");
|
|
|
|
if (!styleElement) {
|
|
styleElement = document.createElement("style");
|
|
styleElement.id = "dynamic-styles";
|
|
document.head.appendChild(styleElement);
|
|
}
|
|
|
|
let styles = `
|
|
:root {
|
|
--accent-color: ${accentColorLight};
|
|
}
|
|
[data-theme="dark"] {
|
|
--accent-color: ${accentColorDark};
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
:root:not([data-theme="light"]) {
|
|
--accent-color: ${accentColorDark};
|
|
}
|
|
}
|
|
`;
|
|
|
|
styleElement.textContent = styles;
|
|
}
|
|
|
|
updateStyles();
|