Curved Text using HTML & CSS
He uses CSS3 transforms on each letter. For example, the HTML for his name is as follows:
<span class="arced">
<span class="char1">M</span>
<span class="char2">a</span>
<span class="char3">r</span>
<span class="char4">c</span>
...
</span>
And in turn, the CSS is as follows:
.show .hero h1 .arced > span:nth-child(1) {
-webkit-transform: translateX(-1px) translateY(68px) rotate(-17deg);
-moz-transform: translateX(-1px) translateY(68px) rotate(-17deg);
-ms-transform: translateX(-1px) translateY(68px) rotate(-17deg);
-o-transform: translateX(-1px) translateY(68px) rotate(-17deg);
transform: translateX(-1px) translateY(68px) rotate(-17deg);
-webkit-transition-delay: 0s;
-moz-transition-delay: 0s;
-o-transition-delay: 0s;
transition-delay: 0s;
}
.show .hero h1 .arced > span:nth-child(2) {
-webkit-transform: translateX(-3px) translateY(39px) rotate(-13deg);
-moz-transform: translateX(-3px) translateY(39px) rotate(-13deg);
-ms-transform: translateX(-3px) translateY(39px) rotate(-13deg);
-o-transform: translateX(-3px) translateY(39px) rotate(-13deg);
transform: translateX(-3px) translateY(39px) rotate(-13deg);
-webkit-transition-delay: .04s;
-moz-transition-delay: .04s;
-o-transition-delay: .04s;
transition-delay: .04s;
}
And so on.
I came across this solution called: CircleType.js. It provides a short and simpler way to create circular texts.
<h2 id="yourStyle">MARC THOMAS.</h2>
$('#yourStyle').circleType({radius: 800});
Or you can use lettering.js which is quite flexible.
Add your transitions using CSS/jQuery on top of that. Hope this helps!