Lunar Blocks
Standalone Gutenberg block collection for documentation-style content.
by Irvan Noerfazri · github.com/irvangen09/lunar-blocks · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/irvangen09/lunar-blocks/archive/refs/heads/main.zipReadme
Lunar Blocks
A standalone collection of Gutenberg blocks for documentation-style content — built as part of the Lunar ecosystem, but designed to work on any WordPress site, with no theme or companion plugin required.
Features
- 11 blocks + 1 rich-text format, covering the content patterns documentation sites need most: callouts, definition lists, collapsible sections, tabs, step-by-step instructions, an automatic table of contents, flexible tables, image galleries, timelines, structured infoboxes, and inline version/patch tags.
- Standalone-first. Every block works fully without any other plugin active. Color and typography fall back gracefully to sensible, theme-neutral defaults when a theme doesn't define its own design tokens — blocks never impose a specific brand identity on a site that isn't expecting one.
- Per-block settings. A "Lunar Blocks" admin page lets you disable individual blocks you don't need — disabled blocks are fully unregistered, so their assets are never loaded and they disappear from the inserter.
- Accessible by default. Interactive blocks (Accordion, Tabs, Gallery's lightbox, Table's sortable headers) follow WAI-ARIA authoring patterns, with keyboard support and semantic HTML throughout.
- Extensible Infobox. Other plugins can register a data source for Infobox fields through a documented filter, and listen for a save action to sync field values elsewhere — without Lunar Blocks needing any built-in knowledge of what that data represents.
Blocks
| Block | Description |
|---|---|
| Callout | An inline highlighted note, in four variants (Info, Tips, Warning, Important). |
| Definition List | Paired terms and definitions, rendered as semantic <dl>/<dt>/<dd>. |
| Accordion | Collapsible sections that stay flat and always open on wider screens. |
| Tabs | A set of parallel content sections switched via a tab menu, with a fully readable no-JS fallback. |
| Steps | A numbered sequence of instructions. |
| Table of Contents | An automatically generated, nested table of contents with jump-to-section links. |
| Table | A data table with three layouts (standard, mobile-friendly field list, card grid), sortable and searchable. |
| Gallery | A responsive image grid with a lightbox. |
| Timeline | A vertical sequence of chronological points. |
| Infobox | A structured summary panel (image, name, label/value fields) for a character, item, location, or similar subject. |
| Version/Patch Tag | An inline badge (Added, Changed, Removed), inserted from the text-selection toolbar. |
Requirements
- WordPress 6.5 or later
- PHP 8.0 or later
Installation
- Download the latest release zip, or build it yourself from source (see below).
- In your WordPress admin, go to Plugins → Add New → Upload Plugin and upload the zip.
- Activate the plugin.
- Optionally, visit Lunar Blocks in the admin menu to disable any blocks you don't need.
Building from Source
git clone https://github.com/irvangen09/lunar-blocks.git
cd lunar-blocks
npm install
npm run build
Other available scripts:
| Command | What it does |
|---|---|
npm run start |
Builds in watch mode for development. |
npm run lint:js |
Lints JavaScript source. |
npm run lint:css |
Lints SCSS source. |
npm run plugin-zip |
Builds and packages a distributable lunar-blocks.zip. |
Extending Infobox
Infobox fields can be set to pull their available options from another plugin, instead of free text. Register a data source with the lunarBlocks.infobox.fieldSource JS filter:
import { addFilter } from '@wordpress/hooks';
addFilter( 'lunarBlocks.infobox.fieldSource', 'my-plugin/my-source', () => ( {
taxonomy: 'my_taxonomy',
} ) );
To react to Infobox field changes (for example, to sync a value into your own plugin's data), listen for the lunar_blocks_infobox_field_saved PHP action, fired for every Infobox field whenever a post containing one is saved:
add_action( 'lunar_blocks_infobox_field_saved', function ( $post_id, $field_data, $post ) {
// $field_data: label, value, field_source_id, field_source_label
}, 10, 3 );
Contributing
Issues and pull requests are welcome via GitHub.
License
GPL-2.0-or-later. See LICENSE.md for the full text.
Read the full README on GitHub →
Releases
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.