Writing a Plugin
This walkthrough builds a small but complete plugin — a "sticky-note" object type with property fields, a keyboard shortcut, and event logging — using nothing but the public registry API every shipped plugin (including @rifrocket/fdt-plugin-qrcode, whose real source is a great companion reference) is built on.
Custom Theme
@rifrocket/fdt-theme ships plain CSS custom properties — no JS runtime, no CSS-in-JS. Components consume var(--fdt-*) tokens; you override them with ordinary CSS.
Building a Custom Shell with EditorContext
`/ render three fixed panel slots (toolbar-start, sidebar-right, properties-footer) inside their own wrapping . That's a complete, self-contained editor widget — but it isn't a real application shell: a header, multiple independent sidebars, a status bar, or floating panels laid out around the canvas rather than inside `'s own markup.
Presets
A preset bundles plugins, property fields, snapping defaults, and shortcuts into one named, reusable configuration — the mechanism behind `'s one-line editor initialization. This page covers the underlying model, whether you're using , createEditor()` directly, or writing your own preset.