Sistema di componenti aziendale · Nuova risorsa

Sistema di progettazione Tabler.

Un diario di progetto Tabler nativo con variabili del tema 1.6 effettive, schede cronologiche, contesto di datagrid, convalida nelle finestre modali e una composizione chiara/scura che consente di aggiungere checkpoint locali.

Guida OpenDesign9 capitoli34 voci di riferimentoGuida applicativa originale
01

Anteprima dell’interfaccia del sistema di progettazione sistema di design Tabler

Esamina le decisioni e gli studi delle copertine, aggiungi un checkpoint convalidato e cambia la modalità colore nativa.

Diario del progetto AtlasApri l’esempio completo
Tabler 1.6.1 compilato CSS e il relativo modal incluso JavaScript. Contenuti originali del progetto e studi delle copertine. · Riferimento per l’implementazione
02

Riferimento di progettazione del sistema di progettazione sistema di design Tabler

Variabili compilate CSS 1.6.1 Tabler. Questa versione usa primitive OKLCH e light-dark()/color-mix() nei ruoli semantici; gli esempi Tabler più datati basati su valori esadecimali non vanno considerati lo stesso tema. I valori riportati sotto sono quelli effettivi predefiniti nell’installazione.

Colori predefiniti di stato e azione

Fonte
Nome / regolaValore / configurazioneUtilizzo
--tblr-primaryoklch(54.6% 0.1724 254.2deg)Ruolo dell’azione principale.
--tblr-secondaryoklch(55.55% 0 0deg)Ruolo secondario.
--tblr-successoklch(67.38% 0.1885 145.43deg)Ruolo di successo.
--tblr-infooklch(66.26% 0.1358 246.81deg)Ruolo informativo.
--tblr-warningoklch(77.02% 0.1658 71.02deg)Ruolo di avviso.
--tblr-dangeroklch(58.29% 0.1941 25.59deg)Ruolo di pericolo.
--tblr-purpleoklch(57.83% 0.2186 319.15deg)Colore della categoria di prototipo in questa applicazione.
--tblr-body-colorlight-dark(oklch(26.86% 0 0deg), oklch(92.19% 0 0deg))Il testo si adatta allo schema di colori corrente.
--tblr-body-bglight-dark(oklch(98.51% 0 0deg), oklch(20.46% 0 0deg))Lo sfondo della pagina si adatta allo schema di colori.
--tblr-bg-surfacelight-dark(var(--tblr-bg-surface-primary), var(--tblr-gray-800))Ruolo dello sfondo di schede/superfici.

Tipografia del corpo e scala degli angoli

Fonte
Nome / regolaValore / configurazioneUtilizzo
--tblr-font-sans-serifsystem-ui, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serifStack sans-serif di sistema nella versione installata.
--tblr-body-font-size0.875remEquivalente predefinito di 14px con una radice del browser di 16px.
--tblr-body-font-weight400Spessore normale del testo del corpo.
--tblr-body-line-height1.4285714286Circa 20px con la dimensione predefinita del testo del corpo.
--tblr-border-radius6pxRaggio predefinito di 6px.
--tblr-border-radius-sm4pxRaggio small di 4px.
--tblr-border-radius-lg8pxRaggio grande di 8px.
--tblr-border-radius-xl1remRaggio extra-large di 1rem.
--tblr-border-radius-pill100remArrotondamento delle pillole.

Spaziatura e geometria nativa della timeline

Fonte
Nome / regolaValore / configurazioneUtilizzo
--tblr-spacer-00Valore di spaziatura nativo con nome.
--tblr-spacer-10.25remValore di spaziatura nativo con nome.
--tblr-spacer-20.5remValore di spaziatura nativo con nome.
--tblr-spacer-31remValore di spaziatura nativo con nome.
--tblr-spacer-41.5remValore di spaziatura nativo con nome.
--tblr-spacer-52remValore di spaziatura nativo con nome.
--tblr-spacer-62.5remValore di spaziatura nativo con nome.
--tblr-page-paddingvar(--tblr-spacer-3)Variabile di spaziatura tra pagina e timeline; le sovrascritture responsive possono modificarla.
--tblr-card-spacer-x1.25remPadding orizzontale predefinito del corpo della scheda.
--tblr-card-spacer-y1.25remPadding verticale predefinito del corpo della scheda.
--tblr-timeline-icon-size2.5remNodo icona da 40px con una radice predefinita di 16px.

