Card Components
Card components provide structured, visually distinct content containers for displaying information.Card
A generic card component with animated hover effects, displaying a title and description.Usage
Props
The card title displayed prominently at the top
The descriptive text shown below the title
Features
- Hover Animation: Background changes from white to blue on hover
- Decorative SVG: Circle pattern in top-right corner
- Dot Pattern: Appears in bottom-left on hover
- Dark Mode: Automatically adapts with
dark:bg-blue-900/50 - Group Hover: Uses Tailwind’s
groupandgroup-hoverfor coordinated animations
Source Reference
Location:~/workspace/source/components/cards/Card.vue:1
ExperienceCard
A specialized card for displaying work experience entries with company information, job details, and technologies.Usage
Props
Filename of the company logo (stored in
/images/companies/)Company name displayed with the logo
Job title or role
Time period of employment (e.g., “2020 - 2024”)
Detailed description of responsibilities and achievements
Array of technology names to display as badges
If
true, aligns content to the right side (useful for timeline layouts)Features
- Text Truncation: Shows first 100 characters with “Voir plus” (Show more) button
- Expandable Content: Click to reveal full description
- Technology Badges: Displays technologies using the
Badgecomponent - Responsive Layout: Single column on mobile, side-aligned on desktop
- Timeline Integration: Includes decorative circle for timeline UI
- Animation: Wrapped in
AnimateOnScrollcomponent
Implementation Details
The component uses reactive state to manage text expansion:Source Reference
Location:~/workspace/source/components/cards/ExperienceCard.vue:1
SkillCard
A card component for displaying skill categories with an icon and a list of related skills.Usage
Props
Ionicon name (without
-outline suffix)Color theme for the icon (currently supports blue)
Skill category title
Array of skill names to display in a grid
If
true, removes the border (useful for last item in a row)Features
- Icon Display: Large Ionicon with colored background
- Grid Layout: Skills displayed in 2-column grid
- Alternating Alignment: Odd items align right, even items align left
- Border Control: Conditional borders for flexible layouts
- Dark Mode: Icon background adapts with
dark:bg-blue-400
Layout Structure
Skills are displayed in a responsive grid:Source Reference
Location:~/workspace/source/components/cards/SkillCard.vue:1
Best Practices
Card Component
- Keep titles concise (2-4 words)
- Descriptions should be 1-2 sentences
- Test hover states in both light and dark modes
ExperienceCard Component
- Use meaningful period strings (e.g., “Jan 2020 - Present”)
- Limit description to 200-300 characters for optimal UX
- Include 3-6 relevant technologies
- Alternate
rightprop for timeline layouts
SkillCard Component
- Group related skills logically
- Use 4-8 skills per card for best visual balance
- Choose icons that represent the skill category clearly
- Set
last={true}on rightmost cards to remove borders