The Blog window (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/old-windows/llms.txt
Use this file to discover all available pages before exploring further.
~/blog) has two distinct visual modes that swap based on which post is selected. The index view renders a cyan-on-black terminal listing of all posts with title and date columns, giving it the feel of a Unix ls -l output. Clicking any post transitions to the post detail view — a #000080 (classic Windows navy) background with white serif text and a yellow [ < Back to Index ] link at the top.
Visual Design
Index view
The index usesbg-black text-[#00ffff] font-pixel — cyan text on black, the classic terminal palette:
- Header box — a
border-4 border-double border-[#00ffff]double-rule box centred at the top containing the~/blogtitle and a subtitle - Column headings —
border-b border-[#00ffff] pb-2 mb-2 font-bold text-yellow-400to separate “Title” and “Date” in gold - Post rows — each row is a flex container with
justify-between. Hovering applieshover:bg-[#00ffff] hover:text-[#000080]— the text inverts to navy-on-cyan, matching the Win98 selection highlight - Footer tagline — a small
text-gray-500line at the bottom: “Best viewed with an open mind.”
Post detail view
Clicking a post setsselectedId in React state and switches the entire window to bg-[#000080] text-white p-6 font-serif overflow-auto:
- Back button —
text-yellow-400 hover:underline font-pixel text-smlink at the top:[ < Back to Index ] - Post title —
text-3xl font-bold mb-2 - Date line —
text-sm text-gray-300 font-pixel - Body text —
text-lg leading-relaxed space-y-4with multiple<p>elements
Features
Post index table
The index renders a
flex flex-col gap-2 list. Each row is a flex justify-between div with the post title (underlined) on the left and the date on the right. The full row is clickable via onClick={() => setSelectedId(post.id)}.Hover highlight
Hovering a post row inverts the colours — the entire row background flips to
#00ffff and the text to #000080. This is a CSS-only transition via Tailwind’s hover: utilities; no JavaScript involved.Post detail view
When
selectedId is not null, the component short-circuits and renders the detail layout instead of the index. The selected post is found with posts.find(p => p.id === selectedId). Clicking the back button sets selectedId back to null.Post data structure
Posts are defined in theposts array just above BlogComponent in config/apps.js:
Customization
Replace the posts array
Find the
posts array above BlogComponent in config/apps.js and swap in your own articles:Add real post content
The body of each post is currently hardcoded Lorem Ipsum paragraphs in the JSX. To support unique content per post, add a Then in the post detail JSX, replace the hardcoded
content field to each post object and render it dynamically:<p> elements with:Core component snippet
The index and post detail views are rendered by the same component function using an early return — not a router. This means the back-navigation is purely in-memory state and the browser’s Back button won’t navigate between posts. If you want deep-linkable blog posts, consider wiring up React Router to the window system.