Анимация текста средствами CSS

Качающийся текст средствами CSS

Код
<p>CALCSBOX.COM</p>
body,
html {
	height: 100%;
}

body {
	position: relative;
	display: grid;
	overflow: hidden;
	grid-template: "body";
	place-content: center;
	place-items: center;
	margin: 0;
	background-color: #ffdd40;
}

body > *,
body::before {
	grid-area: body;
}

body::before {
	content: '';
	width: 150vmax;
	height: 150vmax;
	opacity: 0.4;
	background: repeating-conic-gradient(from 0deg, white 0deg 15deg, transparent 15deg 30deg);
	-webkit-mask-image: radial-gradient(hsla(0 0% 0% / 1), hsla(0 0% 0% / 0) 50%);
	animation: rotate 20s linear infinite;
}

body::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100vw;
	height: calc(50vh + 1em);
	background-color: inherit;
}

p {
	--duration: 1200ms;
	--text-shadow-color: hsl(0 0% 100%);

	position: relative;
	display: inline-block;
	z-index: 1;
	font-family: "Londrina Solid", sans-serif;
	font-size: min(10vw, 10rem);
	text-transform: uppercase;
	text-shadow:
		0.006em -0.006em 0 var(--text-shadow-color),
		0.012em -0.012em 0 var(--text-shadow-color),
		0.018em -0.018em 0 var(--text-shadow-color),
		0.024em -0.024em 0 var(--text-shadow-color),
		0.030em -0.030em 0 var(--text-shadow-color),
		0.006em  0       0 currentcolor,
		0.012em -0.006em 0 currentcolor,
		0.018em -0.012em 0 currentcolor,
		0.024em -0.018em 0 currentcolor,
		0.030em -0.024em 0 currentcolor,
		0.036em -0.030em 0 currentcolor,
		0.036em -0.036em 0 currentcolor;
	perspective: 3em;
	transform-origin: bottom center;
	transform-style: preserve-3d;
	animation: movement var(--duration) cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

p::after {
	--transform: scaleY(-1) translateY(-30%) rotateX(-35deg) scaleY(1.2) translateY(calc(-30% + 2px));
	--transform-alt: scaleY(-1) translateY(-30%) rotateX(-55deg) scaleY(1.4) translateY(calc(-30% + 2px));

	content: 'CALCSBOX.COM' / '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	text-shadow: initial;
	-webkit-mask-image:
		linear-gradient(
			to bottom,
			hsla(0 0% 0% / 0) 0%,
			hsla(0 0% 0% / 0.006) 13.7%,
			hsla(0 0% 0% / 0.022) 25.4%,
			hsla(0 0% 0% / 0.049) 35.3%,
			hsla(0 0% 0% / 0.086) 43.6%,
			hsla(0 0% 0% / 0.133) 50.6%,
			hsla(0 0% 0% / 0.188) 56.5%,
			hsla(0 0% 0% / 0.251) 61.6%,
			hsla(0 0% 0% / 0.323) 66%,
			hsla(0 0% 0% / 0.402) 70.1%,
			hsla(0 0% 0% / 0.487) 74.1%,
			hsla(0 0% 0% / 0.579) 78.1%,
			hsla(0 0% 0% / 0.677) 82.5%,
			hsla(0 0% 0% / 0.780) 87.4%,
			hsla(0 0% 0% / 0.888) 93.2%,
			hsla(0 0% 0% / 1) 100%
		);
	opacity: 0.8;
	transform: var(--transform);
	animation: shadow var(--duration) cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

@keyframes movement {
	20% { transform: scaleY(1.4) skew(10deg)  }
	50% { transform: scaleY(1)   skew(0)      }
	70% { transform: scaleY(1.4) skew(-10deg) }
}

@keyframes shadow {
	20% { transform: var(--transform-alt) }
	50% { transform: var(--transform)     }
	70% { transform: var(--transform-alt) }
}

@keyframes rotate {
	to { transform: rotate(1turn) }
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
	}
}
Результат

100 лет

Код
<main>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  <div>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
  </div>
</main>
@import url("https://fonts.googleapis.com/css?family=Shrikhand&display=swap");
:root {
  --color1: #E71D36;
  --color2: #FF9F1C;
  --dur: 6s;
  --ease: cubic-bezier(0.645, 0.045, 0.355, 1);
  --size: 75px;
}
@media (min-width: 700px) {
  :root {
    --size: 150px;
  }
}

* {
  box-sizing: border-box;
}

body {
  display: grid;
  place-content: center;
  overflow: hidden;
  height: 100vh;
  -webkit-animation: color-swap var(--dur) var(--ease) alternate infinite;
          animation: color-swap var(--dur) var(--ease) alternate infinite;
}
@-webkit-keyframes color-swap {
  0%, 20% {
    color: var(--color1);
    background-color: var(--color2);
  }
  80%, 100% {
    color: var(--color2);
    background-color: var(--color1);
  }
}
@keyframes color-swap {
  0%, 20% {
    color: var(--color1);
    background-color: var(--color2);
  }
  80%, 100% {
    color: var(--color2);
    background-color: var(--color1);
  }
}

main {
  display: flex;
  align-items: center;
  font-size: var(--size);
  font-family: "Shrikhand", sans-serif;
  -webkit-animation: zoom var(--dur) var(--ease) infinite;
          animation: zoom var(--dur) var(--ease) infinite;
}
main div {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
main div span {
  -webkit-animation-name: stretch, date-opacity;
          animation-name: stretch, date-opacity;
}

span {
  position: relative;
  display: flex;
  width: var(--size);
  height: var(--size);
  text-align: center;
  -webkit-animation: var(--dur) var(--ease) infinite;
          animation: var(--dur) var(--ease) infinite;
  -webkit-animation-name: stretch, numbers-opacity;
          animation-name: stretch, numbers-opacity;
}
span:before {
  content: "0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ";
  -webkit-animation: var(--dur) var(--ease) alternate infinite;
          animation: var(--dur) var(--ease) alternate infinite;
}
span:nth-child(1):before {
  -webkit-animation-name: increment-1;
          animation-name: increment-1;
}
span:nth-child(2):before {
  -webkit-animation-name: increment-2;
          animation-name: increment-2;
}
span:nth-child(3):before {
  -webkit-animation-name: increment-3;
          animation-name: increment-3;
}
span:nth-child(4):before {
  -webkit-animation-name: increment-4;
          animation-name: increment-4;
}

@-webkit-keyframes increment-1 {
  0%, 20% {
    transform: translateY(calc(var(--size) * -11));
  }
  80%, 100% {
    transform: translateY(calc(var(--size) * -22));
  }
}

@keyframes increment-1 {
  0%, 20% {
    transform: translateY(calc(var(--size) * -11));
  }
  80%, 100% {
    transform: translateY(calc(var(--size) * -22));
  }
}
@-webkit-keyframes increment-2 {
  0%, 20% {
    transform: translateY(calc(var(--size) * -9));
  }
  80%, 100% {
    transform: translateY(calc(var(--size) * -40));
  }
}
@keyframes increment-2 {
  0%, 20% {
    transform: translateY(calc(var(--size) * -9));
  }
  80%, 100% {
    transform: translateY(calc(var(--size) * -40));
  }
}
@-webkit-keyframes increment-3 {
  0%, 20% {
    transform: translateY(calc(var(--size) * -12));
  }
  80%, 100% {
    transform: translateY(calc(var(--size) * -32));
  }
}
@keyframes increment-3 {
  0%, 20% {
    transform: translateY(calc(var(--size) * -12));
  }
  80%, 100% {
    transform: translateY(calc(var(--size) * -32));
  }
}
@-webkit-keyframes increment-4 {
  0%, 20% {
    transform: translateY(calc(var(--size) * -10));
  }
  80%, 100% {
    transform: translateY(calc(var(--size) * -50));
  }
}
@keyframes increment-4 {
  0%, 20% {
    transform: translateY(calc(var(--size) * -10));
  }
  80%, 100% {
    transform: translateY(calc(var(--size) * -50));
  }
}
@-webkit-keyframes numbers-opacity {
  0%, 10% {
    opacity: 0.125;
  }
  25%, 75% {
    opacity: 1;
  }
  90%, 100% {
    opacity: 0.125;
  }
}
@keyframes numbers-opacity {
  0%, 10% {
    opacity: 0.125;
  }
  25%, 75% {
    opacity: 1;
  }
  90%, 100% {
    opacity: 0.125;
  }
}
@-webkit-keyframes date-opacity {
  0%, 15% {
    opacity: 1;
  }
  25%, 75% {
    opacity: 0;
  }
  85%, 100% {
    opacity: 1;
  }
}
@keyframes date-opacity {
  0%, 15% {
    opacity: 1;
  }
  25%, 75% {
    opacity: 0;
  }
  85%, 100% {
    opacity: 1;
  }
}
@-webkit-keyframes stretch {
  0%, 20% {
    transform: scaleY(1.001);
  }
  50% {
    transform: scaleY(2);
  }
  80%, 100% {
    transform: scaleY(1.001);
  }
}
@keyframes stretch {
  0%, 20% {
    transform: scaleY(1.001);
  }
  50% {
    transform: scaleY(2);
  }
  80%, 100% {
    transform: scaleY(1.001);
  }
}
@-webkit-keyframes zoom {
  0%, 15% {
    transform: scale(1.001);
  }
  25%, 75% {
    transform: scale(1.2);
  }
  85%, 100% {
    transform: scale(1.001);
  }
}
@keyframes zoom {
  0%, 15% {
    transform: scale(1.001);
  }
  25%, 75% {
    transform: scale(1.2);
  }
  85%, 100% {
    transform: scale(1.001);
  }
}
Результат

Пульсирующий текст

Код
<div class="area">⚠ achtung ⚠</div>
@import url(https://fonts.googleapis.com/css?family=Open+Sans);

body {
 background: #111;
 font-family: "Open Sans",  Impact;
}

.area {
  text-align: center;
  font-size: 6.5em;
  color: #fff;
  letter-spacing: -7px;
  font-weight: 700;
  text-transform: uppercase;
  animation: blur .75s ease-out infinite;
  text-shadow: 0px 0px 5px #fff, 0px 0px 7px #fff;
}

@keyframes blur {
  from {
    text-shadow:0px 0px 10px #fff,
      0px 0px 10px #fff,
      0px 0px 25px #fff,
      0px 0px 25px #fff,
      0px 0px 25px #fff,
      0px 0px 25px #fff,
      0px 0px 25px #fff,
      0px 0px 25px #fff,
      0px 0px 50px #fff,
      0px 0px 50px #fff,
      0px 0px 50px #7B96B8,
      0px 0px 150px #7B96B8,
      0px 10px 100px #7B96B8,
      0px 10px 100px #7B96B8,
      0px 10px 100px #7B96B8,
      0px 10px 100px #7B96B8,
      0px -10px 100px #7B96B8,
      0px -10px 100px #7B96B8;
  }
}




Результат

Проявление текста

Код
<h1 class="reveal-text">
	calcsbox.com
</h1>
:root {
	--delay: 0;
	--duration: 800ms;
	--iterations: 1;
}
/* •·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•·•· */

body{
  background:black;
}

.reveal-text,
.reveal-text::after {
	-webkit-animation-delay: var(--animation-delay, 2s);
	        animation-delay: var(--animation-delay, 2s);
	-webkit-animation-iteration-count: var(--iterations, 1);
	        animation-iteration-count: var(--iterations, 1);
	-webkit-animation-duration: var(--duration, 800ms);
	        animation-duration: var(--duration, 800ms);
	-webkit-animation-fill-mode: both;
	        animation-fill-mode: both;
	-webkit-animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
	        animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
}

.reveal-text {
	--animation-delay: var(--delay, 0);
	--animation-duration: var(--duration, 800ms);
	--animation-iterations: var(--iterations, 1);
	position: relative;
	font-size: 10vw;
	-webkit-animation-name: clip-text;
	        animation-name: clip-text;
	color: #FFF;
	white-space: nowrap;
	cursor: default

}

.reveal-text::after {
		content: "";
		position: absolute;
		z-index: 999;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-color: #f2f98b;
		transform: scaleX(0);
		transform-origin: 0 50%;
		pointer-events: none;
		-webkit-animation-name: text-revealer;
		        animation-name: text-revealer;
	}


@-webkit-keyframes clip-text {
	from {
		-webkit-clip-path: inset(0 100% 0 0);
		        clip-path: inset(0 100% 0 0);
	}
	to {
		-webkit-clip-path: inset(0 0 0 0);
		        clip-path: inset(0 0 0 0);
	}
}


@keyframes clip-text {
	from {
		-webkit-clip-path: inset(0 100% 0 0);
		        clip-path: inset(0 100% 0 0);
	}
	to {
		-webkit-clip-path: inset(0 0 0 0);
		        clip-path: inset(0 0 0 0);
	}
}


@-webkit-keyframes text-revealer {

	0%, 50% {
		transform-origin: 0 50%;
	}

	60%, 100% {
		transform-origin: 100% 50%;
	}


	60% {
		transform: scaleX(1);
	}

	100% {
		transform: scaleX(0);
	}
}


@keyframes text-revealer {

	0%, 50% {
		transform-origin: 0 50%;
	}

	60%, 100% {
		transform-origin: 100% 50%;
	}


	60% {
		transform: scaleX(1);
	}

	100% {
		transform: scaleX(0);
	}
}
Результат

Тени от прожекторов

Код
<div class="css">
  <span>C</span>
  <span>S</span>
  <span>S</span>
</div>
@import url("https://fonts.googleapis.com/css2?family=Gluten:wght@700&display=swap");

html,
body {
  height: 100%;
}

body {
  --color-dark: 210 55% 8%;
  --color-dark-static: 210 55% 25%;
  --color-light: 200 60% 90%;
  --font-size: min(20vw + 1rem, 12rem);

  display: grid;
  place-items: center;
  overflow: hidden;
  background-color: hsl(var(--color-dark));
  font-size: var(--font-size);
  font-family: "Gluten", sans-serif;
  perspective: 40em;
}

.css {
  --rotate: 70deg;
  --transition: 400ms cubic-bezier(0.25, 1, 0.5, 1);

  display: flex;
  position: relative;
  top: 0.25em;
  color: hsl(var(--color-dark-accent));
  user-select: none;
  perspective: 2em;
  transform: scale(0.9);
  transform-style: preserve-3d;
  transition: var(--transition);
  transition-property: perspective, transform;
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'  width='40' height='48' viewport='0 0 100 100' style='fill:black;font-size:24px;'><text y='50%'>*</text></svg>")
      16 0,
    auto;
}

.css::before,
.css::after {
  --s: calc(var(--font-size) * 2);

  content: "";
  position: absolute;
  left: 50%;
  width: var(--s);
  height: calc(var(--s) / 2);
  background-color: hsl(var(--color-light));
  opacity: 0;
  transform: translateZ(-1vmin) translateX(-50%) scale(0);
  transition: var(--transition);
  transition-property: opacity, transform;
  pointer-events: none;
}

.css::before {
  bottom: 50%;
  border-top-left-radius: 360px;
  border-top-right-radius: 360px;
  transform-origin: bottom center;
}

.css::after {
  --s: calc(var(--font-size) * 2);

  top: 50%;
  transform-origin: top center;
  transform: translateX(-50%) rotateX(var(--rotate)) scale(0.001);
  background: linear-gradient(
    to bottom,
    hsl(var(--color-light)) 0%,
    hsla(var(--color-light) / 0.951) 6.3%,
    hsla(var(--color-light) / 0.888) 12.1%,
    hsla(var(--color-light) / 0.815) 17.6%,
    hsla(var(--color-light) / 0.734) 22.8%,
    hsla(var(--color-light) / 0.647) 27.9%,
    hsla(var(--color-light) / 0.557) 33%,
    hsla(var(--color-light) / 0.466) 38.3%,
    hsla(var(--color-light) / 0.377) 43.8%,
    hsla(var(--color-light) / 0.292) 49.7%,
    hsla(var(--color-light) / 0.213) 56.1%,
    hsla(var(--color-light) / 0.143) 63.1%,
    hsla(var(--color-light) / 0.084) 70.9%,
    hsla(var(--color-light) / 0.039) 79.5%,
    hsla(var(--color-light) / 0.01) 89.2%,
    hsla(var(--color-light) / 0) 100%
  );
}

.css span {
  --rotate-letter: 34deg;

  display: flex;
  flex-direction: column;
  line-height: 0.475;
  color: hsl(var(--color-dark-static));
  perspective: 1em;
  transition: var(--transition);
  transition-property: color, transform;
  transform-style: preserve-3d;
}

.css span::after {
  display: block;
  color: hsl(var(--color-dark));
  transform-origin: top center;
  transform: rotateX(var(--rotate)) scaleY(1.25);
  pointer-events: none;
  z-index: -1;
}

.css :first-child::after {
  content: "c";
}

.css :not(:first-child)::after {
  content: "s";
}

.css :first-child {
  transform-origin: left center;
}

.css :last-child {
  transform-origin: right center;
}

/* Hover */
.css:hover {
  transform: scale(1.25);
}

.css:hover::before {
  opacity: 1;
  transform: translateZ(-1vmin) translateX(-50%) scale(1.05);
}

.css:hover::after {
  opacity: 1;
  transform: translateZ(-1vmin) translateX(-50%) rotateX(var(--rotate))
    scale(1.05);
}

.css:hover span {
  color: hsl(var(--color-dark));
  transform: translateZ(6vmin);
}

.css:hover :first-child {
  transform: translateX(20%) rotateY(calc(var(--rotate-letter) * -1));
}

.css:hover :last-child {
  transform: translateX(-20%) rotateY(var(--rotate-letter));
}
Результат

Тень в стиле радуги

Код
<h1>CALCSBOX.COM</h1>
@import url("https://fonts.googleapis.com/css2?family=Lobster&display=swap");

body {
  --bg: #000000;
  box-sizing: border-box;
  // min-height: 100vh;
  display: flex;
  align-content: center;
  justify-content: center;
  align-items: center;
  background-color: var(--bg);
}

h1 {
  --text: #ffffff;
  --red: #d12229;
  --orange: #f68a1e;
  --yellow: #fde01a;
  --green: #007940;
  --blue: #24408e;
  --purple: #732982;
  --font: "Lobster";
  color: var(--text);
  font-size: 5rem;
  font-family: var(--font);
  font-weight: 900;
  -webkit-font-kerning: normal;
          font-kerning: normal;
  text-shadow: 10px 10px 2px var(--red), 15px 15px 2px var(--orange), 20px 20px 2px var(--yellow), 25px 25px 2px var(--green), 30px 30px 2px var(--blue), 35px 35px 2px var(--purple);
}
Результат

Космический неон

Код
<div class="neon-effect">
	<h1 class="neon-title" data-text="Kosmic">Kosmic</h1>
	<div class="neon-gradient"></div>
	<div class="neon-light"></div>
</div>
:root {
  --primary: #e32833;
  --secondary: #ff0c87;
}

body {
  box-sizing: border-box;
  min-height: 100vh;
  display: flex;
  align-content: center;
  justify-content: center;
  align-items: center;
  background-color: black;
}

.neon-effect {
  font-weight: 700;
  font-size: 4rem;
  font-family: Montserrat;
  overflow: hidden;
}
.neon-title {
  position: relative;
  font-size: 5rem;
}
.neon-title::before, .neon-title::after {
  content: attr(data-text);
  color: white;
  filter: blur(0.02em);
  position: absolute;
  top: 0;
  left: 0;
}
.neon-title::after {
  mix-blend-mode: difference;
}
.neon-gradient, .neon-light {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}
.neon-gradient {
  background: linear-gradient(78deg, var(--primary), var(--secondary));
  mix-blend-mode: multiply;
}
.neon-light {
  -webkit-animation: light 5s infinite linear;
          animation: light 5s infinite linear;
  background: radial-gradient(circle, white, transparent 25%) 0 0/25% 25%, radial-gradient(circle, white, black 25%) 50% 50%/12.5% 12.5%;
  left: -100%;
  mix-blend-mode: color-dodge;
}

@-webkit-keyframes light {
  100% {
    transform: translate3d(50%, 50%, 0);
  }
}

@keyframes light {
  100% {
    transform: translate3d(50%, 50%, 0);
  }
}
Результат

Анимированная заливка текста текстом svg

Код
<svg viewBox="0 0 600 300">
  <!-- Symbol-->
  <symbol id="s-text">
    <text text-anchor="middle" x="50%" y="50%" dy=".35em">Interstellar</text>
  </symbol>
  <!-- Duplicate symbols-->
  <use class="text" xlink:href="#s-text"></use>
  <use class="text" xlink:href="#s-text"></use>
  <use class="text" xlink:href="#s-text"></use>
  <use class="text" xlink:href="#s-text"></use>
  <use class="text" xlink:href="#s-text"></use>
</svg>
/* Main styles */
@import url(https://fonts.googleapis.com/css?family=Open+Sans:800);
.text {
  fill: none;
  stroke-width: 3;
  stroke-linejoin: round;
  stroke-dasharray: 70 330;
  stroke-dashoffset: 0;
  -webkit-animation: stroke 6s infinite linear;
  animation: stroke 6s infinite linear;
}
.text:nth-child(5n+1) {
  stroke: #F2385A;
  -webkit-animation-delay: -1.2s;
  animation-delay: -1.2s;
}
.text:nth-child(5n+2) {
  stroke: #F5A503;
  -webkit-animation-delay: -2.4s;
  animation-delay: -2.4s;
}
.text:nth-child(5n+3) {
  stroke: #E9F1DF;
  -webkit-animation-delay: -3.6s;
  animation-delay: -3.6s;
}
.text:nth-child(5n+4) {
  stroke: #56D9CD;
  -webkit-animation-delay: -4.8s;
  animation-delay: -4.8s;
}
.text:nth-child(5n+5) {
  stroke: #3AA1BF;
  -webkit-animation-delay: -6s;
  animation-delay: -6s;
}

@-webkit-keyframes stroke {
  100% {
    stroke-dashoffset: -400;
  }
}
@keyframes stroke {
  100% {
    stroke-dashoffset: -400;
  }
}
/* Other styles */
html, body {
  height: 100%;
}

body {
  background: #111;
  background-size: 0.2em 100%;
  font: 5em/1 Open Sans, Impact;
  text-transform: uppercase;
  margin: 0;
}

svg {
  position: absolute;
  width: 100%;
  height: 100%;
}
Результат

Текстовая анимация

Код
<svg viewBox="0 0 960 300">
	<symbol id="s-text">
		<text text-anchor="middle" x="50%" y="80%">Montserrat</text>
	</symbol>

	<g class = "g-ants">
		<use xlink:href="#s-text" class="text-copy"></use>
		<use xlink:href="#s-text" class="text-copy"></use>
		<use xlink:href="#s-text" class="text-copy"></use>
		<use xlink:href="#s-text" class="text-copy"></use>
		<use xlink:href="#s-text" class="text-copy"></use>
	</g>
</svg>
@import url(https://fonts.googleapis.com/css?family=Montserrat);

html,
body {
  height: 100%;
  font-weight: 800;
}

body {
  background: #030321;
  font-family: Arial;
}

svg {
  display: block;
  font: 10.5em "Montserrat";
  width: 960px;
  height: 300px;
  margin: 0 auto;
}

.text-copy {
  fill: none;
  stroke: white;
  stroke-dasharray: 6% 29%;
  stroke-width: 5px;
  stroke-dashoffset: 0%;
  animation: stroke-offset 5.5s infinite linear;
}

.text-copy:nth-child(1) {
  stroke: #4d163d;
  animation-delay: -1;
}

.text-copy:nth-child(2) {
  stroke: #840037;
  animation-delay: -2s;
}

.text-copy:nth-child(3) {
  stroke: #bd0034;
  animation-delay: -3s;
}

.text-copy:nth-child(4) {
  stroke: #bd0034;
  animation-delay: -4s;
}

.text-copy:nth-child(5) {
  stroke: #fdb731;
  animation-delay: -5s;
}

@keyframes stroke-offset {
  100% {
    stroke-dashoffset: -35%;
  }
}
Результат
Текст средствами CSS CSS