fix(theme): improve color toggle when using dark navbar (#8615)

Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
This commit is contained in:
Dewansh Thakur 2023-02-23 23:54:03 +05:30 committed by sebastienlorber
parent a12c6f8119
commit e8d971d2d6
4 changed files with 23 additions and 1 deletions

View file

@ -1243,6 +1243,7 @@ declare module '@theme/ColorModeToggle' {
export interface Props {
readonly className?: string;
readonly buttonClassName?: string;
readonly value: ColorMode;
/**
* The parameter represents the "to-be" value. For example, if currently in

View file

@ -15,7 +15,12 @@ import type {Props} from '@theme/ColorModeToggle';
import styles from './styles.module.css';
function ColorModeToggle({className, value, onChange}: Props): JSX.Element {
function ColorModeToggle({
className,
buttonClassName,
value,
onChange,
}: Props): JSX.Element {
const isBrowser = useIsBrowser();
const title = translate(
@ -47,6 +52,7 @@ function ColorModeToggle({className, value, onChange}: Props): JSX.Element {
'clean-btn',
styles.toggleButton,
!isBrowser && styles.toggleButtonDisabled,
buttonClassName,
)}
type="button"
onClick={() => onChange(value === 'dark' ? 'light' : 'dark')}

View file

@ -9,10 +9,12 @@ import React from 'react';
import {useColorMode, useThemeConfig} from '@docusaurus/theme-common';
import ColorModeToggle from '@theme/ColorModeToggle';
import type {Props} from '@theme/Navbar/ColorModeToggle';
import styles from './styles.module.css';
export default function NavbarColorModeToggle({
className,
}: Props): JSX.Element | null {
const navbarStyle = useThemeConfig().navbar.style;
const disabled = useThemeConfig().colorMode.disableSwitch;
const {colorMode, setColorMode} = useColorMode();
@ -23,6 +25,9 @@ export default function NavbarColorModeToggle({
return (
<ColorModeToggle
className={className}
buttonClassName={
navbarStyle === 'dark' ? styles.darkNavbarColorModeToggle : undefined
}
value={colorMode}
onChange={setColorMode}
/>

View file

@ -0,0 +1,10 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
.darkNavbarColorModeToggle:hover {
background: var(--ifm-color-gray-800);
}