Scelte originali del diario

Fonte
Nome / regolaValore / configurazioneUtilizzo
Project layoutcol-lg-8 + col-lg-4Griglia nativa; due colonne dal breakpoint lg.
Page padding32px; 24px 14px below 650pxRientro originale dell’applicazione.
Journal title32px / 1.2; 27px on mobileSovrascrittura originale del titolo della pagina.
Cover studies155px tall; 120px on mobileIllustrazione decorativa originale CSS.
03

Guida completa al sistema di progettazione sistema di design Tabler

Una guida pratica per scegliere, applicare e valutare questo sistema in un’interfaccia reale.

DESIGN-tabler.md

Indicazioni complete, un punto di partenza per l’implementazione e link alle fonti.

Scarica la guida

Sistema di progettazione sistema di design Tabler Usa il tema corrispondente alla versione di Tabler

Usa il tema corrispondente alla versione di Tabler

Il diario del progetto è realizzato con Tabler 1.6.1. La palette compilata usa colori OKLCH, mentre le variabili semantiche usano light-dark e color-mix. Il riferimento riporta quindi le espressioni effettive anziché copiare valori esadecimali da una vecchia guida Bootstrap o Tabler. L’azione principale, i badge di stato e i ruoli delle superfici provengono tutti da questa versione installata.

Da questa guida su OpenDesign

Tabler amplia il vocabolario dei componenti Bootstrap con propri schemi di layout e di visualizzazione delle informazioni. L’esempio usa le classi native timeline, page-header, datagrid e avatar insieme a schede, moduli e un modal familiari. Questi dettagli ne fanno una composizione Tabler, anziché una griglia generica di schede con un logo diverso.

Leggi la specifica di supporto

La modalità colore del sistema di progettazione sistema di design Tabler cambia le superfici oltre al testo

Il cambio di modalità colore modifica sia le superfici sia il testo

Il controllo del tema modifica data-bs-theme sull’elemento html e aggiorna il proprio stato premuto e l’etichetta dell’azione. Le espressioni semantiche di Tabler scelgono quindi i valori chiari o scuri. Per questo semplice esempio a due stati non serve un gestore del tema JavaScript separato e le preferenze non vengono salvate al di fuori della pagina.

Decisione, Prototipo e Revisione usano le classi native per le sfumature blu, viola e verdi. Le etichette testuali mantengono il loro significato senza dipendere solo dal colore. Le illustrazioni degli studi di copertina conservano la palette originale, simile alla carta, in entrambe le modalità; le schede circostanti, la pagina e il testo usano il tema effettivo dei componenti.

Leggi la specifica di supporto

Sistema di design Tabler Sistema di progettazione: caratteri compatti per il testo corrente e gerarchia distinta per la pagina

Testo compatto per il corpo con una gerarchia di pagina distinta

Il testo corrente predefinito è di 0.875rem, con un’altezza della riga di circa 1.4286: su una radice di sedici pixel corrisponde a un testo di circa quattordici pixel. Lo stack di caratteri installato usa i caratteri sans-serif di sistema, quindi questa anteprima non richiede caratteri remoti. I titoli delle schede e i metadati mantengono le classi native, mentre il titolo della pagina usa una dimensione originale di trentadue pixel.

I valori nativi di spaziatura aumentano secondo la sequenza 0, 0.25, 0.5, 1, 1.5, 2 e 2.5rem. Sono variabili denominate nel CSS installato, non una scala ipotizzata. La spaziatura interna predefinita del corpo della scheda è di 1.25rem in entrambe le direzioni. Il nodo della timeline è di 2.5rem e il connettore usa la variabile di spaziatura della pagina per colmare il vuoto tra le voci.

Leggi la specifica di supporto

Sistema di design Tabler Sistema di progettazione: una timeline è più di un bordo verticale

Una timeline è più di un bordo verticale

Ogni punto di revisione è un elemento di lista timeline-event, con timeline-event-icon e timeline-event-card. Il CSS nativo posiziona il nodo, disegna il connettore tra le voci non finali e distanzia la scheda del contenuto in base alla larghezza del nodo più la spaziatura della pagina. Questo esempio non simula la linea con un’immagine di sfondo né si affida a posizioni assolute per ogni scheda.

