Overview
The skills data structure powers the Skills & Services section of the portfolio. It’s defined insrc/data/skills.ts and consumed by src/components/Skills.astro.
This file exports three main arrays:
skills- Technology badges for the infinite marqueetechnicalServices- Technical service offeringsoperationalServices- Operational and leadership services
Skills Array
Structure
The skills array defines technology badges with visual styling:Field Reference
| Field | Type | Description |
|---|---|---|
name | string | Full technology name |
color | string | Hex color for text and border |
bg | string | Hex color for badge background |
letter | string | 1-2 character icon or emoji |
Current Skills
JavaScript
Color:
#f7df1e (yellow)
Letter: JSTypeScript
Color:
#3178c6 (blue)
Letter: TSReact
Color:
#61dafb (cyan)
Letter: ⚛Next.js
Color:
#e0e0e0 (light gray)
Letter: NNode.js
Color:
#68a063 (green)
Letter: ⬡Tailwind
Color:
#06b6d4 (cyan)
Letter: ≋Astro
Color:
#ff5d01 (orange)
Letter: 🚀Git
Color:
#f05032 (red-orange)
Letter: ⎇Linux
Color:
#fcc624 (yellow)
Letter: 🐧Complete Skills Data
Color Guidelines
Use brand colors
Match official brand colors for each technology (e.g., TypeScript blue, React cyan)
Technical Services
Structure
Complete Data
Web Development
React/Next.js SPAs, REST & GraphQL APIs, Performance optimization
Mobile Development
React Native cross-platform, iOS & Android deployment, Offline-first architecture
UI/UX Design
Responsive design systems, Figma prototyping, Accessibility (WCAG 2.1)
Operational Services
Structure
Complete Data
Operations Management
Distribution center processes, Documentation and training, Operational KPIs & reporting
Project Management
Sprint planning, Team coordination, Stakeholder communication
Systems Thinking
Process mapping, Data-driven decision making, Cross-functional leadership
Adding New Skills
Find the brand color
Look up the official brand color for the technology (usually in their brand guidelines)
Adding New Services
For Technical Services
For Operational Services
Each service category should have exactly 3 items for visual consistency.
Usage in Components
The skills data is consumed insrc/components/Skills.astro:
Infinite Marquee
Array Duplication
Skills array is duplicated with
[...skills, ...skills] to create seamless infinite scrollInline Styling
Colors are applied via
style attribute for dynamic theming per skillService Cards
operationalServices in the second column.
Styling Details
Marquee Animation
The infinite scroll is achieved with Tailwind’sanimate-marquee custom animation:
-50% because the skills array is duplicated.
Hover States
Skill Badges
Translate up slightly on hover, pause the marquee animation
Service Cards
Translate up, brighten border, show top gradient line
Best Practices
Skill Count
Keep skills array between 8-12 items for optimal marquee performance
Service Balance
Maintain equal number of technical and operational service categories
Item Consistency
Each service should have exactly 3 items for visual harmony
Letter Variety
Mix text initials with Unicode symbols and emoji for visual interest
Color Reference
Here are the exact colors used for each skill badge:| Technology | Color | Background | Symbol |
|---|---|---|---|
| JavaScript | #f7df1e | #1a1800 | JS |
| TypeScript | #3178c6 | #001428 | TS |
| React | #61dafb | #001219 | ⚛ |
| Next.js | #e0e0e0 | #151515 | N |
| Node.js | #68a063 | #0b1a0b | ⬡ |
| Tailwind | #06b6d4 | #001417 | ≋ |
| Astro | #ff5d01 | #1a0800 | 🚀 |
| Git | #f05032 | #1a0800 | ⎇ |
| Linux | #fcc624 | #1a1400 | 🐧 |
Extending the Data
When adding new entries:- Skills: Add to the end of the array for smooth marquee integration
- Services: Add new categories between existing ones or at the end
- Testing: Always preview in the browser to ensure colors work in dark mode
- Consistency: Follow the existing patterns for structure and naming