Pomodoro Timer Ring
A copy-paste watch faces & clocks component in pure HTML & CSS. Zero dependencies, framework-agnostic, MIT-licensed.
Watch Faces & ClocksHTMLCSSany framework
12:34FOCUS
Copy into your project
HTML
<div class="nuda-pomo" role="img" aria-label="Pomodoro 12:34">
<svg class="nuda-pomo__svg" viewBox="0 0 120 120">
<circle class="nuda-pomo__track" cx="60" cy="60" r="52" />
<circle class="nuda-pomo__bar" cx="60" cy="60" r="52" />
</svg>
<div class="nuda-pomo__inner">
<span class="nuda-pomo__time">12:34</span>
<span class="nuda-pomo__label">FOCUS</span>
</div>
</div>CSS
/* Pomodoro Timer Ring
SVG arc countdown over 25 minutes (1500s) for the classic Pomodoro session.
Customize: --accent for break/work mode coloring */
.nuda-pomo {
--accent: #ff5e7a;
--bg: #0c0c10;
position: relative;
width: 140px;
height: 140px;
display: inline-grid;
place-items: center;
background: var(--bg);
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.06);
}
.nuda-pomo__svg {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
transform: rotate(-90deg);
}
.nuda-pomo__track {
fill: none;
stroke: rgba(255, 255, 255, 0.08);
stroke-width: 6;
}
.nuda-pomo__bar {
fill: none;
stroke: var(--accent);
stroke-width: 6;
stroke-linecap: round;
stroke-dasharray: 326.7; /* 2 * PI * 52 */
stroke-dashoffset: 90;
filter: drop-shadow(0 0 6px var(--accent));
animation: nuda-pomo-tick 1500s linear forwards;
}
.nuda-pomo__inner {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
z-index: 1;
}
.nuda-pomo__time {
font: 600 26px ui-monospace, Menlo, monospace;
color: #fafafa;
letter-spacing: -1px;
}
.nuda-pomo__label {
font: 500 10px system-ui, sans-serif;
letter-spacing: 2px;
color: var(--accent);
}
@keyframes nuda-pomo-tick {
to { stroke-dashoffset: 326.7; }
}
@media (prefers-reduced-motion: reduce) {
.nuda-pomo__bar { animation: none; }
}How to use Pomodoro Timer Ring
Paste the HTML where you need it and the CSS into a global stylesheet (or a <style> tag). Every class is prefixed nuda- so it never collides with Tailwind or your own styles. Tweak the CSS custom properties to match your design system.
Works in React, Vue, Svelte, Astro, Next.js, Nuxt, Laravel Blade, Django, Rails — or a single .html file. No npm install, no build step.