Build Manage Display from Single Directory Components, through Droost's site-building tools.
Drupal Canvas builds freeform pages from Single Directory Components (SDCs). Droost UI Kit does the same for Manage Display: an entity's fields are bound to a component's props and slots, deterministically, with UI Patterns 2 as the storage underneath.
entity fields → source mapping → SDC props and slots → renderThe tools
| Tool | Kind | What it answers |
|---|---|---|
droost_sdc_components (droost_build) |
read | What components exist? What props, slots and schemas does one have? |
droost_display_get (droost_build) |
read | What does a display look like now, as a field-to-component mapping? |
droost_display_check (droost_build) |
read | Does every binding a stored display names (component, source, context) exist? |
droost_display_sources |
read | What can feed a prop or slot, including a field's own properties and formatters? |
droost_display_compose |
write (gated) | Bind fields to components; validate everything; save. |
An agent picks a component, picks its sources, composes with
dry_run: true, then composes for real and views the entity:
drush droost:tool droost_display_sources '{"prop_type":"slot","bundle":"event","field":"body"}'
drush droost:tool droost_display_compose helpValidation and write access
droost_display_composeruns from the command line and checks theallow_config_writegate. CLI writes are enabled by default unless the site disables them; changing an explicit gate setting is an operator action. See Write gates.- Validation is all or nothing: one error anywhere and nothing is written.
- A binding written any other way, through
droost_config_set, is held to the same rule. - The configuration it writes passes Drupal's strict schema check.
- Composing twice gives the same result, so verify with
droost_display_getinstead of retrying.
Install
For development sites: like droost's build tools, this module belongs in
require-dev.
composer require --dev 'drupal/tool:^1.0@beta' 'drupal/droost:^2.0' \
'drupal/droost_build:^2.0' 'drupal/droost_ui_kit:^2.0'
drush en droost_ui_kitTool API is still in beta, so the site requires it at that stability.
drupal.org resolves this module's dependency on droost_build as the
package drupal/droost_build, so require it at droost's version.
Canvas and UI Patterns, together
Canvas and UI Patterns both take over Drupal's SDC plugin manager (#3561618). From UI Patterns 2.0.22, which this module requires, the two coexist with no patch and no bridge module (measured on Canvas 1.12.0).
Formerly Droost UI Patterns
This module began as a droost submodule (droost_display, then
droost_ui_patterns) and became its own project as
Droost UI Patterns. It
was renamed Droost UI Kit because the old name never reached
packages.drupal.org. Droost UI Patterns is retired. The tool ids,
configuration and gate are unchanged.
Requirements
- Drupal 11.3 or later, PHP 8.3 or later.
- Droost 2.0.0 or later, with its
droost_buildsubmodule (enabled with this module). - UI Patterns 2.0.22 or later,
with
ui_patterns_field_formatters.
The project: Droost UI Kit on drupal.org.