Blog
v1.0.21Updated 19 Oct 2026Blog / article listing section with cards, featured posts and sidebars. Copy-paste block; baked-in demo content (edit the JSX to customise).
Preview
Live · 13 stories▸Why this is recommendedblogarticlespostsnews+4
Blog — grid.
- ✓Blog index pages
- ✓News / resources pages
- ✓Marketing pages
- Grid, featured, list and with-sidebar layouts
- Cover + title + excerpt + meta per post
- posts / categories are props that default to [] - a blog nobody configured shows its heading and an empty line, never articles we invented (condo69 fb_bc8045e2 / fb_f8fba1de)
- A card is a link only when its post carries an href; without one the title is plain text and the full-card click overlay is dropped. There were 14 hardwired dead anchors
- Categories are links, filter buttons (onCategoryClick) or plain text - never a dead anchor
- linkComponent routes every anchor (card titles, popular rows, category rows) through the host router (fb_bf7dc63a)
- BlogWithSidebar hands the typed address to onSubscribe instead of discarding it
- Every block renders for 0, 1, 2 and many posts - no empty grid, column or list
- ✕In-app feeds
Install
Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.
Usage
Tick variants in the left menu — each adds a tab with that variant’s real story source, the same code the preview above renders.
Props
classNameOptional wrapper class override
—labelsOverride every built-in display string across the blog family (eyebrows, headings, subcopy, category and read-more chrome, sidebar headings, aria-labels) for i18n or white-labelling. Merged over DEFAULT_BLOG_LABELS.
—postsThe articles to render, each with its own href. Defaults to [] - the articles are the site own content, so an unconfigured section shows its heading plus labels.emptyPosts rather than demo articles with dead links. MCP feedback fb_bc8045e2 / fb_f8fba1de.
—categoriesCategory taxonomy for the BlogWithSidebar panel and the BlogCategoryStrip filter chips. Defaults to [] - the panel and the chip row are omitted entirely rather than rendered empty.
—onCategoryClickBlogWithSidebar only: makes a category row with no href a real type=button filter control and receives the category the visitor picked.
—onSubscribeBlogWithSidebar only: receives the address typed into the sidebar subscribe form. Without it the form still prevents the reload but the address goes nowhere.
—linkComponentThe host app link component for EVERY anchor these sections render - card titles, popular-post rows, category rows. Defaults to a plain anchor, which in a routed app reloads the whole document. MCP feedback fb_bf7dc63a.
—