bootstrap-darkmode
Version:
Stylesheet and Scripts for implementing dark mode with Bootstrap 4
16 lines • 2.4 kB
JavaScript
export function writeDarkSwitch(config) {
document.write(`
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="darkSwitch">
<label class="custom-control-label" for="darkSwitch">Dark Mode</label>
</div>
`);
const darkSwitch = document.getElementById('darkSwitch');
darkSwitch.checked = config.getTheme() === 'dark';
darkSwitch.onchange = () => {
config.setTheme(darkSwitch.checked ? 'dark' : 'light');
};
config.themeChangeHandlers.push(theme => darkSwitch.checked = theme === 'dark');
return darkSwitch;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFyay1zd2l0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2Rhcmstc3dpdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBbUI7SUFDL0MsUUFBUSxDQUFDLEtBQUssQ0FBQzs7Ozs7Q0FLbEIsQ0FBQyxDQUFDO0lBRUMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQXFCLENBQUM7SUFFN0UsVUFBVSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssTUFBTSxDQUFDO0lBQ2xELFVBQVUsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFO1FBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUM7SUFFaEYsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGhlbWVDb25maWd9IGZyb20gJy4vdGhlbWUtY29uZmlnJztcblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlRGFya1N3aXRjaChjb25maWc6IFRoZW1lQ29uZmlnKSB7XG4gICAgZG9jdW1lbnQud3JpdGUoYFxuPGRpdiBjbGFzcz1cImN1c3RvbS1jb250cm9sIGN1c3RvbS1zd2l0Y2hcIj5cbjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cImN1c3RvbS1jb250cm9sLWlucHV0XCIgaWQ9XCJkYXJrU3dpdGNoXCI+XG48bGFiZWwgY2xhc3M9XCJjdXN0b20tY29udHJvbC1sYWJlbFwiIGZvcj1cImRhcmtTd2l0Y2hcIj5EYXJrIE1vZGU8L2xhYmVsPlxuPC9kaXY+XG5gKTtcblxuICAgIGNvbnN0IGRhcmtTd2l0Y2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGFya1N3aXRjaCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICBkYXJrU3dpdGNoLmNoZWNrZWQgPSBjb25maWcuZ2V0VGhlbWUoKSA9PT0gJ2RhcmsnO1xuICAgIGRhcmtTd2l0Y2gub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIGNvbmZpZy5zZXRUaGVtZShkYXJrU3dpdGNoLmNoZWNrZWQgPyAnZGFyaycgOiAnbGlnaHQnKTtcbiAgICB9O1xuXG4gICAgY29uZmlnLnRoZW1lQ2hhbmdlSGFuZGxlcnMucHVzaCh0aGVtZSA9PiBkYXJrU3dpdGNoLmNoZWNrZWQgPSB0aGVtZSA9PT0gJ2RhcmsnKTtcblxuICAgIHJldHVybiBkYXJrU3dpdGNoO1xufVxuIl19