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
- Installation — two commands, then your first table.
- Tables & the editor — the library and the grid.
- Embedding in rich text — reference tags, the toolbar buttons, and per-embed options.
- The Twig API — putting tables in templates.
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.