If you’re a web developer or aspiring to be one, showcasing your skills through an interactive illustration is a great way to impress potential clients or employers. In this tutorial, we’ll show you how to create an eye-catching “Working Coder Illustration” using only HTML and CSS. You’ll learn how to use HTML to create the structure of the illustration and style it with CSS to give it a unique and visually appealing appearance. We’ll also cover how to add interactive animations to make your coder illustration come to life. By the end of this tutorial, you’ll have a fully-functional and visually stunning “Working Coder Illustration” that you can use to showcase your web development skills and attract more clients or job opportunities. So, let’s get started on creating a beautiful and interactive “Working Coder Illustration” using HTML and CSS!
Before we start here are 50 projects to create using HTML CSS and JavaScript –
I would recommend you don’t just copy and paste the code, just look at the code and type by understanding it.
Demo
HTML Code
Starter Template
<!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- CSS --> <link rel="stylesheet" href="style.css"> <title>Working Coder Illustration using HTML and CSS - Coding Torque</title> </head> <body> <!-- Further code here --> </body> </html>
Paste the below code in your <body>
tag.
<div class="stage"> <div class="table"></div> <div class="pc"></div> <div class="cup"></div> <div class="cup-cover"></div> <div class="clock"> <div class="marker-top"></div> <div class="marker-right"></div> <div class="marker-bottom"></div> <div class="marker-left"></div> <div class="pointer-min"></div> <div class="pointer-hour"></div> <div class="pointer"></div> </div> <div class="guy"> <div class="hat"> <div class="hat-hair"></div> <div class="hat-close"></div> </div> <div class="hair-left"></div> <div class="hair-middle"></div> <div class="hair-right"></div> <div class="ear-left"></div> <div class="ear-right"></div> <div class="face"> <div class="eye"></div> <div class="eye"></div> <div class="nose"></div> <div class="mouth"></div> </div> <div class="neck"></div> <div class="body"></div> </div> <div class="book one"></div> <div class="book two"></div> <div class="book three"></div> </div>
CSS Code
Create a file style.css and paste the code below.
* { box-sizing: border-box; } html, body { margin: 0; padding: 0; height: 100%; overflow: hidden; background-color: #eae4df; } body { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } .stage { width: 400px; height: 400px; border-radius: 50%; background-color: #f5f2f1; position: relative; } .stage:after { background-color: #eae4df; height: 100px; width: 100%; position: absolute; content: ""; bottom: 0; } .table { position: absolute; bottom: 92px; width: 100%; height: 8px; background-color: #caa17f; z-index: 1; border-radius: 20px; } .pc { z-index: 2; position: absolute; bottom: 100px; width: 142px; height: 98px; background-color: #c0c0c2; border-radius: 5px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); } .pc:after { content: ""; width: 14px; height: 14px; border-radius: 50%; background-color: #b5b7ba; position: absolute; top: 51%; left: 50%; -webkit-transform: translateX(-50%) translateY(-50%); transform: translateX(-50%) translateY(-50%); } .pc:before { content: ""; position: absolute; top: 4px; left: 0; right: 0; height: calc(100% - 4px); background-color: #d1d3d5; border-radius: 2px; } .guy { width: 174px; height: 130px; position: absolute; left: 50%; -webkit-transform: translateX(-50%) translateY(0) translateZ(0); transform: translateX(-50%) translateY(0) translateZ(0); bottom: 198px; -webkit-animation: guyMove 3500ms cubic-bezier(0.4, 0, 1, 1) infinite alternate; animation: guyMove 3500ms cubic-bezier(0.4, 0, 1, 1) infinite alternate; } @-webkit-keyframes guyMove { 0% { -webkit-transform: translateX(-50%) translateY(45px) translateZ(0); } 15% { -webkit-transform: translateX(-50%) translateY(50px) translateZ(0); } 30% { -webkit-transform: translateX(-50%) translateY(45px) translateZ(0); } 45% { -webkit-transform: translateX(-50%) translateY(50px) translateZ(0); } 60% { -webkit-transform: translateX(-50%) translateY(0px) translateZ(0); } 100% { -webkit-transform: translateX(-50%) translateY(0px) translateZ(0); } } @keyframes guyMove { 0% { transform: translateX(-50%) translateY(45px) translateZ(0); } 15% { transform: translateX(-50%) translateY(50px) translateZ(0); } 30% { transform: translateX(-50%) translateY(45px) translateZ(0); } 45% { transform: translateX(-50%) translateY(50px) translateZ(0); } 60% { transform: translateX(-50%) translateY(0px) translateZ(0); } 100% { transform: translateX(-50%) translateY(0px) translateZ(0); } } .body { width: 70px; height: 40px; position: absolute; bottom: -14px; z-index: 1; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); border-radius: 50px 50px 0 0; background-color: #36508a; } .body:after { content: ""; position: absolute; width: 60px; height: 30px; -webkit-transform: translateX(-50%); transform: translateX(-50%); left: 50%; border-radius: 50px 50px 0 0; background-color: #4563a5; bottom: 5px; } .neck { width: 26px; height: 26px; background-color: #f6d2be; border-radius: 0 0 50px 50px; bottom: 4px; z-index: 4; position: absolute; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); } .face { background-color: #f6d2be; width: 78px; border-radius: 0 0 50px 50px; height: 58px; position: absolute; bottom: 26px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); } .face:after { background-color: #fddac5; width: 68px; border-radius: 0 0 50px 50px; height: 52px; content: ""; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); position: absolute; } .eye { width: 12px; height: 12px; background-color: #533d34; position: absolute; left: 15px; top: 14px; z-index: 5; border-radius: 50px; } .eye:nth-child(2) { left: auto; right: 15px; } .eye:after { content: ""; width: 16px; left: -2px; height: 14px; background-color: #fddac5; border-radius: 50%; position: absolute; -webkit-animation: eyeMove 3500ms cubic-bezier(0.4, 0, 1, 1) infinite alternate; animation: eyeMove 3500ms cubic-bezier(0.4, 0, 1, 1) infinite alternate; } @-webkit-keyframes eyeMove { 0% { -webkit-transform: translateY(16px) translateZ(0); } 15% { -webkit-transform: translateY(16px) translateZ(0); } 30% { -webkit-transform: translateY(16px) translateZ(0); } 45% { -webkit-transform: translateY(16px) translateZ(0); } 60% { -webkit-transform: translateY(4px) translateZ(0); } 100% { -webkit-transform: translateY(4px) translateZ(0); } } @keyframes eyeMove { 0% { transform: translateY(16px) translateZ(0); } 15% { transform: translateY(16px) translateZ(0); } 30% { transform: translateY(16px) translateZ(0); } 45% { transform: translateY(16px) translateZ(0); } 60% { transform: translateY(4px) translateZ(0); } 100% { transform: translateY(4px) translateZ(0); } } .nose { background-color: #efc2a3; position: absolute; top: 20px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); width: 6px; height: 14px; z-index: 5; border-radius: 20px; } .hat { background-color: #4563a5; height: 42px; width: 78px; top: 4px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); border-radius: 50px 50px 0 0; position: absolute; z-index: 5; } .hat:before { height: 6px; width: 10px; background-color: #4563a5; position: absolute; content: ""; border-radius: 50px 50px 0 0; top: -3px; left: 50%; margin-left: -5px; } .hat:after { height: 8px; width: 42px; background-color: #4563a5; position: absolute; content: ""; border-radius: 50px 0 0 50px; bottom: 0; left: -38px; } .hair-left { background-color: #5e3919; position: absolute; top: 46px; z-index: 5; left: 48px; width: 8px; border-radius: 0 0 0 50px; height: 14px; } .hair-left:before { content: ""; position: absolute; top: 0; left: 8px; width: 8px; height: 8px; background-color: #5e3919; border-radius: 0 0 50px 0; } .hair-right { background-color: #5e3919; position: absolute; top: 46px; z-index: 5; right: 48px; width: 8px; border-radius: 0 0 50px 0; height: 14px; } .hair-right:before { content: ""; position: absolute; top: 0; right: 8px; width: 8px; height: 8px; background-color: #5e3919; border-radius: 0 0 0 50px; } .hair-middle { background-color: #5e3919; top: 45px; left: 49%; z-index: 4; width: 14px; height: 6px; border-radius: 0 0 100px 100px; position: absolute; z-index: 4; -webkit-transform: translateX(-50%); transform: translateX(-50%) rotate(-15deg); } .hair-middle:after { content: ""; position: absolute; top: -4px; right: -3px; width: 8px; height: 14px; border-radius: 0 50px 50px 0; background-color: #5e3919; transform: rotate(-15deg); } .hat-hair { width: 24px; height: 10px; background-color: #5e3919; border-radius: 50px 50px 0 0; position: absolute; bottom: 10px; right: 6px; } .hat-hair:before { content: ""; position: absolute; width: 8px; height: 8px; top: -5px; right: 3px; background-color: #5e3919; border-radius: 0 50px 0 0; } .hat-hair:after { content: ""; position: absolute; width: 14px; height: 8px; top: 2px; right: -10px; background-color: #5e3919; border-radius: 0 0 50px 0; } .hat-close { position: absolute; bottom: 0; right: 2px; width: 28px; height: 10px; border-radius: 0 100px 100px 0; background-color: #879ed0; } .mouth { width: 18px; height: 8px; border-radius: 0 0 50px 50px; background-color: #fff; position: absolute; bottom: 11px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); z-index: 12; } .ear-left { position: absolute; top: 50px; left: 40px; border-radius: 50px 0 0 50px; width: 16px; height: 24px; background-color: #f6d2be; } .ear-right { position: absolute; top: 50px; right: 40px; border-radius: 0 50px 50px 0; width: 16px; height: 24px; background-color: #f6d2be; } .clock { width: 80px; height: 80px; border-radius: 50%; background-color: #eae4df; position: absolute; right: 16px; top: 24px; } .clock:before { content: ""; width: 66px; height: 66px; background-color: #f6f7f8; border-radius: 50%; position: absolute; top: 7px; left: 7px; z-index: 2; } .pointer-min { height: 22px; width: 4px; border-radius: 0 0 50px 50px; background-color: #e0dddb; position: absolute; left: 50%; top: calc(50% + 10px); -webkit-transform: translateX(-50%) translateY(-50%) rotate(-30deg); transform: translateX(-50%) translateY(-50%) rotate(-30deg); z-index: 20; transform-origin: top; -webkit-animation: min 30s linear infinite; animation: min 30s linear infinite; } @-webkit-keyframes min { 0% { -webkit-transform: translateX(-50%) translateY(-50%) rotate(-30deg); } 100% { -webkit-transform: translateX(-50%) translateY(-50%) rotate(330deg); } } @keyframes min { 0% { transform: translateX(-50%) translateY(-50%) rotate(-30deg); } 100% { transform: translateX(-50%) translateY(-50%) rotate(330deg); } } .pointer-hour { width: 14px; height: 4px; border-radius: 50px 0 0 50px; background-color: #e0dddb; position: absolute; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); z-index: 20; left: 22px; } .pointer { position: absolute; top: 50%; left: 50%; -webkit-transform: translateX(-50%) translateY(-50%); transform: translateX(-50%) translateY(-50%); width: 10px; height: 10px; border: 3px solid #e0dddb; background-color: #f6f7f8; border-radius: 50%; z-index: 30; } .marker-top { width: 6px; height: 6px; background-color: #e0dddb; position: absolute; top: 10px; left: 50%; z-index: 20; border-radius: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); } .marker-right { width: 6px; height: 6px; background-color: #e0dddb; position: absolute; right: 10px; top: 50%; z-index: 20; border-radius: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .marker-bottom { width: 6px; height: 6px; background-color: #e0dddb; position: absolute; bottom: 10px; left: 50%; z-index: 20; border-radius: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); } .marker-left { width: 6px; height: 6px; background-color: #e0dddb; position: absolute; left: 10px; top: 50%; z-index: 20; border-radius: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .cup { width: 36px; height: 60px; position: absolute; bottom: 90px; z-index: 20; right: 56px; border-top: 50px solid #fff; border-left: 4px solid transparent; border-right: 4px solid transparent; } .cup:after { content: ""; position: absolute; right: -1px; top: -46px; width: 4px; border-top: 38px solid rgba(220, 220, 220, 0.41); border-left: 0px solid transparent; border-right: 4px solid transparent; } .cup-cover { width: 44px; right: 52px; position: absolute; bottom: 150px; z-index: 21; border-bottom: 6px solid #ce4646; border-left: 2px solid transparent; border-right: 2px solid transparent; } .cup-cover:after { content: ""; width: 32px; right: 2px; position: absolute; bottom: 0; z-index: 21; border-bottom: 4px solid #af4242; border-left: 2px solid transparent; border-right: 2px solid transparent; } .book.one { position: absolute; bottom: 100px; width: 64px; height: 16px; left: 46px; background-color: #fff; border-top: 3px solid #fb904d; border-right: 6px solid #fb904d; border-bottom: 3px solid #fb904d; border-radius: 0 4px 4px 0; } .book.two { position: absolute; bottom: 116px; width: 70px; height: 20px; left: 44px; background-color: #fff; border-top: 3px solid #45a58b; border-right: 11px solid #45a58b; border-bottom: 3px solid #45a58b; border-radius: 0 7px 8px 0; } .book.three { position: absolute; bottom: 136px; width: 62px; height: 20px; left: 48px; background-color: #ff443d; } .book.three:after { content: ""; position: absolute; top: 5px; left: 5px; width: 8px; height: 8px; background-color: #fff; border-radius: 50%; }
Final Output
Written by: Piyush Patil
Code Credits: @JoseRosario
If you found any mistakes or have any doubts please feel free to Contact Us
Hope you find this post helpful💖