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

Function ColorSchemeToggle

packages/dev/s2-docs/src/Header.tsx:74–114  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

72});
73
74function ColorSchemeToggle() {
75 let {colorScheme, toggleColorScheme, systemColorScheme} = useSettings();
76 let isOverriding = colorScheme !== systemColorScheme;
77 let label = isOverriding
78 ? `Using ${colorScheme} mode (press to use system)`
79 : `Using system ${systemColorScheme} mode (press to switch)`;
80 let ref = useRef(null);
81 let isDark = colorScheme === 'dark';
82
83 // oxlint-disable react/react-compiler
84 return (
85 <Button
86 ref={ref}
87 aria-label={label}
88 onPress={toggleColorScheme}
89 className={renderProps => colorSchemeToggleStyles(renderProps)}
90 style={pressScale(ref)}>
91 <span className={iconContainerStyles}>
92 <Contrast
93 UNSAFE_style={{
94 position: 'absolute',
95 inset: 0,
96 opacity: isDark ? 0 : 1,
97 transform: isDark ? 'rotate(-90deg) scale(0.5)' : 'rotate(0deg) scale(1)',
98 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
99 }}
100 />
101 <Lighten
102 UNSAFE_style={{
103 position: 'absolute',
104 inset: 0,
105 opacity: isDark ? 1 : 0,
106 transform: isDark ? 'rotate(0deg) scale(1)' : 'rotate(90deg) scale(0.5)',
107 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
108 }}
109 />
110 </span>
111 </Button>
112 );
113 // oxlint-enable react/react-compiler
114}
115
116export default function Header() {
117 const {currentPage} = useRouter();

Callers

nothing calls this directly

Calls 2

useSettingsFunction · 0.90
pressScaleFunction · 0.90

Tested by

no test coverage detected