shadcn.io is not affiliated with official shadcn/ui
Framed Cards Blog Block for React
Six text-only posts as raised cards in one tinted frame, two across: category, title as the card's one link, a short dek and a line with author, date and reading time.
Installation
Overview
A text-only post wall for React with Base UI, written for Marlowe Notes, a design agency's journal. A compact header with an outline All notes link sits over a card in card: one muted frame holds six raised panels, two across from sm and one on a phone, and each panel is a single article with no cover, so the words do the work. A panel carries the category as an outline badge, the title as the panel's one link (its target covers the whole panel and the focus ring is drawn around it), a two-line dek, and a quiet line with the author, the date and the reading time. A small arrow nudges on hover. It's built from Guides, Frame, Badge and Button, with CSS for the entrance and the hover, and every colour is a theme token. For agency journals, notes pages and any blog that leads with its writing, not its pictures.
FAQ
How do I add my own posts?
Edit POSTS at the top of the file. Each post has a title, a one-line dek, an author, a category, a date as an ISO string ("2026-09-10"), a reading time in minutes and an href. Dates are fixed, never computed from today, and are formatted in UTC so the server and the browser print the same day. Six posts fill three rows of two; any even number keeps the frame's last row full, and an odd one leaves one panel on its own at the end.
What does the frame do?
It is the catalog's Frame: a muted shell with a small inset, and each FramePanel is a raised, bordered panel inside it, so the panels read as cards sitting in a tray. The block draws no hairlines inside the frame; the structure is the shell and the gaps. The frame follows your theme, so in a dark theme the panels are the dark surface and the shell a step lighter.
Why is only the title a link?
One link per card keeps the page short to tab through and gives a screen reader one clear name per post. The link's after: box stretches over the whole panel, so a click anywhere opens the post, and the keyboard focus ring is drawn on that box. Category, author and date are plain text. To add a second link, such as the author's page, give it relative z-10 so it sits above the stretched link.
How does it fit on a phone?
Below sm the panels stack in one column, each with its full dek, so all six fit in about three screens and nothing scrolls sideways at 320 pixels. The byline wraps onto a second line when the author's name is long.
Related
- Pro
Cards Grid Blog
Card gridsThe six latest posts of an engineering blog as cards on shared hairlines: drawn greyscale covers, a category, the title as the card's one link, a one-line dek and a byline with the date and reading time.
- Pro
Minimal Article Blog
Article partsOne article's opening and nothing else: a narrow reading measure with title, dek and byline, two paragraphs with a sunk initial, and a quiet Continue reading link.
- Pro
Tag Popover Cards Blog
Card gridsThree post cells on shared hairlines, each with a drawn wood-grain cover and three tag chips; a post with more tags shows a +3 button that opens a popover of the rest as links with counts.
- Pro
Rectangular Cards Blog
Card gridsFour horizontal post cards in rows from rail to rail, the drawn cover at one end and the text at the other, mirroring row by row, each row numbered.
- Pro
Compact List Blog
Post listsTwenty posts as dense one-line rows like a printed contents page: date, title, a dotted leader and the reading time, eight shown and twelve behind a Show more button.
- Pro
Inset Border Card Grid Features
Live controlsSix ring-inset preference cells for a team-settings app, each holding one working control: a switch, a slider, a toggle group, a select, a checkbox and a segmented control.