A grid-based content block system for SilverStripe 6 CMS — structured Section → Row → Column layouts with configurable CSS framework adapters (Bootstrap, Tailwind, Bulma).
- PHP ^8.3
- silverstripe/framework ^6.0, silverstripe/cms ^6.0, silverstripe/admin ^3.0, silverstripe/versioned ^3.0, silverstripe/vendor-plugin ^3.0
- unclecheese/display-logic ^4.0, wedevelopnl/silverstripe-media-field ^6.0.0-rc3
- Node >= 26 (only needed if you build the frontend yourself)
Optional:
silverstripe/reports— enables the Grid Elements report in CMS Reportstractorcow/silverstripe-fluent— multi-locale support with isolated grid records per locale (see Fluent integration)
Conflict: this module conflicts with
dnadesign/silverstripe-elementaland replaces its functionality.
composer require wedevelopnl/silverstripe-gridThen run dev/build?flush=1 to pick up the new database schema and configuration.
Set the required SS_GRID_ADAPTER environment variable to select the active CSS framework adapter — a bundled preset name (bootstrap, tailwind, or bulma, case-insensitive) or the fully-qualified class name of a custom adapter. If it is unset, empty, or invalid the module throws when the container boots. See Grid Adapter System for the full reference.
Apply GridPageExtension to the page types that should have grid editing:
# app/_config/grid.yml
Page:
extensions:
Grid: WeDevelop\Grid\Extensions\GridPageExtensionRender the grid in the page template:
<% loop $Sections %>$Me<% end_loop %>
That's a working integration. See Template integration for the per-page editor toggle, default-behavior configuration, theme overrides, and the holder chain.
- Custom content elements — subclass
ContentElement, register CMS fields, add templates - Template integration —
GridPageExtensionconfiguration, holder chain, theme overrides, extension hooks - Internationalization — translating strings, adding a locale, PHP + JS collectors
- Migrating from Elemental / ElementalGrid —
BuildTask-based upgrade from SS5silverstripe-elemental/silverstripe-elemental-grid - Fluent (multi-locale) support — optional integration with
tractorcow/silverstripe-fluent
- Backend architecture — data model, API layer, service design, validation
- Drag and Drop — frontend dnd-kit integration and backend reorder pipeline
- Grid Adapter System — building a new CSS framework adapter
- Contributing guide — dev environment, test/coverage/QA commands, pull-request conventions
- E2E fixture protocol — YAML schema, post-actions, dev fixture endpoint
See CHANGELOG.md for release history.
See LICENSE.