PageSourceSearch

https://visualtimer.com/timers/online-stopwatch/

html visualtimer.com collected 2026-10-01 13:55:23 UTC 63,117 bytes, 1,199 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4  
4<script>
5// Apply theme before page renders to prevent flash
6(function() {
7  var theme = localStorage.getItem('theme');
8  if (theme === 'light') {
9    document.documentElement.classList.add('light-mode');
10  }
11})();
12// Tag the platform before render so app CTAs/screenshots can adapt without a flash.
13(function() {
14  var d = document.documentElement;
15  var ua = navigator.userAgent || '';
16  var uaPlat = (navigator.userAgentData && navigator.userAgentData.platform) || '';
17  var isIPadOS = navigator.platform === 'MacIntel' && (navigator.maxTouchPoints || 0) > 1;
18  var isIOS = /iPad|iPhone|iPod/.test(ua) || isIPadOS;
19  // A real Mac (incl. Apple Silicon, which still reports "MacIntel") has 0 touch
20  // points; an iPad in desktop Safari reports "MacIntel" with >1.
21  var isMac = !isIOS && (uaPlat
22    ? uaPlat === 'macOS'
23    : navigator.platform === 'MacIntel' && (navigator.maxTouchPoints || 0) === 0);
24  var isAndroid = /Android/.test(ua);
25  if (isIOS) d.classList.add('is-ios');
26  if (isMac) d.classList.add('is-mac');
27  if (isAndroid) d.classList.add('is-android');
28})();
29</script>
29
30
31<meta name="apple-itunes-app" content="app-id=933638040">
32
33  <meta charset="UTF-8">
34  <meta name="viewport" content="width=device-width, initial-scale=1.0">
35  
36  <title>Online Stopwatch - Free Big Display Stopwatch | VisualTimer</title>
37  
38<!-- Simple Analytics (privacy-friendly, cookieless) -->
39<script async src="https://scripts.simpleanalyticscdn.com/latest.js"></script>
39
40<!-- Google tag (gtag.js) — GA4 -->
vendor: 64 bytes, lines 40-41
40
41<script async src="https://www.googletagmanager.com/gtag/js?id=
41G-L1LSTNREKX
vendor: 12 bytes, line 41
41"></script>
42<script>
43  
vendor: 133 bytes, lines 43-46
43window.dataLayer = window.dataLayer || [];
44  function gtag(){dataLayer.push(arguments);}
45  gtag('js', new Date());
46  gtag('config', '
46G-L1LSTNREKX
vendor: 4 bytes, line 46
46');
47</script>
47
48
49<!-- Google Funding Choices (CMP for GDPR/CCPA consent) -->
50<script async src="https://fundingchoicesmessages.google.com/i/pub-9295273074981602?ers=1" nonce=""></script>
vendor: 1 bytes, line 50
50
51<script nonce="">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
51
52<!-- Google AdSense -->
53<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9295273074981602"
54     crossorigin="anonymous"></script>
54
55
56
57
58  <meta name="description" content="A free online stopwatch with a big, easy-to-read display and centisecond precision. Start, stop and reset with keyboard shortcuts — no sign-up.">
59  <meta name="keywords" content="online stopwatch, stopwatch, free stopwatch, stopwatch online, free online stopwatch, digital stopwatch, stopwatch timer, milliseconds, precise timing">
60  <link rel="canonical" href="https://visualtimer.com/timers/online-stopwatch/">
61  
62  <link rel="alternate" hreflang="en" href="https://visualtimer.com/timers/online-stopwatch/">
63  <link rel="alternate" hreflang="es" href="https://visualtimer.com/es/cronometro/">
64  <link rel="alternate" hreflang="de" href="https://visualtimer.com/de/stoppuhr/">
65  <link rel="alternate" hreflang="fr" href="https://visualtimer.com/fr/chronometre/">
66  <link rel="alternate" hreflang="pt" href="https://visualtimer.com/pt/cronometro/">
67  <link rel="alternate" hreflang="nl" href="https://visualtimer.com/nl/stopwatch/">
68  <link rel="alternate" hreflang="it" href="https://visualtimer.com/it/cronometro/">
69  <link rel="alternate" hreflang="sv" href="https://visualtimer.com/sv/stoppur/">
70  <link rel="alternate" hreflang="no" href="https://visualtimer.com/no/stoppeklokke/">
71  <link rel="alternate" hreflang="da" href="https://visualtimer.com/da/stopur/">
72  <link rel="alternate" hreflang="fi" href="https://visualtimer.com/fi/sekuntikello/">
73  <link rel="alternate" hreflang="ja" href="https://visualtimer.com/ja/stopwatch/">
74  <link rel="alternate" hreflang="ko" href="https://visualtimer.com/ko/stopwatch/">
75  <link rel="alternate" hreflang="x-default" href="https://visualtimer.com/timers/online-stopwatch/">
76  
77  <link rel="stylesheet" href="/styles.css">
78
79  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
80  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
81  <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
82  <link rel="manifest" href="/site.webmanifest">
83  <link rel="shortcut icon" href="/favicon.ico">
84  <meta name="theme-color" content="#1a1a1a">
85
86  <meta property="og:title" content="Online Stopwatch - Free Online Timer">
87  <meta property="og:description" content="A free online stopwatch with a big, easy-to-read display and centisecond precision. Start, stop and reset with keyboard shortcuts — no sign-up.">
88  <meta property="og:type" content="website">
89  <meta property="og:url" content="https://visualtimer.com/timers/online-stopwatch/">
90  <meta property="og:site_name" content="Visual Timer">
91  <meta property="og:locale" content="en_US">
92  <meta property="og:image" content="https://visualtimer.com/images/og/online-stopwatch.png">
93
94  <meta name="twitter:card" content="summary_large_image">
95  <meta name="twitter:title" content="Online Stopwatch - Free Online Timer">
96  <meta name="twitter:description" content="A free online stopwatch with a big, easy-to-read display and centisecond precision. Start, stop and reset with keyboard shortcuts — no sign-up.">
97  <meta name="twitter:image" content="https://visualtimer.com/images/og/online-stopwatch.png">
98
99  
99<script type="application/ld+json">
100  {
101    "@context": "https://schema.org",
102    "@type": "WebApplication",
103    "name": "Online Stopwatch",
104    "description": "A free online stopwatch with a big, easy-to-read display and centisecond precision. Start, stop and reset with keyboard shortcuts — no sign-up.",
105    "url": "https://visualtimer.com/timers/online-stopwatch/",
106    "applicationCategory": "UtilitiesApplication",
107    "operatingSystem": "Any",
108    "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }
109  }
110  </script>
110
111  
112  
112<script type="application/ld+json">
113  {
114    "@context": "https://schema.org",
115    "@type": "BreadcrumbList",
116    "itemListElement": [
117      { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://visualtimer.com/" },
118      { "@type": "ListItem", "position": 2, "name": "All Timers", "item": "https://visualtimer.com/timers/" },
119      { "@type": "ListItem", "position": 3, "name": "Online Stopwatch", "item": "https://visualtimer.com/timers/online-stopwatch/" }
120    ]
121  }
122  </script>
122
123  
124</head>
125<body data-timer-mode="large" data-timer-duration="">
126  <header class="site-header">
127  <a href="/" class="site-logo">visualtimer.com</a>
128  <button class="search-toggle" id="search-toggle" aria-label="Search" title="Search (Ctrl+K)">
129    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" aria-hidden="true"><circle cx="11" cy="11" r="7"></circle><line x1="21" y1="21" x2="16.3" y2="16.3"></line></svg>
130  </button>
131  <button class="theme-toggle" id="theme-toggle" aria-label="Toggle dark/light mode" title="Toggle dark/light mode">
132    <span class="theme-icon-dark">&#9790;</span>
133    <span class="theme-icon-light">&#9728;</span>
134  </button>
135  <button class="settings-toggle" id="settings-toggle" aria-label="Settings" title="Settings">
136    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
137  </button>
138  <button class="hamburger" id="hamburger" aria-label="Toggle menu">
139    <span></span>
140    <span></span>
141    <span></span>
142  </button>
143  <nav class="nav-menu" id="nav-menu">
144    <a href="/" class="nav-item">Visual Timer</a>
145    <a href="/timers/online-stopwatch/" class="nav-item active">Stopwatch</a>
146    <a href="/timers/lap-timer/" class="nav-item">Lap Timer</a>
147    <a href="/timers/multi-stopwatch/" class="nav-item">Multi Stopwatch</a>
148    <a href="/timers/pomodoro-timer/" class="nav-item">Pomodoro</a>
149    <a href="/timers/egg-timer/" class="nav-item">Egg Timer</a>
150    <a href="/timers/breathing-timer/" class="nav-item">Breathing</a>
151    <div class="nav-dropdown">
152      <button class="nav-item nav-dropdown-toggle">Other <span class="nav-arrow">▼</span></button>
153      <div class="nav-dropdown-content">
154        <a href="/timers/interactive-timer/" class="nav-item">Interactive Timer</a>
155        <a href="/timers/digital-timer/" class="nav-item">Digital Timer</a>
156        <a href="/timers/bomb-timer/" class="nav-item">Bomb Timer</a>
157        <a href="/timers/fake-timer/" class="nav-item">Fake Timer</a>
158        <a href="/timers/candle-timer/" class="nav-item">Candle Timer</a>
159        <a href="/timers/toddler-timer/" class="nav-item">Toddler Timer</a>
160        <a href="/timers/chess-clock/" class="nav-item">Chess Clock</a>
161        <a href="/timers/race-timer/" class="nav-item">Race Timer</a>
162        <a href="/timers/boxing-timer/" class="nav-item">Boxing Timer</a>
163        <a href="/timers/hiit-timer/" class="nav-item">HIIT Timer</a>
164        <a href="/timers/tabata-timer/" class="nav-item">Tabata Timer</a>
165        <a href="/timers/exam-timer/" class="nav-item">Exam Timer</a>
166        <a href="/timers/stretch-timer/" class="nav-item">Stretch Timer</a>
167        <a href="/timers/focus-timer/" class="nav-item">Focus Timer</a>
168        <a href="/timers/writing-timer/" class="nav-item">Writing Timer</a>
169        <a href="/timers/emom-timer/" class="nav-item">EMOM Timer</a>
170        <a href="/timers/presentation-timer/" class="nav-item">Presentation Timer</a>
171        <a href="/timers/debate-timer/" class="nav-item">Debate Timer</a>
172        <a href="/timers/speech-timer/" class="nav-item">Speech Timer</a>
173        <a href="/timers/meditation-timer/" class="nav-item">Meditation Timer</a>
174        <a href="/timers/contraction-timer/" class="nav-item">Contraction Timer</a>
175        <a href="/timers/julian-date/" class="nav-item">Julian Date</a>
176        <a href="/timers/liquid-timer/" class="nav-item">Liquid Timer</a>
177        <a href="/timers/sand-timer/" class="nav-item">Sand Timer</a>
178        <a href="/timers/rainbow-timer/" class="nav-item">Rainbow Timer</a>
179        <a href="/timers/pixel-timer/" class="nav-item">Pixel Grid</a>
180        <a href="/timers/rings-timer/" class="nav-item">Rings Timer</a>
181        <a href="/timers/circular-timer/" class="nav-item">Circular Timer</a>
182        <a href="/timers/picture-reveal-timer/" class="nav-item">Picture Reveal Timer</a>
183        <a href="/timers/sun-timer/" class="nav-item">Sun Timer</a>
184        <a href="/timers/spread-timer/" class="nav-item">Spread Timer</a>
185        <a href="/timers/maze-timer/" class="nav-item">Maze Timer</a>
186        <a href="/timers/blocks-timer/" class="nav-item">Blocks Timer</a>
187        <a href="/timers/breath-timer/" class="nav-item">Breath Timer</a>
188        <a href="/timers/moon-timer/" class="nav-item">Moon Timer</a>
189        <a href="/timers/bubble-timer/" class="nav-item">Bubble Timer</a>
190        <a href="/timers/coral-timer/" class="nav-item">Coral Timer</a>
191        <a href="/timers/lichen-timer/" class="nav-item">Lichen Timer</a>
192        <a href="/timers/forest-fire-timer/" class="nav-item">Forest Fire Timer</a>
193        <a href="/timers/frost-timer/" class="nav-item">Frost Timer</a>
194        <a href="/timers/progress-timer/" class="nav-item">Progress Timer</a>
195        <a href="/timers/repeat-timer/" class="nav-item">Repeat Timer</a>
196        <a href="/timers/random-timer/" class="nav-item">Random Timer</a>
197        <a href="/timers/salary-calculator/" class="nav-item">Salary Calculator</a>
198        <a href="/timers/flip-clock/" class="nav-item">Flip Clock</a>
199        <a href="/timers/timer-tab/" class="nav-item">Timer in a Tab</a>
200        <a href="/tools/bingo-caller/" class="nav-item">Bingo Caller</a>
201        <a href="/tools/random-group-generator/" class="nav-item">Random Group Generator</a>
202        <a href="/tools/random-name-picker/" class="nav-item">Random Name Picker</a>
203        <a href="/tools/noise-meter/" class="nav-item">Noise Meter</a>
204        <a href="/tools/seating-chart/" class="nav-item">
204Seating Chart</a>
205        <a href="/tools/typing-speed-test/" class="nav-item">Typing Speed Test</a>
206        <a href="/tools/teleprompter/" class="nav-item">Teleprompter</a>
207        <a href="/tools/reaction-time-test/" class="nav-item">Reaction Time Test</a>
208        <a href="/tools/metronome/" class="nav-item">Metronome</a>
209        <a href="/tools/rock-paper-scissors/" class="nav-item">Rock Paper Scissors</a>
210        <a href="/tools/dice-roller/" class="nav-item">Dice Roller</a>
211        <a href="/tools/flip-a-coin/" class="nav-item">Flip a Coin</a>
212        <a href="/tools/what-time-is-sunset/" class="nav-item">Sunset Time</a>
213        <a href="/tools/what-time-is-sunrise/" class="nav-item">Sunrise Time</a>
214        <a href="/tools/golden-hour/" class="nav-item">Golden Hour</a>
215        <a href="/tools/sun-and-sky/" class="nav-item">Sun &amp; Sky</a>
216        <a href="/tools/moon-phase/" class="nav-item">Moon Phase</a>
217        <a href="/tools/teaching-clock/" class="nav-item">Teaching Clock</a>
218        <a href="/tools/analog-clock/" class="nav-item">Analog Clock</a>
219        <a href="/timers/analog-stopwatch/" class="nav-item">Analog Stopwatch</a>
220        <a href="/tools/classroom-scoreboard/" class="nav-item">Scoreboard</a>
221        <a href="/tools/random-number-generator/" class="nav-item">Random Number</a>
222        <a href="/tools/timer-emoji/" class="nav-item">Timer Emoji</a>
223        <a href="/tools/embed-timer/" class="nav-item">Embed a Timer</a>
224        <a href="/tools/times-tables/" class="nav-item">Times Tables</a>
225        <a href="/tools/multiplication-grid-game/" class="nav-item">Multiplication Game</a>
226        <a href="/tools/world-cup-schedule/" class="nav-item">World Cup Schedule</a>
227      </div>
228    </div>
229    <div class="nav-dropdown">
230      <button class="nav-item nav-dropdown-toggle">Calculators <span class="nav-arrow">▼</span></button>
231      <div class="nav-dropdown-content">
232        <a href="/calculators/time-converter/" class="nav-item">Time Converter</a>
233        <a href="/calculators/time-duration-calculator/" class="nav-item">Time Duration Calculator</a>
234        <a href="/calculators/time-to-decimal/" class="nav-item">Time to Decimal</a>
235        <a href="/calculators/decimal-to-time/" class="nav-item">Decimal to Time</a>
236        <a href="/calculators/average-time-calculator/" class="nav-item">Average Time Calculator</a>
237        <a href="/calculators/time-addition-calculator/" class="nav-item">Time Addition Calculator</a>
238        <a href="/calculators/elapsed-time-calculator/" class="nav-item">Elapsed Time Calculator</a>
239        <a href="/calculators/time-and-a-half-calculator/" class="nav-item">Time and a Half Calculator</a>
240        <a href="/calculators/time-card-calculator/" class="nav-item">Time Card Calculator</a>
241        <a href="/calculators/days-until-date/" class="nav-item">Days Until Date</a>
242        <a href="/calculators/days-left-in-year/" class="nav-item">Days Left in Year</a>
243        <a href="/calculators/days-passed-in-year/" class="nav-item">Days Passed in Year</a>
244        <a href="/calculators/zulu-time/" class="nav-item">Zulu Time</a>
245        <a href="/calculators/military-time/" class="nav-item">Military Time</a>
246        <a href="/calculators/speech-time-calculator/" class="nav-item">Speech Time Calculator</a>
247        <a href="/calculators/time-zone-converter/" class="nav-item">Time Zone Converter</a>
248        <a href="/calculators/how-many-time-zones/" class="nav-item">How Many Time Zones</a>
249        <a href="/calculators/daylight-saving-time/" class="nav-item">Daylight Saving</a>
250        <a href="/calculators/est-to-pst/" class="nav-item">EST to PST</a>
251        <a href="/calculators/age-calculator/" class="nav-item">Age Calculator</a>
252        <a href="/calculators/pace-calculator/" class="nav-item">Pace Calculator</a>
253        <a href="/calculators/sleep-calculator/" class="nav-item">Sleep Calculator</a>
254      </div>
255    </div>
256  </nav>
257</header>
258<div class="settings-overlay" id="settings-overlay" hidden>
259  <div class="settings-box" role="dialog" aria-modal="true" aria-label="Settings">
260    <div class="settings-head">
261      <h2>Settings</h2>
262      <button class="settings-close" id="settings-close" aria-label="Close settings">&#10005;</button>
263    </div>
264    <div class="settings-list">
265      <label class="setting-row">
266        <span class="setting-text">
267          <span class="setting-name">Show numeric time in fullscreen</span>
268          <span class="setting-desc">When off, fullscreen shows only the visualisation - for example just the traffic light - with no digits.</span>
269        </span>
270        <span class="setting-switch">
271          <input type="checkbox" id="set-fs-time" data-setting="fsTime" checked>
272          <span class="switch-track"></span>
273        </span>
274      </label>
275    </div>
276    <div class="settings-actions">
277      <button type="button" class="settings-action" id="settings-contact">
278        <span aria-hidden="true">&#9993;</span> Contact us
279      </button>
280      
281      <a class="settings-action" href="https://buymeacoffee.com/visualtimer.com" target="_blank" rel="noopener">
282        <span aria-hidden="true">&#9749;</span> Buy me a coffee
283      </a>
284      
285    </div>
286  </div>
287</div>
288<script>
289(function() {
290  var KEY = 'vtSettings';
291  function load() { try { return JSON.parse(localStorage.getItem(KEY)) || {}; } catch (e) { return {}; } }
292  function save(s) { try { localStorage.setItem(KEY, JSON.stringify(s)); } catch (e) {} }
293
294  var settings = load();
295  if (settings.fsTime === undefined) settings.fsTime = true; // default: show time
296
297  // Apply settings to the document (runs on every page load).
298  function apply() {
299    document.documentElement.classList.toggle('fs-hide-time', settings.fsTime === false);
300  }
301  apply();
302
303  var overlay = document.getElementById('settings-overlay');
304  var openBtn = document.getElementById('settings-toggle');
305  var closeBtn = document.getElementById('settings-close');
306
307  function open() {
308    // Sync the switches to the stored values before showing.
309    document.querySelectorAll('#settings-overlay [data-setting]').forEach(function(el) {
310      el.checked = settings[el.dataset.setting] !== false;
311    });
312    if (overlay) overlay.hidden = false;
313  }
314  function close() { if (overlay) overlay.hidden = true; }
315
316  if (openBtn) openBtn.addEventListener('click', open);
317  if (closeBtn) closeBtn.addEventListener('click', close);
318  if (overlay) overlay.addEventListener('click', function(e) { if (e.target === overlay) close(); });
319  document.addEventListener('keydown', function(e) {
320    if (e.key === 'Escape' && overlay && !overlay.hidden) close();
321  });
322
323  document.querySelectorAll('#settings-overlay [data-setting]').forEach(function(el) {
324    el.addEventListener('change', function() {
325      settings[el.dataset.setting] = el.checked;
326      save(settings);
327      apply();
328    });
329  });
330
331  // Contact: reuse the existing contact modal from the footer.
332  var contactBtn = document.getElementById('settings-contact');
333  if (contactBtn) {
334    contactBtn.addEventListener('click', function() {
335      close();
336      var cm = document.getElementById('contact-modal');
337      if (cm) cm.classList.add('open');
338    });
339  }
340})();
341</script>
341
342
343<div class="search-overlay" id="search-overlay" hidden>
344  <div class="search-box" role="dialog" aria-label="Site search">
345    <input type="text" id="search-input" placeholder="Search timers, tools, calculators…" autocomplete="off" spellcheck="false">
346    <ul class="search-results" id="search-results"></ul>
347    <div class="search-empty" id="search-empty" hidden>No matches — try a different word.</div>
348  </div>
349</div>
350<script>
351(function() {
352  var overlay = document.getElementById('search-overlay');
353  var input = document.getElementById('search-input');
354  var list = document.getElementById('search-results');
355  var empty = document.getElementById('search-empty');
356  var toggle = document.getElementById('search-toggle');
357  var index = null;
358  var activeIdx = -1;
359
360  function openSearch() {
361    overlay.hidden = false;
362    input.value = '';
363    list.innerHTML = '';
364    empty.hidden = true;
365    activeIdx = -1;
366    input.focus();
367    if (!index) {
368      fetch('/search-index.json').then(function(r) { return r.json(); }).then(function(data) {
369        var seen = {};
370        index = data.filter(function(d) {
371          if (seen[d.u]) return false;
372          seen[d.u] = true;
373          return true;
374        });
375      }).catch(function() { index = []; });
376    }
377  }
378
379  function closeSearch() {
380    overlay.hidden = true;
381  }
382
383  function shortTitle(t) {
384    return t.split(' - ')[0].split(' | ')[0];
385  }
386
387  function search(q) {
388    var tokens = q.toLowerCase().split(/\s+/).filter(Boolean);
389    if (!tokens.length || !index) return [];
390    var scored = [];
391    for (var i = 0; i < index.length; i++) {
392      var t = index[i].t.toLowerCase();
393      var score = 0, ok = true;
394      for (var j = 0; j < tokens.length; j++) {
395        var pos = t.indexOf(tokens[j]);
396        if (pos === -1) { ok = false; break; }
397        score += pos;
398        // word-start matches rank above mid-word ones
399        if (pos === 0 || t.charAt(pos - 1) === ' ') score -= 20;
400      }
401      if (ok) scored.push([score, index[i]]);
402    }
403    scored.sort(function(a, b) { return a[0] - b[0]; });
404    return scored.slice(0, 12).map(function(s) { return s[1]; });
405  }
406
407  function render() {
408    var results = search(input.value);
409    list.innerHTML = '';
410    activeIdx = results.length ? 0 : -1;
411    empty.hidden = !(input.value.trim() && index && !results.length);
412    results.forEach(function(r, i) {
413      var li = document.createElement('li');
414      var a = document.createElement('a');
415      a.href = r.u;
416      a.textContent = shortTitle(r.t);
417      if (i === 0) li.className = 'active';
418      li.appendChild(a);
419      li.addEventListener('mouseenter', function() { setActive(i); });
420      list.appendChild(li);
421    });
422  }
423
424  function setActive(i) {
425    var items = list.children;
426    if (activeIdx >= 0 && items[activeIdx]) items[activeIdx].className = '';
427    activeIdx = i;
428    if (items[activeIdx]) items[activeIdx].className = 'active';
429  }
430
431  if (toggle) toggle.addEventListener('click', openSearch);
432
433  overlay.addEventListener('click', function(e) {
434    if (e.target === overlay) closeSearch();
435  });
436
437  input.addEventListener('input', function() {
438    if (index) { render(); return; }
439    // index still loading — retry shortly
440    setTimeout(render, 200);
441  });
442
443  input.addEventListener('keydown', function(e) {
444    var items = list.children;
445    if (e.key === 'ArrowDown' && items.length) {
446      e.preventDefault();
447      setActive(Math.min(activeIdx + 1, items.length - 1));
448    } else if (e.key === 'ArrowUp' && items.length) {
449      e.preventDefault();
450      setActive(Math.max(activeIdx - 1, 0));
451    } else if (e.key === 'Enter' && activeIdx >= 0 && items[activeIdx]) {
452      window.location.href = items[activeIdx].querySelector('a').href;
453    } else if (e.key === 'Escape') {
454      closeSearch();
455    }
456  });
457
458  document.addEventListener('keydown', function(e) {
459    if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k') {
460      e.preventDefault();
461      overlay.hidden ? openSearch() : closeSearch();
462    } else if (e.key === '/' && overlay.hidden) {
463      var tag = e.target && e.target.tagName;
464      if (tag !== 'INPUT' && tag !== 'TEXTAREA' && !(e.target && e.target.isContentEditable)) {
465        e.preventDefault();
466        openSearch();
467      }
468    } else if (e.key === 'Escape' && !overlay.hidden) {
469      closeSearch();
470    }
471  });
472})();
473</script>
vendor: 1 bytes, line 473
473
474<script>
475(function() {
476  var hamburger = document.getElementById('hamburger');
477  var navMenu = document.getElementById('nav-menu');
478
479  if (hamburger && navMenu) {
480    hamburger.dataset.initialized = 'true';
481    hamburger.addEventListener('click', function(e) {
482      e.preventDefault();
483      e.stopPropagation();
484      hamburger.classList.toggle('active');
485      navMenu.classList.toggle('open');
486    });
487  }
488
489  // Close menu when clicking outside
490  document.addEventListener('click', function(e) {
491    if (navMenu && hamburger && !navMenu.contains(e.target) && !hamburger.contains(e.target)) {
492      hamburger.classList.remove('active');
493      navMenu.classList.remove('open');
494    }
495  });
496
497  // Close menu when clicking a link
498  document.querySelectorAll('.nav-menu .nav-item:not(.nav-dropdown-toggle)').forEach(function(link) {
499    link.addEventListener('click', function() {
500      hamburger.classList.remove('active');
501      navMenu.classList.remove('open');
502    });
503  });
504
505  // Theme toggle
506  var themeToggle = document.getElementById('theme-toggle');
507  var savedTheme = localStorage.getItem('theme');
508
509  // Apply saved theme or default to dark
510  if (savedTheme === 'light') {
511    document.documentElement.classList.add('light-mode');
512  }
513
514  if (themeToggle) {
515    themeToggle.addEventListener('click', function() {
516      document.documentElement.classList.toggle('light-mode');
517      var isLight = document.documentElement.classList.contains('light-mode');
518      localStorage.setItem('theme', isLight ? 'light' : 'dark');
519    });
520  }
521})();
522</script>
522
523
524
525  
526
527  <main class="container">
528    
529      <div id="large-mode" class="mode fs-full-ui active">
530  <h1>Online Stopwatch</h1>
531  <div class="large-display">
532    <span class="time time-bold" id="large-time">00:00.00</span>
533  </div>
534  <div class="controls">
535    <button class="btn btn-start" id="large-start">Start</button>
536    <button class="btn btn-reset" id="large-reset">Reset</button>
537  </div>
538  <button class="fullscreen-btn" data-fullscreen="large-mode">⛶ Fullscreen</button>
539
540  <section class="content">
541    <h2>Free Online Stopwatch</h2>
542    <p>A simple, accurate online stopwatch with a large, easy-to-read display. Measures time with centisecond (1/100th second) precision. No downloads required - works instantly in your browser on any device.</p>
543
544    <h2>Stopwatch Features</h2>
545    <ul>
546      <li><strong>Centisecond precision</strong> - Accurate to 1/100th of a second</li>
547      <li><strong>Large display</strong> - Easy to read from a distance</li>
548      <li><strong>Keyboard shortcuts</strong> - Press Space to start/stop</li>
549      <li><strong>Works offline</strong> - Once loaded, no internet needed</li>
550      <li><strong>Mobile friendly</strong> - Works on phones, tablets, and computers</li>
551    </ul>
552
553    <h2>Perfect For</h2>
554    <ul>
555      <li><strong>Exercise and fitness</strong> - Track workout duration, planks, rest periods, and interval training</li>
556      <li><strong>Sports timing</strong> - Time sprints, laps, swimming, and athletic events</li>
557      <li><strong>Cooking</strong> - Time recipes that need precise durations</li>
558      <li><strong>Presentations</strong> - Practice and time your talks and speeches</li>
559      <li><strong>Games and competitions</strong> - Time turns, challenges, and speed runs</li>
560      <li><strong>Productivity</strong> - Track how long tasks actually take with time tracking</li>
561      <li><strong>Science experiments</strong> - Measure reaction times and durations</li>
562      <li><strong>Music practice</strong> - Time practice sessions and tempo exercises</li>
563    </ul>
564
565    <h2>How to Use the Stopwatch</h2>
566    <ol>
567      <li>Click <strong>Start</strong> or press <kbd>Space</kbd> to begin timing</li>
568      <li>Click <strong>Stop</strong> or press <kbd>Space</kbd> again to pause</li>
569      <li>Click <strong>Reset</strong> to return to zero</li>
570    </ol>
571
572    <h2>Need More Features?</h2>
573    <p>Check out our other timing tools:</p>
574    <ul>
575      <li><a href="/timers/lap-timer/">Lap Timer</a> - Record split times and lap times</li>
576      <li><a href="/timers/multi-stopwatch/">Multi Stopwatch</a> - Time multiple participants simultaneously</li>
577      <li><a href="/timers/race-timer/">Race Timer</a> - Record finish times for races</li>
578      <li><a href="/timers/countup-timer/">Count Up Timer</a> - Elapsed time tracker</li>
579    </ul>
580
581    <h2>Stopwatch vs Timer</h2>
582    <p>A stopwatch counts up from zero to measure elapsed time, while a timer counts down from a set duration. Use a stopwatch when you want to measure how long something takes. Use a <a href="/timers/countdown-timer/">countdown timer</a> when you need to track remaining time.</p>
583  </section></div>
584
585    
586  </main>
587
588  
589
590  
591
592  <section class="related-timers">
593    <h2>Related Timers</h2>
594    <div class="related-timers-grid">
595      
596        <a href="/timers/online-stopwatch/">Stopwatch</a>
597        <a href="/timers/analog-stopwatch/">Analog Stopwatch</a>
598        <a href="/timers/lap-timer/">Lap Timer</a>
599        <a href="/timers/race-timer/">Race Timer</a>
600        <a href="/timers/multi-stopwatch/">Multi Stopwatch</a>
601        <a href="/">Visual Timer</a>
602        <a href="/timers/timer-tools/">All Tools</a>
603      
604    </div>
605  </section>
606
607  
608<section class="ios-app-section">
609  <div class="ios-app-content">
610    <div class="ios-app-icon">
611      <img src="/images/apps/multi-stopwatch/icon.jpg" alt="Multi-Stopwatch iOS App Icon">
612    </div>
613    <div class="ios-app-details">
614      <h3>Multi-Stopwatch - Multiple Timers</h3>
615      <p>Time multiple participants simultaneously with independent stopwatches. Perfect for coaches, races, group activities, and timing multiple people at once.</p>
616      <div class="ios-app-features">
617        <span class="ios-app-feature">Multiple stopwatches</span>
618        <span class="ios-app-feature">Independent controls</span>
619        <span class="ios-app-feature">Lap times</span>
620        <span class="ios-app-feature">Export results</span>
621      </div>
622      <a href="https://apps.apple.com/app/id933638040" class="app-store-btn">Download on the App Store</a>
623    </div>
624  </div>
625  <div class="app-screenshots">
626    <img src="/images/apps/multi-stopwatch/screenshot-1.png" alt="Multi-Stopwatch Screenshot 1" loading="lazy">
627    <img src="/images/apps/multi-stopwatch/screenshot-2.png" alt="Multi-Stopwatch Screenshot 2" loading="lazy">
628    <img src="/images/apps/multi-stopwatch/screenshot-3.png" alt="Multi-Stopwatch Screenshot 3" loading="lazy">
629    <img src="/images/apps/multi-stopwatch/screenshot-4.png" alt="Multi-Stopwatch Screenshot 4" loading="lazy">
630    <img src="/images/apps/multi-stopwatch/screenshot-5.png" alt="Multi-Stopwatch Screenshot 5" loading="lazy">
631  </div>
632</section>
633
634
635
636  <footer class="site-footer">
637  <div class="footer-content">
638    <div class="footer-columns">
639      <div class="footer-column">
640        <h3>Visual Timers</h3>
641        <ul>
642          <li><a href="/timers/visual-timer/">Visual Timer</a></li>
643          <li><a href="/timers/minute-timers/">Minute Timers (1&ndash;60)</a></li>
644          <li><a href="/timers/sand-timer/">Sand Timer</a></li>
645          <li><a href="/timers/liquid-timer/">Liquid Timer</a></li>
646          <li><a href="/timers/rainbow-timer/">Rainbow Timer</a></li>
647          <li><a href="/timers/hourglass-timer/">Hourglass Timer</a></li>
648          <li><a href="/timers/circular-timer/">Circular Timer</a></li>
649          <li><a href="/timers/radial-timer/">Radial Timer</a></li>
650          <li><a href="/timers/rings-timer/">Rings Timer</a></li>
651          <li><a href="/timers/progress-timer/">Progress Timer</a></li>
652          <li><a href="/timers/pixel-timer/">Pixel Timer</a></li>
653          <li><a href="/timers/blocks-timer/">Blocks Timer</a></li>
654          <li><a href="/timers/candle-timer/">Candle Timer</a></li>
655          <li><a href="/timers/aesthetic-timer/">Aesthetic Timer</a></li>
656          <li><a href="/timers/picture-reveal-timer/">Picture Reveal Timer</a></li>
657          <li><a href="/timers/heart-timer/">Heart Timer</a></li>
658          <li><a href="/timers/moon-timer/">Moon Timer</a></li>
659          <li><a href="/timers/sun-timer/">Sun Timer</a></li>
660          <li><a href="/timers/bubble-timer/">Bubble Timer</a></li>
661          <li><a href="/timers/coral-timer/">Coral Timer</a></li>
662          <li><a href="/timers/lichen-timer/">Lichen Timer</a></li>
663          <li><a href="/timers/frost-timer/">Frost Timer</a></li>
664          <li><a href="/timers/snow-timer/">Snow Timer</a></li>
665          <li><a href="/timers/galaxy-timer/">Galaxy Timer</a></li>
666          <li><a href="/timers/lava-lamp-timer/">Lava Lamp Timer</a></li>
667          <li><a href="/timers/spinner-timer/">Spinner Timer</a></li>
668          <li><a href="/timers/flip-timer/">Flip Timer</a></li>
669          <li><a href="/timers/forest-fire-timer/">Forest Fire Timer</a></li>
670          <li><a href="/timers/maze-timer/">Maze Timer</a></li>
671          <li><a href="/timers/spread-timer/">Spread Timer</a></li>
672          <li><a href="/timers/flip-clock/">Flip Clock</a></li>
673          <li><a href="/timers/sensory-timers/">Sensory Timers</a></li>
674          <li><a href="/timers/fun-timers/">Fun Timers</a></li>
675        </ul>
676      </div>
677      <div class="footer-column">
678        <h3>Other Tools</h3>
679        <ul>
680          <li><a href="/timers/interactive-timer/">Interactive Timer</a></li>
681          <li><a href="/timers/digital-timer/">Digital Timer</a></li>
682          <li><a href="/timers/virtual-timer/">Virtual Timer</a></li>
683          <li><a href="/timers/bomb-timer/">Bomb Timer</a></li>
684          <li><a href="/timers/fake-timer/">Fake Timer (Prank)</a></li>
685          <li><a href="/timers/ticking-timer/">Ticking Timer</a></li>
686          <li><a href="/timers/no-contact-timer/">No Contact Timer</a></li>
687          <li><a href="/timers/toddler-timer/">Toddler Timer</a></li>
688          <li><a href="/timers/online-stopwatch/">Online Stopwatch</a></li>
689          <li><a href="/timers/analog-stopwatch/">Analog Stopwatch</a></li>
690          <li><a href="/timers/lap-timer/">Lap Timer</a></li>
691          <li><a href="/timers/race-timer/">Race Timer</a></li>
692          <li><a href="/timers/multi-stopwatch/">Multi Stopwatch</a></li>
693          <li><a href="/timers/multi-timer/">Multiple Timers</a></li>
694          <li><a href="/timers/chess-clock/">Chess Clock</a></li>
695          <li><a href="/timers/presentation-timer/">Presentation Timer</a></li>
696          <li><a href="/timers/debate-timer/">Debate Timer</a></li>
697          <li><a href="/timers/speech-timer/">Speech Timer</a></li>
698          <li><a href="/timers/traffic-light-timer/">Traffic Light Timer</a></li>
699          <li><a href="/timers/contraction-timer/">Contraction Tracker</a></li>
700          <li><a href="/timers/teeth-brushing-timer/">Teeth Brushing Timer</a></li>
701          <li><a href="/timers/popcorn-timer/">Popcorn Timer</a></li>
702          <li><a href="/timers/breath-timer/">Breath Timer</a></li>
703          <li><a href="/timers/salary-calculator/">Salary Calculator</a></li>
704          <li><a href="/timers/repeat-timer/">Repeat Timer</a></li>
705          <li><a href="/timers/random-timer/">Random Timer</a></li>
706          <li><a href="/timers/timer-tab/">Timer in a Tab</a></li>
707          <li><a href="/timers/boxing-timer/">Boxing Timer</a></li>
708          <li><a href="/timers/emom-timer/">EMOM Timer</a></li>
709          <li><a href="/timers/hiit-timer/">HIIT Timer</a></li>
710          <li><a href="/timers/tabata-timer/">Tabata Timer</a></li>
711          <li><a href="/timers/exam-timer/">Exam Timer</a></li>
712          <li><a href="/timers/fullscreen-timer/">Fullscreen Timer</a></li>
713          <li><a href="/timers/big-timer/">Big Timer</a></li>
714          <li><a href="/timers/stretch-timer/">Stretch Timer</a></li>
715          <li><a href="/timers/focus-timer/">Focus Timer</a></li>
716          <li><a href="/timers/20-20-20-timer/">20-20-20 Eye Timer</a></li>
717          <li><a href="/timers/agenda-timer/">Agenda Timer</a></li>
718          <li><a href="/timers/coffee-brew-timer/">Coffee Brew Timer</a></li>
719          <li><a href="/timers/ice-bath-timer/">Ice Bath Timer</a></li>
720        </ul>
721      </div>
722      <div class="footer-column">
723        <h3>Classroom Tools</h3>
724        <ul>
725          <li><a href="/tools/bingo-caller/">Bingo Caller</a></li>
726          <li><a href="/tools/random-group-generator/">Random Group Generator</a></li>
727          <li><a href="/tools/random-name-picker/">Random Name Picker</a></li>
728          <li><a href="/tools/noise-meter/">Noise Meter</a></li>
729          <li><a href="/tools/seating-chart/">
729Seating Chart</a></li>
730          <li><a href="/tools/typing-speed-test/">Typing Speed Test</a></li>
731          <li><a href="/tools/teleprompter/">Teleprompter</a></li>
732          <li><a href="/tools/reaction-time-test/">Reaction Time Test</a></li>
733          <li><a href="/tools/metronome/">Metronome</a></li>
734          <li><a href="/tools/rock-paper-scissors/">Rock Paper Scissors</a></li>
735          <li><a href="/tools/dice-roller/">Dice Roller</a></li>
736          <li><a href="/tools/flip-a-coin/">Flip a Coin</a></li>
737          <li><a href="/tools/sun-and-sky/">Sun &amp; Sky</a></li>
738          <li><a href="/tools/what-time-is-sunset/">What Time Is Sunset</a></li>
739          <li><a href="/tools/what-time-is-sunrise/">What Time Is Sunrise</a></li>
740          <li><a href="/tools/golden-hour/">Golden Hour</a></li>
741          <li><a href="/tools/blue-hour/">Blue Hour</a></li>
742          <li><a href="/tools/magic-hour/">Magic Hour</a></li>
743          <li><a href="/tools/dawn/">Dawn</a></li>
744          <li><a href="/tools/dusk/">Dusk</a></li>
745          <li><a href="/tools/twilight/">Twilight</a></li>
746          <li><a href="/tools/nautical-twilight/">Nautical Twilight</a></li>
747          <li><a href="/tools/astronomical-twilight/">Astronomical Twilight</a></li>
748          <li><a href="/tools/nautical-dawn/">Nautical Dawn</a></li>
749          <li><a href="/tools/nautical-dusk/">Nautical Dusk</a></li>
750          <li><a href="/tools/astronomical-dawn/">Astronomical Dawn</a></li>
751          <li><a href="/tools/astronomical-dusk/">Astronomical Dusk</a></li>
752          <li><a href="/tools/timer-emoji/">Timer Emoji</a></li>
753          <li><a href="/tools/embed-timer/">Embed a Timer</a></li>
754          <li><a href="/tools/moon-phase/">Moon Phase</a></li>
755          <li><a href="/tools/teaching-clock/">Teaching Clock</a></li>
756          <li><a href="/tools/analog-clock/">Analog Clock</a></li>
757          <li><a href="/tools/digital-clock/">Digital Clock</a></li>
758          <li><a href="/tools/online-clock/">Online Clock</a></li>
759          <li><a href="/tools/online-alarm-clock/">Online Alarm Clock</a></li>
760          <li><a href="/tools/world-clock/">World Clock</a></li>
761          <li><a href="/tools/video-timer/">Video Timer</a></li>
762          <li><a href="/tools/cube-timer/">Rubik's Cube Timer</a></li>
763          <li><a href="/tools/classroom-scoreboard/">Classroom Scoreboard</a></li>
764          <li><a href="/tools/random-number-generator/">Random Number Generator</a></li>
765          <li><a href="/tools/times-tables/">Times Tables</a></li>
766          <li><a href="/tools/multiplication-grid-game/">Multiplication Game</a></li>
767          <li><a href="/tools/world-cup-schedule/">World Cup Schedule</a></li>
768          <li><a href="/timers/presentation-timer/">Presentation Timer</a></li>
769          <li><a href="/timers/classroom-timer/">Classroom Timer</a></li>
770          <li><a href="/">Visual Timer</a></li>
771          <li><a href="/timers/online-stopwatch/">Stopwatch</a></li>
772        </ul>
773      </div>
774      <div class="footer-column">
775        <h3>Categories</h3>
776        <ul>
777          <li><a href="/timers/visual-timer/">Visual Timers</a></li>
778          <li><a href="/timers/sensory-timers/">Sensory Timers</a></li>
779          <li><a href="/timers/fun-timers/">Fun Timers</a></li>
780          <li><a href="/timers/aesthetic-timer/">Aesthetic Timers</a></li>
781          <li><a href="/timers/speedrun-timer/">Speedrun Timer</a></li>
782          <li><a href="/timers/timer-for-kids/">Timer for Kids</a></li>
783          <li><a href="/timers/work-timer/">Work Timer</a></li>
784          <li><a href="/timers/20-minute-timer-with-music/">Timer with Music</a></li>
785          <li><a href="/timers/timer-videos/">Timer Videos</a></li>
786          <li><a href="/tools/stay-awake/">Stay Awake</a></li>
787          <li><a href="/timers/algorithm-timers/">Algorithm Timers</a></li>
788          <li><a href="/timers/countdowns/">Date Countdowns</a></li>
789          <li><a href="/timers/pomodoro-timer/">Pomodoro Timers</a></li>
790          <li><a href="/timers/tomato-timer/">Tomato Timer</a></li>
791          <li><a href="/timers/timer-tools/">Timer Tools</a></li>
792          <li><a href="/timers/visual-timer-autism/">Visual Timer for Autism</a></li>
793          <li><a href="/timers/visual-timers-for-adhd/">Visual Timers for ADHD</a></li>
794          <li><a href="/timers/classroom-timer/">Classroom Timer</a></li>
795          <li><a href="/timers/countdown-timer/">Countdown Timer</a></li>
796          <li><a href="/timers/countup-timer/">Count Up Timer</a></li>
797          <li><a href="/timers/custom-timer/">Custom Timer</a></li>
798          <li><a href="/timers/interval-beep-timer/">Timer That Beeps</a></li>
799          <li><a href="/apps/best-timer-apps/">Best Timer Apps</a></li>
800          <li><a href="/apps/best-clock-apps/">Best Clock Apps</a></li>
801          <li><a href="/apps/best-apps-for-teachers/">Best Apps for Teachers</a></li>
802          <li><a href="/apps/best-apps-for-parents/">Best Apps for Parents</a></li>
803          <li><a href="/apps/best-time-calculator-apps/">Best Calculator Apps</a></li>
804        </ul>
805      </div>
806      <div class="footer-column">
807        <h3>Calculators</h3>
808        <ul>
809          <li><a href="/calculators/time-converter/">Time Converter</a></li>
810          <li><a href="/calculators/time-duration-calculator/">Time Duration Calculator</a></li>
811          <li><a href="/calculators/time-to-decimal/">Time to Decimal</a></li>
812          <li><a href="/calculators/decimal-to-time/">
812Decimal to Time</a></li>
813          <li><a href="/calculators/average-time-calculator/">Average Time Calculator</a></li>
814          <li><a href="/calculators/time-addition-calculator/">Time Addition Calculator</a></li>
815          <li><a href="/calculators/elapsed-time-calculator/">Elapsed Time Calculator</a></li>
816          <li><a href="/calculators/time-and-a-half-calculator/">Time and a Half Calculator</a></li>
817          <li><a href="/calculators/time-card-calculator/">Time Card Calculator</a></li>
818          <li><a href="/calculators/days-left-in-year/">Days Left in Year</a></li>
819          <li><a href="/calculators/days-passed-in-year/">Days Passed in Year</a></li>
820          <li><a href="/calculators/days-until-date/">Days Until Date</a></li>
821          <li><a href="/calculators/zulu-time/">Zulu Time Converter</a></li>
822          <li><a href="/calculators/military-time/">Military Time</a></li>
823          <li><a href="/calculators/speech-time-calculator/">Speech Time Calculator</a></li>
824          <li><a href="/calculators/time-zone-converter/">Time Zone Converter</a></li>
825          <li><a href="/calculators/how-many-time-zones/">How Many Time Zones</a></li>
826          <li><a href="/calculators/daylight-saving-time/">Daylight Saving Time</a></li>
827          <li><a href="/calculators/est-to-pst/">EST to PST</a></li>
828          <li><a href="/calculators/est-to-gmt/">EST to GMT</a></li>
829          <li><a href="/calculators/gmt-to-ist/">GMT to IST</a></li>
830          <li><a href="/calculators/est-to-ist/">EST to IST</a></li>
831          <li><a href="/calculators/cst-to-est/">CST to EST</a></li>
832          <li><a href="/calculators/age-calculator/">Age Calculator</a></li>
833          <li><a href="/tools/life-in-weeks/">Life in Weeks</a></li>
834          <li><a href="/calculators/date-difference-calculator/">Date Difference Calculator</a></li>
835          <li><a href="/calculators/roman-numerals/">Roman Numerals Converter</a></li>
836          <li><a href="/calculators/pace-calculator/">Pace Calculator</a></li>
837          <li><a href="/calculators/sleep-calculator/">Sleep Calculator</a></li>
838          <li><a href="/calculators/hours-calculator/">Hours Calculator</a></li>
839          <li><a href="/calculators/overtime-calculator/">Overtime Calculator</a></li>
840          <li><a href="/calculators/business-days-calculator/">Business Days Calculator</a></li>
841          <li><a href="/calculators/days-since-calculator/">Days Since Calculator</a></li>
842          <li><a href="/calculators/week-of-the-year/">Week of the Year</a></li>
843          <li><a href="/calculators/minutes-to-hours/">Minutes to Hours</a></li>
844          <li><a href="/calculators/hours-to-minutes/">Hours to Minutes</a></li>
845          <li><a href="/calculators/seconds-to-hours/">Seconds to Hours</a></li>
846          <li><a href="/calculators/utc-time/">UTC Time</a></li>
847          <li><a href="/calculators/utc-to-est/">UTC to EST</a></li>
848          <li><a href="/calculators/epoch-converter/">Epoch Converter</a></li>
849          <li><a href="/calculators/age-difference-calculator/">Age Difference Calculator</a></li>
850          <li><a href="/calculators/half-birthday-calculator/">Half Birthday Calculator</a></li>
851          <li><a href="/calculators/anniversary-calculator/">Anniversary Calculator</a></li>
852          <li><a href="/calculators/pst-to-cst/">PST to CST</a></li>
853          <li><a href="/calculators/cst-to-pst/">CST to PST</a></li>
854          <li><a href="/calculators/mst-to-est/">MST to EST</a></li>
855          <li><a href="/calculators/utc-to-pst/">UTC to PST</a></li>
856          <li><a href="/calculators/utc-to-cst/">UTC to CST</a></li>
857          <li><a href="/calculators/utc-to-ist/">UTC to IST</a></li>
858          <li><a href="/calculators/gmt-to-pst/">GMT to PST</a></li>
859          <li><a href="/calculators/ist-to-cst/">IST to CST</a></li>
860        </ul>
861      </div>
862      <div class="footer-column">
863        <h3>International</h3>
864        <ul>
865          <li><a href="/es/temporizador/">🇪🇸 Temporizador Online</a></li>
866          <li><a href="/es/cronometro/">🇪🇸 Cronómetro Online</a></li>
867          <li><a href="/de/timer/">🇩🇪 Timer Online</a></li>
868          <li><a href="/de/stoppuhr/">🇩🇪 Stoppuhr Online</a></li>
869          <li><a href="/fr/minuteur/">🇫🇷 Minuteur en Ligne</a></li>
870          <li><a href="/fr/chronometre/">🇫🇷 Chronomètre en Ligne</a></li>
871          <li><a href="/pt/temporizador/">🇧🇷 Temporizador Online</a></li>
872          <li><a href="/pt/cronometro/">🇧🇷 Cronômetro Online</a></li>
873          <li><a href="/nl/timer/">🇳🇱 Timer Online</a></li>
874          <li><a href="/nl/stopwatch/">🇳🇱 Stopwatch Online</a></li>
875          <li><a href="/it/timer/">🇮🇹 Timer Online</a></li>
876          <li><a href="/it/cronometro/">🇮🇹 Cronometro Online</a></li>
877          <li><a href="/sv/timer/">🇸🇪 Timer Online</a></li>
878          <li><a href="/sv/stoppur/">🇸🇪 Stoppur Online</a></li>
879          <li><a href="/no/timer/">🇳🇴 Timer på Nett</a></li>
880          <li><a href="/no/stoppeklokke/">🇳🇴 Stoppeklokke</a></li>
881          <li><a href="/da/timer/">🇩🇰 Timer Online</a></li>
882          <li><a href="/da/stopur/">🇩🇰 Stopur Online</a></li>
883          <li><a href="/fi/ajastin/">🇫🇮 Ajastin Verkossa</a></li>
884          <li><a href="/fi/sekuntikello/">🇫🇮 Sekuntikello</a></li>
885          <li><a href="/ja/timer/">🇯🇵 オンラインタイマー</a></li>
886          <li><a href="/ja/stopwatch/">🇯🇵 ストップウォッチ</a></li>
887          <li><a href="/ko/timer/">🇰🇷 온라인 타이머</a></li>
888          <li><a href="/ko/stopwatch/">🇰🇷 온라인 스톱워치</a></li>
889        </ul>
890      </div>
891      <div class="footer-column">
892        <h3>Date Countdowns</h3>
893        <ul>
894          <li><a href="/timers/midnight-countdown/">Countdown to Midnight</a></li>
895          <li><a href="/timers/christmas-countdown/">Christmas Countdown</a></li>
896          <li><a href="/timers/new-year-countdown/">New Year Countdown</a></li>
897          <li><a href="/timers/valentines-day-countdown/">Valentine's Day Countdown</a></li>
898          <li><a href="/timers/mothers-day-countdown/">Mother's Day Countdown</a></li>
899          <li><a href="/timers/fathers-day-countdown/">Father's Day Countdown</a></li>
900          <li><a href="/timers/easter-countdown/">Easter Countdown</a></li>
901          <li><a href="/timers/spring-countdown/">Spring Countdown</a></li>
902          <li><a href="/timers/summer-countdown/">Summer Countdown</a></li>
903          <li><a href="/timers/fall-countdown/">Fall Countdown</a></li>
904          <li><a href="/timers/halloween-countdown/">Halloween Countdown</a></li>
905          <li><a href="/timers/thanksgiving-countdown/">Thanksgiving Countdown</a></li>
906          <li><a href="/timers/black-friday-countdown/">Black Friday Countdown</a></li>
907          <li><a href="/timers/julian-date/">Today's Julian Date</a></li>
908          <li><a href="/timers/birthday-countdown/">Birthday Countdown</a></li>
909          <li><a href="/timers/wedding-countdown/">Wedding Countdown</a></li>
910          <li><a href="/timers/vacation-countdown/">Vacation Countdown</a></li>
911          <li><a href="/timers/weekend-countdown/">Weekend Countdown</a></li>
912          <li><a href="/timers/retirement-countdown/">Retirement Countdown</a></li>
913          <li><a href="/timers/graduation-countdown/">Graduation Countdown</a></li>
914          <li><a href="/timers/super-bowl-countdown/">Super Bowl Countdown</a></li>
915          <li><a href="/timers/world-cup-countdown/">World Cup Countdown</a></li>
916          <li><a href="/timers/olympics-countdown/">Olympics Countdown</a></li>
917        </ul>
918      </div>
919      <div class="footer-column">
920        <h3>Cooking Timers</h3>
921        <ul>
922          <li><a href="/timers/kitchen-timer/">Kitchen Timer</a></li>
923          <li><a href="/timers/pizza-timer/">Pizza Timer</a></li>
924          <li><a href="/timers/rice-timer/">Rice Timer</a></li>
925          <li><a href="/timers/cookie-timer/">Cookie Timer</a></li>
926          <li><a href="/timers/ramen-timer/">Ramen Timer</a></li>
927          <li><a href="/timers/turkey-timer/">Turkey Timer</a></li>
928          <li><a href="/timers/steak-timer/">Steak Timer</a></li>
929          <li><a href="/timers/sous-vide-timer/">Sous Vide Timer</a></li>
930          <li><a href="/timers/air-fryer-timer/">Air Fryer Timer</a></li>
931          <li><a href="/timers/smoker-timer/">Smoker Timer</a></li>
932        </ul>
933      </div>
934      <div class="footer-column">
935        <h3>Fitness Timers</h3>
936        <ul>
937          <li><a href="/timers/interval-timer/">Interval Timer</a></li>
938          <li><a href="/timers/crossfit-timer/">CrossFit Timer</a></li>
939          <li><a href="/timers/wod-timer/">WOD Timer</a></li>
940          <li><a href="/timers/plank-timer/">Plank Timer</a></li>
941          <li><a href="/timers/gym-timer/">Gym Rest Timer</a></li>
942          <li><a href="/timers/rest-timer/">Rest Timer</a></li>
943          <li><a href="/timers/running-timer/">Running Timer</a></li>
944          <li><a href="/timers/sauna-timer/">Sauna Timer</a></li>
945        </ul>
946      </div>
947      <div class="footer-column">
948        <h3>Focus &amp; Study</h3>
949        <ul>
950          <li><a href="/timers/study-timer/">Study Timer</a></li>
951          <li><a href="/timers/writing-timer/">Writing Timer</a></li>
952          <li><a href="/timers/break-timer/">Break Timer</a></li>
953          <li><a href="/timers/90-minute-timer/">90 Minute Timer</a></li>
954          <li><a href="/timers/desk-timer/">Desk Timer</a></li>
955          <li><a href="/timers/reading-timer/">Reading Timer</a></li>
956          <li><a href="/timers/intermittent-fasting-timer/">Intermittent Fasting Timer</a></li>
957        </ul>
958      </div>
959      <div class="footer-column">
960        <h3>Sleep &amp; Wellness</h3>
961        <ul>
962          <li><a href="/timers/sleep-timer/">Sleep Timer</a></li>
963          <li><a href="/timers/nap-timer/">Nap Timer</a></li>
964          <li><a href="/timers/sleep-cycle-timer/">Sleep Cycle Timer</a></li>
965          <li><a href="/timers/tanning-timer/">Tanning Timer</a></li>
966          <li><a href="/timers/medication-reminder/">Medication Reminder</a></li>
967          <li><a href="/timers/shower-timer/">Shower Timer</a></li>
968          <li><a href="/timers/laundry-timer/">Laundry Timer</a></li>
969        </ul>
970      </div>
971      <div class="footer-column">
972        <h3>Games &amp; Party</h3>
973        <ul>
974          <li><a href="/timers/quiz-timer/">Quiz Timer</a></li>
975          <li><a href="/timers/jeopardy-timer/">Jeopardy Timer</a></li>
976          <li><a href="/timers/trivia-timer/">Trivia Timer</a></li>
977          <li><a href="/timers/board-game-timer/">Board Game Timer</a></li>
978          <li><a href="/timers/turn-timer/">Turn Timer</a></li>
979          <li><a href="/timers/confetti-timer/">Confetti Timer</a></li>
980          <li><a href="/timers/cleanup-timer/">Cleanup Timer</a></li>
981          <li><a href="/timers/potty-timer/">Potty Timer</a></li>
982          <li><a href="/timers/gaming-timer/">Gaming Timer</a></li>
983        </ul>
984      </div>
985      <div class="footer-column">
986        <h3>Pomodoro Timers</h3>
987        <ul>
988          <li><a href="/timers/25-minute-pomodoro-timer/">25 Minute Pomodoro</a></li>
989          <li><a href="/timers/50-minute-pomodoro-timer/">50 Minute Pomodoro</a></li>
990          <li><a href="/timers/5-minute-pomodoro-break/">5 Minute Break</a></li>
991          <li><a href="/timers/10-minute-pomodoro-break/">10 Minute Break</a></li>
992          <li><a href="/timers/15-minute-pomodoro-break/">15 Minute Break</a></li>
993        </ul>
994      </div>
995      <div class="footer-column">
996        <h3>Egg Timers</h3>
997        <ul>
998          <li><a href="/timers/cooking-timer/">Cooking Timer</a></li>
999          <li><a href="/timers/egg-timer/">Visual Egg Timer</a></li>
1000          <li><a href="/timers/soft-boiled-egg-timer/">Soft Boiled (3 min)</a></li>
1001          <li><a href="/timers/medium-boiled-egg-timer/">Medium Boiled (6 min)</a></li>
1002          <li><a href="/timers/hard-boiled-egg-timer/">Hard Boiled (9 min)</a></li>
1003        </ul>
1004      </div>
1005      <div class="footer-column">
1006        <h3>Tea Timers</h3>
1007        <ul>
1008          <li><a href="/timers/tea-timer/">Tea Timer</a></li>
1009          <li><a href="/timers/green-tea-timer/">Green Tea Timer</a></li>
1010          <li><a href="/timers/black-tea-timer/">Black Tea Timer</a></li>
1011          <li><a href="/timers/white-tea-timer/">White Tea Timer</a></li>
1012          <li><a href="/timers/oolong-tea-timer/">Oolong Tea Timer</a></li>
1013          <li><a href="/timers/herbal-tea-timer/">Herbal Tea Timer</a></li>
1014          <li><a href="/timers/chamomile-tea-timer/">Chamomile Tea Timer</a></li>
1015          <li><a href="/timers/earl-grey-tea-timer/">Earl Grey Tea Timer</a></li>
1016          <li><a href="/timers/chai-tea-timer/">Chai Tea Timer</a></li>
1017          <li><a href="/timers/matcha-tea-timer/">Matcha Tea Timer</a></li>
1018          <li><a href="/timers/pu-erh-tea-timer/">Pu-erh Tea Timer</a></li>
1019        </ul>
1020      </div>
1021      <div class="footer-column">
1022        <h3>Breathing & Meditation</h3>
1023        <ul>
1024          <li><a href="/timers/breathing-timer/">Breathing Timer</a></li>
1025          <li><a href="/timers/box-breathing-timer/">Box Breathing</a></li>
1026          <li><a href="/timers/478-breathing-timer/">4-7-8 Breathing</a></li>
1027          <li><a href="/timers/meditation-timer/">Meditation Timer</a></li>
1028          <li><a href="/timers/5-minute-meditation-timer/">5 Min Meditation</a></li>
1029          <li><a href="/timers/10-minute-meditation-timer/">10 Min Meditation</a></li>
1030          <li><a href="/timers/20-minute-meditation-timer/">20 Min Meditation</a></li>
1031        </ul>
1032      </div>
1033    </div>
1034    <div class="footer-bottom">
1035      <p><a href="/timers/" class="browse-all-link">Browse All Timers</a> · <a href="/calculators/" class="browse-all-link">Browse All Calculators</a> · <a href="/tools/" class="browse-all-link">Classroom Tools</a> · <a href="/chrome/" class="browse-all-link">Chrome Extensions</a></p>
1036      <p>Visual Timer - Free online countdown timers for classrooms, presentations, and productivity.</p>
1037      <p class="footer-contact"><button class="contact-btn" id="contact-btn">Contact Us</button></p>
1038      <p class="footer-links"><a href="/about/">About</a> · <a href="/faq/">FAQ</a> · <a href="/sitemap/">Sitemap</a> · <a href="/privacy/">Privacy</a> · <a href="/terms/">Terms</a></p>
1039      
1040      <p class="footer-coffee"><a href="https://buymeacoffee.com/visualtimer.com" target="_blank" rel="noopener">☕ Buy me a coffee</a> — keep these timers free &amp; ad-light</p>
1041      
1042      <p class="footer-credit">Developed by <a href="https://applorium.com" target="_blank" rel="noopener">Applorium Ltd</a></p>
1043    </div>
1044  </div>
1045</footer>
1046
1047<div class="contact-modal" id="contact-modal">
1048  <div class="contact-modal-content">
1049    <button class="contact-modal-close" id="contact-modal-close">&times;</button>
1050    <h2>Contact Us</h2>
1051    <form action="https://formspree.io/f/mdakrvpq" method="POST" class="contact-form">
1052      <label>
1053        Your email:
1054        <input type="email" name="email" required>
1055      </label>
1056      <label>
1057        Your message:
1058        <textarea name="message" rows="5" required></textarea>
1059      </label>
1060      <button type="submit" class="contact-submit">Send</button>
1061    </form>
1062  </div>
1063</div>
1064
1065<script>
1066(function() {
1067  var btn = document.getElementById('contact-btn');
1068  var modal = document.getElementById('contact-modal');
1069  var close = document.getElementById('contact-modal-close');
1070
1071  if (btn && modal) {
1072    btn.addEventListener('click', function() {
1073      modal.classList.add('open');
1074    });
1075    close.addEventListener('click', function() {
1076      modal.classList.remove('open');
1077    });
1078    modal.addEventListener('click', function(e) {
1079      if (e.target === modal) {
1080        modal.classList.remove('open');
1081      }
1082    });
1083  }
1084})();
1085</script>
1085
1086
1087
1088<script>
1089(function () {
1090  // Buy Me a Coffee floating widget — shown only every Nth page load, so it stays
1091  // low-key. The header coffee icon + footer link are always available regardless.
1092  var EVERY = 30; // show on the 30th, 60th, 90th ... page load
1093  var ls;
1094  try { ls = window.localStorage; } catch (e) { return; } // no storage → stay hidden
1095  var n = (parseInt(ls.getItem('vt_bmc_count'), 10) || 0) + 1;
1096  try { ls.setItem('vt_bmc_count', String(n)); } catch (e) {}
1097  if (n % EVERY !== 0) return; // not this load
1098
1099  var s = document.createElement('script');
1100  s.setAttribute('data-name', 'BMC-Widget');
1101  s.setAttribute('data-cfasync', 'false');
1102  s.src = 'https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js';
1103  s.setAttribute('data-id', 'visualtimer.com');
1104  s.setAttribute('data-description', 'Support me on Buy me a coffee!');
1105  s.setAttribute('data-message', "Hi, and thanks for using visualtimer.com! It's a small independent project, free for everyone. If it's been useful, a coffee helps cover the bills and keeps new timers coming. ☕");
1106  s.setAttribute('data-color', '#FF5F5F');
1107  s.setAttribute('data-position', 'Right');
1108  s.setAttribute('data-x_margin', '18');
1109  s.setAttribute('data-y_margin', '18');
1110  document.body.appendChild(s);
1111})();
1112</script>
1112
1113
1114
1115
1116
1117<script>
1118(function () {
1119  // Platform is detected once in theme-init.html (runs in <head>).
1120  var d = document.documentElement;
1121  var isApple = d.classList.contains('is-ios') || d.classList.contains('is-mac');
1122  var isAndroid = d.classList.contains('is-android');
1123  if (!isApple && !isAndroid) return;
1124
1125  function init() {
1126    // Guard against double-insert — both our own wrap and the static
1127    // app-top-link.html badge, which pages opting into a specific app render
1128    // server-side. Either one means a badge is already on the page.
1129    if (document.querySelector('.app-cta-wrap, .app-top-link-wrap')) return;
1130    var section = document.querySelector('.ios-app-section');
1131    if (!section) return;
1132
1133    // Pick the store link that matches the visitor's platform. On Apple, take the
1134    // App Store link (never the Play pill, which also carries .app-store-btn).
1135    var url, isPlay = false;
1136    if (isApple) {
1137      // Prefer the explicit hook; fall back to the legacy pill class used on other app pages.
1138      var appleBtn = section.querySelector('[data-store="apple"], .app-store-btn:not(.play-store-btn)');
1139      if (appleBtn) url = appleBtn.getAttribute('href');
1140    } else {
1141      var playBtn = section.querySelector('[data-store="play"], .play-store-btn');
1142      if (playBtn) { url = playBtn.getAttribute('href'); isPlay = true; }
1143    }
1144    if (!url) return; // e.g. an Android visitor on an iOS-only app page
1145
1146    // Anchor to the first *visible* title. If a page ever carries a
1147    // visually-hidden <h1> for SEO before the real hero title, skip it so the
1148    // badge always lands under the visible heading, consistently across pages.
1149    var h1 = document.querySelector('h1:not(.visually-hidden)') || document.querySelector('h1');
1150    if (!h1) return;
1151    // Anchor below the subtitle if the title has one, otherwise below the h1.
1152    var anchor = h1;
1153    var sib = h1.nextElementSibling;
1154    if (sib && /(^|\s)(subtitle|wc-sub|sub)(\s|$)/.test(sib.className || '')) anchor = sib;
1155
1156    var wrap = document.createElement('div');
1157    wrap.className = 'app-cta-wrap';
1158    var a = document.createElement('a');
1159    a.href = url;
1160    a.target = '_blank';
1161    a.rel = 'noopener';
1162
1163    a.className = 'app-cta';
1164    var img = document.createElement('img');
1165    if (isPlay) {
1166      // Google's official "Get it on Google Play" badge.
1167      img.src = '/images/get-it-on-google-play.png';
1168      img.alt = 'Get it on Google Play';
1169      img.width = 124;
1170      img.height = 48;
1171    } else {
1172      // Apple's official "Download on the App Store" badge (the same badge Apple
1173      // uses for iOS and macOS since the Mac App Store lockup was retired in 2021).
1174      img.src = '/images/download-on-app-store.svg';
1175      img.alt = 'Download on the App Store';
1176      img.width = 150;
1177      img.height = 50;
1178    }
1179    a.appendChild(img);
1180    wrap.appendChild(a);
1181    anchor.parentNode.insertBefore(wrap, anchor.nextSibling);
1182  }
1183
1184  if (document.readyState === 'loading') {
1185    document.addEventListener('DOMContentLoaded', init);
1186  } else {
1187    init();
1188  }
1189})();
1190</script>
1190
1191
1192
1193
1194
1195
1196  
1196<script src="/app.js"></script>
1196
1197  
1198</body>
1199</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.