Le schede variano per contenuto. Una registra una decisione strutturale, una contiene tre studi di copertina effettivi e una registra la revisione dei riferimenti. Il contesto del progetto è fuori dalla sequenza perché il formato e il focus attuale sono attributi persistenti, non eventi datati. Sugli schermi più piccoli, la barra laterale segue la timeline nell’ordine del documento.

Leggi la specifica di supporto

Sistema di design Tabler Sistema di progettazione: usare datagrid per piccoli gruppi di etichette e valori

Usa Datagrid per piccoli gruppi di etichette e valori

La scheda Contesto del progetto usa coppie datagrid-item, datagrid-title e datagrid-content. Formato, Team, Punti di revisione e Focus attuale sono attributi sullo stesso piano, quindi vengono presentati in un datagrid nativo compatto anziché in una tabella con intestazioni di riga ridondanti. Gli avatar iniziali usano le iniziali testuali e non richiedono immagini remote.

Il conteggio dei punti di revisione è l’unico valore del contesto modificato da questo esempio. Aggiungendo una voce locale, il conteggio passa da tre a quattro, mentre la descrizione originale del progetto rimane invariata. Si evitano così metriche di dashboard inventate: il numero corrisponde direttamente alle voci visibili nell’elenco.

Leggi la specifica di supporto

Sistema di design Tabler Sistema di progettazione: la modale integrata gestisce visibilità e focus

Il modal incluso gestisce visibilità e focus

Il pulsante Aggiungi punto di revisione apre la modale nativa tramite data-bs-toggle e data-bs-target. Il JavaScript Tabler integrato fornisce l’implementazione della modale. Un listener per shown.bs.modal porta il focus sul campo del titolo al termine della transizione, quando l’input è effettivamente visibile. Chiudi e Annulla usano data-bs-dismiss per seguire lo stesso ciclo di vita del componente.

La modale contiene un vero modulo. I vincoli di obbligatorietà e lunghezza rifiutano i campi incompleti prima che venga eseguito il gestore dell’invio. Il gestore verifica anche la lunghezza dopo aver rimosso gli spazi iniziali e finali, perché una stringa di soli spazi non è un titolo o una motivazione utile. La convalida mantiene il testo inserito disponibile per le correzioni; il modulo viene azzerato solo dopo l’aggiunta riuscita di una voce.

  1. Apri la modale e invia i campi vuoti per individuare il primo controllo non valido.
  2. Inserisci un titolo, scegli un tipo di punto di revisione e spiegane la motivazione.
  3. Invia e verifica che la nuova voce e il conteggio nel contesto si aggiornino insieme.

Leggi la specifica di supporto

Sistema di design Tabler Sistema di progettazione: inserire testo in modo sicuro e indicare chiaramente i limiti locali

Aggiungi testo sicuro e indica il confine dell’elaborazione locale

L’applicazione crea una struttura di scheda nota e inserisce il titolo e la motivazione con textContent. Solo una mappatura fissa dei tre tipi del menu a discesa sceglie la classe per la sfumatura. Il testo fornito dall’utente non viene mai interpolato nel HTML della scheda. La nuova voce viene inserita in cima con l’etichetta chiara VOCE LOCALE, non con un timestamp del server inventato.

Dopo l’inserimento, l’istanza della modale esistente si chiude e una notifica di stato indica il nuovo punto di revisione. Specifica chiaramente che non è stato aggiornato alcun servizio del progetto. Un vero diario collaborativo richiederebbe persistenza, identità degli autori e garanzie sull’ordinamento; l’aggiunta di un elemento al DOM locale non offre queste funzionalità.

Leggi la specifica di supporto

Sistema di design Tabler Sistema di progettazione: mantenere leggibili i contenuti densi in una timeline compatta

Mantieni leggibili i contenuti densi in una timeline stretta

La griglia principale usa col-lg-8 e col-lg-4. Al di sotto del breakpoint grande nativo, il contesto del progetto si dispone sotto il diario. Il foglio di stile originale per schermi piccoli riduce la distanza laterale della timeline, consente ai gruppi di titoli e badge di andare a capo e ridimensiona gli studi di copertina, mantenendo invariati testi e azioni.

Una timeline può diventare affollata quando la colonna delle icone, la spaziatura interna delle schede e un titolo lungo competono per la stessa larghezza. L’esempio per dispositivi mobili mantiene il nodo come riferimento stabile, ma usa un rientro compatto. Gli studi di copertina originali restano tre piccoli confronti perché la loro relazione è importante; le didascalie sono accessorie rispetto al paragrafo esplicativo adiacente.

  • Mantieni leggibili il titolo e il tipo di punto di revisione quando vanno a capo.
  • Conserva il testo della motivazione invece di troncare ogni voce della timeline.
  • Sui dispositivi mobili, mostra la scheda del contesto dopo la sequenza di lettura principale.

Leggi la specifica di supporto

Sistema di design Tabler Sistema di progettazione: caricare un abbinamento coerente di CSS e JavaScript

Carica una coppia CSS e JavaScript compatibile

La configurazione usa @tabler/core 1.6.1 e copia le risorse dist in una directory pubblica locale. Carica tabler.min.css prima del foglio di stile dell’applicazione e tabler.min.js prima del codice di interazione locale. Aggiungere un secondo bundle Bootstrap non correlato potrebbe inizializzare due volte gli stessi attributi data; questo esempio usa solo il bundle Tabler corrispondente.

Il foglio di stile attuale usa funzioni colore moderne. Consulta le indicazioni di Tabler sulla compatibilità dei browser prima di adottarlo in un prodotto con requisiti di supporto per browser meno recenti. L’esempio locale è stato verificato in Chromium per la convalida nativa della modale, l’inserimento nella timeline, la modalità scura e un layout da 390px; non è una distribuzione in produzione né una garanzia per ogni browser possibile.

Leggi la specifica di supporto

Sistema di design Tabler Esempi di componenti del sistema di progettazione

Timeline, scheda del contesto e modale di inserimento

Struttura nativa di timeline-event, card, datagrid, badge e modal.

html
<main class="project-log"><header class="page-header d-print-none"><div class="row align-items-center"><div class="col"><div class="page-pretitle">TABLER · PROJECT JOURNAL</div><h1 class="page-title">Atlas field notes</h1><p class="text-secondary mt-2 mb-0">Decisions, prototypes and review checkpoints for a small editorial project.</p></div><div class="col-auto d-flex gap-2"><button id="theme" class="btn" aria-pressed="false">Dark mode</button><button id="add" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#entry-modal">Add checkpoint</button></div></div></header><div class="row g-4 mt-1"><section class="col-lg-8" aria-label="Project checkpoints"><ul id="timeline" class="timeline"><li class="timeline-event"><div class="timeline-event-icon bg-blue-lt" aria-hidden="true">AM</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">A clearer route through the issue</h2><span class="badge bg-blue-lt">Decision</span></div><div class="text-secondary small mb-3">Alex Morgan · 02 OCT</div><p class="mb-0">Group the field essays by landscape rather than author. Each chapter opens with a short map and a single question.</p></div></div></li><li class="timeline-event"><div class="timeline-event-icon bg-purple-lt" aria-hidden="true">JC</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">Three cover directions</h2><span class="badge bg-purple-lt">Prototype</span></div><div class="text-secondary small mb-3">Jules Chen · 01 OCT</div><div class="cover-strip" aria-label="Three original cover studies"><div><b>ATLAS</b><i></i><small>RIDGE / 01</small></div><div><b>ATLAS</b><i></i><small>RIVER / 02</small></div><div><b>ATLAS</b><i></i><small>PLAIN / 03</small></div></div><p class="mt-3 mb-0">Compare the quiet title treatment against the stronger geographic silhouette before selecting a direction.</p></div></div></li><li class="timeline-event"><div class="timeline-event-icon bg-green-lt" aria-hidden="true">SR</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">Reference package reviewed</h2><span class="badge bg-green-lt">Review</span></div><div class="text-secondary small mb-3">Sam Rivera · 30 SEP</div><p class="mb-0">Image captions, credit lines and print dimensions are recorded alongside each selected reference.</p></div></div></li></ul></section><aside class="col-lg-4"><div class="card"><div class="card-header"><h2 class="card-title">Project context</h2></div><div class="card-body"><div class="datagrid"><div class="datagrid-item"><div class="datagrid-title">Format</div><div class="datagrid-content">Editorial field journal</div></div><div class="datagrid-item"><div class="datagrid-title">Team</div><div class="datagrid-content"><span class="avatar avatar-xs me-1">AM</span><span class="avatar avatar-xs me-1">JC</span><span class="avatar avatar-xs">SR</span></div></div><div class="datagrid-item"><div class="datagrid-title">Checkpoints</div><div id="count" class="datagrid-content">3 recorded</div></div><div class="datagrid-item"><div class="datagrid-title">Current focus</div><div class="datagrid-content">Cover selection</div></div></div></div><div class="card-footer text-secondary">Sample project. New entries stay in this page.</div></div><div class="card mt-4"><div class="card-body"><h2 class="card-title">A useful checkpoint</h2><p class="text-secondary">Record the decision and the reason together. A future reader should understand what changed without reopening the meeting.</p><p class="mb-0 small">Choose Decision, Prototype or Review when adding a local entry.</p></div></div></aside></div><div id="notice" class="alert alert-success mt-3" role="status" hidden></div></main><div id="entry-modal" class="modal modal-blur fade" tabindex="-1" aria-labelledby="entry-title" aria-hidden="true"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><form id="entry-form"><div class="modal-header"><h2 id="entry-title" class="modal-title">Add a local checkpoint</h2><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body"><div class="mb-3"><label for="entry-name" class="form-label">Title</label><input id="entry-name" class="form-control" required minlength="5" maxlength="80" placeholder="What changed?"></div><div class="mb-3"><label for="entry-type" class="form-label">Kind</label><select id="entry-type" class="form-select"><option>Decision</option><option>Prototype</option><option>Review</option></select></div><div><label for="entry-detail" class="form-label">Reason or evidence</label><textarea id="entry-detail" class="form-control" required minlength="15" maxlength="360" rows="4" placeholder="Explain why this checkpoint matters."></textarea></div></div><div class="modal-footer"><button type="button" class="btn" data-bs-dismiss="modal">Cancel</button><button class="btn btn-primary" type="submit">Add to journal</button></div></form></div></div></div>

