Description
GT Table Block extends the built-in core/table block with optional features that compose cleanly — each feature is an independent toggle, not a block style, so any combination can be active on the same table.
Available in this release:
- Sticky header row — the
<thead>row pins to the top of the viewport while the table body scrolls. Includes a numeric offset control for sites with a fixed admin bar or site header. Pure CSS at runtime (no frontend JavaScript). The sticky background is an opaque CSS variable with full theme.json customization support (see FAQ below). - Styled first column — gives the first column the same visual weight as the header row (bold, optional themeable background) and adds
scope="row"to those cells in the saved markup so screen readers announce them as row headers. Addresses Gutenberg core issue #1470 (open since 2017). Pure CSS for the styling; the a11y attribute is added at save time only, so the editor preview stays unchanged.
Planned for future releases:
- Sticky first column for wide tables with horizontal scroll — v0.3.0.
- Merge / unmerge cells via a block toolbar control — v0.4.0.
Why a variation, not a replacement block?
The plugin deliberately extends core/table rather than forking it, so existing tables stay compatible with core as it evolves. Independent boolean attributes also let any combination of features be active at once — which block styles (a mutually exclusive radio group) cannot offer.
Source code
Source code, build tools, issue tracker, and development log: https://github.com/bph/gt-table-block
The plugin is built with @wordpress/scripts (see the repository’s README for build instructions). Each tagged release on GitHub corresponds to the stable tag published here.
Installation
- Upload the plugin folder to
/wp-content/plugins/or install via the Plugins screen. - Activate through the Plugins menu.
- Insert the Enhanced Table variation from the block inserter, or convert an existing Table block via the Block Settings panel.
FAQ
-
Does it replace the core Table block?
-
No. It registers a variation. Existing core Table blocks are unaffected until you enable a feature toggle on them.
-
Does it need frontend JavaScript?
-
No. Sticky header, header column styling, and sticky first column are pure CSS. Only the editor ships JS.
-
Does it work with block themes?
-
Yes. It targets
core/tableand uses thewp-block-tableclass chain for specificity without!important. -
How do I change the sticky header background color?
-
The sticky header is painted with an opaque background so body rows don’t show through it. It resolves in this order:
--gt-sticky-header-bg— a per-block or local override (wins over everything).--wp--custom--gt-sticky-header-bg— a theme.jsonsettings.customvalue.Canvas— the CSS system color (browser document background, adapts to light/dark mode).
Theme-wide via theme.json (literal color):
{ "settings": { "custom": { "gtStickyHeaderBg": "#f5f5f5" } } }Theme-wide via theme.json (reference a theme preset):
{ "settings": { "custom": { "gtStickyHeaderBg": "var(--wp--preset--color--base)" } } }The value is emitted into the CSS variable as-is, so any WP-generated preset works —
--wp--preset--color--accent,--wp--preset--color--contrast-2, or any palette slug your theme registers.In both cases WordPress serializes
settings.custom.gtStickyHeaderBgas the CSS variable--wp--custom--gt-sticky-header-bg, which the plugin reads as a fallback.Theme-wide via raw CSS in theme.json:
{ "styles": { "css": ".wp-block-table.has-sticky-header { --gt-sticky-header-bg: var(--wp--preset--color--base); } " } }Per-block override: add an inline style or Additional CSS class that sets
--gt-sticky-header-bgon the<figure>.
Avis
Il n’y a aucun avis pour cette extension.
Contributeurs/contributrices & développeurs/développeuses
« GT Table Block » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.
ContributeursTraduisez « GT Table Block » dans votre langue.
Le développement vous intéresse ?
Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.
Journal des modifications
0.2.0
- New feature: Styled first column. Toggle in the Enhanced Table panel makes the first body/foot cells bold and adds
scope="row"to them in the saved HTML for screen-reader semantics (Gutenberg #1470). Themeable background via the--gt-header-column-bgCSS variable.
0.1.1
- Documentation: shorter Short Description (Plugin Check 150-char limit), align GitHub README with readme.txt scope. No code changes.
0.1.0
- Initial release — sticky header row with optional offset control. Further features ship in subsequent releases.
