MCPcopy Index your code
hub / github.com/adobe/react-spectrum / ColorSchemeToggle

Function ColorSchemeToggle

packages/dev/s2-docs/src/MobileHeader.tsx:97–135  ·  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 return (
107 <Button
108 ref={ref}
109 aria-label={label}
110 onPress={toggleColorScheme}
111 className={renderProps => colorSchemeToggleStyles(renderProps)}
112 style={pressScale(ref)}>
113 <span className={iconContainerStyles}>
114 <Contrast
115 UNSAFE_style={{
116 position: 'absolute',
117 inset: 0,
118 opacity: isDark ? 0 : 1,
119 transform: isDark ? 'rotate(-90deg) scale(0.5)' : 'rotate(0deg) scale(1)',
120 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
121 }}
122 />
123 <Lighten
124 UNSAFE_style={{
125 position: 'absolute',
126 inset: 0,
127 opacity: isDark ? 1 : 0,
128 transform: isDark ? 'rotate(0deg) scale(1)' : 'rotate(90deg) scale(0.5)',
129 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
130 }}
131 />
132 </span>
133 </Button>
134 );
135}
136
137export function MobileHeader({toc}) {
138 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