Spooky is a Vite-compiled React single-page application (SPA) delivered as static files. The repository contains pre-compiled output — HTML entry files, compiled JavaScript bundles, a CSS stylesheet, and image assets — so the theme can be deployed to GitHub Pages or any static host without a build step. The source React components are compiled into the files inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/spooky/llms.txt
Use this file to discover all available pages before exploring further.
assets/ and components/.
Directory tree
Compiled vs. source files
The JavaScript files inassets/ and components/ are minified Vite output, not hand-edited source files. They use ES module import/export syntax and reference each other with relative paths. If you want to make changes to component logic or styling, fork the original source project, make changes there, run vite build, and replace the compiled files in the repository with the new output.
The assets/main.css file is the compiled output of Tailwind CSS processing. Arbitrary color values (bg-[#1a1a1d], text-[#ff7518], etc.) used throughout the components are included in this stylesheet via Tailwind’s JIT scan of the source files.
HTML entry files
Each HTML file in the root is nearly identical in structure:#root div and loads the same assets/main.js entry bundle. React Router reads the current URL path and renders the matching page component. This means all HTML files share one JavaScript application; the URL alone determines which page content is displayed.
index.html serves as the GitHub Pages entry point — when visitors navigate to the root URL, GitHub Pages serves this file.
Asset file relationships
The compiled files follow a dependency chain:assets/main.jsis the application entry point. It initializes React, sets up the React Router<BrowserRouter>with all route definitions, and wraps the app in theJumpScareProvidercontext.components/Layout.jsis imported by every route component. It in turn importsCandleCursor.js,Navigation.js,JumpScareToggle.js, and all decorative components, so they are present on every page automatically.assets/proxy.jscentralizes re-exports of React, ReactDOM, and Framer Motion. Instead of each component bundle bundling its own copy of these libraries, they all import fromproxy.js, which keeps the total bundle size down and ensures a single shared instance of React across all components.assets/JumpScareContext.jsis imported by bothJumpScareSpider.jsandJumpScareToggle.js. It provides the sharedscaresEnabledstate that connects the toggle button to the spider animation.