better nav styles
This commit is contained in:
parent
d62faf4c51
commit
d9afe1e2f7
2 changed files with 97 additions and 61 deletions
|
@ -8,40 +8,43 @@
|
|||
<a href="{{ "/music" | url }}">/music</a>
|
||||
<a href="{{ "/books" | url }}">/books</a>
|
||||
</div>
|
||||
<div class="nav-toggles">
|
||||
<label class="nav-toggle-button" title="Light mode">☀️<input type="radio" name="theme" value="light"/></label>
|
||||
<label class="nav-toggle-button" title="Automatic">🔄<input type="radio" name="theme" value="auto"/></label>
|
||||
<label class="nav-toggle-button" title="Dark mode">🌒<input type="radio" name="theme" value="dark"/></label>
|
||||
/
|
||||
<label class="nav-toggle-button" data-language="english">English<input type="radio" name="language" value="english"/></label>
|
||||
<label class="nav-toggle-button" data-language="aurebesh">Aurebesh<input type="radio" name="language" value="aurebesh"/></label>
|
||||
<script type="text/javascript">
|
||||
const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
||||
const defaultPrefs = {
|
||||
language: 'english',
|
||||
theme: 'auto'
|
||||
};
|
||||
Object.entries(defaultPrefs).forEach(([key, defaultPref]) => {
|
||||
const currentPref = localStorage.getItem(key) ?? defaultPref;
|
||||
applyPreference(key, currentPref, false)
|
||||
document.querySelectorAll(`input[name=${key}]`).forEach(input => {
|
||||
input.addEventListener('change', (e) => {
|
||||
applyPreference(key, e.currentTarget.value, true);
|
||||
<div class="nav-settings">
|
||||
<div class="nav-toggles">
|
||||
<label class="nav-toggle-button" title="Light mode">☀️<input type="radio" name="theme" value="light"/></label>
|
||||
<label class="nav-toggle-button" title="Automatic">🔄<input type="radio" name="theme" value="auto"/></label>
|
||||
<label class="nav-toggle-button" title="Dark mode">🌒<input type="radio" name="theme" value="dark"/></label>
|
||||
</div>
|
||||
<div class="nav-toggles">
|
||||
<label class="nav-toggle-button" data-language="english">English<input type="radio" name="language" value="english"/></label>
|
||||
<label class="nav-toggle-button" data-language="aurebesh">Aurebesh<input type="radio" name="language" value="aurebesh"/></label>
|
||||
<script type="text/javascript">
|
||||
const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
||||
const defaultPrefs = {
|
||||
language: 'english',
|
||||
theme: 'auto'
|
||||
};
|
||||
Object.entries(defaultPrefs).forEach(([key, defaultPref]) => {
|
||||
const currentPref = localStorage.getItem(key) ?? defaultPref;
|
||||
applyPreference(key, currentPref, false)
|
||||
document.querySelectorAll(`input[name=${key}]`).forEach(input => {
|
||||
input.addEventListener('change', (e) => {
|
||||
applyPreference(key, e.currentTarget.value, true);
|
||||
})
|
||||
})
|
||||
})
|
||||
});
|
||||
function applyPreference(key, value, shouldSave) {
|
||||
document.body.setAttribute(`data-${key}`, value);
|
||||
document.querySelectorAll(`input[name=${key}]`).forEach(input => {
|
||||
if (input.value === value) {
|
||||
input.checked = true;
|
||||
});
|
||||
function applyPreference(key, value, shouldSave) {
|
||||
document.body.setAttribute(`data-${key}`, value);
|
||||
document.querySelectorAll(`input[name=${key}]`).forEach(input => {
|
||||
if (input.value === value) {
|
||||
input.checked = true;
|
||||
}
|
||||
})
|
||||
if (shouldSave) {
|
||||
localStorage.setItem(key, value);
|
||||
}
|
||||
})
|
||||
if (shouldSave) {
|
||||
localStorage.setItem(key, value);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<h1>{{ tag | capitalize if tag else title }}</h1>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue