🗂️ Universal Card Box Viewer

Drop a deck. See it as cards.

JSONL · first line is metadata · the rest are cards
Drag & drop a .jsonl file here
or click to browse
or paste below
📖 Schema reference

Line 1 — metadata

{"type":"meta","title":"My Deck",
"subtitle":"...","codename":"mybox",
"version":"v1.0","language":"en",
"palette":{"a":"#0A2766","b":"#B83030"},
"theme":{"light":{"--accent":"#1E7A3C"}}}

Lines 2..N — cards

{"set":0,"pattern":"cover","tag":"...",
"title":"...","subline":"...",
"content":{...},"note":"..."}

Card fields

fieldmeaning
setset bucket (int or string)
patternsee patterns below
variantvariant id within the pattern
tagtop-left small tag (uppercase)
titlelarge display title
sublinesmall mono caption under title
notefooter note block
contentpattern-specific payload

Pattern · variant matrix

patternvariants
coverdefault · stat-first · centered
tabledefault · transposed · sorted
bardefault · grouped · ascending
segmenttable · stacked · transposed
yn-griddefault · split · sorted
picklist · grid · numbered
tiervertical · horizontal · descending
statstrip · grid · vertical
kpistrip · stacked · inline
quotedefault · tight · severity-first
radarfilled · outline · side-by-side
brandgrid · stacked · compact
notedefault · numbered · grid

Colors in card content can be either hex (#0A2766) or palette names ("a") defined in metadata.

Unknown patterns or unparseable content render as a fallback card showing the raw JSON.

Privacy note · external resources:
Google Fonts (Playfair Display, DM Mono, Noto Serif TC) · Font Awesome via kit.fontawesome.com.
Browser-built-in APIs only: FileReader, Web Share, localStorage, matchMedia.
No analytics. No tracking. JSONL stays in your browser.
New version available ·