Vitrine Fable · Fólio 14 ← voltar ao livro

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:

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.

Os números são fictícios por construção. O objetivo é a forma e a intuição — a sensação de um saldo que se acumula e cobra juros —, não uma medida. Nenhuma constante aqui foi calibrada com dados reais.

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:

É 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:

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

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