Loading... Maybe?

The Never-Ending Square

The Indecisive Dots

The Dramatic Spinner

The Procrastinator

The Chaotic Dance

The Nervous Rectangle

The Color Shifter

The Pulse Ring

The DNA Sequence

The Infinity

The Matrix

The Typewriter

Loading...

The Ripple

The Tetris

The Heartbeat

Implementation Code

The Never-Ending Square

Copied!

/* CSS */ .square-loader { width: 50px; height: 50px; background: #ff6b6b; animation: squareGrow 2s infinite; } @keyframes squareGrow { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.5) rotate(180deg); } 100% { transform: scale(1) rotate(360deg); } }

The Indecisive Dots

Copied!

/* CSS */ .dots-loader { display: flex; gap: 8px; } .dot { width: 20px; height: 20px; background: #4ecdc4; border-radius: 50%; animation: jumpAndHide 1.5s infinite; } .dot:nth-child(2) { animation-delay: 0.2s; } .dot:nth-child(3) { animation-delay: 0.4s; } @keyframes jumpAndHide { 0%, 100% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(-20px); opacity: 0.3; } }

The Dramatic Spinner

Copied!

/* CSS */ .dramatic-spinner { width: 60px; height: 60px; border: 8px solid #2a2a2a; border-top: 8px solid #ff6b6b; border-radius: 50%; animation: dramaticSpin 3s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite; } @keyframes dramaticSpin { 0% { transform: rotate(0deg); } 50% { transform: rotate(720deg); } 100% { transform: rotate(1080deg); } }

The Procrastinator

Copied!

/* CSS */ .procrastinator { width: 100px; height: 20px; background: #333; border-radius: 10px; overflow: hidden; position: relative; } .progress { width: 30%; height: 100%; background: #4ecdc4; animation: procrastinate 4s infinite; } @keyframes procrastinate { 0% { transform: translateX(-100%); } 30% { transform: translateX(200%); } 30.1% { transform: translateX(-100%); } 100% { transform: translateX(-100%); } }

The Chaotic Dance

Copied!

/* CSS */ .chaos-loader { width: 40px; height: 40px; position: relative; } .chaos-particle { position: absolute; width: 10px; height: 10px; background: #ff6b6b; border-radius: 50%; animation: chaos 2s infinite; } .chaos-particle:nth-child(2) { animation-delay: 0.4s; background: #4ecdc4; } .chaos-particle:nth-child(3) { animation-delay: 0.8s; background: #ffbe0b; } @keyframes chaos { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(30px, -30px); } 50% { transform: translate(-30px, 30px); } 75% { transform: translate(30px, 30px); } }

The Nervous Rectangle

Copied!

/* CSS */ .nervous-rect { width: 60px; height: 30px; background: #ffbe0b; animation: nervous 0.5s infinite; } @keyframes nervous { 0%, 100% { transform: skew(0deg); } 25% { transform: skew(15deg); } 75% { transform: skew(-15deg); } }

The Color Shifter

Copied!

/* CSS */ .color-shifter { width: 50px; height: 50px; border-radius: 50%; animation: colorShift 3s infinite; } @keyframes colorShift { 0% { background: #ff6b6b; transform: scale(1); } 33% { background: #4ecdc4; transform: scale(1.2); } 66% { background: #ffbe0b; transform: scale(0.8); } 100% { background: #ff6b6b; transform: scale(1); } }

The Pulse Ring

Copied!

/* CSS */ .pulse-ring { width: 50px; height: 50px; border-radius: 50%; position: relative; } .pulse-ring::before { content: ''; position: absolute; width: 100%; height: 100%; border-radius: 50%; border: 3px solid #4ecdc4; animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(0.5); opacity: 1; } 100% { transform: scale(2); opacity: 0; } }

The DNA Sequence

Copied!

/* CSS */ .dna-loader { height: 60px; display: flex; align-items: center; gap: 5px; } .dna-strand { width: 4px; height: 20px; background: #4ecdc4; border-radius: 2px; animation: dnaMove 1.5s ease-in-out infinite; } .dna-strand:nth-child(even) { animation-delay: 0.75s; background: #ff6b6b; } @keyframes dnaMove { 0%, 100% { height: 20px; } 50% { height: 50px; } }

The Infinity

Copied!

/* CSS */ .infinity-loader { width: 60px; height: 30px; position: relative; } .infinity-loader::before, .infinity-loader::after { content: ''; position: absolute; width: 20px; height: 20px; border: 3px solid #ff6b6b; border-radius: 50%; animation: infinity 2s linear infinite; } .infinity-loader::after { left: 30px; animation-delay: 1s; } @keyframes infinity { 0% { transform: translateX(0); } 25% { transform: translateX(15px); } 50% { transform: translateX(30px); } 75% { transform: translateX(15px); } 100% { transform: translateX(0); } }

The Matrix

Copied!

/* CSS */ .matrix-loader { width: 60px; height: 60px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; } .matrix-cell { background: #4ecdc4; opacity: 0.2; animation: matrixFade 2s infinite; } @keyframes matrixFade { 0%, 100% { opacity: 0.2; } 50% { opacity: 1; } }

The Typewriter

Copied!

Loading...
/* CSS */ .typewriter { width: 80px; height: 20px; border-right: 3px solid #ff6b6b; animation: typing 1s steps(3, end) infinite; overflow: hidden; white-space: nowrap; } @keyframes typing { 0% { width: 0; } 50% { width: 80px; } 100% { width: 0; } }

The Ripple

Copied!

/* CSS */ .ripple-loader { width: 50px; height: 50px; position: relative; } .ripple-loader div { position: absolute; border: 4px solid #4ecdc4; border-radius: 50%; animation: ripple 1.5s ease-out infinite; opacity: 0; } .ripple-loader div:nth-child(2) { animation-delay: 0.5s; } .ripple-loader div:nth-child(3) { animation-delay: 1s; } @keyframes ripple { 0% { width: 0; height: 0; opacity: 1; } 100% { width: 100%; height: 100%; opacity: 0; } }

The Tetris

Copied!

/* CSS */ .tetris-loader { width: 40px; height: 40px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; animation: tetris 2s infinite; } .tetris-block { background: #ff6b6b; transform-origin: center; } @keyframes tetris { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(90deg); } 50% { transform: rotate(180deg); } 75% { transform: rotate(270deg); } }

The Heartbeat

Copied!

/* CSS */ .heartbeat-loader { width: 40px; height: 40px; background: #ff6b6b; position: relative; transform: rotate(45deg); } .heartbeat-loader::before, .heartbeat-loader::after { content: ''; width: 40px; height: 40px; background: #ff6b6b; border-radius: 50%; position: absolute; } .heartbeat-loader::before { left: -20px; } .heartbeat-loader::after { top: -20px; } .heartbeat-loader, .heartbeat-loader::before, .heartbeat-loader::after { animation: heartbeat 1.5s ease infinite; } @keyframes heartbeat { 0% { transform: scale(0.8); } 5% { transform: scale(0.9); } 10% { transform: scale(0.8); } 15% { transform: scale(1); } 50% { transform: scale(0.8); } 100% { transform: scale(0.8); } }