h1 Using emoji as list bullet points

h2 1) Using the <code>@counter-style</code> CSS rule
p This will only currently work on Firefox 🦊 (see #[a(href='https://caniuse.com/#feat=css-at-counter-style') caniuse stats])
h3 Single emoji
ul.single-counter-rule
  li John
  li Paul
  li George
  li Ringo
  
h3 Set of repeating emoji
ul.repeating-counter-rule
  li Ross
  li Rachel
  li Phoebe
  li Joey
  li Chandler
  li Monica
  
h2 2) Using <code>::before</code> and <code>nth-child</code> selectors
h3 Single emoji
ul.single-before
  li John
  li Paul
  li George
  li Ringo

h3 Set of repeating emoji
ul.repeating-before
  li Ross
  li Rachel
  li Phoebe
  li Joey
  li Chandler
  li Monica
  
h2 Control) No styling
ul
  li Ross
  li Rachel
  li Phoebe
  li Joey
  li Chandler
  li Monica
View Compiled
// Counter style at-rule
@counter-style single-emoji {
  system: cyclic;
  symbols: "\1F41B"; // unicode code point
  suffix: " ";
}

.single-counter-rule {
  list-style-type: single-emoji;
}

@counter-style repeating-emoji {
  system: cyclic;
  symbols: "\1F431" "\1F436" "\1F984"; // unicode code point
  suffix: " ";
}

.repeating-counter-rule {
  list-style-type: repeating-emoji;
}

// ::before psuedo-element
.single-before {
  list-style: none;
  padding: 0;
  margin: 0 0 3rem;

  li {
    padding-left: 1rem;
    text-indent: -0.7rem;
  }

  li::before {
    content: "🐻 ";
  }
}

.repeating-before {
  list-style: none;
  padding: 0;
  margin: 0 0 3rem;

  li {
    padding-left: 1rem;
    text-indent: -0.7rem;
  }

  li:nth-child(3n + 1)::before {
    content: "🐱 ";
  }

  li:nth-child(3n + 2)::before {
    content: "🐶 ";
  }

  li:nth-child(3n)::before {
    content: "🦄 ";
  }
}

// General styles for CodePen
ul {
  margin-bottom: 3rem;
}

li {
  font-size: 1.6rem;
}

body {
  font-family: sans-serif;
  margin-left: 3rem;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.