Timer Pomodoro
Foque no trabalho, descanse eficientemente, gerencie seu tempo cientificamente
O que é um Timer Pomodoro?
O temporizador Pomodoro apoia a Técnica Pomodoro, um método de gestão de tempo baseado em intervalos claros de foco e pausa. O padrão clássico é trabalhar 25 minutos, fazer uma pausa curta de cerca de 5 minutos e descansar mais após algumas rodadas. O valor não está no número exato, mas no limite que ele cria: tarefas parecem menores, distrações podem ser adiadas e pausas evitam que a atenção caia sem perceber. A ferramenta é útil para estudar, escrever, programar, tarefas domésticas, trabalho administrativo e rotinas que se beneficiam de ritmo. Em reuniões, fluxo criativo profundo ou trabalho físico, ajuste sessões e pausas com flexibilidade.
Como Usar
Operações Básicas
- Selecione o modo de trabalho: Foco, Pausa Curta ou Pausa Longa
- Clique no botão 'Iniciar' para começar o temporizador
- Concentre-se no trabalho até o temporizador terminar, descanse após ouvir o alerta
- Aproveite uma pausa longa a cada 4 Pomodoros concluídos
Configurações Personalizadas
Dicas de Foco
- Use uma tarefa clara por sessão de foco e evite transformar o temporizador em um relógio de fundo para multitarefas.
- Ajuste as durações para corresponder ao trabalho: sessões mais curtas ajudam em tarefas de alta fricção, enquanto sessões mais longas podem funcionar para leitura profunda ou programação.
Casos de uso
Princípio técnico
A Técnica Pomodoro foi publicada por Francesco Cirillo no final dos anos 1980 e codifica um ciclo de quatro fases: um intervalo de foco de 25 minutos (um pomodoro), uma pausa curta de 5 minutos, repetido por quatro rodadas, seguido de uma pausa longa de 15 a 30 minutos. O agendamento é uma máquina de estados finitos com quatro estados (`work`, `shortBreak`, `longBreak`, `idle`) com transições conduzidas por um único timer de contagem regressiva; o contador de rodadas é incrementado após cada transição `work -> break` e o ramo de pausa longa é acionado quando `round % roundsBeforeLong === 0`. Variantes como 50/10 (trabalho profundo) e 52/17 (estudo de produtividade do Draugiem Group) são expostas parametrizando a mesma FSM. O timing ingênuo usa `setInterval(tick, 1000)` e decrementa um contador, mas o drift dos timers em JavaScript se acumula: cada callback pode disparar 1003-1020 ms tarde sob contenção da thread principal, e a HTML5 Page Visibility API combinada com políticas do navegador limita timers de abas ocultas para aproximadamente 1 Hz no Chrome/Firefox/Safari (Safari pode chegar a 1 disparo/min). O padrão resistente a drift armazena `endTimestamp = performance.now() + remainingMs` no início, depois recalcula `remainingMs = Math.max(0, endTimestamp - performance.now())` em cada tick — então uma aba que retoma após 10 minutos em segundo plano imediatamente compensa em vez de contar 10 segundos fictícios. `performance.now()` é o relógio monotônico de alta resolução imune a ajustes de relógio (NTP, alterações manuais de hora); `Date.now()` é usado apenas ao persistir o prazo através de atualização de página. Quatro APIs do navegador tornam o timer utilizável enquanto o usuário trabalha em outro lugar. A Web Audio API gera o beep de fim de fase sem custo de ativos: `new AudioContext()` -> `createOscillator()` em 800 Hz -> `createGain()` com rampa descendente em 200 ms -> `start()` depois `stop(currentTime + 0.2)`. A Notifications API exibe um alerta em nível de sistema após consentimento único via `Notification.requestPermission()`, depois `new Notification('Focus complete', { body, icon, tag: 'pomodoro' })` (a `tag` deduplica disparos rápidos). A Wake Lock API solicita `navigator.wakeLock.request('screen')` para manter o display ativo durante uma sessão de foco e o libera durante as pausas. O `document.title` é reescrito a cada tick para `mm:ss - Focus` para que o tempo permaneça visível na barra de abas. Configurações (durações, início automático, som) persistem via `localStorage` (síncrono, ~5 MB de cota por origem); o progresso circular é um SVG `<circle>` cujo `stroke-dasharray = 2 * pi * r` e `stroke-dashoffset = dasharray * (1 - elapsed/total)` animam o anel sem overhead de canvas. Pesquisa sobre atenção — o limite de 25 minutos de Cirillo, mas também trabalhos sobre percepção temporal no TDAH e o custo de troca de contexto — explica por que a interrupção rígida supera um 'só mais cinco minutos' suave.
- FSM com quatro estados (work/shortBreak/longBreak/idle); pausa longa acionada quando `round % roundsBeforeLong === 0`. Padrão 25/5/15 minutos, 4 rodadas; variantes 50/10/30 (trabalho profundo) e 52/17 (estudo Draugiem).
- Timing resistente a drift: armazena `endTimestamp = performance.now() + remainingMs` e recalcula `remainingMs = endTimestamp - performance.now()` a cada tick — imune ao deslize de `setInterval` e às limitações de abas ocultas.
- `performance.now()` é o relógio monotônico de alta resolução (não afetado por NTP ou alterações manuais de relógio); `Date.now()` é usado apenas para persistir o prazo através de recarregamento de página.
- Beep de fim de fase via Web Audio API: `new AudioContext()` -> `createOscillator()` (senoide 800 Hz) -> `createGain()` com rampa linear até 0 em 200 ms -> `start()`/`stop()`. Zero ativos de áudio enviados.
- Alertas de sistema via Notifications API: `Notification.requestPermission()` uma vez, depois `new Notification(title, { body, tag: 'pomodoro' })`; a `tag` deduplica se múltiplas fases terminarem enquanto a aba está oculta.
- Screen Wake Lock API: `navigator.wakeLock.request('screen')` durante o foco para suprimir o sono do display; liberar na pausa. Wake locks são liberados automaticamente quando a aba perde visibilidade e devem ser re-adquiridos no `visibilitychange`.
- Persistência e UI: `localStorage` (~5 MB de cota) para durações/início automático/som; anel SVG usa `stroke-dasharray = 2*pi*r` e anima `stroke-dashoffset`; `document.title` reescrito para `mm:ss - Fase` para visibilidade na barra de abas.
Exemplos
Pomodoro clássico (Francesco Cirillo)
Foco: 25 min
Pausa curta: 5 min
Pausa longa: 15 min (a cada 4 ciclos)
Uso: padrão para trabalho de escritório, estudos e sessões de programação; um ciclo completo = 2 hModo trabalho profundo
Foco: 50 min
Pausa curta: 10 min
Pausa longa: 30 min (a cada 3 ciclos)
Uso: sessões de escrita, design ou problemas difíceis; blocos de foco mais longos reduzem a troca de contextoModo iteração rápida
Foco: 15 min
Pausa curta: 3 min
Pausa longa: 10 min (a cada 5 ciclos)
Uso: standups, code review, ciclos curtos de feedback; mais fácil de começar quando o bloco de foco parece pequenoPerguntas frequentes
O que é a Técnica Pomodoro?
Foi desenvolvida por Francesco Cirillo nos anos 1980. O padrão clássico: 25 minutos de trabalho focado, 5 minutos de pausa, repetir. Depois de 4 'pomodoros' (intervalos de trabalho), faça uma pausa maior de 15 a 30 minutos. A estrutura te força a começar (o cronômetro corre) e recompensa a persistência (pausas pequenas) sem te exaurir.
Posso personalizar a duração do trabalho e das pausas?
Sim. O padrão é 25/5/15 (trabalho/pausa curta/pausa longa) com pausa longa após 4 pomodoros. Escolha qualquer duração que se encaixe na sua tarefa: o ritmo 'Ultradiano' 50/10 vai bem com programação profunda; 90/30 combina com sessões de estudo; 15/3 funciona para puro modo execução. Os valores padrão são um ponto de partida, não a única escolha válida.
E se eu for interrompido no meio de um pomodoro?
Regra original do Cirillo: se a interrupção for curta, ignore e termine o pomodoro. Se você precisa parar, o pomodoro não conta e você reinicia. A regra rígida treina você a defender o tempo de foco. As adaptações modernas são mais flexíveis - pause se precisar, mas registre as interrupções para ver o que está custando seu foco.
O alarme vai disparar quando a aba estiver em segundo plano?
Os navegadores limitam abas em segundo plano e podem suprimir o áudio. Para garantir o alarme: mantenha a aba em foco, conceda permissão de notificações ao navegador ou use um app de pomodoro de desktop para trabalhos críticos. A página também vibra no celular se você permitir.
Ele conta os pomodoros concluídos?
A contagem da rodada atual é exibida durante a sessão, mas não é persistida. Apenas as configurações do cronômetro (durações de trabalho/pausa, preferências de início automático) são salvas no localStorage. A contagem de pomodoros concluídos é zerada quando você fecha ou atualiza a página.
Posso etiquetar no que estou trabalhando?
A maioria das builds permite adicionar o nome da tarefa atual acima do cronômetro. Útil para gravações de tela demo ou para você se manter responsável. Algumas builds avançadas mantêm um log de pomodoros por tarefa - mais leve que um gerenciador de tarefas completo.
Meus dados são enviados para algum servidor?
Não. O estado do cronômetro e o histórico ficam no localStorage do seu navegador. Nada é enviado para um servidor. Limpar os dados do site reseta tudo.