UI Schemas
UI Schemas customize how Contextual renders Object Type records in the admin experience.
At a high level, Contextual uses JSON Forms-style UI schemas for form layouts, but it also supports additional styles and options that go beyond vanilla JSON Forms.
Supported styles
Contextual UI Schemas can define different layouts for different experiences:
createStyle- layout for creating a new recordupdateStyle- layout for editing an existing recordreadStyle- layout for read-only record viewsduplicateStyle- layout used when duplicating an existing recordlistStyle- table/list configuration for collections of recordsrelatedStyle- related-record presentation used by relation-aware views
How this differs from vanilla JSON Forms
The form-oriented styles (createStyle, updateStyle, readStyle) follow the usual JSON Forms idea of composing controls and layouts.
Contextual also adds platform-specific styles and behavior, especially for:
list/table configuration
duplicate views
related-record views
specialized renderers selected by schema
renderervalues or UI schemaoptions.renderer
List-style configuration
listStyle controls how records appear in grids and list views. In the current product, it supports concepts such as:
columnsdefault
orderpagination options such as including or excluding the total-count request
column sizing such as
width,minWidth,maxWidth, andflex
When you do not define a custom list schema, Contextual generates a default one from the scalar properties in your Object Type and uses the primaryKey as the default sort.
Custom renderers
Contextual supports custom renderers that are not part of standard JSON Forms. Examples visible in the current admin console include code-editor, relation, and flow-relation.
These renderers can be selected either:
directly on a schema property via
rendererthrough UI schema options such as
options.renderer
For schema-level extensions that drive these behaviors, see Contextual Schema Extensions.
Practical guidance
start with the generated defaults and customize only where the default UX is not sufficient
use form styles for layout and grouping
use
listStylewhen the record grid needs custom columns, order, or pagination behavioruse renderer-driven customization sparingly and intentionally, since it couples the schema to Contextual-specific UI behavior

Last updated
Was this helpful?