MCPcopy Create free account
hub / github.com/adobe/react-spectrum / ColorSchemeToggle

Function ColorSchemeToggle

packages/dev/s2-docs/pages/s2/home/Header.tsx:46–86  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

44});
45
46function ColorSchemeToggle() {
47 let {colorScheme, toggleColorScheme, systemColorScheme} = useSettings();
48 let isOverriding = colorScheme !== systemColorScheme;
49 let label = isOverriding
50 ? `Using ${colorScheme} mode (press to follow system)`
51 : `Using system ${systemColorScheme} mode (press to switch)`;
52 let ref = useRef<HTMLButtonElement>(null);
53 let isDark = colorScheme === 'dark';
54
55 return (
56 <Button
57 ref={ref}
58 aria-label={label}
59 onPress={toggleColorScheme}
60 className={renderProps => colorSchemeToggleStyles(renderProps)}
61 style={pressScale(ref)}>
62 <span className={iconContainerStyles}>
63 <Contrast
64 styles={whiteIconStyle}
65 UNSAFE_style={{
66 position: 'absolute',
67 inset: 0,
68 opacity: isDark ? 0 : 1,
69 transform: isDark ? 'rotate(-90deg) scale(0.5)' : 'rotate(0deg) scale(1)',
70 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
71 }}
72 />
73 <Lighten
74 styles={whiteIconStyle}
75 UNSAFE_style={{
76 position: 'absolute',
77 inset: 0,
78 opacity: isDark ? 1 : 0,
79 transform: isDark ? 'rotate(0deg) scale(1)' : 'rotate(90deg) scale(0.5)',
80 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
81 }}
82 />
83 </span>
84 </Button>
85 );
86}
87
88export default function HomeHeader() {
89 const [searchOpen, setSearchOpen] = useState(false);

Callers

nothing calls this directly

Calls 2

useSettingsFunction · 0.90
pressScaleFunction · 0.90

Tested by

no test coverage detected