JSFiddle - React, Tailwind, and code Playground

by Alex Bergin

HTML

<div id="letter">B</div>
<div id="description">is for Bicycle</div>

<div id="animation">
    <div class="bike">
        
        <div class="bell">
            <div class="ringer">
                <div class="lever"></div>
            </div>
            <div class="audio">
                <div></div>
                <div></div>
                <div></div>
            </div>            
            <div class="stand"></div>
        </div>
        
        <div class="front wheel">
            <div class="rim">
                <div class="air"></div>
            </div>
            <div class="hub"></div>
            <div class="spokes">
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
                <div></div>
            </div>
        </div>
        
        <div class="frame">
            <div></div>
            <div></div>
            <div></div>
            <div class="small"></div>
            <div></div>
            <div></div>
            <div class="small"></div>
            <div class="small"></div>
        </div>
        
        <div class="seat">
            <div class="support"></div>
            <div class="saddle"></div>
        </div>
        
        <div class="handlebars">
            <div class="frameConnector"></div>
            <div class="handle"></div>
        </div>
        
        <div class="pedals">
            <div class="gear">
                <div class="hub"></div>
                <div class="struts">
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </div>
            </div>
            <div class="front pedal">
                <div class="footpad"></div>
            </div>
            <div class="back pedal">
                <div class="footpad"></div>
      ...

CSS

* {
    padding: 0;
    margin: 0;
}

html , body {
    width: 100%;
    height: 100%:
    overflow: hidden;
    position: fixed;
    top: 50%;
    left: 0%;
}

html {
    background-color: rgba(255,250,250,1);    
}

#letter {
    font-size: 120px;
    font-family: Helvetica;
    font-weight: Bold;
    color: rgba(18,22,26,0.7);
    width: 120px;
    height: 120px;
    text-align: center;
    vertical-align: middle;
    line-height: 120px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -60px;
    margin-left: -60px;
    z-index: 100;
}

#description {
    position: fixed;
    bottom: 10px;
    width: 100%;
    z-index: 100;
    font-family: Helvetica;
    font-weight: 200;
    color: rgba(18,22,26,0.7);
    text-align: center;
    font-size: 11px;
    letter-spacing: 1px;
}

.bell {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -99px;
    margin-left: -117px;
    z-index: 100;
}

.bell .stand {
    position: absolute;
    background-color: rgba(18,22,26,0.4);
    width: 6px;
    height: 3px;
}

.bell .lever {
    position: absolute;
    width: 2px;
    height: 2px;
    background-color: rgba(18,22,26,0.2);
    margin-top: 3px;
    margin-left: 14px;
    z-index: -1;
}

.bell .ringer {
    position: absolute;
    width: 14px;
    height: 6px;
    margin-left: -4px;
    margin-top:-6px;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    background-color: rgba(246,188,49,0.6);
    animation: audioMove 5s linear 0s infinite alternate none;
	-webkit-animation: audioMove 5s linear 0s infinite alternate none;
}

.bell .audio {
    margin-top: -8px;
    margin-left: 4px;
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);
    transform: rotate(-90deg);
    position: absolute;
}

.bell .audio div {
    width: 15px;
    border-top: 1px dashed rgba(246,188,49,0.6);
    animation: audioLines 5s linear 0s infinite...