Pure CSS Icons
No icon fonts needed! Create beautiful, scalable icons using just CSS. From simple shapes to complex animations - all without a single image file.
Basic Icons
Essential icons crafted with CSS shapes and pseudo-elements
Menu
.hamburger-menu
Close
.close-icon
Arrow
.arrow-right
Heart
.heart-icon
Star
.star-icon
Envelope
.envelope-icon
Check
.check-icon
Search
.search-icon
Home
.home-icon
User
.user-icon
Settings
.settings-icon
Download
.download-icon
Animated Icons
Icons that come alive with CSS animations
Spinner
.spinner-icon
Pulse Heart
.pulse-heart
Bell
.bell-icon
Loading
.loading-dots
WiFi
.wifi-icon
Battery
.battery-icon
Interactive Icons
Icons that respond to your actions - hover or click to see the magic!
Menu Toggle
.menu-to-close
Play/Pause
.play-pause
Like Button
.like-button
Share
.share-icon
Mail Hover
.hover-mail
Expand
.expand-icon
British Bonus Icons
A spot of tea, anyone? These icons are quintessentially British!
Cuppa
.tea-cup
Brolly
.umbrella-icon
Crown
.crown-icon
Icon Techniques
Learn how to create your own CSS icons
Basic Shapes
/* Simple circle icon */
.circle-icon {
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--colour-primary);
}
/* Triangle using borders */
.triangle-icon {
width: 0;
height: 0;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
border-bottom: 35px solid var(--colour-primary);
}
Pseudo Elements
/* Plus icon using ::before and ::after */
.plus-icon {
position: relative;
width: 40px;
height: 40px;
}
.plus-icon::before,
.plus-icon::after {
content: '';
position: absolute;
background: var(--colour-primary);
}
.plus-icon::before {
width: 100%;
height: 4px;
top: 50%;
transform: translateY(-50%);
}
.plus-icon::after {
width: 4px;
height: 100%;
left: 50%;
transform: translateX(-50%);
}
Animations
/* Rotating spinner */
@keyframes spin {
to { transform: rotate(360deg); }
}
.spinner-icon {
width: 40px;
height: 40px;
border: 4px solid rgba(0,0,0,0.1);
border-top-color: var(--colour-primary);
border-radius: 50%;
animation: spin 1s linear infinite;
}
Icon Design Tips
Size Consistency
Keep icons within a consistent grid (24x24, 32x32) for visual harmony.
Use CSS Variables
Define colours as variables for easy theming and consistency.
Performance
CSS icons load instantly - no HTTP requests needed!
Accessibility
Always add proper ARIA labels for interactive icons.