Agent Rule
Before designing a surface, choose the medium, then apply this sequence: baseline, type, spacing, grid, surface, reading path, usability gates, asset role, and final export checks.
INTO Consulting / Design Foundations / Hybrid Context
A human-readable and machine-addressable contract for baseline rhythm, rem typography, grid behavior, the media waterfall, UI heuristics, reading patterns, bento layouts, and editorial image/text composition.
Every INTO output should start with baseline, type, spacing, grid, surface, reading path, and usability behavior before color, cards, or visual flourishes are chosen.
This file is the routing layer for cross-medium design laws. Medium files still own exact dimensions and export constraints, but they should inherit this baseline and usability contract.
Before designing a surface, choose the medium, then apply this sequence: baseline, type, spacing, grid, surface, reading path, usability gates, asset role, and final export checks.
Every medium inherits the same foundation contract, then translates it once at the medium boundary.
tokens/into-consulting.theme.css for browser-facing values and preserve token names.media/media-framework.md for the universal medium contract.brand/brand-expression-system.md and media/brand-asset-suite.md when broad external assets, advertising, events, environments, merchandise, or physical objects are involved.data/channels/channel-media-specs.json for platform dimensions, safe areas, and verification status.media/*.md file as the medium-specific translation layer.templates/ file only as last-mile implementation guidance.A lower layer can specialize a higher layer for a medium, but it cannot silently contradict it. If a platform constraint forces a translation, document the boundary and keep the source rhythm intact.
The full INTO brand asset proposal is now routed as a hybrid-review artifact at outputs/into-brand-asset-proposal.html. Agents should not rely on markdown-only guidance when creating broad asset suites.
Use this gate when an output spans software, documents, print, advertising, events, social, environments, physical objects, merchandise, or image generation. The proposal can demonstrate the system, but the source rules still live upstream in the foundations, brand expression, media framework, channel data, and target media sheets.
contexts/index.html must expose the output artifact so future agents can find the visible proposal before generating or revising assets.
contexts/brand-book.html#brand-asset-proposal must summarize the creative direction, scope, manifest, and source-of-truth boundary.
Declare medium, audience, viewing distance, material, identity role, motif count, proof requirement, prompt/filename mapping, and export QA before asset creation.
Use the proposal's JSON-LD manifest as the image contract. Do not reinterpret prompts into generic AI imagery or save files under different names.
If a broad asset suite is updated, update the visible context layer in the same session: routing index, brand-book coverage, design-foundation gate, manifest route if needed, and closeout evidence.
Baselines keep type, spacing, buttons, charts, captions, and image edges feeling related even when a composition is asymmetric.
| Baseline | Value | Use |
|---|---|---|
| Micro baseline | 0.25rem |
Type line-height correction, icon alignment, hairline offsets, and caption attachment. |
| Structural baseline | 0.5rem |
Spacing scale, grid gutters, padding, button heights, and component rhythm. |
| Major pause | 4rem to 6rem |
Section resets, slide pauses, chapter breaks, and cover-to-argument transitions. |
0.25rem or 0.5rem multiple.0.25rem baseline to align text and icons; use the 0.5rem baseline for layout spacing.Browser, app, workshop, and hybrid review typography uses rem. Convert to points, pixels, or inches only at the medium boundary.
| Role | Font / Weight | Size | Line | Letter | Margins |
|---|---|---|---|---|---|
| Cover / hero | Newsreader 400 | 3.25-4.5rem | 1.0-1.06 | 0 | 0 before, 1.5-2rem after |
| Page H1 | Newsreader 400 | 2.5-3.5rem | 1.04-1.1 | 0 | 3-4rem before, 1.25-1.75rem after |
| Section heading | Newsreader 400 | 2.75-4rem | 1.04-1.1 | 0 | 4-6rem before, 1.5-2rem after |
| Subhead / card title | Newsreader 400 | 1.35-1.65rem | 1.12-1.2 | 0 | 2rem before, 1rem after; 0 before inside cards |
| Lead | Lexend 300 | 1.0625-1.25rem | 1.5-1.6 | 0 | 0 before, 1-1.5rem after; max 50ch |
| Body | Lexend 300 | 1rem | 1.55-1.65 | 0 | 0 before, 1rem after; max 56ch |
| Button | Lexend 500 | 0.875rem default, 0.8125rem compact | 1.2 | 0 | Use component padding, not text margins |
| Caption / meta | IBM Plex Mono 400 or 500 | 0.6875-0.8125rem | 1.35-1.5 | 0 | 0.75rem before when attached to figures |
0. Do not use negative tracking.The spacing scale grows from tight attachment to major editorial pauses. It should feel exponential in use, even where practical mid-steps are present.
Every medium declares columns, gutters, rows when useful, max width, side margins, and safe areas before composition begins.
| Viewport | Max Width | Columns | Gutter | Side Margin / Padding |
|---|---|---|---|---|
| Mobile, 320-767px | 100% | 1 | 0 | 1rem minimum, 1.25rem preferred when content allows |
| Tablet, 768-1023px | 100% | 6 | 1rem | 1.5rem |
| Desktop, 1024-1439px | 80rem content max | 12 | 1.5rem | 2rem |
| Wide desktop, 1440px+ | 90rem review max; prose remains 45-58ch | 12 | 1.5-2rem | 3-4rem or centered max-width wrapper |
Warm Light is the default reading and working surface. Blueprint Dark is a deliberate focus, command, title, section, or dramatic conclusion surface.
#fbfaf7. Default for body pages, working slides, proposals, apps, tables, charts, forms, newsletters, and readable review surfaces.
#0f1518. Covers, title cards, section breaks, focus modes, command surfaces, dramatic conclusions, room resets, and dark editorial moments.
--into-surface-deep-editorial / #0a1c1c. A deeper teal surface for dramatic dark-editorial covers, process exhibits, and section breaks. It is not a third theme.
Only when photography hosts text. Use the canonical overlay and verify contrast before placing the asset.
Only for covers, title slides, section breaks, video title cards, hero/photo overlays, and atmospheric editorial pauses.
Color is not a mood layer. Each color token has a job tied to an element, state, or evidence role.
| Element Or State | Warm Light Token | Blueprint Dark Token | Usage Rule |
|---|---|---|---|
| Page background | --into-surface-page / #fbfaf7 |
--into-surface-page / #0f1518 |
Warm Light is default for reading and work. Blueprint Dark is a deliberate mode shift. |
| Raised surface | --into-surface-raised |
--into-surface-raised |
Use for restrained panels, forms, app surfaces, and quiet cards only when containment is needed. |
| Deep editorial cover base | --into-surface-deep-editorial / #0a1c1c |
--into-surface-deep-editorial / #0a1c1c |
Use for dark-editorial covers, section breaks, and process exhibits that need a deeper conclusion surface than Blueprint Dark. Do not use as a default dark theme. |
| Muted surface | --into-surface-muted |
--into-surface-muted |
Use for inactive rows, secondary blocks, disabled context, and low-emphasis separators. |
| Primary text and headings | --into-text-primary |
--into-text-primary |
Use for titles, body copy, important labels, and the dominant reading layer. |
| Secondary and muted text | --into-text-secondary, --into-text-muted |
--into-text-secondary, --into-text-muted |
Use for captions, source notes, helper copy, inactive metadata, and secondary explanation. |
| Hairlines and dividers | --into-line-soft, --into-line-strong |
--into-line-soft, --into-line-strong |
Use hairlines before boxes. Dividers clarify grouping; they are not decorative rules. |
| Primary action | --into-accent |
--into-accent |
Use petrol for the one primary action, current path, selected control, or active affordance. |
| Hover and pressed action | --into-accent-hover |
--into-accent-hover |
Use only for interactive state feedback. Do not use hover colors as static decoration. |
| Selected or current item | --into-accent-soft |
--into-accent-soft |
Use soft petrol before fill for current tabs, selected rows, agenda states, and shortlist options. |
| Warning, milestone, comparison | --into-state-warning / #ffc64f |
--into-state-warning / #ffc64f |
Use Saffron for warnings, milestones, comparisons, and chart signal. It is not a general accent. |
| Success and critical state | --into-state-positive, --into-state-critical |
--into-state-positive, --into-state-critical |
Use only for semantic state, not brand variety. Pair state color with text so meaning is not color-only. |
| Charts and data | --into-chart-teal-*, --into-chart-gray-*, --into-chart-saffron |
--into-chart-teal-*, --into-chart-gray-*, --into-chart-saffron |
Use teal and gray for series, Saffron for comparison or signal, and labels/source notes for interpretation. |
| Photo overlay | --into-gradient-photo-overlay |
--into-gradient-photo-overlay |
Required when text sits over photography. Keep text on negative space or a quiet third. |
| Editorial gradient | --into-gradient-warm-editorial |
--into-gradient-blueprint-editorial |
Use only for covers, section breaks, title cards, video title cards, and atmospheric editorial pauses. |
| Glass surface | --into-glass-* |
--into-glass-* |
Use only on dark, photo, command, media, or focus surfaces with blur, border, and inset highlight. |
| Overlay scrim | --into-scrim-modal, --into-scrim-overlay |
--into-scrim-modal, --into-scrim-overlay |
Use for modal and overlay separation. Scrim is interaction state, not atmosphere. |
| Surface grain | --into-texture-static-grain-opacity |
--into-texture-static-grain-opacity |
Use only on broad colored or atmospheric surfaces. Never apply to text, controls, chart marks, or peer cards. |
Motion confirms state, reveals causality, communicates focus, and clarifies sequence. If it cannot name that job, omit it.
| Token | Value | Use |
|---|---|---|
--into-motion-instant | 80ms | Pressed states and immediate confirmation. |
--into-motion-micro | 120ms | Hover, active, focus-visible, and small icon feedback. |
--into-motion-quick | 180ms | Button state changes, tabs, and compact disclosure. |
--into-motion-measured | 260ms | Drawers, popovers, command palettes, and inline validation. |
--into-motion-considered | 420ms | Section entrance, evidence reveal, and diagram state changes. |
--into-motion-slow | 700ms | Hero entrance, video title pacing, and atmospheric transitions. |
Use --into-ease-standard for routine states, --into-ease-decelerate for entrances, --into-ease-accelerate for exits, and --into-ease-editorial for content reveals.
Header before body before CTA. Evidence reveals after the claim. Maximum four simultaneous UI animations or six presented-surface animations per viewport.
prefers-reduced-motion: reduce disables entrance choreography, decorative grain animation, parallax, and staggers while preserving state feedback.
No bouncing, overshoot, 360-degree icon rotations, parallax beyond governed heroes, loops over 1.2s, or motion that hides evidence.
| State | Duration / Ease | Properties |
|---|---|---|
| Hover | --into-motion-micro / --into-ease-standard | Color, border, opacity. |
| Active | --into-motion-instant / --into-ease-standard | Transform press of roughly 0.0625rem. |
| Focus-visible | --into-motion-quick / --into-ease-decelerate | Focus ring or outline-color. |
| Loading / generation | --into-motion-loop / linear | Bounded opacity or transform progress cue. |
| Success / error | --into-motion-measured or --into-motion-quick | Opacity, border, color, and text. No shake. |
| Pending approval / permission denied | --into-motion-quick | Muted state, reason, and visible blocker context. |
| Streaming text | --into-motion-micro | Readable chunk opacity, not one-character theatre. |
Depth clarifies layer, state, or focus. It does not replace type, spacing, hairlines, or the editorial containment ladder.
| Level | Token Recipe | Use |
|---|---|---|
| Page | --into-surface-page | Default reading, work, and body surfaces. |
| Raised | --into-surface-raised plus hairline | Peer cards, forms, quiet panels, repeated evidence. |
| Floating | --into-shadow-floating plus hairline | Popover, command surface, drag overlay, focused exhibit. |
| Modal | --into-shadow-command plus scrim | Dialog, drawer, and blocking confirmation surfaces. |
| Scrim | --into-scrim-modal or --into-scrim-overlay | Backdrop separation for overlays. Not brand atmosphere. |
Use translucent surface, backdrop blur, hairline border, inset top highlight, and a hover delta. The highlight is required.
Blueprint Dark, photo overlay, dark editorial, command, media-stage, drawer, popover, and focus surfaces.
No glass on Warm Light documents, proposals, invoices, ordinary app work surfaces, table bodies, or routine cards.
Use --into-gradient-photo-overlay. Text sits on negative space, a quiet third, or a controlled overlay, never the focal subject.
Grain is a surface treatment for atmosphere. It never sits on body text, controls, data marks, or peer cards.
Use --into-texture-noise-svg at --into-texture-static-grain-opacity: about 2% on Warm Light and 3% on Blueprint Dark.
Use approximately 5.5% opacity and overlay blend only for heroes, covers, video title cards, dramatic conclusions, or governed macro-photo overlays.
Use Lightroom-equivalent 28-34 on atmospheric macro photography at generation or source-edit time.
Full-width atmospheric exhibits may carry grain. Peer cards, UI controls, body text, data marks, and screenshots do not.
Use the dark-editorial cover treatment for hero, cover, section-break, and dramatic conclusion surfaces that need atmosphere while preserving INTO legibility.
--into-surface-deep-editorial / #0a1c1c sits below the image so the surface remains INTO when media fails or crops.
Use shallow-DOF macro photography from brand/photography-system.md. The focal zone is small, decentered, and away from text.
If needed, duplicate the image as a background-only blur layer with filter: blur(3px) and transform: scale(1.06). Never blur text or controls.
Use --into-gradient-dark-editorial-cover or --into-gradient-photo-overlay to protect contrast. Text still sits on negative space or a quiet third.
Use baked-in photo grain and optional canvas grain only as routed by brand/texture-system.md. Reduced motion falls back to static grain.
Use Newsreader display at cover scale, Lexend support copy, IBM Plex Mono metadata, and one primary action plus optional btn-glass secondary action.
| Use When | Do Not Use When | Required Checks |
|---|---|---|
| Webflow hero, slide cover, video title, web-app section break, process exhibit, or dramatic conclusion. | Body pages, proposals, tables, dense app screens, dashboards, form flows, or evidence screenshots. | Contrast passes, focal subject avoids text, no warm contamination, no stock, no generic AI imagery, no floating dark card as the main containment. |
Build dark-editorial covers as layered surfaces: base, macro image, optional bokeh backstop, gradient overlay, governed grain, and content. If a layer cannot name its job, omit it.
A surface is not brand-compliant if it looks right but fails basic usability, recovery, or comprehension behavior.
Show loading, saving, error, success, sync, and permission states where behavior exists.
Use operator terms and concrete actions instead of internal feature labels.
Provide cancel, undo, back, close, rollback, and review paths for consequential actions.
Use the same tokens, component anatomy, and state vocabulary across media.
Prevent errors before recovery: validation, confirmations, prerequisites, disabled reasons, and defaults.
Keep choices, context, and evidence visible instead of forcing memory.
Add shortcuts, command palettes, filters, bulk actions, and reusable patterns when repeated work exists.
Remove decorative badges, panels, icons, and text that do not change the decision.
Error messages name the issue, affected object, cause when known, and next action.
Use help, examples, and tooltips only where they clarify an unfamiliar control or consequence.
Use Miller's Law as a chunking reminder, not a magic menu limit. When recall is required, group roughly three to six meaningful chunks. When recognition is available, structure and labels matter more than an arbitrary count.
Reading patterns are composition decisions. Do not let the audience discover the path by accident.
| Pattern | Use | INTO Rule |
|---|---|---|
| F-pattern | Dense unformatted pages and long lists. | Treat as a failure mode unless the page is intentionally scan-first. Use headings, chunks, captions, and strong left anchors to keep scanning useful. |
| Z-pattern | Sparse cover, decision, or campaign surfaces with few elements. | Use only when top-left identity/context, central claim, and bottom-right action form a clear path. |
| Vertical / layer-cake | Mobile, docs, long review pages, operational UIs, and evidence-heavy content. | Default to stacked section markers, conclusion titles, narrow body, exhibit, caption, and action/recovery space. |
Bento grids are containment systems, not decoration. They are allowed only when the card relationships are clear and the hierarchy is deliberate.
A small set of comparable peer modules, or one dominant module with two to four supporting modules that clarify the same decision.
One clear lead card, aligned baselines, shared gutters, no nested cards, and a reading path that survives mobile stacking.
Decorative dashboard walls, mixed unrelated modules, equal-weight clutter, nested panels, or cards used because the page feels empty.
If every card needs explanation, use a table, open columns, a full-width exhibit, or a staged narrative instead.
Photography and editorial images should reduce decoding time. They should not narrate the obvious or fight text.
Screenshot, client artifact, product state, or chart source. Use captions, source notes, redaction, and hairline framing.
Diagram, schematic, technical sketch, or sequence. Text labels should sit near the relevant object and use three text levels.
Macro material texture, oil image, or atmospheric divider. It hosts text only when contrast and focus are controlled.
Place text on negative space, a quiet third, or a separate column. Do not place text over the focal subject.
Captions and cutlines stay visually attached to their image. A detached source note is a defect.
Buttons are operational commands. They are not badges, tags, or decorative labels.
This matrix maps the original operator requirements to the visible HTML section and the machine-readable JSON-LD layer.
| Original Requirement | Visible HTML Evidence | Machine Layer | Status |
|---|---|---|---|
| Learn and codify baselines relative to spacing, line-height, and font-size. | Baseline System | constraints: Baseline policy |
Encoded |
| Update the type system to be baseline-conscious and keep a consistent spacing system. | Baseline System, Type System, Spacing Scale | constraints: Baseline policy, Rem policy |
Encoded |
| Ensure the type system uses rem. | Type System | constraints: Rem policy |
Encoded |
| Define font, font-weight, line-height, letter spacing, and margins. | Type Specs Table | hasPart: rem-type-system |
Encoded |
| Codify when to use italics in headings and the display font class. | Type Rules | constraints: Italic policy |
Encoded |
| Codify background color for backgrounds in light and dark mode. | Backgrounds And Surfaces | constraints: Surface policy |
Encoded |
| Define color usage based on key elements. | Color Usage By Element | colorUsage, constraints: Color usage policy |
Encoded |
| Codify max width, columns, gutters, margins, padding, and side margins by viewport. | Viewport Grid Table | constraints: Grid policy |
Encoded |
| Use an exponential spacing scale. | Spacing Scale | hasPart: spacing-scale |
Encoded |
| Encode rules for UI design and Miller's Law / chunking. | Usability Heuristics | constraints: Miller chunking policy |
Encoded |
| Define button font, UI variables, color variables, and vertical vs horizontal padding. | Buttons, Color Usage | constraints: Button policy, colorUsage |
Encoded |
| Codify usability heuristics and compliance gates. | Usability Heuristics | hasPart: ui-heuristics |
Encoded |
| Codify F-pattern, Z-pattern, and vertical reading paths. | Reading Patterns | constraints: Reading pattern policy |
Encoded |
| Codify bento box design principles and layout patterns. | Bento Patterns | constraints: Bento policy |
Encoded |
| Codify photography/editorial image and text best practices from magazine-style layout. | Image/Text System | constraints: Image text policy |
Encoded |
| Represent the system for both humans and AI through hybrid HTML plus JSON-LD. | This file uses semantic HTML sections with stable IDs and one JSON-LD block. | hasPart, exampleIndex, constraints, requiredInputs, expectedOutputs, requirementCoverage |
Encoded |
| Apply the same system to all media sheets through a waterfall. | System Waterfall | constraints: Waterfall policy |
Encoded |
Use this checklist before a surface moves to medium-specific export review.