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

Function ColorSchemeToggle

packages/dev/s2-docs/src/MobileHeader.tsx:97–137  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

95});
96
97function ColorSchemeToggle() {
98 let {colorScheme, toggleColorScheme, systemColorScheme} = useSettings();
99 let isOverriding = colorScheme !== systemColorScheme;
100 let label = isOverriding
101 ? `Using ${colorScheme} mode (press to use system)`
102 : `Using system ${systemColorScheme} mode (press to switch)`;
103 let ref = useRef(null);
104 let isDark = colorScheme === 'dark';
105
106 // oxlint-disable react/react-compiler
107 return (
108 <Button
109 ref={ref}
110 aria-label={label}
111 onPress={toggleColorScheme}
112 className={renderProps => colorSchemeToggleStyles(renderProps)}
113 style={pressScale(ref)}>
114 <span className={iconContainerStyles}>
115 <Contrast
116 UNSAFE_style={{
117 position: 'absolute',
118 inset: 0,
119 opacity: isDark ? 0 : 1,
120 transform: isDark ? 'rotate(-90deg) scale(0.5)' : 'rotate(0deg) scale(1)',
121 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
122 }}
123 />
124 <Lighten
125 UNSAFE_style={{
126 position: 'absolute',
127 inset: 0,
128 opacity: isDark ? 1 : 0,
129 transform: isDark ? 'rotate(0deg) scale(1)' : 'rotate(90deg) scale(0.5)',
130 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
131 }}
132 />
133 </span>
134 </Button>
135 );
136 // oxlint-enable react/react-compiler
137}
138
139export function MobileHeader({toc}) {
140 let ref = useRef<HTMLDivElement | null>(null);

Callers

nothing calls this directly

Calls 2

useSettingsFunction · 0.90
pressScaleFunction · 0.90

Tested by

no test coverage detected