Скилл переносится из ~/.claude/skills/aura-design в репозиторий обвязки: SKILL.md, справочники reference/ и набор kit/ (токены, base.css, компоненты React, оболочка AppShell, тест токенов, test-setup, примеры входа). install.sh ставит его в ~/.claude/skills/aura-design, --check его видит. tests/test-aura-design.sh проверяет структуру и инварианты набора. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
709 B
TypeScript
20 lines
709 B
TypeScript
import { useState } from "react";
|
|
import { applyTheme, effectiveDark, readTheme, saveTheme, type Theme } from "./theme.ts";
|
|
import { IconMoon, IconSun } from "./icons.tsx";
|
|
|
|
export function ThemeSwitch() {
|
|
const [theme, setTheme] = useState<Theme>(readTheme);
|
|
const dark = effectiveDark(theme);
|
|
const toggle = () => {
|
|
const next: Theme = dark ? "light" : "dark";
|
|
saveTheme(next);
|
|
applyTheme(next);
|
|
setTheme(next);
|
|
};
|
|
return (
|
|
<button type="button" role="switch" aria-checked={dark} aria-label="Тёмная тема" className="ui-theme" onClick={toggle}>
|
|
<span className="ui-theme__knob">{dark ? <IconMoon size={16} /> : <IconSun size={16} />}</span>
|
|
</button>
|
|
);
|
|
}
|