Yes there is, and a popular one, too
http://letteringjs.com/
How it works?
You write you HTML as usual:
<h1 class="fancy_title">Some Title</h1>
Adds a bit of JS magic:
$(document).ready(function() {
$(".fancy_title").lettering();
});
(Note that lettering.js depends on jQuery, so you should be somewhat familiar with it. if you're not, it's a good time to begin.)
And.. Voilà! your HTML replaced with this:
<h1 class="fancy_title">
<span class="char1">S</span>
<span class="char2">o</span>
<span class="char3">m</span>
<span class="char4">e</span>
<span class="char5"></span>
<span class="char6">T</span>
<span class="char7">i</span>
<span class="char8">t</span>
<span class="char9">l</span>
<span class="char10">e</span>
</h1>
Now, you can freely use these new classes to style your letters as you like:
.fancy_title .char1 {
color: red
}
.fancy_title .char6 {
color: green
}
Extra tip: use the :nth-child selector
thie :nth-child selector allows you the repeat your styles for each element that match a certain role.
I made a simple code snippet to demonstrates its power:
$(document).ready(function() {
$(".fancy_title").lettering();
});
.fancy_title span:nth-child(4n+1) {
color : red
}
.fancy_title span:nth-child(4n+2) {
color : blue
}
.fancy_title span:nth-child(4n+3) {
color : gold
}
.fancy_title span:nth-child(4n+4) {
color : green
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lettering.js/0.7.0/jquery.lettering.min.js
"></script>
</head>
<body>
<h1 class="fancy_title">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit eveniet ea esse deleniti et illum dicta, reiciendis quia sunt quasi saepe voluptates fuga aut blanditiis perspiciatis! Rem, tempore iste vel.
</h1>
</body>
</html>
Read more about :nth-child here: https://css-tricks.com/how-nth-child-works/