Configurazione

Ogni opzione, il suo valore predefinito e cosa controlla.

Configurazione

Tutte le opzioni vivono sotto la chiave skeletonizer in nuxt.config.ts:

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['nuxt-skeletonizer'],
  skeletonizer: {
    enabled: true,
    autoScan: true,
    shimmer: true,
    shimmerDuration: 1200,
    animation: 'wave',
    baseColor: '#e5e7eb',
    highlightColor: '#f8fafc',
    darkBaseColor: '#2a2a2a',
    darkHighlightColor: '#3a3a3a',
    borderRadius: '0.375rem',
    opacity: 1,
    respectBorderRadius: true,
    debug: false,
    darkModeSelector: '.dark',
    scanDebounce: 50,
    maxScanDepth: 64,

    // Step 3 — motore adattivo (tutte opt-in, predefinite a off)
    adaptive: false,
    minFps: 45,
    layoutCache: false,
    telemetry: false,
    offThread: false,
    explain: false,

    // Rendering SVG
    svgPrecision: 1,
    svgSharedGradient: true,
  },
})

Opzioni

OpzioneTipoPredefinitoDescrizione
enabledbooleantrueInterruttore principale e stato globale iniziale.
autoScanbooleantrueEsegue il motore di scansione automatica del DOM.
shimmerbooleantrueAttiva l'animazione di evidenziazione.
shimmerDurationnumber1200Ciclo dell'animazione in millisecondi.
animationstring'wave'wave | pulse | fade | gradient | shine | none.
baseColorstring#e5e7ebColore dell'osso in tema chiaro.
highlightColorstring#f8fafcColore di evidenziazione in tema chiaro.
darkBaseColorstring#2a2a2aColore dell'osso in tema scuro.
darkHighlightColorstring#3a3a3aColore di evidenziazione in tema scuro.
borderRadiusstring0.375remRaggio predefinito dell'osso.
opacitynumber1Opacità a riposo dell'osso.
respectBorderRadiusbooleantrueMantiene il raggio proprio di ciascun elemento.
debugbooleanfalseLogging verboso del motore.
darkModeSelectorstring.darkSelettore che attiva i colori scuri.
scanDebouncenumber50Debounce del MutationObserver (ms).
maxScanDepthnumber64Limite di sicurezza per alberi profondi.

Motore adattivo (Step 3)

Queste alimentano il motore adattivo. Tutte predefinite a off, quindi il modulo si comporta esattamente come prima a meno che tu non le attivi. Vedile dal vivo nel Performance Lab.

OpzioneTipoPredefinitoDescrizione
adaptivebooleanfalseInterruttore principale del motore di performance adattiva (degrado dell'animazione guidato dagli FPS, disattivazione automatica dello shimmer).
minFpsnumber45Soglia minima di FPS; cali prolungati degradano l'animazione (wave → pulse → none).
layoutCachefalse | 'memory' | 'session'falseMemorizza e ripropone i blueprint SVG tramite fingerprint strutturale ('memory' per la sessione in RAM, 'session' per sessionStorage).
telemetrybooleanfalseRaccoglie tempi per fase, FPS, conteggio dei nodi SVG e cache ratio.
offThreadbooleanfalseSposta i calcoli di fingerprint/telemetria su un Web Worker / requestIdleCallback.
explainbooleanfalseEmette spiegazioni in linguaggio naturale delle decisioni del motore.

Rendering SVG

Nuxt Skeletonizer renderizza un singolo overlay <svg> per ciascun host — ogni nodo misurato diventa un <rect> (o un <circle> per gli avatar), guidato da un unico gradiente shimmer condiviso. Queste opzioni controllano quell'output.

OpzioneTipoPredefinitoDescrizione
renderMode'svg''svg'Il backend di rendering. Sola lettura — SVG è l'unico backend. Esposto per introspezione.
svgPrecisionnumber1Cifre decimali usate nell'arrotondamento delle coordinate SVG. Più basso = markup più piccolo; più alto = posizionamento più preciso.
svgSharedGradientbooleantrueUsa un unico <linearGradient> in <defs> condiviso da ogni forma (true), oppure un gradiente separato per ogni forma (false).

Runtime config

Ogni valore è esposto su runtimeConfig.public.skeletonizer, quindi puoi sovrascriverlo per ambiente con le variabili d'ambiente NUXT_PUBLIC_SKELETONIZER_* — senza ricompilare.

Tema a livello di app

Puoi anche cambiare colori, animazione e durata a runtime tramite il composable (setTheme, setAnimation) — vedi Temi.