Bear Blog tag styles
The default Bear Blog theme keeps tags plain, just a hashtag and a link, both on your posts and in your archive. That leaves a lot of room to give them some more character.
This page collects small CSS tweaks and variations for tags. Each one works out of the box, but they're just as much meant as a starting point. Mix and match, tweak the values, or use them to learn more about theme styling.
Last updated 6 minutes ago.
Simple

.tags a {
font-size: 0.85em;
margin-inline-end: 0.6em;
}
Pill tags

.tags a {
display: inline-block;
padding: 0.2em 0.8em;
margin-inline-end: 0.4em;
margin-block-end: 0.4em;
border-radius: 999px;
background: color-mix(in srgb, var(--text-color), transparent 92%);
text-decoration: none;
}
Uppercase tags

.tags a {
font-size: 0.8em;
letter-spacing: 0.05em;
text-transform: uppercase;
margin-inline-end: 0.7em;
text-decoration: none;
}
Bordered tags

.tags a {
display: inline-block;
padding: 0.2em 0.6em;
margin-inline-end: 0.4em;
margin-block-end: 0.4em;
border: 1px solid color-mix(in srgb, var(--text-color), transparent 70%);
border-radius: 4px;
font-size: 0.8em;
text-decoration: none;
}
@media (hover: hover) {
.tags a:hover {
border-color: var(--link-color);
color: var(--link-color);
}
}
Underline tags

.tags a {
margin-inline-end: 0.8em;
text-decoration: underline;
text-decoration-thickness: 2px;
text-underline-offset: 3px;
text-decoration-color: var(--link-color);
}
@media (hover: hover) {
.tags a:hover {
text-decoration-thickness: 3px;
}
}
Filled tags

.tags a {
display: inline-block;
padding: 0.2em 0.7em;
margin-inline-end: 0.4em;
margin-block-end: 0.4em;
background: var(--link-color);
color: var(--background-color);
border-radius: 4px;
font-size: 0.85em;
text-decoration: none;
}
@media (hover: hover) {
.tags a:hover {
opacity: 0.85;
}
}
Dotted list tags

.tags a {
text-decoration: none;
}
.tags a:not(:last-child)::after {
content: "·";
margin-inline: 0.5em 0.1em;
color: color-mix(in srgb, var(--text-color), transparent 50%);
vertical-align: middle;
}
Wobbly tags

.tags a {
display: inline-block;
padding: 0.15em 0.7em;
margin-inline: 0.3em 0.5em;
margin-block-end: 0.6em;
background: color-mix(in srgb, var(--text-color), transparent 92%);
border-radius: 4px;
font-size: 0.85em;
text-decoration: none;
transform: rotate(-2deg);
transition: transform 0.15s ease;
}
.tags a:nth-child(even) {
transform: rotate(2deg);
}
@media (hover: hover) {
.tags a:hover {
transform: rotate(0deg);
}
}
@media (prefers-reduced-motion: reduce) {
.tags a {
transition: none;
}
}
Tag icon
![]()
.tags a {
margin-inline-end: 0.6em;
text-decoration: none;
}
.tags a::before {
content: "🏷️ ";
}
Emoji per tag

Match each tag's URL to assign it its own emoji, swap the tag names and icons for your own.
.tags a {
margin-inline-end: 0.6em;
text-decoration: none;
}
.tags a[href*="q=writing"]::before {
content: "✍️ ";
}
.tags a[href*="q=bear"]::before {
content: "🐻 ";
}
.tags a[href*="q=blogging"]::before {
content: "🧑💻 ";
}
Want more? Check out the full Bear Blog library.