A thin line can do a lot of heavy lifting.
CSS dividers examples show you exactly how to create visual separators that organize content, guide the eye, and add polish to any web page layout.
Plain hr tags look dated. Custom dividers look intentional.
This guide covers everything from simple border-based separators to animated gradient lines and wave shape dividers using clip-path.
You’ll find working code snippets for horizontal dividers, pseudo-element techniques, responsive design patterns, and accessibility best practices.
Copy, paste, customize. Each example is ready for your next project.
What is a CSS Divider
A CSS divider is a visual separation element that distinguishes content sections on a web page.
These styled separators replace the basic HTML hr element with custom designs using borders, gradients, pseudo-elements, and shapes.
Dividers improve user experience by creating clear visual breaks between different parts of your layout.
You’ll find them in landing pages, blog posts, pricing tables, and footer sections.
CSS Dividers Examples To Check Out
SVG Section Dividers by rinaw
See the Pen
SVG section dividers, embedded with Data-URI & colored with SASS by rinaw (@rinaw)
on CodePen.
Responsive SVG Arrow by Domonkos Horvath
See the Pen
Responsive SVG Arrow as Section divider by Domonkos Horvath (@domhorvath)
on CodePen.
Benjamin’s Horizontal Delight
See the Pen
Cool Horizontal Divider Headings by Benjamin Knight (@benknight)
on CodePen.
Fresh Section Breaks by joshuar
See the Pen
Section Breaks by joshuar (@joshuar)
on CodePen.
Catchy SVG Page Separator by Alexandr Kazakov
See the Pen
SVG page separator by Alexandr Kazakov (@alexandr-kazakov)
on CodePen.
Vertical Adventures by Bobby
See the Pen
Untitled by Bobby (@protonbobby)
on CodePen.
Lynden’s Text Trick
See the Pen
Text Divider by Lynden Oliver (@lyndenoliver)
on CodePen.
Fade Away with mnicpt
See the Pen
Fading Divider by Steven Mask (@mnicpt)
on CodePen.
Color Burst with Slanted Sections by Adam Quinlan
See the Pen
Slanted Sections by Adam Quinlan (@quinlo)
on CodePen.
Rinatoptimus’s Circle Game
See the Pen
Divider with a circle by rinatoptimus (@rinatoptimus)
on CodePen.
HummixX’s Stylish Touch
See the Pen
Simple stylish divider with a little help of span. by HummixX (@HummixX)
on CodePen.
Get Creative with Email Designs
See the Pen
Email Design Conference CSS Divider by Eric Klemen (@emkmail2)
on CodePen.
Ema’s Boundary Breaker
See the Pen
Row Separator by Ema (@emared)
on CodePen.
Gregor’s Classic Horizontal
See the Pen
horizontal divider css by Gregor (@fenixmedia)
on CodePen.
Diagonal Drama by JD Tinney
See the Pen
Diagonal Divider by JD Tinney (@Yappenzo)
on CodePen.
Daniel Ilse’s Pseudo Genius
See the Pen
CSS Divider using :pseudo elements by Daniel Ilse (@dantilse)
on CodePen.
Pacman’s Power Play
See the Pen
Pacman divider by C4rin3 (@c4rin3)
on CodePen.
Starry Night Divider
See the Pen
Pure CSS Horizontal Divider With Star Icon by Isabel C (@isabelc)
on CodePen.
Getting Ziggy with Brandon
See the Pen
crooked section dividers by Brandon Kennedy (@brandonkennedy)
on CodePen.
Elegance in Lines
See the Pen
Fancy Horizontal Rules by szpakoli (@szpakoli)
on CodePen.
Ride the CSS Wave
See the Pen
Waves Content Divider Using CSS by CMDW (@cmdw)
on CodePen.
Milan’s Playground
See the Pen
Divider Experiments #1 by Milan (@Oddgson)
on CodePen.
Pixel Perfection
See the Pen
Pixel Dividers by C4rin3 (@c4rin3)
on CodePen.
Keep it Sleek with Pinline Headers
See the Pen
Header Pinlines by Robert Douglas (@redouglas)
on CodePen.
Skewed, Yet Perfect
See the Pen
Responsive Skewed Page Dividers (using CSS gradients) by chilli con code (@chilliconcode)
on CodePen.
Go Zigzag with Ninjaweb
See the Pen
Zigzag Divider by ninja (@Ninjaweb)
on CodePen.
Colors that Pop
See the Pen
Frame Patterns by Bram de Haan (@atelierbram)
on CodePen.
Divide and Rule with Christian
See the Pen
Resonsive Divider with Content by Christian Gorke (@WolfInStep)
on CodePen.
Scalloping Like a Pro
See the Pen
Responsive Scalloped Page Dividers (using CSS gradients) by chilli con code (@chilliconcode)
on CodePen.
Step Outside the Box
See the Pen
Non-rectangular Sections | CSS clip-path by Cagri Kizilkan (@cgrkzlkn)
on CodePen.
Daniel Padin’s Sleek Collection
See the Pen
Section Separators by Daniel Padin (@webd3v)
on CodePen.
One Element Wonder
See the Pen
Fancy title divider with one element by Temani Afif (@t_afif)
on CodePen.
Dashing in Rainbow
See the Pen
Rainbowy Dashed Divider by Simon Goellner (@simeydotme)
on CodePen.
Gone Fishing with Norbert
See the Pen
Fish logo in line by Norbert Papp (@partisan1991)
on CodePen.
The Forest Feels by Olly Hodgson
See the Pen
SVG forested separator bar by Olly Hodgson (@thinkdrastic)
on CodePen.
Medium Vibes with a Touch of Kindness
See the Pen
Accessible Medium Style Dividers by Zoë Bijl (@Moiety)
on CodePen.
Freecodecamp’s Finest
See the Pen
FreeCodeCamp style dividing line by Jeffrey Thomas (@2percentMilkFromCows)
on CodePen.
Triangulating with Mark
See the Pen
Triangle section Divider by Mark Sottek (@mark_sottek)
on CodePen.
Less is More with José Luis Antúnez
See the Pen
Animated <hr> by José Luis Antúnez (@jlantunez)
on CodePen.
Palette Play with Greg Douglas
See the Pen
Different Divider Examples by Greg Douglas (@xgad)
on CodePen.
The Diagonal Drama
See the Pen
Diagonal Split Screen by Chris Smith (@chris22smith)
on CodePen.
Caree’s Subtle Shadows
See the Pen
Box-Shadows as Page Dividers by Caree Youngman (@careecodes)
on CodePen.
CSS Divider Types by Implementation Method
Different projects need different separator styles.
The implementation method you choose affects performance, browser support, and visual flexibility.
Border-Based CSS Dividers
The simplest approach uses CSS border properties on empty div elements or pseudo-elements.
Border dividers load fast and work in every browser including Internet Explorer.
Common border styles include:
- Solid line dividers for clean, minimal separation
- Dashed and dotted dividers for subtle visual interest
- Double border dividers for a more decorative look
- Inset and outset borders for 3D effects
Pseudo-Element CSS Dividers
The ::before and ::after pseudo-elements create dividers without extra HTML markup.
This keeps your code clean while giving full styling control.
You can combine both pseudo-elements for complex decorative separators with centered text or icons.
Background-Based CSS Dividers
Gradient backgrounds produce smooth color transitions that border properties cannot achieve.
Use a CSS Gradient Generator to quickly create linear, radial, or repeating gradient dividers.
These work well for modern designs where you need color fades or multi-color separation lines.
Shape CSS Dividers
Shape dividers add visual interest beyond straight horizontal lines.
Implementation options include:
- Triangle dividers using CSS border tricks
- Curved section separators with border-radius
- Wave dividers using CSS clip-path
- SVG based dividers for complex custom shapes
Shape separators pair nicely with CSS animated backgrounds for dynamic section transitions.
How to Create a Simple CSS Divider
Start with the most basic horizontal divider using a single div element.
Set a fixed height, background color, and width percentage.
“ .divider { height: 1px; background-color: #e0e0e0; width: 100%; margin: 2rem auto; } `
For centered dividers with limited width, add max-width and margin auto.
` .divider-centered { height: 2px; background-color: #333; width: 80%; max-width: 600px; margin: 3rem auto; } `
The margin property controls vertical spacing between the divider and surrounding content.
Adjust height pixels for thicker or thinner lines based on your design needs.
How to Style a CSS Divider with Gradients
Gradient dividers fade from visible to transparent, creating a softer visual break.
This technique uses linear-gradient as a background-image value.
` .gradient-divider { height: 1px; background: linear-gradient( to right, transparent, #999, transparent ); margin: 2rem 0; } `
The gradient flows from transparent edges to a solid center color.
For multi-color dividers, add more color stops:
` .rainbow-divider { height: 3px; background: linear-gradient( to right, #ff6b6b, #feca57, #48dbfb, #ff9ff3 ); border-radius: 2px; } `
You can also create repeating gradient patterns for dashed effects without using border-style.
How to Create Animated CSS Dividers
Animation brings dividers to life with movement and color transitions.
Use CSS keyframes to define the animation sequence.
` .animated-divider { height: 2px; background: linear-gradient(90deg, #667eea, #764ba2, #667eea); background-size: 200% 100%; animation: shimmer 2s ease infinite; }
@keyframes shimmer { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } } `
This creates a shimmering effect as colors shift across the divider.
For growing dividers that expand on scroll, combine with CSS animations on scroll.
` .grow-divider { height: 2px; background: #333; width: 0; transition: width 0.6s ease; }
.grow-divider.visible { width: 100%; } `
These micro-interactions add polish without heavy JavaScript dependencies.
Keep animations subtle; overly flashy dividers distract from your actual content.
How to Create Responsive CSS Dividers
Responsive dividers adapt to different screen sizes using media queries and relative units.
Replace fixed pixel widths with percentages or viewport units.
` .responsive-divider { height: 1px; background: #ccc; width: 90%; max-width: 1200px; margin: 2rem auto; }
@media (max-width: 768px) { .responsive-divider { width: 95%; margin: 1.5rem auto; } } `
This mobile-first design approach keeps dividers proportional across devices.
For wave or shape dividers, use SVG with preserveAspectRatio to maintain curves on smaller screens.
CSS Divider Width and Height Properties
Width controls horizontal span; height determines line thickness.
Common width values:
- 100% spans the full container
- 80% or 60% creates centered accent lines
- max-width limits spread on large monitors
Height typically ranges from 1px for subtle lines to 4px for bold separators.
Thicker dividers (6px+) work as decorative elements but can feel heavy in minimalist design layouts.
CSS Divider Color Customization
Set divider color with background-color for solid fills or background with gradients.
` / Solid color / .divider { background-color: #e5e5e5; }
/ Hex with transparency / .divider { background-color: #00000020; }
/ RGB with alpha / .divider { background: rgba(0, 0, 0, 0.1); } `
Semi-transparent dividers blend with any background, useful for dark mode compatibility.
Match divider colors to your brand palette or use neutral grays for universal appeal.
Check color contrast ratios if dividers serve as meaningful content separators for web accessibility.
CSS Divider Spacing and Margin Settings
Vertical white space around dividers affects visual rhythm.
Standard spacing uses margin-top and margin-bottom:
` .divider { margin: 2rem 0; / Vertical only / margin: 3rem auto; / Vertical + centered / } `
More margin creates breathing room between sections.
Less margin keeps content tight and connected.
Match spacing to your overall grid system for consistent vertical rhythm.
CSS Divider Positioning Techniques
Most dividers use default static positioning within document flow.
Absolute positioning places dividers relative to a parent container:
` .section { position: relative; }
.section::after { content: ”; position: absolute; bottom: 0; left: 10%; width: 80%; height: 1px; background: #ddd; } `
This pseudo-element technique adds dividers without extra HTML markup.
Fixed position dividers stay visible during scroll, rarely useful but possible for specific user interface patterns.
CSS Divider Accessibility Considerations
Decorative dividers need no special markup; screen readers skip visual-only elements.
Add role=”separator” and ARIA labels when dividers indicate meaningful content boundaries:
` <div class="divider" role="separator" aria-orientation="horizontal" ></div> `
Avoid using dividers as the only indicator of section changes.
Pair visual separation with proper heading hierarchy for accessible typography structure.
CSS Divider Browser Compatibility
Basic border and background dividers work in all browsers including legacy versions.
Modern features and support:
- Linear gradients: Chrome 26+, Firefox 16+, Safari 7+, Edge 12+
- Clip-path shapes: Chrome 55+, Firefox 54+, Safari 10+, Edge 79+
- CSS animations: Universal support in modern browsers
Test wave and shape dividers in Safari; clip-path rendering can differ slightly.
Use cross-browser compatibility testing tools like Can I Use and BrowserStack for verification.
CSS Divider vs HTML hr Element
The native
element creates semantic breaks between content sections.
CSS dividers using div or pseudo-elements are purely visual.
When to use hr:
- Thematic breaks in articles
- Scene changes in stories
- Topic shifts within a page
When to use CSS dividers:
- Decorative separation only
- Complex shapes or animations
- When you need full styling control
You can style the hr element with CSS, but browser defaults vary and require resets.
CSS Divider Use Cases
Section separators in landing pages divide above the fold content from lower sections.
Content breaks in blog posts signal topic transitions without subheadings.
Common applications:
- Navigation dividers between menu groups
- CSS footer separators above copyright text
- CSS cards internal section breaks
- Pricing table feature separators
- CSS timeline connectors between events
Match divider style to page context; subtle lines for professional sites, decorative shapes for creative portfolios.
CSS Divider Code Examples
Simple Horizontal Line
` .line-divider { height: 1px; background: #e0e0e0; width: 100%; margin: 2rem 0; } `
Centered Accent Divider
` .accent-divider { height: 3px; background: #667eea; width: 60px; margin: 2rem auto; border-radius: 2px; } `
Fade-Out Gradient Divider
` .fade-divider { height: 1px; background: linear-gradient( to right, transparent, #999, transparent ); } `
Dotted Separator
` .dotted-divider { border: none; border-top: 2px dotted #ccc; margin: 2rem 0; } `
Wave Shape Divider
` .wave-divider { height: 50px; background: url("data:image/svg+xml,..."); background-size: cover; } `
Generate wave SVGs using an SVG waves generator for custom curves.
Double Line Divider
` .double-divider { height: 6px; background: linear-gradient( to bottom, #333 0%, #333 33%, transparent 33%, transparent 66%, #333 66%, #333 100% ); } `
Icon Center Divider
` .icon-divider { display: flex; align-items: center; gap: 1rem; }
.icon-divider::before, .icon-divider::after { content: ”; flex: 1; height: 1px; background: #ddd; } `
Add Bootstrap icons or custom SVG in HTML between the lines for decorative center elements.
Animated Gradient Divider
` .shimmer-divider { height: 2px; background: linear-gradient( deg, #f093fb, #f5576c, #f093fb ); background-size: 200% 100%; animation: shimmer 3s linear infinite; }
@keyframes shimmer { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } } `
These CSS animation effects add polish to CSS header sections or call-to-action areas.
Use a CSS Animation Generator to quickly prototype timing and easing values.
FAQ on CSS Dividers Examples
How do I create a simple horizontal divider in CSS?
Create a div element with a set height (1-2px), background-color, and width percentage. Add margin for vertical spacing. This border-based divider works in all browsers and requires minimal code.
What is the difference between CSS dividers and the HTML hr element?
The hr element creates semantic thematic breaks in content. CSS dividers using div or pseudo-elements are purely decorative. Use hr for meaningful content separation; use CSS dividers for visual styling flexibility.
How do I make a gradient divider that fades at the edges?
Apply linear-gradient as a background property with transparent at both ends and your color in the center. Set height to 1-2px. This creates a smooth fade-out gradient divider effect.
Can I create wave or curved dividers with CSS only?
Yes. Use clip-path with polygon or path values for wave shapes. Alternatively, use inline SVG backgrounds for complex curves. Both methods create CSS scroll effects friendly shape separators without images.
How do I add animation to a CSS divider?
Define a @keyframes animation that shifts background-position for gradient dividers. Apply the animation property with duration and iteration count. Shimmer and pulse effects work best for subtle CSS hover effects on dividers.
What width and height values work best for CSS dividers?
Height between 1-3px suits most designs. Width at 100% spans full container; 60-80% creates centered accent lines. Use max-width to prevent overly long dividers on wide screens.
How do I center a CSS divider horizontally?
Set a specific width (like 80% or 200px) and apply margin: auto on the left and right. Display block ensures the element respects margin auto centering rules.
Are CSS dividers accessible for screen readers?
Decorative dividers need no special markup. For meaningful separators, add role=”separator” and aria-orientation=”horizontal”. Pair visual dividers with proper heading structure for complete accessibility compliance.
How do I create a divider with text or an icon in the center?
Use flexbox with ::before and ::after pseudo-elements as lines. Place text or optimized SVG icons between them. Gap property controls spacing between lines and the center content.
Do CSS dividers work in all browsers?
Basic border and background dividers work everywhere. Clip-path shapes require modern browsers (Chrome 55+, Firefox 54+, Safari 10+). Test wave dividers in Safari where rendering may differ slightly.
Conclusion
These CSS dividers examples give you everything needed to create clean section separators for any project.
Start simple with border-bottom dividers. Move to gradients when you need softer transitions.
Shape dividers and wave separators work best for creative layouts where straight lines feel too rigid.
Keep accessibility in mind. Use proper ARIA roles for meaningful content breaks.
Test your animated dividers on mobile devices where performance matters most.
The best divider is one users barely notice. It guides attention without stealing it.
Grab the code snippets above, drop them into your frontend workflow, and adjust colors to match your design system.
Small details like custom separators signal quality. Your visitors will feel the difference.


