Skip to content
Postkit

Comparison. An accessible feature and option comparison table.

  • Technical content
  • Static
  • Stability · Initial
  • ::postkit-comparison

Choose a rendering model

FeatureStatic HTMLInteractive React
Portable documentYesYes
Client JavaScriptNoneAs needed
Interactive controlsNoYes

Usage.

<Comparison
  title="Choose a rendering model"
  columns='["Static HTML","Interactive React"]'
  items='[{"label":"Portable document","values":[true,true]},{"label":"Client JavaScript","values":["None","As needed"]},{"label":"Interactive controls","values":[false,true]}]'
/>

Props. Always in step with the code.

PropTypeDefaultDescription
columnsRequiredJSON stringNoneA JSON array of compared option labels.
itemsRequiredJSON stringNoneA JSON array of feature rows and values.
titlestringNoneThe comparison heading.
descriptionstringNoneSupporting comparison copy.
Appearance
size"sm" | "md" | "lg""md"The component density and type scale.
variant"outline" | "subtle" | "plain""subtle"The component visual treatment.

Every component also takes unstyled and the part-styling props. Change a default for your whole site with defaults in createPostkit. Part styles

Anatomy. Every part is yours to restyle.

Every part

  • root
  • title
  • description
  • scroller
  • table
  • head
  • header
  • row
  • label
  • value

Renderers. One component, everywhere you publish.

  • Headless @postkit/reactSupported
  • Chakra @postkit/chakraSupported
  • Email @postkit/emailAs text
  • Astro @postkit/astroStatic
  • Web components @postkit/elementsPlanned
Postkit

Richer posts, written once, right everywhere.

© 2026 Postkit. MIT licensed.
LicensingPrivacy