La tipografia si legge mentre gira: niente parole sovrapposte, niente frasi che spariscono - #11
Merged
Merged
Conversation
… frasi che spariscono Sul sito le dieci voci tipografiche avevano ancora parole una sopra l'altra, frasi che se ne andavano e tornavano, e cose che scattavano. Nessun banco le vedeva: demo-check.py misura la tesi di ogni voce, loop-close.py la giunta del ciclo. Il nuovo scripts/type-check.py le misura su ogni fotogramma, a piu' larghezze, leggendo il DOM reso: copertura (anche della HUD), testo fuori quadro, scatti mentre si vede, e sempre una parola intera sullo schermo. Sulla pagina pubblicata boccia dieci voci su dieci; su questa, zero, a 390, 768, 1440 e 2560 px. La regola della parola intera e' quella che ha cambiato le demo. Sfalsare uscite e ingressi teneva il quadro fuori dal nero, ma le frasi sparivano lo stesso, in onda. Adesso: - TYP-01: due righe di 29 caratteri si passano il turno in una finestra che ritaglia; soste di 56 e 35 fotogrammi fermi, 15,5 contro 24,9 c/s. - TYP-04: ogni parola e' una casella con due copie che scorrono insieme; la coppia e' click/drag, larghe uguali, perche' "join" in una cella larga quanto "pose" galleggiava in un vuoto. - TYP-05 e TYP-06: "Real UI," resta, e arriva il resto. - TYP-09: la didascalia stesa non scende sotto i 34 px, dove sul telefono copriva il contatore per 130 fotogrammi su 230. - Le rotazioni in seno invece che in cubica, che a meta' corsa passava il bordo in meno di tre fotogrammi. Il motore legge il fotogramma dal timestamp di requestAnimationFrame e non da performance.now(): i fotogrammi tenuti per uno o tre refresh invece di due passano dal 3,3 allo 0,7 per cento. In CI: type-check.py a 390 e 1440 px con quattro copie guaste che deve bocciare, e la copia guasta di TYP-01 per demo-check.py riscritta sulla nuova sosta (quella vecchia non trovava piu' niente da cambiare). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…iposo Con prefers-reduced-motion - acceso su molti telefoni - ogni demo mostra un fotogramma solo finche' non si trascina lo scrub, e per tutte era il 55% del ciclo. Sulla tipografia cadeva a meta' di un passaggio: in TYP-01 una riga tagliata dal bordo della finestra, in TYP-05 e TYP-06 parole a mezza dissolvenza, in TYP-02 la parola chiave ancora grande sotto la scritta che la diceva tornata normale. Ogni demo puo' dichiarare il suo fotogramma fermo in `still`, e le dieci voci tipografiche lo fanno. type-check.py lo verifica col movimento ridotto emulato: il fotogramma che la pagina disegna deve essere uguale al precedente e al successivo. Sul commit prima boccia TYP-01, 02, 05 e 06; qui passano tutte. In CI una quinta copia guasta sposta il fotogramma fermo di TYP-05 in mezzo a una dissolvenza, e il banco la deve bocciare. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sul sito la sezione tipografica aveva ancora tre difetti visibili: cose che compaiono e scompaiono, cose che scattano, scritte una sopra l'altra. Nessun banco li vedeva, perché
demo-check.pymisura la tesi di ogni voce eloop-close.pyla giunta del ciclo.Il banco nuovo:
scripts/type-check.pyPer ogni fotogramma di ogni voce tipografica, a più larghezze, legge il DOM reso (non i pixel, dove una dissolvenza e uno stacco si somigliano troppo) e controlla quattro cose:
Sulla pagina pubblicata ora boccia 10 voci su 10:
Su questo branch le passa tutte a 390, 768, 1440 e 2560 px. Passano anche con soglie molto più strette.
Cosa è cambiato nelle voci
La regola della parola intera è quella che ha cambiato le demo. Sfalsare uscite e ingressi teneva il quadro fuori dal nero, ma le frasi sparivano lo stesso, in onda: in TYP-01 per mezzo secondo restava un quinto della frase, e in TYP-04 la parola più visibile arrivava al 23%.
TYP-01: due righe di 29 caratteri si passano il turno dentro una finestra che ritaglia. Le soste restano 56 e 35 fotogrammi fermi, cioè 15,5 contro 24,9 c/s. Ogni riga è spezzata in due a mano: lasciate andare a capo da sole, una stava su una riga e l'altra su due, e a metà corsa nessuna aveva una riga intera nella finestra.
TYP-04: ogni parola è una casella con due copie che scorrono insieme. La coppia adesso è
click/drag(200,6 e 200,9 px a corpo 100):joinin una cella larga quantopose(154 contro 215) galleggiava in un vuoto, proprio nel caso giusto.TYP-05 e TYP-06: "Real UI," resta in campo mentre il resto della frase arriva. I conteggi diventano 16 momenti d'ingresso contro 5.
TYP-09: la didascalia stesa non scende sotto i 34 px. Sul telefono copriva il contatore dei fotogrammi per 130 fotogrammi su 230.
Rotazioni e uscite in seno invece che in cubica: a metà corsa una riga di TYP-01 passava il bordo in meno di tre fotogrammi, e a 30 fps quello è un salto.
Motore: il fotogramma si legge dal timestamp di
requestAnimationFrame, non daperformance.now()dentro il callback. In Chrome headless i fotogrammi tenuti per uno o tre refresh invece di due passano dal 3,3% allo 0,7%.Movimento ridotto: con
prefers-reduced-motion(acceso su molti telefoni) ogni demo mostra un fotogramma solo, ed era il 55% del ciclo per tutte. Sulla tipografia cadeva a metà di un passaggio: una riga tagliata dalla finestra in TYP-01, parole a mezza dissolvenza in TYP-05 e TYP-06, la parola chiave ancora grande in TYP-02 sotto la scritta che la diceva tornata normale. Ogni demo può dichiarare un fotogramma fermo instill, e le dieci voci tipografiche lo fanno.I testi delle voci, la tabella dei banchi e il README sono aggiornati con i numeri misurati.
CI
type-check.pygira a 390 e 1440 px (più un passaggio col movimento ridotto), con cinque copie guaste che deve bocciare nominando voce e motivo:4cqwsul telefono (HUD);demo-check.pyè riscritta sulla nuova sosta: quella vecchia cercava codice che non esiste più, e la CI sarebbe fallita.🤖 Generated with Claude Code