Custom unordered list markers, done right
Posted 8th October 2020 in CSS and Development
In my post on styling list markers I mentioned that we now have proper control over list markers.
With ::marker
we can control the colour and size of both ordered and unordered lists. We also have all the flexibility we’d ever need for ordered lists, which are typographical: colour, size, typeface, weight, etc. Unordered lists, on the other hand, are a bit more limited; other than colour and size, you’ve only got three shapes in list-style-type
:
- A filled-in circle (
disc
) - An outline of a circle (
circle
) - A square (
square
)
Luckily, we can get really custom by using a unicode value instead of disc
, circle
or square
. So, for example, if you wanted your bullets to be black, right-pointing triangles, you’d use:
ul {
list-style-type: "\25B6";
}
Unfortunately, custom list markers aren’t supported in Safari, so for now it’s a nice progressive enhancement. We need a classic double declaration for Safari as, without the disc
style before the Unicode style, Safari displays no markers at all:
ul {
list-style-type: disc;
list-style-type: "\25B6";
}
If you need those black, right-pointing arrows across all browsers, you can still do it the old fashioned way with the ::before
pseudo element.