This code creates a captivating visual experience by rendering 3D text that gracefully transforms. The CSS animation brings the typography to life, with layers rotating and translating seamlessly. It is ideal for adding a dynamic touch to your web projects, this code showcases the power of pure CSS for creating animated and eye-catching text effects.
How to Create Animated 3D Typography Using Pure CSS
1. First of all, load the Modernizr JS, Reset CSS, and Prefixfree JS by adding the following assets into the head tag of your HTML document.
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" type="text/javascript"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
2. Copy the following HTML code into your HTML file. The structure consists of a container div with multiple layers representing each segment of the 3D text.
<div class="stage"> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> <div class="layer"></div> </div> <style> * *, *::before, *::after { animation-play-state: running !important; } </style> <script>window.setTimeout = null;</script>
3. Copy the following CSS code into your stylesheet. This code defines the styles for the layers, animation, and typography. Customize the colors, fonts, and sizes according to your preferences.
@import url("//fonts.googleapis.com/css?family=Pacifico&text=Pure"); @import url("//fonts.googleapis.com/css?family=Roboto:700&text=css"); @import url("//fonts.googleapis.com/css?family=Kaushan+Script&text=!"); body{ min-height: 450px; height: 100vh; margin: 0; background: radial-gradient(circle, #0077ea, #1f4f96, #1b2949, #000) !important; } .stage { height: 300px; width: 500px; margin: auto; position: absolute; top: 0; right: 0; bottom: 0; left: 0; perspective: 9999px; transform-style: preserve-3d; } .layer { width: 100%; height: 100%; position: absolute; transform-style: preserve-3d; animation: ಠ_ಠ 5s infinite alternate ease-in-out -7.5s; animation-fill-mode: forwards; transform: rotateY(40deg) rotateX(33deg) translateZ(0); } .layer:after { font: 130px/0.65 "Pacifico", "Kaushan Script", Futura, "Roboto", "Trebuchet MS", Helvetica, sans-serif; content: "Pure CSS!"; white-space: pre; text-align: center; height: 100%; width: 100%; position: absolute; top: 50px; color: whitesmoke; letter-spacing: -2px; text-shadow: 4px 0 10px rgba(0, 0, 0, 0.13); } .layer:nth-child(1):after { transform: translateZ(0px); } .layer:nth-child(2):after { transform: translateZ(-1.5px); } .layer:nth-child(3):after { transform: translateZ(-3px); } .layer:nth-child(4):after { transform: translateZ(-4.5px); } .layer:nth-child(5):after { transform: translateZ(-6px); } .layer:nth-child(6):after { transform: translateZ(-7.5px); } .layer:nth-child(7):after { transform: translateZ(-9px); } .layer:nth-child(8):after { transform: translateZ(-10.5px); } .layer:nth-child(9):after { transform: translateZ(-12px); } .layer:nth-child(10):after { transform: translateZ(-13.5px); } .layer:nth-child(11):after { transform: translateZ(-15px); } .layer:nth-child(12):after { transform: translateZ(-16.5px); } .layer:nth-child(13):after { transform: translateZ(-18px); } .layer:nth-child(14):after { transform: translateZ(-19.5px); } .layer:nth-child(15):after { transform: translateZ(-21px); } .layer:nth-child(16):after { transform: translateZ(-22.5px); } .layer:nth-child(17):after { transform: translateZ(-24px); } .layer:nth-child(18):after { transform: translateZ(-25.5px); } .layer:nth-child(19):after { transform: translateZ(-27px); } .layer:nth-child(20):after { transform: translateZ(-28.5px); } .layer:nth-child(n+10):after { -webkit-text-stroke: 3px rgba(0, 0, 0, 0.25); } .layer:nth-child(n+11):after { -webkit-text-stroke: 15px dodgerblue; text-shadow: 6px 0 6px #00366b, 5px 5px 5px #002951, 0 6px 6px #00366b; } .layer:nth-child(n+12):after { -webkit-text-stroke: 15px #0077ea; } .layer:last-child:after { -webkit-text-stroke: 17px rgba(0, 0, 0, 0.1); } .layer:first-child:after { color: #fff; text-shadow: none; } @keyframes ಠ_ಠ { 100% { transform: rotateY(-40deg) rotateX(-43deg); } }
Experiment with the animation settings in the keyframes section (@keyframes ಠ_ಠ
). Modify the rotation angles and timing to achieve different visual effects. Feel free to integrate this code into your web projects, adding a touch of elegance and dynamism.
That’s all! hopefully, you have successfully created an Animated 3d Typography Using Pure CSS. If you have any questions or suggestions, feel free to comment below.
Similar Code Snippets:
I code and create web elements for amazing people around the world. I like work with new people. New people new Experiences.
I truly enjoy what I’m doing, which makes me more passionate about web development and coding. I am always ready to do challenging tasks whether it is about creating a custom CMS from scratch or customizing an existing system.