🖼️ CSS list-style-image
: Replacing Bullets with Custom Icons
Tired of plain old bullets in your lists? Want to give your site a touch of personality or branding? The CSS list-style-image
property allows you to replace default bullets with custom images, giving unordered lists a unique and visual flair.
🧾 What is list-style-image
?
The list-style-image
property sets an image as the marker (bullet) for list items (<ul>
or <ol>
). It gives designers the freedom to use icons, branding elements, or illustrations in place of standard bullets like discs or squares.
🧬 Syntax
selector {
list-style-image: url("image-path") | none | inherit;
}
Values:
Value | Description |
---|---|
url(...) | Path to the image file used as the list item bullet |
none | Removes bullet or image altogether |
inherit | Inherits from parent element |
🎯 Example Usage
ul.custom-bullets {
list-style-image: url("images/star-icon.png");
}
<ul class="custom-bullets">
<li>Custom icon list item 1</li>
<li>Custom icon list item 2</li>
</ul>
This will render each <li>
with a star image instead of the default bullet.
🧠 How It Works
- The image appears in place of the default list marker.
- Images are not resized — use small icons (e.g., 16x16px or 20x20px) for best results.
- If the image is missing or cannot load, no bullet will be shown unless you provide a fallback via
list-style-type
.
🛠️ Best Practices
- Optimize icons to small sizes (SVG, PNG, or WebP) to prevent layout issues.
- Combine with
list-style-type
to add a fallback marker:
ul.fallback {
list-style-image: url("icon.svg");
list-style-type: circle; /* fallback if image fails */
}
- Use
list-style-position: inside;
if you want the image to align with the text. - Prefer SVGs for scalability and crisp rendering on all screen resolutions.
❗ Common Pitfalls
- Large images can misalign your list or overflow.
list-style-image
has limited styling flexibility — use the::marker
pseudo-element for more control in modern browsers.- The image does not support padding or margin; layout adjustments must be done with list item styling (
padding-left
, etc.).
✅ Browser Support
list-style-image
is widely supported across all major browsers:
- ✅ Chrome
- ✅ Firefox
- ✅ Safari
- ✅ Edge
- ✅ Internet Explorer 6+
Note: For advanced styling like rotating or coloring bullets, use the newer
::marker
pseudo-element (modern browsers only).
🔚 Conclusion
The list-style-image
property is a simple yet powerful way to replace plain bullets with icons, logos, or illustrations. It’s perfect for adding brand personality, making UI lists more engaging, or emphasizing specific list items.