Como & por quê
Um livro-razão que respira: a anatomia da decisão de tratar o sono como contabilidade de partidas dobradas — e como isso virou código estático.
1. A pergunta de partida
Todo painel de sono conta a mesma história com as mesmas formas: um hipnograma em degraus, barras de horas, um anel de "score". O olho já sabe o que vai ver. A ambição aqui era achar uma estrutura de apresentação inédita — não uma versão mais bonita do dashboard, mas outro gênero.
A virada veio de uma metáfora contábil que já mora na linguagem: falamos em dívida de sono, em estar no vermelho, em pagar o sono no fim de semana. Se a linguagem já é de balanço, por que não o objeto? O sono virou um livro-razão de partidas dobradas: cada noite é um lançamento, com débitos e créditos que precisam fechar.
2. A lei da partida dobrada, aplicada à noite
Na contabilidade de dupla entrada, todo crédito tem um débito correspondente e as duas colunas somam igual. É isso que torna a metáfora honesta: você não pode "trapacear" o sono, porque tomar de uma coluna aparece na outra.
O corpo lança um débito: a necessidade fisiológica da noite (que varia com a idade). Você credita esse débito com o que de fato dormiu — profundo, REM e leve. O que faltar é creditado como dívida de sono. Somando os dois lados, o livro fecha — mas às vezes fecha financiado a débito:
Duas regras da fisiologia do sono caem naturalmente dentro dessa gramática, e por isso a metáfora não é só decorativa:
- A dívida rende juros. Uma noite mal dormida cobra no dia seguinte — mais pressão de sono, pior desempenho. No razão, isso é um lançamento de juros sobre o saldo devedor a cada noite em aberto (aqui, 5% ao dia, ilustrativos, lançados nos dois lados — Dr encargo de juros / Cr dívida). A dívida compõe.
- Não se estoca sono. Dormir demais amortiza a dívida e capitaliza uma pequena reserva — mas a reserva tem teto. O que passa é sono perdido, não crédito. Você paga o passado; não adianta o futuro.
3. O modelo por baixo dos números
Tudo vem de um punhado de contas honestas em app.js. Dos controles saem:
tempo na cama, latência (crescente com tela), despertares (crescentes com álcool e
cafeína residual), e a divisão do sono em estágios:
latencia = 0.20 + tela·0.004 + cafeResid·0.25 despertares = 0.12 + alcool·0.16 + cafeResid·0.35 TST = tempoNaCama − latencia − despertares cafeResid = 0.5 ^ (horasDesdeOúltimoCafé / 5) // meia-vida ~5h deepShare = 0.20 · (1 − 0.5·cafeResid) // café rouba sono profundo remShare = 0.22 · (1 − 0.18·alcool) // álcool suprime o REM
A cada noite, computeNight() devolve as duas colunas já fechadas e as
notas de ajuste — "café 16h: −25 min de sono profundo" — que tornam o
mecanismo visível. computeWeek() encadeia sete noites carregando dívida,
reserva e juros, e aplica o desvio de fim de semana (o jetlag social:
deitar e acordar mais tarde na sexta e no sábado). O saldo grande é o
capital de sono = reserva − dívida.
4. Por que um médico ou nutricionista quer isto
A conversa de consultório sobre sono costuma morrer em "durma mais". O razão dá ao profissional um objeto para apontar: "seu paciente está no vermelho; este é o juro que isso cobra". A afordância de beira de leito é o modo consulta:
- A idade ancora a necessidade fisiológica (a "fatura" da noite muda com a idade — uma âncora clínica real).
- Horário de deitar/acordar e hábitos (cafeína, tela, álcool) re-lançam a semana ao vivo, com o saldo e o carimbo de fechamento respondendo na hora.
- Três cenários prontos funcionam como "antes e depois": mostre a semana corrida, depois a rotina saudável, e deixe o carimbo virar de EM ABERTO para FECHADO.
É educativo sem ser um laudo: transforma um conceito abstrato (dívida de sono) num balanço que o paciente entende porque já entende de dinheiro.
5. A tipografia de livro-caixa
A credibilidade da peça é tipográfica. Três fontes, com papéis distintos:
- Fraunces (display) — o cabeçalho do livro e o saldo gigante; os eixos
SOFTeWONKdão o ar de tipo fundido em metal antigo. - Spectral (serifa de texto) — a prosa e os nomes das contas: um livro, não um app.
- Spline Sans Mono — toda figura numérica, com
font-variant-numeric: tabular-nums. Sem numerais tabulares as colunas não alinham, e um razão que não alinha não é um razão.
Duas tintas, como nos livros de verdade: preta para o corrente, vermelha para o passivo e o prejuízo — a origem literal de "estar no vermelho" — e um toque de azul de tinta para quando o livro fecha "no azul".
6. O papel é generativo
O fundo é um <canvas> desenhado por código: um gradiente de marfim
envelhecido, milhares de fibras de 1px, manchas suaves de idade, uma mancha de
café (assinatura temática — o vilão da noite deixou sua marca na página) e uma
vinheta. Nada é imagem externa; tudo nasce de Math e de um gerador pseudo-
aleatório com semente fixa, então o papel é idêntico a cada carregamento.
Decisão importante: as pautas do razão (as linhas onde a escrita assenta) não são desenhadas no canvas — são bordas CSS nos próprios elementos. Assim elas acompanham o texto com precisão em qualquer largura, enquanto o canvas cuida só da textura orgânica.
7. Acessibilidade e responsivo
- Todos os controles são
<input type="range">e<button>nativos — operáveis por teclado, com foco visível. - O saldo apurado vive numa região
aria-live="polite": quem usa leitor de tela ouve o novo saldo a cada ajuste. prefers-reduced-motiondesliga a "escrita a tinta" e a contagem do saldo.- No mobile (testado a 390 e 414px), o T de débito/crédito empilha em dois blocos,
os numerais encolhem mantendo o alinhamento tabular, e nada estoura a largura
(
overflow-x: hiddenno corpo).
8. Deploy — o que dá para reaproveitar
Zero build. Três arquivos (index.html, styles.css,
app.js), fontes do Google, e nada mais. Publicado como estático no
Cloudflare Pages a partir de uma cópia limpa sem .git.
Um detalhe herdado da esteira desta vitrine: para fotografar estados não iniciais com
o Edge headless no Windows, a página aceita ?nosync=1, que desliga as
animações e renderiza o estado alvo direto — rolagem/animação programática deixa o
screenshot em branco. Aqui tudo já renderiza no load, então a peça é fácil
de auditar visualmente.
O que outra pessoa pode levar deste projeto: a ideia de emprestar uma gramática inteira (a contabilidade) para um domínio que não é dela (o sono). A partida dobrada trouxe de graça a honestidade ("os dois lados fecham"), os juros ("a dívida compõe") e o teto de reserva ("não se estoca"). Escolher a metáfora certa é metade do design.
Peça de demonstração de design. Todos os números — horas, estágios, dívida, juros — são ilustrativos e fictícios, gerados por um modelo simplificado. Não são medida de sono, diagnóstico ou recomendação clínica.
← voltar ao Livro-Razão do Sono