The Daily Style
Friday, March 7, 2026 · Final Edition
Technologies Demonstrated
Color Palette
[Alpine]Cream Paper
#faf9f6
Ink Black
#1a1a1a
Spot Red
#c41e1e
Paper White
#ffffff
Click any swatch to copy the hex value to clipboard. A newspaper palette is defined by restraint.
<div class="grid grid-cols-2 sm:grid-cols-4 gap-6"> @newsColorSwatch("Cream Paper", "var(--color-bg)", "#faf9f6") @newsColorSwatch("Ink Black", "var(--color-secondary)", "#1a1a1a") @newsColorSwatch("Spot Red", "var(--color-primary)", "#c41e1e") @newsColorSwatch("Paper White", "var(--color-surface)", "#ffffff") </div>
Typography
Headlines Set The Tone
Subheads Guide the Reader Through the Story
Photo captions, bylines, and metadata. Small-caps variant used for attributions and datelines throughout.
Spacing Scale
Buttons
[Alpine]<div x-data="{ breaking: false }"> <button class="news-btn cursor-pointer" { templ.Attributes{"@click": "breaking = !breaking"}... } > <span x-text="breaking ? 'Dismiss Alert' : 'Show Breaking News'">Show Breaking News</span> </button> <div x-show="breaking" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 -translate-y-2" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 -translate-y-2" class="news-breaking mt-4" > { "\u26a0 BREAKING: Typography declared the most important design tool of the century" } </div> </div>
Forms
[HTMX] [Alpine]Letters to the Editor
<form hx-post="/guides/newspaper/demo-form" hx-target="#news-form-response" hx-swap="innerHTML" class="space-y-6" > <div> <label class="block news-byline mb-2" for="news-name">Your Name</label> <input id="news-name" name="name" type="text" placeholder="e.g. A. Reader" class="news-input"/> </div> <div> <label class="block news-byline mb-2" for="news-subject">Subject</label> <select id="news-subject" name="category" class="news-input cursor-pointer" style="background: transparent;"> <option value="">Select a topic...</option> <option value="typography">Typography</option> <option value="design">Design</option> <option value="editorial">Editorial</option> <option value="corrections">Corrections</option> </select> </div> <div> <label class="block news-byline mb-2" for="news-message">Your Letter</label> <textarea id="news-message" name="message" rows="4" placeholder="Dear Editor,..." class="news-input" style="resize: vertical;"></textarea> </div> <!-- Checkboxes --> <div> <p class="news-byline mb-2">Preferences</p> <div class="space-y-2"> <label class="flex items-center gap-2 cursor-pointer" style="font-family: var(--font-body); font-size: var(--font-size-body);"> <input type="checkbox" name="pref" value="anonymous" class="w-4 h-4 cursor-pointer"/> Publish anonymously </label> <label class="flex items-center gap-2 cursor-pointer" style="font-family: var(--font-body); font-size: var(--font-size-body);"> <input type="checkbox" name="pref" value="subscribe" class="w-4 h-4 cursor-pointer"/> Subscribe to responses </label> </div> </div> <!-- Radio --> <div> <p class="news-byline mb-2">Urgency</p> <div class="space-y-2"> <label class="flex items-center gap-2 cursor-pointer" style="font-family: var(--font-body); font-size: var(--font-size-body);"> <input type="radio" name="weight" value="standard" checked class="w-4 h-4 cursor-pointer"/> Standard </label> <label class="flex items-center gap-2 cursor-pointer" style="font-family: var(--font-body); font-size: var(--font-size-body);"> <input type="radio" name="weight" value="urgent" class="w-4 h-4 cursor-pointer"/> Urgent </label> </div> </div> <div> <button type="submit" class="news-btn news-btn-primary cursor-pointer">Submit Letter</button> </div> </form>
Cards & Panels
[Alpine]The Typographic Renaissance: How Digital Design Rediscovered Print
Serif Fonts Make a Comeback in Web Design
After years of sans-serif dominance, designers are returning to serif typefaces for body text, citing improved readability.
Read More ›Column Layout Properties See Renewed Interest
The CSS multi-column specification, long overlooked, is finding new applications in editorial web design.
Read More ›Why Every Designer Should Study Newspapers +
The newspaper is the original design system. Centuries before atomic design or component libraries, editors and typesetters developed rigorous systems for organizing information hierarchically. Every designer working in digital media owes a debt to the broadsheet. Understanding these foundations is not optional — it is essential.
<div class="grid grid-cols-1 md:grid-cols-3 gap-6"> <div class="news-card"> <p class="news-byline mt-2 mb-1">Typography</p> <h4 class="news-headline-sm mb-2">Serif Fonts Make a Comeback in Web Design</h4> <p style="font-family: var(--font-body); font-size: var(--font-size-caption); color: var(--color-text-muted); line-height: 1.5;"> After years of sans-serif dominance, designers are returning to serif typefaces for body text, citing improved readability. </p> <a class="inline-block mt-3" style="font-family: var(--font-body); font-size: var(--font-size-caption); color: var(--color-primary); cursor: pointer;">{ "Read More \u203a" }</a> </div> <div class="news-card"> <p class="news-byline mt-2 mb-1">CSS</p> <h4 class="news-headline-sm mb-2">Column Layout Properties See Renewed Interest</h4> <p style="font-family: var(--font-body); font-size: var(--font-size-caption); color: var(--color-text-muted); line-height: 1.5;"> The CSS multi-column specification, long overlooked, is finding new applications in editorial web design. </p> <a class="inline-block mt-3" style="font-family: var(--font-body); font-size: var(--font-size-caption); color: var(--color-primary); cursor: pointer;">{ "Read More \u203a" }</a> </div> <!-- Expandable card --> <div class="news-card" x-data="{ expanded: false }"> <div class="cursor-pointer" { templ.Attributes{"@click": "expanded = !expanded"}... } > <p class="news-byline mt-2 mb-1">Opinion</p> <h4 class="news-headline-sm mb-2"> Why Every Designer Should Study Newspapers <span class="inline-block transition-transform text-sm" { templ.Attributes{":class": "expanded ? 'rotate-45' : ''"}... }>+</span> </h4> </div> <div x-show="expanded" x-transition class="mt-2"> <p style="font-family: var(--font-body); font-size: var(--font-size-caption); color: var(--color-text-muted); line-height: 1.5;"> The newspaper is the original design system. Centuries before atomic design or component libraries, editors and typesetters developed rigorous systems for organizing information hierarchically. Every designer working in digital media owes a debt to the broadsheet. Understanding these foundations is not optional — it is essential. </p> </div> </div> </div>
Latest Headlines
[HTMX]The Grid Is Dead, Long Live the Grid
Modern layout systems have made the rigid grid obsolete — or have they? A look at the evolution of page structure.
Why Your Font Choice Is Wrong
A provocative look at the assumptions designers make about typeface selection and readability.
The Case Against Color
When restraint becomes the most powerful tool in a designer’s arsenal.
<div id="news-main-content"> @HeadlineCard("0", "Design", "The Grid Is Dead, Long Live the Grid", "Modern layout systems have made the rigid grid obsolete \u2014 or have they? A look at the evolution of page structure.", "By Jane Chen \u00b7 8 min read") @HeadlineCard("1", "Typography", "Why Your Font Choice Is Wrong", "A provocative look at the assumptions designers make about typeface selection and readability.", "By Marcus Webb \u00b7 5 min read") @HeadlineCard("2", "Color Theory", "The Case Against Color", "When restraint becomes the most powerful tool in a designer\u2019s arsenal.", "By Sarah Kim \u00b7 6 min read") @HeadlineSentinel("1") </div>
Article View Transition
[HTMX]Click any headline in the feed above. The article loads into the same container using hx-swap="innerHTML transition:true". A "Back to Front Page" button returns to the headline listing via /guides/newspaper/feed.
Reading Progress
[Alpine]The red progress bar at the very top of the viewport tracks your scroll position. It uses Alpine.js @scroll.window to calculate percentage via scrollY / (documentHeight - windowHeight).
<div x-data="{ progress: 0 }" { templ.Attributes{ "@scroll.window": "progress = Math.min(100, Math.round(window.scrollY / (document.documentElement.scrollHeight - window.innerHeight) * 100))", ":style": "'width:' + progress + '%'", }... } class="news-progress"> </div>