Wavy
Made for Seafarers

Changelog.

Tutte le release del sito e dell'app, in ordine cronologico. Il sito e l'app hanno cicli di rilascio indipendenti: qui sono separati per chiarezza.

Sito · wavyforseafarers.com

index.html v1.5.3

"Allineamento Tema nel drawer mobile"

  • Nel drawer mobile l'entry "Tema" (button con icona sole/luna + label) appariva spostata a destra rispetto agli altri link (Per chi è, Funzioni, Catalogo, La storia, FAQ): l'icona prima del label spingeva il testo via dal margine sinistro di 22+14=36px.
  • Fix: flex-direction:row-reverse sul .theme-toggle-drawer — il label "Tema" ora parte dal margine sinistro come gli altri link, l'icona sole/luna è spinta in fondo a destra del bottone come "preview" del tema attivo.
  • Inoltre display:none condizionale (per stato light/dark/auto) sull'icona inattiva: prima entrambe le icone erano position:relative con una sola visibile via opacity:0, ma lo spazio fantasma da 22px restava nel layout. Ora solo l'icona attiva occupa spazio.

sito · porthole completo + drawer CTA

"Logo porthole identico fra le 4 pagine + pulsante drawer più equilibrato"

  • Logo footer: le defs SVG #porthole e #porthole-inverse in changelog.html e storia.html erano versioni mockup semplificate (4 cerchi + 1 onda) rispetto all'originale di index.html (cielo dorato, alone coral, 3 onde sovrapposte, 12 dot dei bulloni). Sostituite con le defs complete di index — ora il logo nel topbar e nel footer è identico fra index, funzioni, changelog, storia.
  • Drawer mobile, pulsante "Scarica gratis" (solo index.html): height 52→56px, border-radius da pill (999px) a var(--radius-lg) (12px). Su width:100% del drawer un pulsante pill stiracchiato sembrava appiattito — radius medium dà al pulsante un look più equilibrato e coerente con la struttura della drawer.

index.html v1.5.1

"Fix vuoto .feat-cta mobile + correzione editoriale Maker box"

  • Su viewport <640px la card .feat-cta ("Questo è solo l'inizio…") mostrava un vuoto verticale enorme tra testo e bottone "Vedi il catalogo completo". Causa: in flex-direction:column il flex:1 1 300px del .feat-cta-text applicava flex-basis:300px all'altezza, forzando il paragrafo a 300px+ verticali con flex-grow:1 che lo espandeva ulteriormente. Fix: .feat-cta-text { flex:initial } dentro la media query mobile.
  • Maker box: "Sei cose che non troverai mai dentro l'app, oggi e mai""Sei cose che non troverai dentro l'app, né oggi né mai". Corretti gli accenti (negazione correlata né…né con accento acuto, non ne…ne pronome partitivo) e rimosso il primo "mai" ridondante.

index.html v1.5.0

