| // 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); |
| }); |
| } |