The Tomes (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.
/#/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: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 Theme | color classes | textColor |
|---|---|---|
| Violet | bg-mystic-900 border-mystic-violet/40 | text-mystic-violet |
| Teal | bg-mystic-950 border-mystic-teal/40 | text-mystic-teal |
| Mint | bg-mystic-800 border-mystic-mint/40 | text-mystic-mint |
| Slate | bg-mystic-900 border-slate-500/40 | text-slate-300 |
assets/main.css — you can use them directly without any additional Tailwind configuration.
Suggested Lucide Icons
Theicon field expects a Lucide React icon component. The following icons are already imported in the compiled bundle and work well for writing entries:
| Icon name | Variable in bundle | Good for |
|---|---|---|
Bug | be | Bug reports, debugging postmortems |
PanelsTopLeft | ve | Technical writeups, CSS/layout deep-dives |
PenTool | ss | Reflections, personal essays, career pivots |
Heart | Be | Empathy-focused, general audience pieces |
BookMarked | ye | Reference articles, state management comparisons |
Moon | Jt | Creative, philosophical, or mystical themes |
Zap | os | Performance, speed, or optimization posts |
Eye | ce | Accessibility, 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
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.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.
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.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.