- Convert theme to SolidJS Context/Provider pattern (ThemeProvider) - Extract createThemeState() for testability without context - Add Typewriter component with character-by-character reveal - Animate ThemeToggle with Typewriter label and hover scale - Add cursor CSS animations (typewriter-blink, cursor-typing, cursor-block) - Fix background color transition by using 'all' on :root - Rename theme.ts -> theme.tsx for JSX support - All 26 theme tests passing
24 lines
563 B
TypeScript
24 lines
563 B
TypeScript
import { MetaProvider, Title } from "@solidjs/meta";
|
|
import { Router } from "@solidjs/router";
|
|
import { FileRoutes } from "@solidjs/start/router";
|
|
import { Suspense } from "solid-js";
|
|
import { ThemeProvider } from "./lib/theme";
|
|
import { AppShell } from "./components/layout";
|
|
import "./app.css";
|
|
|
|
export default function App() {
|
|
return (
|
|
<ThemeProvider>
|
|
<Router
|
|
root={(props) => (
|
|
<AppShell>
|
|
<Suspense>{props.children}</Suspense>
|
|
</AppShell>
|
|
)}
|
|
>
|
|
<FileRoutes />
|
|
</Router>
|
|
</ThemeProvider>
|
|
);
|
|
}
|