Overview
The Hero component is a full-screen introductory section featuring a two-column layout with text content on the left and a stylized image card on the right. It uses neobrutalist design with overlay effects, grid patterns, and scanlines.
This component serves as the landing section and is designed to create a strong visual impact with its futuristic tech aesthetic.
Component Structure
Location : src/components/Hero/Hero.jsx
Styles : src/components/Hero/Hero.module.css
No props required - fully self-contained
Implementation
Basic Usage
import Hero from './components/Hero/Hero' ;
export default function App () {
return (
< main >
< Hero />
{ /* Other sections */ }
</ main >
);
}
Full Component Code
import styles from './Hero.module.css' ;
export default function Hero () {
return (
< section id = "hero" className = { styles . hero } >
< div className = { `container ${ styles . inner } ` } >
{ /* Left column */ }
< div className = { styles . left } >
< div className = { styles . tagline } >
< p className = { styles . role } > Full Stack Engineer </ p >
< p className = { styles . location } > BASED IN ESTELI, NICARAGUA </ p >
</ div >
< h1 className = { styles . headline } >
BUILDING < br />
< span className = { styles . outlineWord } > ROBUST </ span > < br />
SYSTEMS.
</ h1 >
< div className = { styles . descBox } >
< p >
I craft high-performance digital experiences with brutal
efficiency. Specializing in scalable architecture, clean code,
and user-centric interfaces.
</ p >
</ div >
< div className = { styles . ctas } >
< a href = "#projects" className = { styles . btnPrimary } >
VIEW PROJECTS
< span className = "material-icons" > arrow_downward </ span >
</ a >
< a href = "https://github.com/xItzHypeR" target = "_blank" rel = "noopener noreferrer" className = { styles . btnSecondary } >
GITHUB
< span className = "material-icons" > code </ span >
</ a >
</ div >
</ div >
{ /* Right column: image card */ }
< div className = { styles . right } >
< div className = { ` ${ styles . imageCard } code-overlay` } >
< div className = { styles . gridOverlay } />
< div className = { styles . colorOverlay } />
< div className = { styles . scanlines } />
< img
src = "/GustavoPeralta.webp"
alt = "Stylized developer portrait with tech aesthetic"
className = { styles . photo }
fetchpriority = "high"
loading = "eager"
/>
< div className = { ` ${ styles . corner } ${ styles . cornerTL } ` } />
< div className = { ` ${ styles . corner } ${ styles . cornerTR } ` } />
< div className = { ` ${ styles . corner } ${ styles . cornerBR } ` } />
< div className = { styles . devTag } > < GUSTAVO PERALTA / > </ div >
</ div >
</ div >
</ div >
</ section >
);
}
Layout Structure
Two-Column Grid
The Hero uses a responsive two-column layout:
Contains text content in vertical flow:
Tagline : Role and location
Headline : Large statement with outlined word
Description : Value proposition paragraph
CTAs : Two action buttons with icons
Contains the stylized image card with:
Grid overlay effect
Color tint overlay
Scanline animation
Corner decorations
Developer tag label
Text Content Elements
Tagline
< div className = { styles . tagline } >
< p className = { styles . role } > Full Stack Engineer </ p >
< p className = { styles . location } > BASED IN ESTELI, NICARAGUA </ p >
</ div >
Two-line intro with role and location information.
Headline
< h1 className = { styles . headline } >
BUILDING < br />
< span className = { styles . outlineWord } > ROBUST </ span > < br />
SYSTEMS.
</ h1 >
The middle word uses .outlineWord class for an outlined/stroked text effect, creating visual hierarchy.
Description Box
< div className = { styles . descBox } >
< p >
I craft high-performance digital experiences with brutal
efficiency. Specializing in scalable architecture, clean code,
and user-centric interfaces.
</ p >
</ div >
Value proposition wrapped in a styled container.
Two distinct CTA styles:
Primary Button
Secondary Button
< a href = "#projects" className = { styles . btnPrimary } >
VIEW PROJECTS
< span className = "material-icons" > arrow_downward </ span >
</ a >
Features :
Material Icons for visual enhancement
Primary scrolls to #projects section
Secondary opens GitHub in new tab
Both use neobrutalist shadow effects
Image Card Effects
The right column features a layered image card with multiple visual effects:
Overlay Layers
< div className = { styles . gridOverlay } />
Creates a subtle grid pattern over the image for a technical/digital aesthetic.
< div className = { styles . colorOverlay } />
Applies a tinted color blend over the image for consistency with the theme.
< div className = { styles . scanlines } />
Animated horizontal scanlines creating a retro-futuristic CRT monitor effect.
Corner Decorations
< div className = { ` ${ styles . corner } ${ styles . cornerTL } ` } />
< div className = { ` ${ styles . corner } ${ styles . cornerTR } ` } />
< div className = { ` ${ styles . corner } ${ styles . cornerBR } ` } />
Three corner brackets (top-left, top-right, bottom-right) framing the image with geometric accents.
Developer Tag
< div className = { styles . devTag } > < GUSTAVO PERALTA / > </ div >
HTML-style tag label positioned at the bottom of the image card.
Image Optimization
< img
src = "/GustavoPeralta.webp"
alt = "Stylized developer portrait with tech aesthetic"
className = { styles . photo }
fetchpriority = "high"
loading = "eager"
/>
Uses WebP format for optimal compression and fetchpriority=“high” + loading=“eager” to prioritize loading since it’s above the fold.
Customization
Change Text Content
< div className = { styles . tagline } >
< p className = { styles . role } > Your Role Here </ p >
< p className = { styles . location } > YOUR LOCATION </ p >
</ div >
< h1 className = { styles . headline } >
YOUR < br />
< span className = { styles . outlineWord } > HEADLINE </ span > < br />
HERE.
</ h1 >
Update CTAs
< div className = { styles . ctas } >
< a href = "#portfolio" className = { styles . btnPrimary } >
SEE MY WORK
< span className = "material-icons" > work </ span >
</ a >
< a href = "/contact" className = { styles . btnSecondary } >
CONTACT
< span className = "material-icons" > email </ span >
</ a >
</ div >
Replace Image
< img
src = "/your-image.webp"
alt = "Your descriptive alt text"
className = { styles . photo }
fetchpriority = "high"
loading = "eager"
/>
Modify Developer Tag
< div className = { styles . devTag } > < YOUR NAME / > </ div >
CSS Module Patterns
Key styling patterns used:
Container class : Global .container combined with local .inner for responsive width
Grid/Flexbox : Responsive two-column layout
Absolute positioning : Overlays and decorative elements
CSS animations : Scanline effects
Transform effects : Button hover states
Z-index layering : Stacking overlays correctly
Responsive Design
The Hero adapts across breakpoints:
Desktop : Two-column side-by-side layout
Tablet : Adjusted column widths
Mobile : Stacked single column, image card scales down
Accessibility
Semantic <section> with unique id="hero"
Proper heading hierarchy (h1 for main headline)
Descriptive alt text for image
External links use rel="noopener noreferrer"
Material Icons provide visual enhancement (not relied upon for meaning)
Design Philosophy
The Hero embodies neobrutalist + cyberpunk aesthetics:
Bold typography with high contrast
Outlined/stroked text effects
Layered overlays and effects
Geometric corner decorations
Retro-futuristic scanlines
Strong shadows and borders
Uppercase text for impact