Color Mode
Use color-mode.js for better support for Bootstrap’s color modes.
The script automatically detects if the user uses light or dark mode and sets the data-bs-theme attribute to the document element (<html>). It also updates it if the color mode changes.
It also exports these functions:
getStored()- Returns what is stored ("light","dark"ornull).getPreferred()- Returns current color mode ("light"or"dark").set(colorMode: string)- Let’s you set the color mode.init()- Let’s you reinitialize manually. Will automatically executed when the script loaded and when the color mode changes.
Color Mode Switch
Example about, how you could create a color mode switch.
Code
<div class="form-floating">
<select class="form-select w-auto" id="colorModeSelect" aria-label="Selector for color mode">
<option value="auto">Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
<label for="colorModeSelect">Select</label>
</div>
<script>
const initColorModeSelect = () =>
(colorModeSelect.value = blueWeb.colorMode.getStored() ? blueWeb.colorMode.getPreferred() : "auto")
document.addEventListener("DOMContentLoaded", initColorModeSelect)
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", initColorModeSelect)
colorModeSelect.addEventListener("change", ({ target }) => {
blueWeb.colorMode.set(target.value)
})
</script> Grab the code
When you don't use the entire Blue Web library, you can also just copy and paste the required code into your own project.
-
Copy and paste the following code into your project. Source: @/src/js/color-mode.ts