111 lines
4.1 KiB
HTML
111 lines
4.1 KiB
HTML
{{define "appearance"}}<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
{{template "meta_tags" "Appearance settings"}}
|
|
<link id="stylesheet_theme_2" rel="stylesheet" type="text/css" href="/theme.css"/>
|
|
</head>
|
|
|
|
<body>
|
|
{{template "page_top" .}}
|
|
<header>
|
|
<h1>Change website appearance</h1>
|
|
</header>
|
|
<section>
|
|
<p>
|
|
You can change how pixeldrain looks! Your theme choice will
|
|
be saved in a cookie.
|
|
</p>
|
|
<div class="indent">
|
|
<input type="radio" id="style_nord" name="style"><label for="style_nord">Nord</label>
|
|
(Inspired by <a href="https://www.nordtheme.com/" target="_blank">Nord</a>)
|
|
<br/>
|
|
Dynamic theme, changes based on operating system settings. Here you can choose a specific variant:
|
|
<br/>
|
|
<input type="radio" id="style_nord_dark" name="style"><label for="style_nord_dark">Nord dark</label>
|
|
<br/>
|
|
<input type="radio" id="style_nord_light" name="style"><label for="style_nord_light">Nord light</label>
|
|
<!-- <br/>
|
|
Hue: <input id="hue" type="number" min="0" max="360" placeholder="0"/><br/> -->
|
|
<br/>
|
|
<br/>
|
|
<input type="radio" id="style_solarized" name="style"><label for="style_solarized">Solarized</label>
|
|
(Inspired by <a href="https://ethanschoonover.com/solarized/" target="_blank">Solarized</a>)
|
|
<br/>
|
|
Dynamic theme, changes based on operating system settings. Here you can choose a specific variant:
|
|
<br/>
|
|
<input type="radio" id="style_solarized_dark" name="style"><label for="style_solarized_dark">Solarized dark</label>
|
|
<br/>
|
|
<input type="radio" id="style_solarized_light" name="style"><label for="style_solarized_light">Solarized light</label>
|
|
<br/>
|
|
<!-- <br/> -->
|
|
<!-- <input type="radio" id="style_adwaita" name="style"><label for="style_adwaita">Adwaita</label><br/> -->
|
|
<br/>
|
|
<input type="radio" id="style_purple_drain" name="style"><label for="style_purple_drain">Purple drain</label>
|
|
<br/>
|
|
Classic 2022 style, with purple gradients
|
|
<br/>
|
|
<br/>
|
|
<input type="radio" id="style_classic" name="style"><label for="style_classic">Pixeldrain classic (gray)</label>
|
|
<br/>
|
|
Classic pre-2020 pixeldrain style, dark gray
|
|
<br/>
|
|
<br/>
|
|
Other (experimental) themes
|
|
<br/>
|
|
<input type="radio" id="style_maroon" name="style"><label for="style_maroon">Maroon Style</label>
|
|
<br/>
|
|
<input type="radio" id="style_hacker" name="style"><label for="style_hacker">Hacker Style</label>
|
|
<br/>
|
|
<input type="radio" id="style_canta" name="style"><label for="style_canta">Canta Style</label>
|
|
(Inspired by <a href="https://github.com/vinceliuice/Canta-theme" target="_blank">Canta GTK</a>)
|
|
<br/>
|
|
<input type="radio" id="style_skeuos" name="style"><label for="style_skeuos">Skeuos Style</label>
|
|
(Inspired by <a href="https://www.gnome-look.org/p/1441725/" target="_blank">Skeuos GTK</a>)
|
|
<br/>
|
|
<input type="radio" id="style_sweet" name="style"><label for="style_sweet">Sweet</label>
|
|
</div>
|
|
</section>
|
|
|
|
<script>
|
|
let style = "nord"
|
|
let hue = -1
|
|
|
|
// Style selector
|
|
document.getElementsByName("style").forEach(function(elem) {
|
|
elem.addEventListener("change", e => {
|
|
style = e.target.id.substring(6)
|
|
setStyle()
|
|
})
|
|
});
|
|
document.getElementById("hue").addEventListener("change", e => {
|
|
hue = e.target.value
|
|
setStyle()
|
|
})
|
|
|
|
function setStyle() {
|
|
var date = new Date();
|
|
date.setTime(date.getTime() + (10 * 365 * 24 * 60 * 60 * 1000));
|
|
|
|
document.cookie = "style="+style+"; expires=" + date.toUTCString() + "; path=/"
|
|
|
|
if (hue >= 0 && hue <= 360) {
|
|
document.cookie = "hue="+hue+"; expires=" + date.toUTCString() + "; path=/"
|
|
}
|
|
|
|
let stylesheet1 = document.getElementById("stylesheet_theme")
|
|
let stylesheet2 = document.getElementById("stylesheet_theme_2")
|
|
|
|
// First load the sheet in the secondary tag, wait for it to load,
|
|
// and replace the original sheet when it has finished loading
|
|
stylesheet2.href= "/theme.css?style="+style+"&hue="+hue
|
|
stylesheet2.onload = e => {
|
|
stylesheet1.href= "/theme.css?style="+style+"&hue="+hue
|
|
}
|
|
}
|
|
</script>
|
|
{{template "page_bottom" .}}
|
|
{{template "analytics"}}
|
|
</body>
|
|
</html>
|
|
{{end}}
|