posts-list section renders a set of post cards sourced from your posts collection. You choose between two layout variants — bento for a masonry-style featured grid, or timeline for a chronological list — and you can cap the number of displayed items with an optional limit field.
Use posts-list wherever you want to surface posts on a page: as a featured preview on the home page (bento, limited to 4), as a full archive on the posts index (timeline, no limit), or as a secondary “start reading” prompt anywhere on the site.
Data fields
string
An eyebrow label rendered above the section title — for example
"Fresh ink". Optional. Use it to give the section a campaign or editorial name without changing the title.string
required
The section heading — for example
"Latest from the desk" or "The archive".string
A short supporting sentence below the title. Optional. Use it to explain the curation logic — for example
"The four most recent essays, pulled live from the posts collection and sorted by date."."bento" | "timeline"
Controls the layout of the post cards. Optional — when omitted the theme default applies.
bento— renders a masonry-style grid. Best for highlighted or curated subsets of posts (use withlimit).timeline— renders a vertical chronological list. Best for archive pages where you want to show all posts in order.
number
Caps the number of posts rendered from the collection. Optional — when omitted, all items in the referenced collection are rendered. Combine with
variant: "bento" and a value of 3 or 4 for a featured-posts panel.CollectionRef
required
A reference to the posts collection file. You do not inline post data here — instead you provide a The
$ref key pointing to the relative path of posts.json. OlonJS resolves the reference at build time and injects the full collection.$ref path is relative to the page JSON file that contains the section. See the Collections guide for full details.The
items field uses the ui:collection-ref UI hint, which means the OlonJS Studio renders it as a collection picker rather than a freeform input. You should never need to type the $ref path by hand in the Studio.Settings fields
"none" | "sm" | "md" | "lg" | "xl"
Vertical padding applied above the section.
"none" | "sm" | "md" | "lg" | "xl"
Vertical padding applied below the section.
.png?fit=max&auto=format&n=AyzhRn9-CO-nDNc4&q=85&s=63c78e2325701880237e6cbce1399c2a)
.png?fit=max&auto=format&n=AyzhRn9-CO-nDNc4&q=85&s=0db283df6e4d31745079d6d03fd029ed)