TechLogoScroll Review
Component isolated for testing. Currently used on 2 pages with different tech stacks.
Homepage
Frontend & full-stack technologies
๐ /pages/index.vue line 85
๐ฏ Section: "Built With Industry-Leading Technologies"
๐ Logos: 11 technologies
Software Development
Complete development stack with databases & deployment
๐ /pages/services/software-development.vue line 202
๐ฏ Section: "Trusted Technology Stack"
๐ Logos: 12 technologies
Implementation Details
Component
/components/TechLogoScroll.vue
Infinite scrolling carousel using Nuxt Icon with lucide and logoipsum collections. Creates duplicate sets for seamless looping animation.
Props
logos: TechLogo[] (required)
โโ name: string (icon name, e.g., 'logos:react')
โโ title?: string (tooltip)
speed?: number (animation duration in seconds, default: 30)
Icon Naming Convention
logos:* collection
Framework & infrastructure logos (react, vue, docker, aws, etc.)
simple-icons:* collection
Service-specific logos (openai, github, etc.)
Live Examples
1. TechLogoScroll (Infinite Carousel)
Used on: Homepage & Software Development page
โ Infinite looping animation with pause on hover
โ Duplicate sets for seamless loop
โ CSS custom property for dynamic speed (currently unused but available)
2. TechLogoGrid (Static Grid)
Minimal alternative - clean grid layout
โ Responsive grid with auto-fit columns
โ No animation overhead
โ Interactive hover effects
โ Pure Nuxt Icon - no wrapper complexity
3. TechLogoStagger (Animated Entry)
Engaging entrance animation with staggered fade-in
โ Staggered animation on mount (each logo delays by 50ms)
โ Fade-in + slide-up effect on entry
โ Respects prefers-reduced-motion for accessibility
โ Interactive hover scaling
How It Works
โจ Animation Strategy
Creates two identical sets of logos. Animates translateX to move exactly 50% (one full set). When animation completes, browser restarts instantly, creating seamless infinite loop.
๐จ Styling
Uses semantic color tokens via Nuxt Icon component rendering.
- โข Icons inherit color from CSS variable:
var(--foreground, currentColor) - โข Hover effect: opacity 0.7 โ 1.0 and scale 1 โ 1.05
- โข Mask gradient fades edges for smooth visual effect
- โข Pause animation on hover
๐ฑ Responsive
- โข Desktop (>768px): 56px height, 3rem gap
- โข Mobile (<768px): 40px height, 2rem gap
- โข Respects prefers-reduced-motion

