Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/systems-witch/llms.txt

Use this file to discover all available pages before exploring further.

Systems Witch is a single-page React application compiled by Vite and served entirely as static files. There is no backend, no server-side rendering, and no redirect configuration required on the host. The entire UI is driven by a single root component that mounts a persistent shell — scanline overlay, sidebar navigation, content area, and terminal footer — and delegates the inner content slot to React Router. Every page is a self-contained component rendered inside that shell; only the content area changes as the user navigates.

App Layout

The root layout component (te in the compiled bundle, exported as the Layout element in the route tree) wraps everything in a flex min-h-screen bg-black text-bone container. Four direct children compose the full viewport:
LayerComponentPositionz-index
CRT scanline effectScanlineOverlayfixed inset-050 (mix-blend-overlay)
Sidebar navigationFilesystemNavfixedmd:sticky, w-6440
Page content<main> (flex-1, max-w-5xl)normal flow10
Status barTerminalFooterfixed bottom-030
The <main> element carries overflow-x-hidden and pads its inner max-w-5xl mx-auto container at p-6 md:p-12 lg:p-16. The router outlet (<Outlet />) is rendered inside this container, so every page automatically receives consistent horizontal margins and maximum width constraints.

Render Tree

App (layout shell)
├── ScanlineOverlay   (fixed overlay, z-50, mix-blend-overlay)
├── FilesystemNav     (sidebar, z-40)
├── main              (content area, z-10)
│   └── AnimatePresence (Framer Motion, mode="wait")
│       └── Routes
│           ├── /             → HomeView
│           ├── /about        → AboutView
│           ├── /projects     → ProjectsView
│           ├── /skills       → SkillsView
│           ├── /articles     → ArticlesView
│           ├── /contact      → ContactView
│           └── /testimonials → TestimonialsView
└── TerminalFooter    (bottom bar, fixed, z-30)
AnimatePresence mode="wait" ensures the outgoing page fully completes its exit animation before the entering page begins its entrance animation. Each page component wraps its content in a <PageTransition> component, which provides the per-page Framer Motion variants (a CRT-style scale + opacity sequence). Together, these two mechanisms gate every route change behind a clean transition with no overlapping frames.

Build Output

Vite compiles all application source into four static assets loaded by every HTML shell:
FileContents
assets/main.jsAll React page and component code (bundled + minified)
assets/main.cssTailwind CSS output + all custom CSS (glitch animations, scanlines, ASCII borders)
assets/jsx-runtime.jsReact JSX transform runtime
assets/proxy.jsFramer Motion (m, motion) + React Router re-exports
The HTML files in the project root (index.html) and in pages/ (About.html, Projects.html, etc.) are thin shells: they load the four assets above, define a <div id="root">, and inject a small inline script that sets window.__STATIC_PAGE_ROUTE__ to the route string for that page, then redirects the browser to the correct hash fragment on direct load.

Components

Reference for every shared UI component — props, animations, and usage examples.

Routing

How hash-based routing works, the full route table, and how to add new routes.

Home Page

The boot animation, hero sigil, and HomeView component deep-dive.

Build docs developers (and LLMs) love