Legs

Build a table once, use it anywhere. Legs gives tables a home in Craft: a library, a spreadsheet-style editor, and one way of placing them that works in every rich-text editor at once.

The shape of it

A table is a real Craft element, edited in a grid in the control panel and stored as one JSON document. Placing it on a page is a reference tag:

{legs:price-list:render}

That works in CKEditor, in Redactor, and in any other field built on craftcms/html-field — including plain HTML fields — because Craft parses reference tags over every rich-text value it renders. There is no template change, no output filter, and no per-editor rendering code. The editor plugins only help an author write the tag; remove them and every existing embed keeps working.

What renders

A real table: a <caption>, <thead> / <tbody> / <tfoot>, scope on every header cell, and aria-sort kept current as a visitor sorts. Every row is in the HTML before any JavaScript runs.

On top of that, a dependency-free ES module adds click-to-sort, a search box, pagination and responsive stacking — loaded only on pages where a table actually needs it. Sort values are worked out on the server, so $1,200.00 sorts as 1200 rather than as a string beginning with a dollar sign.

Where to start

Lite and Pro

Lite is free: three tables, the whole editor, embedding everywhere, the field type in both modes, CSV/JSON/HTML in and out, click-to-sort, per-site content and per-embed options.

Pro adds unlimited tables, search and pagination, responsive stacking, merged cells, formulas, element-query tables and XLSX. A lapsed Pro licence downgrades rather than breaks: your tables and their settings are untouched, and the front end serves the Lite feature set until you renew.

More in Frontend

Pairs well with Legs

Building blocks for templates. Navigation, links, tables, embeds, icons, notification bars, favicons and installable web apps.