| // Copyright 2020 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| const DARK_THEME_CLASS = 'theme-with-dark-background'; | |
| function toggleDarkMode(force?: boolean): void { | |
| // Only use the second arg if its not undefined. The spec treats `undefined` as falsy. :/ | |
| document.documentElement.classList.toggle(...[DARK_THEME_CLASS, ...force !== undefined ? [force] : []]); | |
| } | |
| export function init(): void { | |
| window.addEventListener('load', () => { | |
| const button = document.createElement('button'); | |
| button.innerText = 'Toggle light/dark mode'; | |
| button.className = 'component-docs-ui'; | |
| button.style.position = 'fixed'; | |
| button.style.bottom = '10px'; | |
| button.style.right = '30px'; | |
| button.style.width = '200px'; | |
| button.style.fontSize = '16px'; | |
| button.style.padding = '5px'; | |
| button.style.cursor = 'pointer'; | |
| button.addEventListener('click', event => { | |
| event.preventDefault(); | |
| toggleDarkMode(); | |
| }); | |
| document.body.appendChild(button); | |
| }); | |
| } |