| Header | Top bar with element info and controls | App.tsx |
| Select Element Button | Toggle in the header that activates Selection Mode | App.tsx |
| Element Info | Component name + instance count shown in the header when an element is selected | App.tsx |
| Container Switcher | Header dropdown to switch between Modal / Popover / Sidebar / Popup | App.tsx |
| Tab Bar | Design | Components | Message navigation tabs | components/TabBar/ |
| Design Tab | Main Tailwind class editing UI | Picker.tsx |
| Box Model | Nested ring diagram for editing margin, outline, border, and padding | components/BoxModel/ |
| Layer Rings | Concentric rings from outside in: margin → outline → border → padding → content | components/BoxModel/ |
| Side Slots | Top / right / bottom / left value slots within a layer ring | components/BoxModel/ |
| Corner Slots | Top-left / top-right / bottom-right / bottom-left slots within a layer ring | components/BoxModel/ |
| Shorthand Slot | Center slot that sets all sides of a layer at once | components/BoxModel/ |
| Mini Scrubber | Inline drag-to-scrub + dropdown control used inside Box Model, Corner Model, and Gap Model | components/BoxModel/ |
| Corner Model | 3×3 grid for editing border-radius: corners, edges, and a shorthand center | components/CornerModel/ |
| Property Sections | Collapsible groups for Layout, Sizing, Typography, Backgrounds, Effects, etc. | components/PropertySection/ |
| Section Header | Disclosure arrow + label + collapsed count badge + [+] Add button | components/PropertySection/ |
| Add Property Dropdown | Focus-trapped list of properties the user can add to the section | components/PropertySection/ |
| Scale Scrubber | Drag horizontally to scrub through a property's scale; click to open dropdown | components/ScaleScrubber/ |
| Class Chip | Static chip displaying a Tailwind class; hover reveals a remove (×) button | Picker.tsx |
| Color Grid | Floating palette popup for picking Tailwind colors | components/ColorGrid.tsx |
| Special Colors Row | Black, white, transparent, and remove swatches at the top of the Color Grid | components/ColorGrid.tsx |
| Hue Rows | One row per hue (red, orange, yellow…slate) with shade columns (50–950) | components/ColorGrid.tsx |
| Color Cell | Individual color swatch — hover to preview in app, click to apply | components/ColorGrid.tsx |
| Flex Controls | Direction / wrap / justify / align / gap controls shown when element is display:flex | Picker.tsx |
| Flex Direction Select | 4 arrow buttons: row / column / row-reverse / column-reverse | components/FlexDirectionSelect/ |
| Flex Wrap Select | 3 buttons: wrap / nowrap / wrap-reverse | components/FlexWrapSelect/ |
| Flex Justify Select | Dropdown with alignment diagrams for justify-content | components/FlexJustifySelect/ |
| Flex Align Select | Dropdown with alignment diagrams for align-items | components/FlexAlignSelect/ |
| Gap Model | Visual grid showing gap areas with Mini Scrubbers for gap / gap-x / gap-y | components/GapModel/ |
| Gradient Editor | Composer for solid color or multi-stop gradient with direction control | components/GradientEditor/ |
| Direction Picker | 4 arrow buttons + center toggle (solid color vs gradient) | components/DirectionPicker/ |
| Gradient Bar | Horizontal preview bar with draggable stop handles for each color stop | components/GradientBar/ |
| Color Swatch | Rectangular display of the current solid background color | components/GradientEditor/ |
| Shadow Editor | Layer composer for shadow, inset-shadow, ring, inset-ring, and text-shadow | components/ShadowEditor/ |
| Shadow Layer Row | Active layer: size scrubber + color swatch + opacity scrubber + live preview square | components/ShadowEditor/ |
| Ghost Row | [+] button row for adding a shadow type that isn't yet applied | components/ShadowEditor/ |
| Components Tab | Storybook component library with arm/place workflow | components/DrawTab/ |
| Component List | Scrollable list of available Storybook components | components/DrawTab/ |
| Component Group Item | One component: name + arm button + optional story selector + args | components/DrawTab/ |
| Armed State | Highlighted state of a Component Group Item when the component is ready to place | components/DrawTab/ |
| Message Tab | Voice/text context messaging for the AI agent | components/MessageTab/ |
| Compose Area | Textarea + Microphone Button + Add Message Button | components/MessageTab/ |
| Microphone Button | Toggles voice recording; shows a red pulse dot when active | components/MessageTab/ |
| Add Message Button | Submits the composed message as a staged patch | components/MessageTab/ |
| Staged Messages List | List of queued message patches with remove buttons | components/MessageTab/ |
| Queue Footer | Status bar at the bottom of the Panel | App.tsx |
| Connection Status Warning | Amber "No agent listening" banner shown when WebSocket is disconnected | App.tsx |
| No Agent Watching Warning | Amber "No agent watching" banner shown when patches are staged but no agent is polling | App.tsx |
| Patch Queue Popovers | Clickable status counters that expand to show the patch list for each status | components/PatchPopover/ |
| Draft Popover | Amber counter — staged (draft) patches; includes commit all / discard all actions | components/PatchPopover/ |
| Committed Popover | Teal counter — patches committed and awaiting agent pickup | components/PatchPopover/ |
| Implementing Popover | Blue counter — patches the agent is currently working on | components/PatchPopover/ |
| Implemented Popover | Green counter — patches the agent has completed | components/PatchPopover/ |
| Design Mode | Full-page Fabric.js canvas for drawing and annotation (separate route ?mode=design) | DesignMode.tsx |
| Design Canvas | The drawing surface + component placement area inside Design Mode | components/DesignCanvas/ |