diff --git a/.nvmrc b/.nvmrc index 3f6c11fc18..368fe859d7 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v8.12.0 \ No newline at end of file +v8.12.0 diff --git a/package.json b/package.json index 341fe02550..b4f6e258c2 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "author": "Adam Miller ", "private": true, "dependencies": { + "@smotaal.io/dark-mode-controller": "^0.0.4", "@emotion/core": "^10.0.7", "@types/react-helmet": "^5.0.7", "dotenv": "^6.0.0", diff --git a/src/components/controls.tsx b/src/components/controls.tsx deleted file mode 100644 index aaa2fe932d..0000000000 --- a/src/components/controls.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import React from 'react'; -import { css } from '@emotion/core'; -import DarkModeController from '../util/DarkModeController'; - -const controlsStyles = { - header: css/* scss */ ` - position: fixed; - padding: 0.25ch 1ch; - margin-bottom: 1ch; - margin-top: -1ch; - right: 0; - z-index: 999; - box-sizing: border-box; - will-change: transform; - - display: grid; - grid-auto-flow: column dense; - grid-gap: 1ch; - align-items: center; - - opacity: 0.9; - color: var(--color-text-accent, #999); - background-color: var(--black9, #9993); - border-top-left-radius: 1ch; - border-bottom-left-radius: 1ch; - - min-width: max-content; - width: 0; - white-space: normal; - text-size-adjust: 100%; - text-shadow: #333f46 0px 0.875px 0px; - user-select: none; - `, - button: css/* scss */ ` - color: inherit; - border: none; - width: max-content; - display: contents; - `, - controls: css/* scss */ ` - color: inherit; - `, -}; - -interface Props { - lightModeIcon?: string; - darkModeIcon?: string; - controller?: DarkModeController; -} - -const Controls = ({ - lightModeIcon = 'wb_sunny', - darkModeIcon = 'nights_stay', - controller = new DarkModeController(), -}: Props): JSX.Element => ( -
-
- - - -
-
-); - -export default Controls; diff --git a/src/components/header.tsx b/src/components/header.tsx index ff8032f96f..3266863125 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -2,7 +2,7 @@ import { Link } from 'gatsby'; import React from 'react'; import logoLight from '../images/logos/nodejs-logo-light-mode.svg'; import logoDark from '../images/logos/nodejs-logo-dark-mode.svg'; -import DarkModeController from '../util/DarkModeController'; +import defaultDarkModeController from '../util/darkModeController'; const activeStyleTab = { fontWeight: 'var(--font-weight-semibold)', @@ -11,10 +11,12 @@ const activeStyleTab = { }; interface Props { - darkModeController?: DarkModeController; + darkModeController?: typeof defaultDarkModeController; } -const Header = ({ darkModeController }: Props): JSX.Element => ( +const Header = ({ + darkModeController = defaultDarkModeController, +}: Props): JSX.Element => (