# Rafters > Rafters is the Design Intelligence Protocol. Designers encode judgment; AI reads decisions. ## Home - [The Design Intelligence Protocol](https://rafters.studio/): Rafters encodes designer judgment as structured data an AI can query. Cognitive load scoring, OKLCH color intelligence, composition review, do-and-never rules. Open source. ## Docs - [Cognitive Load Scoring](https://rafters.studio/docs/cognitive-load-scoring/): How Rafters assigns every component a 0-10 cognitive load score across five dimensions, and how screen-level budgets keep compositions legible. - [Color](https://rafters.studio/docs/color/): OKLCH color intelligence: 11-step scales, harmony sets, pre-computed accessibility, and a dependency graph that cascades when the brand color changes. - [Depth](https://rafters.studio/docs/depth/): A fixed z-index stack with seven layers. No z-index wars. No z-[9999]. - [Design Philosophy](https://rafters.studio/docs/design-philosophy/): The three pillars behind Rafters: Jobs/Ive craft, Joshua Davis experimentation, and Jakob Nielsen usability. - [Editor Architecture](https://rafters.studio/docs/editor-architecture/): Leaf primitives. Composition primitives. The self-contained rule. Why composites must not import from ui. The package boundary that keeps six products from stepping on each other. - [Editor Behavior Matrix](https://rafters.studio/docs/editor-behavior-matrix/): One row per primitive. What it guarantees. What it does not. Known edge cases. Whether tests cover the contract. The drift detector. - [Editor Component](https://rafters.studio/docs/editor-component/): The React surface. Props, controls ref, controlled vs uncontrolled, change vs commit. What's wired, what's typed but not yet wired. - [Editor Composites](https://rafters.studio/docs/editor-composites/): Pre-built block assemblies with manifest, input rules, output rules, and a flat block array. The bridge layer translates them in and out of the editor. - [Editor Data Model](https://rafters.studio/docs/editor-data-model/): Every type the editor cares about. Block shape, inline content, marks, commands, formats. The shapes everyone else builds against. - [Editor Known Gaps](https://rafters.studio/docs/editor-known-gaps/): Every place the editor surface drifts from its intent. File and line. Current behavior. Expected behavior. Blast radius. Fix sketch. The honest list. - [Editor Canvas Primitives](https://rafters.studio/docs/editor-primitives-canvas/): The selection, focus, and CRUD layer. block-canvas tracks where the cursor is. block-handler keeps history. document-editor orchestrates everything contentEditable touches. - [Editor Drag, Drop, and State](https://rafters.studio/docs/editor-primitives-dnd-state/): Accessible drag-and-drop. Position-aware drop zones. Clipboard with custom MIME. Undo/redo with batch mode. - [Editor Formatting Primitives](https://rafters.studio/docs/editor-primitives-formatting/): Inline marks, the floating toolbar, the slash-command palette. Where text becomes bold and where the slash menu lives. - [Editor Input Primitives](https://rafters.studio/docs/editor-primitives-input/): Keyboard routing, focus trapping, roving tabindex, cursor tracking. The foundation layer everything else stands on. - [Editor Overlay Primitives](https://rafters.studio/docs/editor-primitives-overlays/): Context menus, dismissable layers, collision-aware positioning, hover delays, ARIA. The floating UI layer. - [Editor Palette Primitives](https://rafters.studio/docs/editor-primitives-palettes/): The sidebar block library, the rule library, and the fuzzy typeahead they share. Drag MIME types and the click-eating bug everyone hits once. - [Editor Render Path](https://rafters.studio/docs/editor-render-path/): How a block becomes JSX. The DocumentBlock switch. Inline content rendering. Mark application order. The data-block-id contract. - [Editor Rules](https://rafters.studio/docs/editor-rules/): How blocks declare what they need and what they produce. Nominal name matching today. Runtime validation is a gap. - [Editor Serialization](https://rafters.studio/docs/editor-serialization/): The block tree is the universal IR. Serializers adapt external formats to and from blocks. MDX is the one most consumers want. There are two MDX serializers and only one of them works. - [Editor](https://rafters.studio/docs/editor/): A block-tree page builder built on framework-agnostic primitives. The lynchpin component for six rafters products. Baby Figma, not a text editor. - [Motion](https://rafters.studio/docs/motion/): Motion that responds rather than performs. Six easing curves, six durations, a 500ms ceiling, and reduced-motion handling that preserves feedback. - [Radius](https://rafters.studio/docs/radius/): Corner radius as brand personality. One token decision cascades to every component. - [Shadow](https://rafters.studio/docs/shadow/): Three shadow tiers, each with a meaning. Resting, interactive, commanding. - [Spacing](https://rafters.studio/docs/spacing/): Musical spacing progression. Two numbers control every measurement in the system. Change the base, the whole interface reflows. - [Typography](https://rafters.studio/docs/typography/): Semantic typography components encode size, weight, color, and role. The developer picks the semantic role, not the visual treatment.