Riferimento del codice

  • La timeline è un vero elenco, nell’ordine di lettura.
  • Il contesto del progetto usa coppie datagrid di titolo e contenuto.
  • Il pulsante di apertura della modale usa gli attributi data API compatibili con Bootstrap integrato.

Aggiunta locale convalidata di un punto di revisione

Ciclo di vita della modale, inserimento sicuro del testo, sincronizzazione del conteggio e modalità colore.

javascript
const q=s=>document.querySelector(s),modalEl=q('#entry-modal');let count=3;
modalEl.addEventListener('shown.bs.modal',()=>q('#entry-name').focus());
q('#theme').onclick=e=>{let dark=document.documentElement.dataset.bsTheme!=='dark';document.documentElement.dataset.bsTheme=dark?'dark':'light';e.currentTarget.setAttribute('aria-pressed',String(dark));e.currentTarget.textContent=dark?'Light mode':'Dark mode';};
q('#entry-form').onsubmit=e=>{e.preventDefault();const title=q('#entry-name'),detail=q('#entry-detail'),kind=q('#entry-type').value;if(title.value.trim().length<5){title.setCustomValidity('Use at least five non-space characters.');title.reportValidity();return;}if(detail.value.trim().length<15){detail.setCustomValidity('Use at least fifteen non-space characters.');detail.reportValidity();return;}const li=document.createElement('li');li.className='timeline-event';const color={Decision:'blue',Prototype:'purple',Review:'green'}[kind];li.innerHTML=`<div class="timeline-event-icon bg-${color}-lt" aria-hidden="true">YOU</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1"></h2><span class="badge bg-${color}-lt"></span></div><div class="text-secondary small mb-3">You · LOCAL ENTRY</div><p class="mb-0"></p></div></div>`;li.querySelector('h2').textContent=title.value.trim();li.querySelector('.badge').textContent=kind;li.querySelector('p').textContent=detail.value.trim();q('#timeline').prepend(li);q('#count').textContent=`${++count} recorded`;tabler.Modal.getInstance(modalEl).hide();q('#notice').hidden=false;q('#notice').textContent=`Local ${kind.toLowerCase()} added: ${title.value.trim()}. No project service was updated.`;e.target.reset();};['#entry-name','#entry-detail'].forEach(s=>q(s).oninput=e=>e.target.setCustomValidity(''));

Riferimento del codice

  • Le stringhe inserite dall’utente vengono assegnate con textContent.
  • La modale viene azzerata solo dopo l’aggiunta di una voce valida.
  • La notifica dichiara che non è stato aggiornato alcun servizio del progetto.

