KANTO DS v1.12.0
Customise

Theme

Accent

Font

Corners

Density

Text size

Reset to Kanto
Blocks

kt-post-grid

GitHub Copy link

The latest posts, each a card that leads to it: a cover, a title, a line, and who wrote it when.

Preview

The latest posts, each a card that leads to it: a cover, a title, a line, and who wrote it when.

<kt-post-grid id="latest" heading="From the blog"> <a slot="more" href="/blog">Every post</a> </kt-post-grid> <script> latest.posts = [ { title: 'Closing the month in a day', href: '/blog/close', excerpt: 'What changed when the bank feed matched itself.', date: '2026-09-14', image: '/covers/close.jpg', author: { name: 'Ada Park', avatar: '/ada.jpg' }, tags: ['Finance'], }, ]; </script>

Posts

FieldWhat it is
titleThe post's title, a link to it — the whole card answers it.
hrefWhere the post is.
excerptOptional: a line on what it says.
dateOptional: when it was published, 2026-09-14.
imageOptional: a cover, cropped to 16:9.
imageAltOptional: the cover's text alternative; empty by default.
authorOptional: { name, avatar }.
tagsOptional: a few words over the title.

Dates are written for people — Sep 14, 2026 — in locale, the page's language when it is empty, and kept for machines in a <time datetime>.

Layout

grid, the default, sets the posts in columns — 3 or 2 — where there is room: two at most under 760px, one under 520px. list puts one under another, the cover beside the words once the block is 640px wide. The more slot sits under the posts: a link to every one.

Accessibility

A section named by its heading, an <h2> by default (heading-level). The posts are a list of <article>s; each title is a link one level under the heading. A cover is decoration unless given imageAlt — the title already says what the post is.

API

PropertyAttributeTypeDefault
headingheadingstring''
leadleadstring''
posts—KtPost[][]
columnscolumns2 | 33
layoutlayout'grid' | 'list''grid'
localelocalestring''
alignalign'center' | 'start''center'
headingLevelheading-levelnumber2