"Bento card alte: asset visivo decorativo"

  • Le card Studio (bento-hero 2×2) e Carriera digitale (bento-tall 1×2) avevano un vuoto centrale tra titolo e descrizione, dovuto al pattern margin-top:auto sulla <p> in card di altezza forzata dal grid.
  • Aggiunto blocco decorativo CSS-only tra h3 e <p>: griglia 4×2 di "bandiere ICS" stilizzate per Studio (palette brand: foam/coral/sea/brass su navy-soft), stack di 3 "documenti" impilati e ruotati per Carriera digitale (effetto Seaman's Book).
  • Visual nascosti sotto 980px: a quel breakpoint il grid passa a 2 colonne e le card non sono più alte.
  • aria-hidden="true" sui blocchi: invisibili agli screen reader (decorativi).

Round 4 · sito v1.4/1.6/1.1/1.1

"Round 4: polish tecnico, geometrico e grafico"

  • Scale geometriche e di motion riusabili nei :root (spacing 4→128, radius 4/8/12/pill, shadow sm/md/lg, transition fast/base/slow, topbar-h, focus-ring-w light/dark).
  • Tipografia coerente fra pagine: line-height body uniformato a 1.6, scala h1/h2 più armonica, letter-spacing eyebrow standard .22em, word-spacing per pause naturali nei testi in maiuscolo.
  • Geometria: --maxw e --pad unificati, hero/page-hero/footer simmetrici, CTA standardizzata 40px/32px, gap grid armonizzati, scale di radius applicate alle card.
  • SEO: hreflang it + x-default, meta robots esplicito, og:image:alt su tutte le pagine, JSON-LD Organization referenziabile via @id.
  • A11y: classe .visually-hidden, aria-expanded sul trigger ⌘K, focus ring 3px in dark, focus visible contrastante sui dot del carosello.
  • JS: document.write sostituito da DOM API per il preload hero; iubenda widget async; drawer close ora aspetta transitionend invece di setTimeout fisso.
  • Polish: blockquote storia con quote glyph, .cta-mini:active con scale tattile, safe-area-inset-bottom sulla float CTA mobile, container query 400px sul catalogo.

funzioni.html v1.4.0

"Round 2: self-host fonts, sitemap, OG image"

  • Self-host Google Fonts in /fonts/ (chiude zona grigia GDPR — no più IP utente a Google USA).
  • sitemap.xml + robots.txt in root.
  • og.png 1200×630 per anteprime social, generato da og.html.

funzioni.html v1.3.0

"Round 1: CSS moderno"

  • <dialog> nativo per command palette ⌘K (showModal/close, no listener Escape manuale).
  • light-dark() CSS function su tutti i token semantici.
  • :has() body scroll lock dichiarativo quando il palette è aperto.
  • Fix bug CSS: graffa orfana dopo html.theme-transitioning *{…}.

index.html v1.2.0

"Round 2: self-host fonts, sitemap, OG image"

  • Stesso pacchetto self-host + SEO base del catalogo.
  • Meta og:image ora punta a /og.png reale.

index.html v1.1.0

"Round 1: CSS moderno"

  • Scroll-driven progress bar via animation-timeline: scroll(root).
  • @starting-style per entrata drawer mobile e apparizione contenuto FAQ.
  • light-dark() function (entrambi i temi in un solo :root).
  • :has() per body scroll lock quando il drawer mobile è aperto.

v1.0.x

"Genesi sito"

  • Prima versione pushata su Vercel (26 apr 2026).
  • Dark mode con tema persistente e anti-flash.
  • Bento Grid per la sezione funzioni.
  • Hero carousel con screenshot reali (light + dark, AVIF/WebP/JPG via <picture>).
  • Micro-interactions: porthole logo animato, View Transitions cross-page.

App Android

v2.38.1

"Current release"

  • Versione corrente in anteprima su Google Play.

v2.33.0

"Convenzioni 21+14, UN/LOCODE search, backup audit"

  • 21 convenzioni IMO/ILO + 14 codici IMO con riferimenti normativi puntuali (SOLAS amendments MSC.532/550/552(108), MARPOL ECAs Med/Artico/Norvegia, STCW SASH MSC.560(108), BBNJ 17 gen 2026, HKC 26 giu 2025, IGC ammoniaca MSC.547(108), Polar Code esteso).
  • Ricerca porto su 16.906 UN/LOCODE nel References Hub.
  • Backup v2: nuovi asset salvati, Drive AppData con 3 file.

v2.31.0

"Fresh Water Rate"

  • Fresh Water Rate · nuovo calcolatore della rata oraria di acqua dolce imbarcata in porto. Aggiunto come 7ª voce in Strumenti di bordo.

v2.30.0

"Turno di guardia"

  • Nuova voce nel Diario di bordo per registrare il turno di guardia.

v2.18.0

"Disclaimer IMO + Privacy in-app"

  • Disclaimer IMO sempre visibile nelle sezioni che fanno riferimento a pubblicazioni ufficiali.
  • Privacy Policy completa in-app, navigabile offline.
  • Firebase Crashlytics privacy-first, In-app updates Flexible, In-app review.