Interface Implementation

How Interface Canon, recipes, and adapters become portable interface contracts.

Documentation for BrandBuilder 3.0.1. Official release and exact skill asset.

Interface implementation starts from semantic roles and bounded component behavior, never from screenshots or inferred platform conventions. The same resolved contract must remain recognizable across browser, desktop, touch, keyboard, narrow, wide, reduced-motion, and forced-color environments.

Interface Canon

interface-canon.json defines renderer-neutral roles, invariants, permitted overrides, state pairs, themes, and runtime capability inputs. Runtime decisions use measured capabilities such as viewport, pointer precision, hover, touch, keyboard, text scale, safe area, reduced motion, forced colors, and title-bar regions. They do not branch on an operating-system name.

Brand affiliation does not grant permission to borrow a parent's identity values. Only declared inheritance and permitted overrides cross that boundary. Contrast requirements remain mandatory and are resolved before adapters are emitted.

Component recipes

component-recipes.json defines the shared component grammar and behavior contract. Recipes name semantic inputs, states, keyboard behavior, layout rules, and validation evidence. They do not prescribe one framework's component tree. When a consumer needs a reusable behavior absent from the recipes, record a capability gap instead of creating an undocumented permanent fork.

Web and React

The generated Web/React adapter lives at web/adapter.json, with its support matrix at web/support-matrix.json. Generated token files, registry resources, and reference components bind semantic roles to browser behavior. AppFrame adapts to declared runtime capabilities, including title-bar regions, safe areas, input precision, and narrow viewports. The generated support matrix identifies native, adapted, unsupported, and proof states explicitly.

Rust and egui

The generated egui adapter lives at native/egui/adapter.json, with its support matrix and locked Rust dependencies beside it. It preserves the same recipe and semantic-role versions while documenting renderer-specific adaptations. Use the supplied crate, lockfile, and verification fixtures. Do not translate browser-only assumptions into native code.

Native WordPress

The generated WordPress adapter lives at wordpress/adapter.json, with a support matrix, inspectable theme source, inventory, and installable ZIP beside it. theme.json format 3 binds approved identity and interface cue roles to namespaced native presets and block styles; styles/dark.json offers the approved dark interface as an optional Site Editor variation. A content-scoped supplement handles focus, Card styling, and responsive behavior in the site and editor content surface. Install the exact ZIP, set the Site Logo from its approved PNG alternative, and compose pages with core blocks and patterns. The WordPress delivery guide explains pinned core/PHP test pairs, saved Global Styles precedence, client customization, update, and rollback. It does not imply that classic themes or third-party builders and plugins were tested.

Consumer sequence

Read enforcement/consumer-contract.json first. Confirm the exact version tuple and authority paths. Read enforcement/IMPLEMENTATION.md for offline operational guidance. Integrate the declared adapter for the target renderer, then run both verification entry points. A successful implementation reports zero verifier problems and zero glyph failures.

Apply a recipe to a web control

For a search field, choose a native labeled input, keep the label visible, and connect it programmatically as in the React form example. Use the recipe's semantic focus and error roles, then inspect keyboard behavior against WCAG keyboard guidance, visible focus against focus guidance, and any custom widget against the ARIA patterns. Nielsen and Shneiderman offer advisory review questions about feedback and recovery. Next.js and Radix document their framework responsibilities; verify the actual exported host rather than assuming a library establishes conformance.

Select the platform reading path

On this page