Layout originale del diario e studi di copertina

Adattamenti responsive attorno ai componenti nativi Tabler.

css
html,body{min-height:0;height:auto}body{margin:0}.project-log{max-width:1160px;padding:32px;margin:auto}.project-log .page-header{margin:0 0 24px}.project-log .page-title{font-size:32px;line-height:1.2}.cover-strip{display:flex;gap:12px}.cover-strip>div{flex:1;min-width:0;height:155px;padding:14px;background:#d6dfd2;color:#334834;position:relative;overflow:hidden;border-radius:4px}.cover-strip>div:nth-child(2){background:#cbdbe3;color:#2d4857}.cover-strip>div:nth-child(3){background:#e9d9bc;color:#6a5439}.cover-strip b{letter-spacing:.15em;font-size:14px}.cover-strip i{position:absolute;width:120px;height:90px;border-radius:50%;background:currentColor;opacity:.2;left:20%;top:38%;transform:rotate(-25deg)}.cover-strip>div:nth-child(2) i{width:40px;height:150px;top:30%;left:50%;border-radius:40%}.cover-strip>div:nth-child(3) i{width:160px;height:60px;top:45%;left:10%;border-radius:0;transform:rotate(-12deg)}.cover-strip small{position:absolute;bottom:12px;left:14px;font-size:9px;letter-spacing:.12em}[hidden]{display:none!important}.timeline-event-card .badge{height:fit-content;white-space:nowrap}.timeline-event-card p{line-height:1.65}.timeline-event-icon{font-size:11px;font-weight:700}@media(max-width:650px){.project-log{padding:24px 14px}.project-log .page-title{font-size:27px}.page-header .col-auto{width:100%;margin-top:16px}.cover-strip{gap:6px}.cover-strip>div{height:120px;padding:8px}.cover-strip b{font-size:10px}.cover-strip small{left:8px;font-size:7px}.timeline-event-card .d-flex{flex-wrap:wrap}.timeline-event-card{margin-inline-start:calc(var(--tblr-timeline-icon-size) + 12px)}}

Riferimento del codice

  • Le illustrazioni di copertina originali rappresentano tre studi di progettazione fittizi.
  • Il documento usa l’altezza del contenuto per l’incorporamento.
04

Sistema di design Tabler Configurazione dell’agente IA per il sistema di progettazione

Punto di partenza per l’implementazione

Verificato con Tabler 1.6.1. Salva i moduli di layout e applicazione allegati come style.css e app.js. Usa gli attributi data API della modale nativa. Il wrapper HTML include l’intero markup del body; salva gli esempi forniti di interazione e CSS con i nomi file indicati qui.

html
<!-- npm install @tabler/[email protected] -->
<!-- Copy node_modules/@tabler/core/dist to public/vendor/tabler. -->
<html lang="en" data-bs-theme="light">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="/vendor/tabler/css/tabler.min.css">
<link rel="stylesheet" href="style.css">
<main class="project-log"><header class="page-header d-print-none"><div class="row align-items-center"><div class="col"><div class="page-pretitle">TABLER · PROJECT JOURNAL</div><h1 class="page-title">Atlas field notes</h1><p class="text-secondary mt-2 mb-0">Decisions, prototypes and review checkpoints for a small editorial project.</p></div><div class="col-auto d-flex gap-2"><button id="theme" class="btn" aria-pressed="false">Dark mode</button><button id="add" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#entry-modal">Add checkpoint</button></div></div></header><div class="row g-4 mt-1"><section class="col-lg-8" aria-label="Project checkpoints"><ul id="timeline" class="timeline"><li class="timeline-event"><div class="timeline-event-icon bg-blue-lt" aria-hidden="true">AM</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">A clearer route through the issue</h2><span class="badge bg-blue-lt">Decision</span></div><div class="text-secondary small mb-3">Alex Morgan · 02 OCT</div><p class="mb-0">Group the field essays by landscape rather than author. Each chapter opens with a short map and a single question.</p></div></div></li><li class="timeline-event"><div class="timeline-event-icon bg-purple-lt" aria-hidden="true">JC</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">Three cover directions</h2><span class="badge bg-purple-lt">Prototype</span></div><div class="text-secondary small mb-3">Jules Chen · 01 OCT</div><div class="cover-strip" aria-label="Three original cover studies"><div><b>ATLAS</b><i></i><small>RIDGE / 01</small></div><div><b>ATLAS</b><i></i><small>RIVER / 02</small></div><div><b>ATLAS</b><i></i><small>PLAIN / 03</small></div></div><p class="mt-3 mb-0">Compare the quiet title treatment against the stronger geographic silhouette before selecting a direction.</p></div></div></li><li class="timeline-event"><div class="timeline-event-icon bg-green-lt" aria-hidden="true">SR</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">Reference package reviewed</h2><span class="badge bg-green-lt">Review</span></div><div class="text-secondary small mb-3">Sam Rivera · 30 SEP</div><p class="mb-0">Image captions, credit lines and print dimensions are recorded alongside each selected reference.</p></div></div></li></ul></section><aside class="col-lg-4"><div class="card"><div class="card-header"><h2 class="card-title">Project context</h2></div><div class="card-body"><div class="datagrid"><div class="datagrid-item"><div class="datagrid-title">Format</div><div class="datagrid-content">Editorial field journal</div></div><div class="datagrid-item"><div class="datagrid-title">Team</div><div class="datagrid-content"><span class="avatar avatar-xs me-1">AM</span><span class="avatar avatar-xs me-1">JC</span><span class="avatar avatar-xs">SR</span></div></div><div class="datagrid-item"><div class="datagrid-title">Checkpoints</div><div id="count" class="datagrid-content">3 recorded</div></div><div class="datagrid-item"><div class="datagrid-title">Current focus</div><div class="datagrid-content">Cover selection</div></div></div></div><div class="card-footer text-secondary">Sample project. New entries stay in this page.</div></div><div class="card mt-4"><div class="card-body"><h2 class="card-title">A useful checkpoint</h2><p class="text-secondary">Record the decision and the reason together. A future reader should understand what changed without reopening the meeting.</p><p class="mb-0 small">Choose Decision, Prototype or Review when adding a local entry.</p></div></div></aside></div><div id="notice" class="alert alert-success mt-3" role="status" hidden></div></main><div id="entry-modal" class="modal modal-blur fade" tabindex="-1" aria-labelledby="entry-title" aria-hidden="true"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><form id="entry-form"><div class="modal-header"><h2 id="entry-title" class="modal-title">Add a local checkpoint</h2><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body"><div class="mb-3"><label for="entry-name" class="form-label">Title</label><input id="entry-name" class="form-control" required minlength="5" maxlength="80" placeholder="What changed?"></div><div class="mb-3"><label for="entry-type" class="form-label">Kind</label><select id="entry-type" class="form-select"><option>Decision</option><option>Prototype</option><option>Review</option></select></div><div><label for="entry-detail" class="form-label">Reason or evidence</label><textarea id="entry-detail" class="form-control" required minlength="15" maxlength="360" rows="4" placeholder="Explain why this checkpoint matters."></textarea></div></div><div class="modal-footer"><button type="button" class="btn" data-bs-dismiss="modal">Cancel</button><button class="btn btn-primary" type="submit">Add to journal</button></div></form></div></div></div>

<script src="/vendor/tabler/js/tabler.min.js"></script>
<script src="app.js"></script>
<!-- The bundle exposes tabler.Modal; no second Bootstrap bundle is needed. -->
</html>

Un prompt per il tuo progetto

Prompt per l’agente
Usa Tabler 1.6.1 per riprodurre il diario del progetto Atlas con timeline, schede del contesto, datagrid e modale nativa. Mantieni il modulo convalidato per i punti di revisione separato dalla timeline confermata: annullando il diario resta invariato, mentre un invio valido aggiunge il punto di revisione inserito ai record locali. Conserva gli attributi data-bs, il bundle Tabler corrispondente e lo stile del tema. Mantieni gli studi di copertina originali come elementi decorativi e assicurati che il testo dei punti di revisione sia leggibile sugli schermi stretti. Non suggerire la presenza di un inventario infrastrutturale o di una pubblicazione esterna.
05

Sistema di design Tabler Fonti e ambito del sistema di progettazione

Tabler 1.6.1. Le variabili effettive del tema e i componenti nativi sono distinti dai contenuti originali del progetto e dalle illustrazioni di copertina. I nuovi punti di revisione restano locali.