Skip to main content

Documentation Index

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

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

The Full Moon repository is the compiled output of a Vite build, not a development workspace. There is no src/ directory, no node_modules, and no package manifest. Every file you see is either a static HTML shell that the browser loads directly, a minified JavaScript bundle that Vite produced, or the compiled Tailwind CSS stylesheet. Understanding how these files relate to each other is the key to navigating the project.

Directory Tree

full-moon/
├── index.html              # Landing page (/ route)
├── pages/
│   ├── About.html          # /about
│   ├── Blog.html           # /blog
│   ├── CaseStudies.html    # /case-studies
│   ├── Contact.html        # /contact
│   ├── Projects.html       # /projects
│   ├── Skills.html         # /skills
│   ├── Testimonials.html   # /testimonials
│   └── Work.html           # /work
├── components/
│   ├── Navigation.js       # Nav + React DOM bundle
│   ├── Layout.js           # Root layout wrapper
│   ├── Cursor.js           # Animated custom cursor
│   └── SVGs.js             # Moon, Sigil, Candle SVGs
├── assets/
│   ├── main.js             # App entry point (minified)
│   ├── main.css            # Tailwind output + Google Fonts
│   └── proxy.js            # Vendor bundle (React, Framer Motion)
└── .nojekyll               # Disables GitHub Pages Jekyll processing

index.html — Landing Page

index.html is the entry point for the / route. It contains a bare <div id="root"> and uses <script type="module"> to load assets/main.js as the app entry point, along with <link rel="modulepreload"> hints for assets/proxy.js and each component in components/. It does not set window.__STATIC_PAGE_ROUTE__, so the React app defaults to rendering the home route.

pages/ — Static HTML Shells

Each file in pages/ is the entry point for one route. The shells are structurally identical to index.html with two differences: the <title> tag reflects the page name (e.g. About | full-moon) and an inline <script> sets the routing globals before React mounts:
<script>
  window.__STATIC_PAGE_ROUTE__ = "/about";
  if (!window.location.hash || window.location.hash === "#/" || window.location.hash === "#") {
    window.location.hash = "/about";
  }
</script>
window.__STATIC_PAGE_ROUTE__ is read by the React application to determine which page component to render. window.location.hash is set so the browser URL bar immediately reflects the correct route. Asset paths in the page shells use the ../ prefix (e.g. ../assets/main.js) because the shells live one directory below the repository root.

components/ — React Component Modules

The components/ directory contains four ES module files. They are imported by main.js at runtime and are also preloaded by every HTML shell via <link rel="modulepreload">.
FilePurpose
Layout.jsRoot layout wrapper. Renders the bg-fog overlay, the starfield layer, the Cursor component, the Navigation component, and a Framer Motion <motion.main> with a 0.5 s opacity fade for page transitions.
Navigation.jsSite navigation bar. This file also bundles React DOM (it imports from proxy.js) and registers the React root. It contains the full React DOM reconciler so the app can mount without a separate bootstrap file.
Cursor.jsAnimated custom cursor. The site sets cursor: none globally; this component renders a custom cursor element that follows the pointer.
SVGs.jsInline SVG assets. Exports the animated full-moon SVG used on the landing page, a decorative sigil, and a candle illustration.
All four files are minified ES modules. They share React, Framer Motion, and other third-party dependencies via named re-exports from ../assets/proxy.js, keeping the component files lean.

assets/ — Vite Build Output

The assets/ directory contains the three files Vite produced during the build.
FilePurpose
main.jsThe minified application bundle. This is the app entry point: it imports the page components and wires up the hash-based router. It is loaded by every HTML shell via <script type="module" src="./assets/main.js">.
proxy.jsThe vendor chunk. Contains React 18, React DOM, Framer Motion, and the React scheduler — all of the third-party runtime dependencies. Named exports from this file are imported by main.js and the components/ modules.
main.cssThe compiled Tailwind stylesheet. The first line imports the Google Fonts stylesheet (Cinzel Decorative and Cormorant Garamond). The remainder is the full Tailwind utility output, including the custom colour tokens (midnight-base, witch-teal-glow, witch-teal-bright, witch-teal-dark), the bg-fog and starfield CSS classes, custom scrollbar styles, and all responsive variants used across the site.

.nojekyll — GitHub Pages Configuration

The .nojekyll file at the repository root is an empty marker file required for GitHub Pages deployments. By default, GitHub Pages runs Jekyll on any repository it serves, and Jekyll ignores files and directories whose names begin with an underscore (_). Adding .nojekyll disables Jekyll processing entirely, ensuring that all files in the repository — including any that Vite might produce with _ prefixes — are served as-is by the GitHub Pages CDN.
This repository contains only the compiled Vite build output. The original development source — including src/, tailwind.config.js, vite.config.js, package.json, and any component source files — is not present. If you want to modify the Tailwind configuration, add routes, edit component JSX, or change the animation parameters, you will need access to the original source project and a Node.js environment with the project’s dependencies installed.

Build docs developers (and LLMs) love