Published at
Updated at
Reading time

I just found Marco Denig's article "CSS tricks". There are some good tricks in it. The trick that stood out to me was the CSS-only typewriter effect.

It's a pretty sweet effect, and I want to document it for my future self. I mean, look at it. 👇 The typing below is done without JavaScript!

Marco uses a combination of white-space: nowrap / overflow: hidden to hide overflowing characters, defines a monospace font to make the container's width predictable, and then animates the width of the surrounding container. The blinking cursor is realized by animating the right border.

Overall that's pretty smart!

/* adjusted CSS of the above custom element */
type-writer .text {
  width: 33ch;
  animation: typing 2s steps(22), 
    blink .5s step-end infinite alternate;
  white-space: nowrap;
  overflow: hidden;
  border-right: 3px solid;
  font-family: monospace;
  font-size: 1.5em;
  margin: 1em auto;

@keyframes typing {
  from {
    width: 0

@keyframes blink {
  50% {
    border-color: transparent
Was this snippet helpful?
Yes? Cool! You might want to check out Web Weekly for more snippets. The last edition went out 10 days ago.
Stefan standing in the park in front of a green background

About Stefan Judis

Frontend nerd with over ten years of experience, freelance dev, "Today I Learned" blogger, conference speaker, and Open Source maintainer.

Related Topics

Related Articles