CSS 전용 Tailwind CSS 카운트다운 타이머. 일, 시간, 분, 초에 대한 애니메이션 숫자 표시. WCAG AA 액세스 가능하며 Django, HTMX, Laravel, React 및 모든 스택에서 작동합니다.
카운트다운 구성요소에는 이벤트, 마감일 또는 프로모션이 종료될 때까지 남은 시간이 표시됩니다. 애니메이션 숫자 디스플레이로 제작된 카운트다운은 긴박감과 기대감을 불러일으킵니다. Frutjam 카운트다운 시스템은 다양한 크기, 형식 및 스타일을 지원하므로 반짝 세일, 이벤트 타이머, 출시 카운트다운 및 시간 제한 제안에 이상적입니다.
CSS 전용이며 JavaScript가 필요하지 않습니다. WCAG AA 액세스 가능 및 프레임워크에 구애받지 않음 — Django, HTMX, Laravel, React 및 모든 스택에서 작동합니다.
| 수업 | 유형 | 설명 |
|---|---|---|
| countdown | 베이스 | --countdown-value로 구동되는 애니메이션 숫자 |
| countdown-xs | 크기 | 아주 작은 |
| countdown-sm | 크기 | 작은 |
| countdown-md | 크기 | 중간(기본값) |
| countdown-lg | 크기 | 크기가 큰 |
| countdown-xl | 크기 | 특대 |
기본 사용법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <div class="grid auto-cols-max grid-flow-col gap-5 text-center"> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span style="--countdown-value:15"></span> </span> <span class="mt-1 text-sm text-on-base/60">days</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span style="--countdown-value:10"></span> </span> <span class="mt-1 text-sm text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span style="--countdown-value:24"></span> </span> <span class="mt-1 text-sm text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span style="--countdown-value:5"></span> </span> <span class="mt-1 text-sm text-on-base/60">sec</span> </div> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | function BasicCountdown() { const days = {"--countdown-value": 15} const hours = {"--countdown-value": 10} const minutes = {"--countdown-value": 24} const seconds = {"--countdown-value": 5} return ( <div className="grid auto-cols-max grid-flow-col gap-5 text-center"> <div className="flex flex-col items-center"> <span className="countdown font-mono text-5xl"> <span style={days}></span> </span> <span className="mt-1 text-sm text-on-base/60">days</span> </div> <div className="flex flex-col items-center"> <span className="countdown font-mono text-5xl"> <span style={hours}></span> </span> <span className="mt-1 text-sm text-on-base/60">hours</span> </div> <div className="flex flex-col items-center"> <span className="countdown font-mono text-5xl"> <span style={minutes}></span> </span> <span className="mt-1 text-sm text-on-base/60">min</span> </div> <div className="flex flex-col items-center"> <span className="countdown font-mono text-5xl"> <span style={seconds}></span> </span> <span className="mt-1 text-sm text-on-base/60">sec</span> </div> </div> ) } |
박스형 스타일
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <div class="grid auto-cols-max grid-flow-col gap-3 text-center"> <div class="flex flex-col items-center gap-2"> <div class="bg-neutral text-on-neutral rounded-box flex items-center justify-center px-4 py-3 min-w-16"> <span class="countdown font-mono text-4xl"> <span style="--countdown-value:2"></span> </span> </div> <span class="text-xs uppercase tracking-widest text-on-base/60">days</span> </div> <div class="flex flex-col items-center gap-2"> <div class="bg-neutral text-on-neutral rounded-box flex items-center justify-center px-4 py-3 min-w-16"> <span class="countdown font-mono text-4xl"> <span style="--countdown-value:18"></span> </span> </div> <span class="text-xs uppercase tracking-widest text-on-base/60">hours</span> </div> <div class="flex flex-col items-center gap-2"> <div class="bg-neutral text-on-neutral rounded-box flex items-center justify-center px-4 py-3 min-w-16"> <span class="countdown font-mono text-4xl"> <span style="--countdown-value:37"></span> </span> </div> <span class="text-xs uppercase tracking-widest text-on-base/60">min</span> </div> <div class="flex flex-col items-center gap-2"> <div class="bg-neutral text-on-neutral rounded-box flex items-center justify-center px-4 py-3 min-w-16"> <span class="countdown font-mono text-4xl"> <span style="--countdown-value:20"></span> </span> </div> <span class="text-xs uppercase tracking-widest text-on-base/60">sec</span> </div> </div> |
시계 형식
html
1 2 3 | <span class="countdown font-mono text-6xl"> <span style="--countdown-value:10"></span>:<span style="--countdown-value:24"></span>:<span style="--countdown-value:59"></span> </span> |
카운트다운 크기
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | <div class="flex flex-col gap-6"> <div class="grid auto-cols-max grid-flow-col gap-3 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-xs font-mono"><span style="--countdown-value:10"></span></span> <span class="text-xs text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-xs font-mono"><span style="--countdown-value:24"></span></span> <span class="text-xs text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-xs font-mono"><span style="--countdown-value:5"></span></span> <span class="text-xs text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">xs</span> </div> <div class="grid auto-cols-max grid-flow-col gap-3 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-sm font-mono"><span style="--countdown-value:10"></span></span> <span class="text-xs text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-sm font-mono"><span style="--countdown-value:24"></span></span> <span class="text-xs text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-sm font-mono"><span style="--countdown-value:5"></span></span> <span class="text-xs text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">sm</span> </div> <div class="grid auto-cols-max grid-flow-col gap-4 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-md font-mono"><span style="--countdown-value:10"></span></span> <span class="text-xs text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-md font-mono"><span style="--countdown-value:24"></span></span> <span class="text-xs text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-md font-mono"><span style="--countdown-value:5"></span></span> <span class="text-xs text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">md</span> </div> <div class="grid auto-cols-max grid-flow-col gap-5 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-lg font-mono"><span style="--countdown-value:10"></span></span> <span class="text-sm text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-lg font-mono"><span style="--countdown-value:24"></span></span> <span class="text-sm text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-lg font-mono"><span style="--countdown-value:5"></span></span> <span class="text-sm text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">lg</span> </div> <div class="grid auto-cols-max grid-flow-col gap-6 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-xl font-mono"><span style="--countdown-value:10"></span></span> <span class="text-sm text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-xl font-mono"><span style="--countdown-value:24"></span></span> <span class="text-sm text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-xl font-mono"><span style="--countdown-value:5"></span></span> <span class="text-sm text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">xl</span> </div> </div> |
라이브 카운트다운
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <div class="grid auto-cols-max grid-flow-col gap-5 text-center" id="live-timer"> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span id="cd-days" style="--countdown-value:0"></span> </span> <span class="mt-1 text-sm text-on-base/60">days</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span id="cd-hours" style="--countdown-value:0"></span> </span> <span class="mt-1 text-sm text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span id="cd-minutes" style="--countdown-value:0"></span> </span> <span class="mt-1 text-sm text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span id="cd-seconds" style="--countdown-value:0"></span> </span> <span class="mt-1 text-sm text-on-base/60">sec</span> </div> </div> <script> const target = new Date(Date.now() + 2 * 24 * 60 * 60 * 1000); function update() { const diff = Math.max(0, target - Date.now()); document.getElementById('cd-days').style.setProperty('--countdown-value', Math.floor(diff / 86400000)); document.getElementById('cd-hours').style.setProperty('--countdown-value', Math.floor((diff % 86400000) / 3600000)); document.getElementById('cd-minutes').style.setProperty('--countdown-value', Math.floor((diff % 3600000) / 60000)); document.getElementById('cd-seconds').style.setProperty('--countdown-value', Math.floor((diff % 60000) / 1000)); } update(); setInterval(update, 1000); </script> |
이벤트 카운트다운
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <div class="card bg-linear-to-br from-primary to-secondary shadow-lg max-w-sm"> <div class="card-content"> <p class="text-sm font-semibold uppercase tracking-widest text-white/80">Flash Sale Ends In</p> <h2 class="card-title text-2xl mt-1 text-white">Don't Miss Out!</h2> <div class="grid auto-cols-max grid-flow-col gap-4 text-center mt-4"> <div class="flex flex-col items-center"> <div class="bg-white/20 rounded-lg px-4 py-2 min-w-14"> <span class="countdown font-mono text-4xl font-bold text-white"> <span style="--countdown-value:2"></span> </span> </div> <span class="mt-1 text-xs text-white/75">days</span> </div> <div class="flex flex-col items-center"> <div class="bg-white/20 rounded-lg px-4 py-2 min-w-14"> <span class="countdown font-mono text-4xl font-bold text-white"> <span style="--countdown-value:18"></span> </span> </div> <span class="mt-1 text-xs text-white/75">hours</span> </div> <div class="flex flex-col items-center"> <div class="bg-white/20 rounded-lg px-4 py-2 min-w-14"> <span class="countdown font-mono text-4xl font-bold text-white"> <span style="--countdown-value:37"></span> </span> </div> <span class="mt-1 text-xs text-white/75">min</span> </div> <div class="flex flex-col items-center"> <div class="bg-white/20 rounded-lg px-4 py-2 min-w-14"> <span class="countdown font-mono text-4xl font-bold text-white"> <span style="--countdown-value:20"></span> </span> </div> <span class="mt-1 text-xs text-white/75">sec</span> </div> </div> </div> </div> |
Claude Code, Cursor 또는 다른 AI 편집기를 사용하시나요?
Cherry MCP는 AI 편집기에 요청 시 정확한 카운트다운 클래스 이름과 구조를 제공합니다. 더 이상 환각에 빠진 수업은 없습니다.