Styling the hr element with CSS

The default <hr> rarely matches a site’s design. That is fine: the element provides the meaning—a thematic break—while CSS controls how that break looks.

Here are three small options.

A fading gradient

hr {
  border: 0;
  height: 1px;
  background: #333;
  background-image: linear-gradient(to right, #ccc, #333, #ccc);
}

A two-colour dashed line

hr {
  border: 0;
  border-bottom: 1px dashed #ccc;
  background: #999;
}

A divider with a glyph

hr {
  overflow: visible;
  padding: 0;
  border: none;
  border-top: medium double #000;
  color: #000;
  text-align: center;
}

hr::after {
  content: "§";
  display: inline-block;
  position: relative;
  top: -0.8em;
  padding: 0 0.3em;
  background: white;
  font-size: 1.6em;
}

The last version relies on its background matching the page, so remember to update that colour in dark mode. For most sites I would use the first or second option; a section sign is rather specific, but it can suit editorial layouts.