Glossary
The words used to build with Codelab.
The shared vocabulary used in Codelab, its documentation, and its code.
Structure
App: A collection of pages and shared resources.
Page: An element tree in an app's route hierarchy. A Page is either a leaf or a Layout.
Layout: A Page that wraps child Pages and chooses where their content appears.
Outlet: The point in a Layout where its selected child Page appears.
Element: One node in a page or component tree. It has a kind, props, styles, and children.
Tree: Elements arranged as parents and children. A subtree is an element and its descendants.
Kind: The primitive or component an element renders.
Primitive: A supplied building block. Primitive elements form component trees; primitive functions form action chains.
Registry: A catalog of supplied primitives: element kinds with their props, or functions with their parameters.
Component: A reusable element tree with an interface for its props.
Instance: One use of a component, with its own prop values and component state.
Repeat: A subtree rendered once for each item in an array.
Conditional rendering: A condition that determines whether an element and its subtree appear.
One Card component can have two instances, each with a different title.
Data
State: The current values used by an app, page, or component.
Store: A named collection of state fields and actions, scoped to an app, page, or component.
Scope: Where a store or hook is available: an app, page, or component. A hook can be shared across selected pages.
Prop: A named value supplied to an element or component.
Field: A named declaration with a type and an optional default value.
Type: The values a field accepts, such as Text, Number, or Boolean.
Interface: A list of fields describing a set of named values, such as component props or function inputs.
Schema: A named interface that can be reused within an app.
Expression: A value computed from the current context, such as {{stores.counter.count}}.
Namespace: The first name in an expression, such as stores, props, or page. It selects where the value comes from.
Binding: A reference to a component, element, function, or file. Component bindings can supply props; function bindings can supply arguments.
File: An image an app owns: uploaded, imported from a URL, or generated for it. An image prop or app setting binds to a file.
A field declares title: Text. A prop supplies title: "Hello".
An expression computes a value. A binding selects a target.
A store's scope decides where it exists; {{stores.cart.total}} reads it through the stores namespace.
Behavior
Event: An interaction or change, such as a click or an input value changing.
Function: A callable operation with inputs and an optional output. A binding can call a primitive function, an action, or a hook method.
Action: A named, reusable chain of function calls on a store. Calls run in order; the last call supplies the result.
Parameter: A declared input to a function or action.
Argument: A value supplied for a parameter when a function or action is called.
Hook: Configured behavior that provides values or methods, such as form state, query results, or a reference.
Render prop: A callback whose result is an element subtree. Its inputs are available to that subtree through render expressions.
A button's onClick prop can bind to an action. The action calls functions to update state or navigate.
Delivery
Delivery: The system that runs and observes CI checks, preview and production deployments, and native packaging.
Builder
Workspace: The complete Builder interface around the editable app, including navigation rails, sidebars, canvas controls, panels, drawers, and overlays.
Shell: A page's frame: a navigation rail, sidebars and a main area side by side, over a status bar. Each area splits into a header and a body; a header is pinned above its body or docked, hidden behind a handle. A part that is absent takes no space, so a dashboard page is a main area alone. On mobile, the Shell's drawer frames the page instead, its side area a drawer that slides the page aside.
Orientation: Whether a navigation rail runs vertically, as the Workspace's icon rails do, or horizontally, as a strip of tabs. A rail's item marker and tooltips follow it.
Segmented control: One choice of a few, drawn as a row of icon buttons in a muted track; the pressed button is the value. The style panel uses it for text align, overflow, box sizing and other short scales.
Overlay: A Workspace surface opened by an action that floats over the canvas instead of docking in a sidebar: the AI chat and the Components palette. An overlay is not a panel and has no rail item.
Canvas mode: The canvas choice between Builder and Preview. Builder selects and edits elements; Preview runs the page's behavior.
Full-screen: The internal canvas layout setting that hides Workspace chrome. The Zen mode control uses it with Preview.
Zen mode: Preview canvas mode with Workspace chrome hidden. Entering Zen mode selects Preview and enables full-screen; switching to Builder exits Zen mode.
Editor read-only: An editor restriction that prevents editing content. It is separate from canvas mode and Zen mode.
Workspace view: A derived description of the Workspace as it is currently presented. It does not own or persist the underlying settings, navigation, or app state.
Workspace view intent: A partial desired Workspace view. Unspecified parts remain unchanged; the Workspace reconciles the intent through the same operations used by its visible controls.
Inline components: A Workspace view setting that exposes component internals as selectable elements while preserving the shared component definition.
Inline layouts: A Workspace view setting that exposes wrapping Layout internals as selectable elements while preserving the Layout and Page structure.
Recipe: A tailwind-variants tv() definition that styles one Workspace component: a slot per styled part and a variant per state. Call sites pass the state; the recipe supplies every part's classes.
Story: A Storybook example that renders one Workspace component in chosen states, kept beside the component in a *.stories.tsx file.
Grid track: One row or one column of a CSS grid. Grid columns and grid rows take the same track tokens: a count from 1 to 12, none, or subgrid.
Agent
Agent: The AI assistant in the Builder. It answers questions about the app and proposes changes to it.
Command plan: A labeled set of changes the agent proposes as one option. The user previews it on the canvas, then applies or rejects it.
Planning: The steps the agent takes before it proposes a change or replies, such as reasoning and looking up element kinds. Planning changes nothing.
Approval: The user's decision to apply or reject a change the agent proposes. A command plan always waits for it.
Activity: The timed steps of the agent's current reply, such as connecting tools or generating a response.
The agent plans, then proposes a command plan; approval applies it. Activity shows what the agent is doing until it replies.