The Guestbook page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/retro-webpage/llms.txt
Use this file to discover all available pages before exploring further.
/contact) is the interactive social hub of the site — a digital version of the paper guestbooks that sat on desks at every 1990s trade show booth. Visitors enter a name/handle and a message into a pink BeveledPanel form, hit the beveled “Sign It!” button, and their entry instantly appears as a yellow sticky-note card in the Previous Visitors section below. Two nostalgic default entries are pre-loaded to set the mood.
What It Renders
The page is amax-w-2xl mx-auto centered column containing:
<h1>heading —"Sign My Guestbook"infont-pixel text-green-500centered.- Intro paragraph —
"Leave a message so I know you visited! No spam please."infont-sans text-sm. GuestbookForm— ABeveledPanel(variant="pink", titledSign My Guestbook!) that wraps a two-field form:- Name / Handle —
<input type="text">withbevel-insetstyling. - Message —
<textarea>(resizable: none,h-24) withbevel-insetstyling. - “Sign It!” — a
bevel-outset bg-gray-200 font-pixelsubmit button.
- Name / Handle —
GuestbookEntries— A list section headed Previous Visitors infont-vt323 text-2xl. Each entry is abg-[#ffffcc] border border-[#cccc99]sticky-note card with:- A top row:
font-bold text-blue-800username (left) +font-vt323 text-lgdate (right). - Body:
font-comic text-sm text-gray-800message text.
- A top row:
Entry state is managed in the parent page component via
useState. Entries submitted through GuestbookForm are prepended to the array (newest first). This state is not persisted — a full page refresh resets to the two default entries. Add a backend or localStorage call to the onAddEntry handler to persist data.Component Overview
GuestbookForm
Controlled form component with local
name and message state. Calls the onAddEntry callback with a new entry object on valid submit, then clears its own fields.GuestbookEntries
Stateless display component. Renders the
entries array as yellow sticky-note cards, or shows an empty-state message if the array is empty.Default Entries
| Name | Message | Date |
|---|---|---|
CoolHacker99 | First! Awesome site dude. Love the marquee. | 11/14/2002 |
WebSurfer_Girl | Nice layout! Can we do a link exchange? Check out my blink-182 fan page! | 03/22/2003 |
Customization Example
Swap the default entries, add alocalStorage persistence layer, or wire up a real backend:
Props Reference
GuestbookForm
Callback fired on valid form submission. Receives a new entry object with
name, message, and date (auto-generated as MM/DD/YYYY from new Date().toLocaleDateString). Both fields are required — the form blocks submission if either is empty.GuestbookEntries
The array of entry objects to render. When the array is empty, the component displays
"No entries yet. Be the first to sign!" in font-comic text-gray-500 italic. Entries are rendered in array order — prepend new items to show them at the top.Entry Object Shape
The visitor’s name or internet handle. Displayed in
font-bold text-blue-800 in the card header.The visitor’s message body. Rendered in
font-comic text-sm text-gray-800 with whitespace-pre-wrap so line breaks are preserved.The submission date as an
MM/DD/YYYY string. Displayed in font-vt323 text-lg on the right side of the card header.