The Stack section (rendered byDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Emmanuel-Mtz-777/My-Personal-Portfolio/llms.txt
Use this file to discover all available pages before exploring further.
src/components/sections/Stack.astro) gives visitors a quick visual inventory of every technology Emmanuel works with. Rather than a plain list, each technology is displayed as a small interactive card bearing its official icon and name. The cards are grouped into five semantic categories and laid out in a responsive CSS grid that reflows gracefully from single-column on mobile to multi-column on wider viewports. A shared Particles WebGL background is embedded inside each category group, giving the section the same lively atmosphere as the Hero.
Data source
All technology definitions live insrc/utils/data/StackData.js, which exports five named arrays:
| Export | Category label (en.json key) |
|---|---|
frontend | stack.frontend |
languajes | stack.lang |
databases | stack.db |
backend | stack.backend |
tools | stack.tools |
{ icon: Component, title: string } where icon is an imported Astro or React component from src/components/icons/tec/<category>/.
Full technology inventory
| Category | Technologies |
|---|---|
| Frontend | HTML, CSS, Tailwind CSS, Astro, Vue.js, React, Expo |
| Languages | JavaScript, TypeScript, Java, PHP, Python |
| Databases | MySQL, SQLite, ElasticSearch, Supabase |
| Backend | Node.js, Express, Laravel, Spring Boot |
| Tools | Docker, Git, Netlify |
StackData.js exports (source)
TechCard component
Each category group is wrapped insrc/components/ui/cards/TechCard.astro, which accepts these props:
Particles WebGL effect fills the card background (100 particles, spread 20, speed 0.5), and the items are rendered in a CSS grid where each cell is a square tile with hover scale and border transitions.
Icon component structure
Technology icons follow a consistent path convention:.jsx are React components; icons as .astro are Astro components. Both render inline SVGs and accept a style prop for sizing (the TechCard renders each at 30 × 30 px).
Layout overview
Stack.astro arranges the five TechCard groups in a stacked-then-side-by-side layout:
- Languages — full width, 5-column grid on desktop.
- Frontend + Databases — side by side on
sm:and up (2/3 + 1/3 split). - Backend + Tools — side by side on
sm:and up (1/2 + 1/2 split).
To add a new technology, import its icon into
src/utils/data/StackData.js and push { icon, title } to the appropriate export array. No changes to any Astro template are needed.