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.
VialCard is the primary project display component in Dev Nexus. Each card is styled to resemble a glass laboratory vial — rounded at the top, flat at the bottom — containing a glowing liquid whose fill level rises on hover. In its collapsed state the card shows a beaker icon, the project title, and a decorative label. Clicking the card toggles an expanded state (animated via Framer Motion’s AnimatePresence) that reveals a project description, a row of tech-stack badges, and three action buttons. Four color themes let each vial carry a distinct neon hue.
Props
The project name displayed in the card header and used as the vial label.
A short project description shown only in the expanded state. Keep it to 1–3 sentences for best layout.
An array of technology names rendered as pill badges in the expanded state. For example:
['React', 'TypeScript', 'Tailwind CSS'].The theme color applied to the card’s border, text accents, fill gradient, and glow effects.
Usage
Color Themes
Eachcolor value maps to a consistent set of Tailwind utility classes applied to the card’s border, text accents, fill gradient, and box-shadow glow:
color value | Border | Text accent | Glow class |
|---|---|---|---|
violet | border-electric-violet | text-electric-violet | glow-violet |
lime | border-neon-lime | text-neon-lime | glow-lime |
mint | border-ghost-mint | text-ghost-mint | glow-mint |
magenta | border-hot-magenta | text-hot-magenta | glow-magenta |
Visual Behavior
Collapsed state
- Rounded top (
rounded-t-3xl) + flat-ish bottom (rounded-b-lg) create the vial silhouette. - A beaker icon and the project
titleare displayed. - A decorative label reads
[ POTION CONTAINS SAMPLE INGREDIENTS ]. - Three floating bubble particles sit at the bottom-left, bottom-center, and bottom-right of the card interior, subtly animated.
- A colored gradient fill occupies approximately the bottom one-third of the card height, simulating liquid inside the vial.
Hover state
- The fill gradient grows from ~1/3 to ~1/2 of the card height via a Framer Motion
whileHoveranimation, giving the impression of liquid rising.
Expanded state (click to toggle)
Clicking anywhere on the card togglesisExpanded via useState. The extra content mounts/unmounts through Framer Motion’s AnimatePresence:
- Description — the
descriptionprop text. - Tech badges — each item in the
techarray rendered as a rounded pill with the card’s accent color. - Action buttons — three labeled icon buttons:
| Button label | Icon | Purpose |
|---|---|---|
INVOCATION (DEMO) | Play icon | Link to live demo |
SOURCE INCANTATION | Code icon | Link to source repository |
GRIMOIRE ENTRY | File-text icon | Link to case study or write-up |
Button
href values are not passed as props in the current build — they are placeholders inside the component. Update components/VialCard.js to accept demoUrl, sourceUrl, and caseStudyUrl props if you need dynamic links.Customization Tips
Pass dynamic action URLs as props: Extend the component signature to accept link props and thread them into the button anchors:glow-* utility to tailwind.config.js.
Adjust fill animation speed:
The hover fill transition uses a Framer Motion transition object on the fill div. Lower the duration value for a snappier pour, or increase it for a slower, more viscous feel.
Limit tech badge count:
Truncate tech.slice(0, 5) before mapping to badges to prevent overflow on narrow grid columns.