Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/magical/llms.txt

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

The Tomes (/#/writing) presents your writing as an animated bookshelf. Each entry appears as a book spine standing upright on a shared shelf — the title is rendered vertically, a small icon sits near the top, and hovering over a book raises it and reveals a floating tooltip card with the type badge, full title, summary, and a “Open Volume” call-to-action. The data powering this bookshelf lives in the writings array in assets/main.js.

Writing Entry Shape

Each book on the shelf is defined by the following object structure:
{
  id: number,       // Unique integer — increment from the last existing entry
  title: string,    // Displayed vertically on the book spine (keep under 30 chars)
  type: string,     // Genre/category badge shown in the hover tooltip
                    // e.g. "Bug Report", "Technical Writeup", "Reflection"
  icon: LucideIcon, // A Lucide React icon component reference (imported at bundle top)
  color: string,    // Tailwind classes for the book's background color + border
  textColor: string,// Tailwind class for the type badge text color in the tooltip
  summary: string,  // Full description shown in the hover tooltip card
  date: string,     // Publication date, e.g. "Oct 2023"
}

Available Book Color Combinations

The portfolio’s mystic color system defines four ready-to-use theme combinations for books. Mix and match them across your entries to create a visually varied shelf:
Color Themecolor classestextColor
Violetbg-mystic-900 border-mystic-violet/40text-mystic-violet
Tealbg-mystic-950 border-mystic-teal/40text-mystic-teal
Mintbg-mystic-800 border-mystic-mint/40text-mystic-mint
Slatebg-mystic-900 border-slate-500/40text-slate-300
These classes are already compiled into assets/main.css — you can use them directly without any additional Tailwind configuration.

Suggested Lucide Icons

The icon field expects a Lucide React icon component. The following icons are already imported in the compiled bundle and work well for writing entries:
Icon nameVariable in bundleGood for
BugbeBug reports, debugging postmortems
PanelsTopLeftveTechnical writeups, CSS/layout deep-dives
PenToolssReflections, personal essays, career pivots
HeartBeEmpathy-focused, general audience pieces
BookMarkedyeReference articles, state management comparisons
MoonJtCreative, philosophical, or mystical themes
ZaposPerformance, speed, or optimization posts
EyeceAccessibility, UX observation, or design critique
Because assets/main.js is a compiled bundle, icon values must reference variables already imported at the top of the file — they cannot be arbitrary strings. When editing the bundle directly, use one of the existing icon variable names listed above (e.g., be for the Bug icon). If you are working with the original Vite source, import any Lucide icon from lucide-react and assign it to the icon field.

Steps to Add a New Writing Entry

1

Open assets/main.js

Open assets/main.js in your editor. Search for the writings array — it is declared as a const and starts with the entry titled "The Anatomy of a Memory Leak". You will find five existing entries covering Bug Reports, Technical Writeups, a Reflection, a General Audience piece, and another Technical Writeup.
2

Choose your color theme and icon

Decide which color combination from the table above best matches the mood of your writing. Then pick an icon from the suggested list that fits the content type. Avoid repeating the same color-theme as an adjacent entry on the shelf — alternating themes makes for a more visually interesting bookshelf.
3

Append a new object to the array

Add your new entry as the last item inside the writings array, after the final closing brace. Remember to add a comma after the entry that precedes yours.
// Inside the writings array, after the last existing entry:
{
  id: 6,
  title: "The Art of the Code Review",
  type: "Technical Writeup",
  icon: ss,
  color: "bg-mystic-800 border-mystic-mint/40",
  textColor: "text-mystic-mint",
  summary: "Why a code review is less about catching bugs and more about transferring intent. A guide to leaving reviews that teach, not just critique.",
  date: "Mar 2024"
}
4

Save and verify

Save the file. Navigate to http://localhost:5173/#/writing in your browser. Your new book should appear at the right end of the shelf. Hover over it to confirm the tooltip card displays the type badge, title, summary, and “Open Volume” footer correctly.
Book titles are displayed vertically rotated 90° counter-clockwise on the spine (using -rotate-90 in Tailwind). Keep titles concise — under 30 characters — to prevent overflow on the narrow spine width (w-16 on mobile, w-24 on desktop). Titles longer than 30 characters will be clipped or wrap awkwardly.The date is displayed along the very bottom of the spine in a rotated vertical orientation as well, using writing-mode: vertical-rl.
Establish a consistent naming convention for your type field — it appears as a monospace uppercase badge at the top of every hover tooltip. The existing entries use: "Bug Report", "Technical Writeup", "Reflection", and "General Audience". Sticking to a small, predictable set of types helps readers scan and filter your content mentally, even without a built-in filter UI.

Build docs developers (and LLMs) love