← トップ
プロダクト2026年7月11日

ポモドーロタイマー

25分集中+5分休憩のサイクルで作業に集中できるタイマー。

アプリを試す

別タブで開く ↗

ユーザーが投稿した外部アプリを埋め込み表示しています。表示されない場合は「別タブで開く」からご利用ください。

作業25分と休憩5分を自動で往復するタイマーです。時間が来ると自分でモードを切り替え、音が3回鳴ります。今日こなしたサイクル数と集中時間の合計も同じ画面に出るので、「今日はどれくらい進んだのか」がタイマーを閉じずに分かります。集中の入り口をできるだけ短くしたくて、設定画面を持たない形にしました。

こんなときに使う

  • 手をつけるまでが長い作業を、とりあえず25分だけやると決めて始めたいとき
  • 気づくと2時間ぶっ通しで作業していて、休憩を挟むタイミングを外部に任せたいとき
  • 資料作りや原稿など、終わりが見えにくい仕事を時間で区切って進めたいとき
  • 今日どれだけ机に向かえたのか、あとから数字で振り返りたいとき

使い方

  1. 上部のタブで「作業 25分」か「休憩 5分」を選びます。開いた直後は作業25分の状態です。
  2. 大きな「スタート」ボタンを押すとカウントダウンが始まります。押している間はボタンの表示が「一時停止」に変わり、もう一度押すと止まります。
  3. 円形のリングが残り時間に応じて減っていくので、細かい数字を見なくても進み具合が分かります。中央には mm:ss 形式で残り時間が出ます。
  4. 0になると自動で音が鳴り、作業なら休憩5分へ、休憩なら作業25分へ切り替わります。切り替え後は停止状態なので、休みたいだけ休めます。
  5. 途中でやり直したいときは「リセット」を押します。今のモードの初期値に戻り、タイマーは止まります。

仕様と機能

項目値・挙動
作業時間25分固定
休憩時間5分固定
通知音880Hz のビープを 0.25秒間隔で3回
サイクル加算作業タイマーが0に達したときだけ +1
集中時間の加算作業モードで動いている1秒ごとに +1秒
保存先ブラウザの localStorage(キー: pomodoro-stats)

画面の背景色はモードで変わります。作業中は淡い赤系、休憩中は淡い緑系で、進行リングとボタンの色も連動します。数字を読まなくても今どちらのモードにいるかが分かるようにしたかったからです。

記録は日付とセットで保存していて、読み込んだときに保存された日付が今日と違えば、サイクル数も集中時間も0から始まります。昨日の数字が残って今日の集中時間に混ざることはありません。集中時間は60分を超えると「1時間20分」のような表記に切り替わります。

音は Web Audio API のオシレーターでその場で合成しています。音声ファイルを読み込んでいないので、待ち時間なしで鳴ります。音が出せない環境では例外を握りつぶして、タイマー自体は止まらないようにしてあります。

作るときに決めたこと

最初に決めたのは、時間の長さを設定できるようにしないことでした。この手のタイマーは作業時間・休憩時間・長い休憩の間隔まで設定させる作りが多いのですが、自分で使っていると、集中したいのに設定をいじって満足して終わる回が出てきます。25分と5分に固定してしまえば、開いてスタートを押す以外にやることがありません。迷う余地を消すのが、このツールで一番効く設計だと考えました。

長い休憩(4サイクルごとに15分など)も入れていません。入れるとサイクル数の管理と例外処理が増えるうえに、そこまで律儀に回せた試しがないというのが正直なところです。代わりに、切り替わったあと自動で走り出さない仕様にしました。休憩に入った瞬間に休憩のカウントが勝手に減っていくと、席を立った時間が休憩から差し引かれてしまいます。次のスタートは自分で押す、という一拍を残しています。

集中時間を「作業モードで動いている秒数」の積み上げにしたのも意図的です。完了したサイクル数だけを数えると、20分やって中断した日が0分として記録されます。それでは振り返りの材料にならないので、途中で止めた分も秒単位で残るようにしました。逆に、サイクル数のほうは25分を完走したときだけ増えます。2つの数字で「どれだけ座ったか」と「どれだけやり切ったか」を分けて見られるようにしています。

注意点

  • 記録はブラウザの localStorage に保存されます。外部への送信はありません。別の端末やブラウザとは共有されず、閲覧履歴やサイトデータを消すと記録も消えます。
  • 集計は当日分のみです。日付が変わると自動で0に戻り、過去の履歴は残りません。長期の記録が必要な用途には向きません。
  • ブラウザがタブを休止させる環境では、バックグラウンドでの1秒ごとの処理が遅れることがあります。厳密な計時が必要な場面では使わないでください。