The Contact page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/dev-nexus/llms.txt
Use this file to discover all available pages before exploring further.
/contact) translates the portfolio’s arcane theme into an interactive contact form. A decorative orbit ring — similar in structure to the Home page sigil — is displayed above the form and reacts visually as the user fills in each field, glowing more intensely with each completed input. Below the form, three social links provide additional channels for reaching the developer. The combination of reactive animation and thematic copy (“CAST MESSAGE”) makes the contact experience feel cohesive with the rest of the site.
Route & Navigation
| Property | Value |
|---|---|
| Route | /contact |
| Nav Label | SUMMON |
| Page Heading | SUMMONING CIRCLE |
| Subheading | // ESTABLISH A DIRECT CONNECTION |
Visual Structure
Animated Summoning Circle
A circular orbit ring sits above or beside the form. Unlike the Home page sigil, this ring’s glow intensity is driven by form state — it dims when the form is empty and brightens progressively as fields are filled. The glow is implemented by binding the ring’sbox-shadow or SVG filter: drop-shadow() value to a computed intensity derived from how many fields have non-empty values:
Contact Form
The form contains three fields:| Field ID | Label | Type | Placeholder |
|---|---|---|---|
IDENTIFIER | Name | text | Arcane-themed placeholder |
RETURN_ADDRESS | email | Arcane-themed placeholder | |
INCANTATION | Message | textarea | Arcane-themed placeholder |
Submit Button
The submit button is labeled:transform: translateX transition. On click, the button should trigger form submission logic.
The form does not currently have a connected backend or form service. The submit handler is a placeholder. To make the form functional, integrate a service such as Formspree, EmailJS, or a custom API endpoint, and wire it to the form’s
onSubmit handler.Social Links
Below the form, three social platform links are displayed as icon buttons:| Platform | Icon | Current href |
|---|---|---|
| GitHub | GitHub icon | # (placeholder) |
| Twitter / X | X icon | # (placeholder) |
| LinkedIn icon | # (placeholder) |
href="#" in the source. Update these to real profile URLs before deploying.
Animations
The summoning circle ring uses the same continuousrotate: 360 Framer Motion animation as the Home page sigil. The glow intensity is a reactive CSS value, not an animation — it updates synchronously with React’s controlled input state, so there is no animation delay between typing and the glow changing.
Form fields entrance-animate with a staggered fade-in on page load:
Customization
Connecting the form to a backend: Replace the placeholderonSubmit handler with a real submission function. Using Formspree as an example:
<a> tags) in the Contact component and replace the href="#" values with real URLs:
label prop and placeholder attribute for each input or textarea to match your preferred copy.