← Fritz Review · Dietro le quinte

Un sito senza framework, con un po' di GLSL

  • web
  • webgl
  • design

Per questo sito non ho usato né un framework né un template. Volevo che fosse veloce, leggibile da chiunque e mio: una cartella di file che apri con un editor di testo.

Le curve nello sfondo

Lo sfondo dell'inizio è un campo di curve di livello, come quelle delle mappe, che si muove piano e reagisce al cursore. Lo calcola la scheda video con uno shader:

  1. si parte da un rumore morbido (fbm, somma di rumori a scale diverse);
  2. si deforma lo spazio col rumore stesso, per avere forme che sembrano geografia;
  3. si disegna una linea ogni volta che il valore attraversa un numero intero.

Il trucco per avere linee sempre sottili, anche dove il campo è ripido, è misurare la larghezza con fwidth: la linea occupa circa un pixel dappertutto, invece di sbavare.

Il titolo vivo

"Fritz" è scritto con un font variabile. Ogni lettera calcola la distanza dal cursore e cambia il proprio peso tra sottile e grassetto. Senza mouse, le lettere respirano da sole con un'onda lenta.

Un sito che si usa da tastiera

  • Ctrl K (o ⌘ K, o /) apre una palette di comandi: cerchi una sezione o un progetto e vai.
  • I dettagli dei progetti sono un elemento <dialog>: la tastiera, il focus e il tasto Esc funzionano senza scrivere una riga.
  • I filtri dei progetti usano le View Transitions del browser: le schede scivolano al loro posto.

Regole che mi sono dato

  • Nessun codice di terzi nelle pagine, e una politica di sicurezza (CSP) che lo impedisce.
  • Chi ha attivato "riduci animazioni" non vede nulla di animato.
  • Controllo automatico dell'accessibilità (axe) a zero problemi, sia in tema scuro sia in tema chiaro.
  • Se la scheda video non supporta WebGL2, resta uno sfondo a sfumature: il sito si legge uguale.

Cosa non ho fatto

Non l'ho provato con un lettore di schermo vero, e solo su browser basati su Chromium. Sono le prime due cose che voglio sistemare.