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

Function ColorSchemeToggle

packages/dev/s2-docs/src/Header.tsx:74–112  ·  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 return (
84 <Button
85 ref={ref}
86 aria-label={label}
87 onPress={toggleColorScheme}
88 className={renderProps => colorSchemeToggleStyles(renderProps)}
89 style={pressScale(ref)}>
90 <span className={iconContainerStyles}>
91 <Contrast
92 UNSAFE_style={{
93 position: 'absolute',
94 inset: 0,
95 opacity: isDark ? 0 : 1,
96 transform: isDark ? 'rotate(-90deg) scale(0.5)' : 'rotate(0deg) scale(1)',
97 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
98 }}
99 />
100 <Lighten
101 UNSAFE_style={{
102 position: 'absolute',
103 inset: 0,
104 opacity: isDark ? 1 : 0,
105 transform: isDark ? 'rotate(0deg) scale(1)' : 'rotate(90deg) scale(0.5)',
106 transition: 'opacity 200ms ease-out, transform 200ms ease-out'
107 }}
108 />
109 </span>
110 </Button>
111 );
112}
113
114export default function Header() {
115 const {currentPage} = useRouter();

Callers

nothing calls this directly

Calls 2

useSettingsFunction · 0.90
pressScaleFunction · 0.90

Tested by

no test coverage detected