The Contact page closes the arcade loop by framing outreach as saving progress. Just as a player reaches a save point after completing a difficult stretch of a game, a visitor who has explored the portfolio and wants to connect is invited to “save” their contact details and leave a message. The form fields carry the portfolio’s visual language — cyan focus-glow borders, pixel-styled labels, and an arcade button for submission — making the act of reaching out feel like a natural continuation of the experience rather than a jarring departure into a generic contact form. The Phone icon in the navigation panel identifies this as the communication endpoint of the portfolio.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/player-one/llms.txt
Use this file to discover all available pages before exploring further.
Route Info
| Property | Value |
|---|---|
| Path | /contact |
| Arcade Label | SAVE GAME |
| Navigation Icon | Phone (phone) |
| Page Transition | PageTransition blur/scale wrapper, pt-24 pb-32 padding |
Visual Layout
The page centers a single styled form panel on the viewport:- Save screen header — a pixel-font heading (e.g., “SAVE GAME” or “NEW MESSAGE”) introduces the form.
- Form fields — each input is styled with the arcade theme:
- Name — text input with a pixel-bordered container.
- Email — email input; receives the cyan glow on focus.
- Message — multi-line textarea for the visitor’s note.
- Submit button — the primary action button uses the shared arcade button style: pixel border, press-down active state, and a label such as TRANSMIT or SEND MESSAGE.
- Confirmation state — after a successful submission, the form transitions to a victory/confirmation message styled as a “PROGRESS SAVED” screen.
HUD, CRTOverlay, and GhostSprite components appear as on all other routes.
Key Components
PageTransition
Shared entrance animation wrapper applied on route navigation.
Arcade form inputs
Text, email, and textarea inputs styled with pixel borders and a cyan focus-ring glow consistent with the portfolio’s color palette.
Arcade submit button
The primary form submission button. Shares the same pixel-border and press-down active-state style as the Start button on the Home page.
Navigation
Used in the
Navigation inventory panel to identify the Contact route as the communication endpoint of the portfolio.Interactivity & Special Features
- Cyan focus glow — each form field gains a
box-shadowglow in the portfolio’s primary cyan accent color when focused, reinforcing the arcade HUD aesthetic. - Validation states — invalid or empty required fields can display pixel-styled inline error messages (e.g., “INPUT REQUIRED” instead of a plain browser tooltip).
- Submit button feedback — the button can transition to a loading state (e.g., flashing “TRANSMITTING…”) while the form submission is in-flight, and then to a success state once confirmed.
- PROGRESS SAVED confirmation — a full-form replacement or overlay that mimics a save-game success screen, confirming the message was received.
Backend Integration
The contact form is client-side only in the base implementation — submitting the form does not send any data until it is wired to a backend endpoint or a third-party form service.Option 1 — Form service (recommended for static deploys)
Services like Formspree, Netlify Forms, or Basin accept form submissions via a simplePOST request with no custom backend required.
YOUR_FORM_ID with the ID from your Formspree dashboard. Formspree forwards submissions to your email and provides a spam filter at the free tier.
Option 2 — Custom API route
If the portfolio is deployed alongside a backend (Express, Next.js API routes, a serverless function, etc.), point the form’sfetch or axios call to your own endpoint:
/api/contact handler can then relay the message via Nodemailer, SendGrid, Resend, or any transactional email provider.
Option 3 — mailto: fallback
For the simplest possible integration with zero backend, the submit button can be swapped for a mailto: link. This opens the visitor’s default email client pre-populated with the subject and body:
Customization Notes
Update the form field labels, placeholder text, and submit button label to match your voice. “TRANSMIT”, “SEND”, “SAVE & SEND”, and “INSERT MESSAGE” are all on-theme options. The label sets the tone for the interaction, so choose one that feels natural alongside your overall portfolio copy.