INTO Consulting INTO Consulting
Start typing to search.

Brand system

AI Software Platform System

Foundation route: `contexts/web-app-system.html#ai-software-platform-system`.

Foundation route: contexts/web-app-system.html#ai-software-platform-system.

This source governs INTO-branded AI software platforms: project management, content operations, video generation pipelines, agent workspaces, dashboards, approval systems, collaborative operating rooms, internal tools, and future AI-native products. It extends the web-app system and does not override the design foundations, tokens, accessibility, or media waterfall.

1. Design Philosophy

INTO software should feel operationally powerful, calm, premium, and governable. The interface helps people understand what work exists, what the AI is doing, what evidence supports it, what needs human judgment, and what action is safe to take next.

The product language is editorial software, not generic admin dashboard. Use quiet hierarchy, strong information architecture, visible evidence, restrained motion, and exact states. Slightly cinematic moments are allowed only when they clarify command, focus, execution, review, render progress, or a major decision.

2. Product Assumptions

  • The default implementation stack is React, TypeScript, Tailwind CSS, shadcn/ui-style copied components, class-variance-authority, lucide-react, and Motion or Framer Motion.
  • Products support both light and dark mode through theme tokens.
  • Core records have lifecycle, ownership, permissions, review, audit, and version history.
  • AI output can be draft, suggestion, comparison, transformation, execution plan, generated media, or long-running task.
  • Irreversible or client-visible actions need evidence, preview, approval, audit, and rollback where possible.
  • Mobile supports read, review, approve, triage, capture, and light edits. It does not need to reproduce every desktop density pattern.

3. Visual Identity Direction

The system translates INTO into product UI:

  • Warm Light is the default work surface.
  • Blueprint Dark is for command, focus, review, presentation, photo/video preview, dramatic conclusion, and high-contrast operator moments.
  • Petrol signals primary action, current path, selection, active filter, and chosen option.
  • Saffron signals caution, milestone, comparison, deadline pressure, render checkpoint, or chart signal.
  • Green and red remain semantic state colors only.
  • Newsreader gives editorial weight to page titles, section breaks, quotes, major numerals, and title moments.
  • Lexend is the product workhorse for body, controls, labels, tables, and operational text.
  • IBM Plex Mono handles IDs, timestamps, states, paths, metrics, table headers, and source markers.
  • Lucide-style icons clarify commands, navigation, state, and tools. Icons do not become decoration, badges, or AI sparkle.

4. Light And Dark Mode Design Tokens

Use tokens/into-consulting.theme.css as the source of truth. Application code maps semantic component needs to --into-* variables. Do not introduce raw color values in components.

NeedLight/Dark token
Page background--into-app-surface-page
Panel surface--into-app-surface-panel
Muted surface--into-app-surface-muted
Hover surface--into-app-surface-hover
Skeleton surface--into-app-surface-skeleton
Drop target--into-app-surface-drop-target
Overlay--into-app-surface-overlay
Scrim--into-app-surface-scrim
Selected outline--into-app-selected-outline
Primary text--into-text-primary
Secondary text--into-text-secondary
Muted text--into-text-muted
Hairline--into-line-soft
Strong divider--into-line-strong
Action/current path--into-accent
Positive state--into-state-positive
Warning/milestone--into-state-warning
Critical state--into-state-critical
Focus ring--into-app-focus-ring
Panel shadow--into-app-shadow-panel
Floating shadow--into-app-shadow-floating
Command shadow--into-app-shadow-command
Accent glow--into-app-glow-accent
Warning glow--into-app-glow-warning
Glass surface--into-app-glass-surface
Glass border--into-app-glass-border
Backdrop blur--into-app-blur-surface

Color usage by element:

ElementRule
BackgroundWarm Light for normal work; Blueprint Dark only for governed focus, command, review, media preview, or dramatic moments.
NavigationNeutral text and hairlines; petrol for current path or selected item.
Primary actionPetrol fill, inverse text, one per surface.
Secondary actionHairline or pale surface; never competes with primary.
Selected row/filter/tabPetrol text, rail, outline, underline, or soft surface before fill.
WarningSaffron for caution, milestone, deadline, comparison, or render checkpoint.
SuccessGreen only when the task completed or the state is favorable.
Error/destructiveRed only for failure, blocked, destructive, or overdue-critical states.
AI cueFour-point star or small mono label only; no purple-blue AI theming.
ChartTeal/gray sequence with Saffron signal; avoid ungoverned categorical rainbows.
Media previewDark stage or neutral surface; overlays must preserve contrast and never hide focal content.

5. Typography System

RoleFamilyWeightSize / line-heightLetter spacingMarginsUsage
App page titleNewsreader4002rem / 1.1500 0 1remH1 for current page or workflow.
App section titleNewsreader4001.25rem / 1.200 0 0.75remPanels, sections, detail regions.
App bodyLexend4001rem / 1.500 0 1remMain copy and explanations.
App smallLexend4000.8125rem / 1.4500Helper text, metadata, hints.
App labelIBM Plex Mono5000.6875rem / 1.200 0 0.5remTable headers, mono eyebrows, state labels.
App monoIBM Plex Mono4000.8125rem / 1.4500IDs, paths, model names, timestamps.
App numericIBM Plex Mono4000.875rem / 1.300Counts, hours, dates, money, render duration.
Button labelLexend5000.875rem / 100Buttons, segmented controls, menu commands.

Display and italics:

  • Newsreader display classes are allowed for covers, H1s, section breaks, quotes, major numerals, and editorial title moments.
  • Italics are limited to one short heading phrase for editorial contrast or quotation-like emphasis.
  • Never use italics in buttons, labels, body emphasis, table cells, chart labels, data labels, errors, badges, or AI output status.

6. Layout And Spacing System

Use the foundation baseline:

  • 0.25rem micro baseline for type alignment.
  • 0.5rem structural baseline for spacing, grid gutters, padding, controls, rows, and layout rhythm.
  • No arbitrary gaps when a token exists.
  • Browser-facing CSS uses rem and does not set a custom root font size.

Viewport grid:

ViewportColumnsSide marginGutterRule
Mobile11rem1rem internalShow the next useful decision first.
Tablet61.5rem1remCollapse sidebars into sheets or rails.
Desktop122rem1.5remUse dominant work region plus support.
Wide123rem+1.5remIncrease side air before widening prose.

Max widths:

  • Reading-shaped pages: 60-72ch.
  • Normal app content: --into-app-content-max / 80rem.
  • Hybrid review pages: 90rem.
  • Full-width exhibits: tables, charts, screenshots, diagrams, media preview, timelines, boards, and dense evidence only.

Density:

DensityUseControlsRowsPadding
CompactRepeated operations, tables, queues2rem-2.5rem2.5rem1rem-1.5rem
StandardDefault product UI2.5rem3rem1.5rem-2rem
SpaciousEmpty states, onboarding, review, media preview2.75rem-3rem3rem+2rem-3rem

7. Surface, Elevation, Border, And Radius System

Use the containment ladder before adding boxes:

  1. No box: type, spacing, alignment, and grid.
  2. Hairline group: related controls, rows, and quiet boundaries.
  3. Full-width exhibit: data table, chart, timeline, media preview, diagram, screenshot, prompt trace, or audit log.
  4. Card: discrete peer item, metric, decision, record, approval item, or comparable module.

Radius:

  • Small controls: --into-radius-small.
  • Cards and peer modules: --into-radius-card.
  • Dialogs, drawers, command palette, media panels: --into-radius-panel.
  • Pill radius only for compact status dots, avatars, or segmented geometry where the object is truly round.

Elevation:

  • Default surfaces use hairlines, not shadows.
  • Panel shadow is allowed for command palettes, popovers, dropdowns, hover previews, floating drawers, media lightboxes, and drag overlays.
  • Floating shadow must never make the app feel like stacked cards.
  • Glow is reserved for active command surfaces, current render focus, selected media frames, and high-contrast Blueprint moments. It is not decoration.
  • Glass is dark/photo/media-stage only and needs controlled blur, border, contrast, and focus-visible state.

8. Motion And Animation Principles

Motion must name a job:

  • Confirm an action.
  • Reveal evidence.
  • Move work through a workflow.
  • Show long-running AI progress.
  • Resolve a drag/drop, reorder, or board move.
  • Transition between command, sheet, modal, or media preview states.
  • Stabilize AI streaming output.
  • Compare versions or model outputs.

Motion tokens:

  • Fast: --into-motion-duration-fast for hover, pressed, focus, small state.
  • Medium: --into-motion-duration-medium for sheet, tab, list, accordion.
  • Slow: --into-motion-duration-slow for composed reveal or media progress.
  • Ease: --into-motion-precision.

Use Motion or Framer Motion for composed state transitions, AnimatePresence for mounted/unmounted surfaces, layout for controlled layout changes, and a global reduced-motion provider such as MotionConfig reducedMotion="user". When reduced motion is active, replace transform travel with opacity or instant state.

Do not animate routine dashboard chrome, decorative loops, badge fields, sparkle effects, or page-load theatre.

9. Core Component Library

Every component must define purpose, anatomy, variants, states, responsive behavior, accessibility, motion, and reference-app usage before code.

ComponentPurposeAnatomyVariantsRequired statesResponsive / accessibility / motionReference uses
App shellHolds global orientation.Topbar, sidebar/rail, content, detail area.Sidebar, rail, bottom tabs, command path.Current, collapsed, permission-limited, offline.Landmarks, skip link, focus order; mobile bottom tabs or compact menu.All three apps.
Top navigationWorkspace and global actions.Mark/name, breadcrumb, search, command, user menu.Product, workspace, admin.Current, scrolled, loading, permission.Sticky only when useful; no shadow unless content passes under.Project manager, social suite.
Sidebar navigationPeer areas and object hierarchy.Groups, items, counts, collapse control.Expanded, rail, nested two levels max.Current, disabled, permission, sync.Mobile sheet or bottom tabs; labels required.Project areas, content channels, pipeline stages.
Command paletteFast navigation and action.Search input, grouped results, shortcuts, footer.Global, scoped, action-only, search-only.Open, empty, loading, permission-filtered, failed action.Combobox/listbox semantics, Escape, focus restore.Find task, create post, render action.
BreadcrumbsShow path and parent context.Home, parents, current item.Compact, full, object path.Current, truncated, permission-limited.Text labels; do not hide current page.Project/task detail, campaign asset, video version.
Page headersState the current job.Eyebrow, H1, support line, primary action.Object, list, dashboard, review.Loading, stale, permission, archived.Mobile action moves near task; no oversized hero.All three apps.
CardsDiscrete peer objects.Header, body, metadata, action.Metric, record, decision, route, media asset.Hover, selected, focus, loading, empty, error.No nested cards; card is a peer item only.Task card, post draft card, clip version card.
PanelsPersistent work regions.Header, controls, body, footer.Main, detail, inspector, evidence, media.Loading, partial, blocked, read-only.Hairline boundaries; may become sheet on mobile.Evidence, inspector, render settings.
TabsSibling views inside one area.Tablist, trigger, panel.Underline, segmented, vertical.Selected, focus, disabled, loading.Keyboard tablist behavior; not top-level nav.Overview/activity/files, drafts/calendar, preview/history.
AccordionsProgressive disclosure.Trigger, content, optional summary.Single, multiple, nested max one level.Open, closed, disabled, error inside.Native button trigger; avoid hiding required actions.Advanced filters, prompt details, render settings.
ButtonsTrigger actions.Label, optional leading/trailing icon, spinner.Primary, secondary, quiet, icon-only, split, destructive, loading, permission-disabled.Hover, active, focus, disabled, loading, current, blocked.Lexend 500; horizontal padding greater than vertical; icon-only needs tooltip/name.All actions.
Button groupsMutually related commands.Group container, buttons, separators.Segmented, toolbar, split.Selected, mixed, disabled, overflow.Roving focus where applicable; no color-only state.View switcher, editor controls.
InputsCollect short values.Label, field, helper, error.Text, search, numeric, URL, token.Focus, dirty, validating, error, success, disabled, read-only.Labels required; field width matches expected value.Task name, post title, render name.
TextareasDraft longer content.Label, field, counter, helper/error.Plain, prompt, comment, markdown.Focus, dirty, autosaving, limit, error.Preserve resize when useful; no layout jump.Prompt editor, caption draft, review note.
SelectsChoose from small known sets.Trigger, value, list, option.Single, multi, searchable.Open, empty, disabled, invalid.Native or accessible listbox; do not use for huge search.Status, channel, model, owner.
ComboboxesSearch and select from larger sets.Input, list, result, selected chips.Single, multi, create-new.Loading, empty, permission-filtered, error.Combobox semantics; keyboard navigation.Assign people, choose assets, select sources.
CheckboxesBinary or multi-select.Box, label, helper.Single, group, indeterminate.Checked, unchecked, mixed, disabled, error.Label click target; state not color-only.Bulk select, options, consent.
TogglesImmediate binary setting.Label, switch, state text.On/off, permission-disabled.On, off, focus, disabled, loading.Use when effect is immediate; otherwise checkbox.Automation safe mode, publish lock.
Date pickersChoose date/range.Field, calendar, presets.Date, range, due date, schedule.Open, invalid, blocked date, timezone.Keyboard date entry; timezone visible when relevant.Due date, social schedule, render deadline.
UploadBring files into system.Drop zone, file list, progress, errors.Single, multi, folder, replace.Drag, uploading, paused, failed, scanned, complete.Keyboard file input; progress text.Assets, source files, video inputs.
TablesCompare records.Caption, toolbar, head, rows, row actions, pagination.Static, selectable, sortable, editable, expandable, virtualized.Loading, empty, filtered-empty, selected, error, partial, sync.Native table unless grid behavior needed; stacked records on mobile.Task list, content queue, render jobs.
Kanban boardsMove work through states.Columns, cards, WIP counts, filters.Single lane, swimlane, backlog.Dragging, invalid move, blocked, no permission, archived.Keyboard move alternative; mobile priority queue.Task board, content status, video pipeline.
Timeline viewsShow sequence and dependency.Scale, phases, markers, current line.Horizontal, vertical, dependency.Active, delayed, blocked, completed, uncertain.Mobile vertical phases; clear dates.Project plan, campaign calendar, render process.
Calendar viewsSchedule work and publishing.Grid, event, filters, timezone.Month, week, agenda.Today, scheduled, conflict, missed, draft.Agenda fallback on mobile; timezone accessible.Content calendar, review schedule.
Workflow pipelineTrack multi-step process.Stages, counts, blockers, owner.Linear, branching, approval, render.Queued, active, waiting, blocked, failed, completed.Ordered list semantics or accessible grid.All workflow products.
Approval queuesDecide what can proceed.Item, evidence, risk, reviewer, action.Content, execution, client-visible, second approval.Requested, needs evidence, approved, rejected, expired, executed.Decision card on mobile; consequence named.Reviews, publishing, render approval.
Agent activity feedsShow AI and system action.Actor, action, timestamp, source, result.Compact, detailed, filtered.Streaming, failed, reverted, redacted.Live region for active jobs; filterable history.Agent task log, content AI actions, render agent.
AI chat panelsConversational input only when useful.Input, transcript, sources, actions.Drafting, Q&A, review assistant.Streaming, cited, partial, low-confidence, failed.Stabilize layout; approval outside chat.Ask project, draft caption, review script.
Prompt editorsGovern AI instructions.Prompt, variables, tests, version, preview.Simple, advanced, diff, template.Dirty, validating, test running, saved, conflict.Code-like editing with labels and history.Prompt library, social prompts, video prompts.
Output preview panelsInspect generated output.Preview, metadata, sources, actions.Text, image, video, post, diff.Loading, partial, degraded, approved, failed.Dark stage allowed for media; captions attached.Draft preview, post preview, video preview.
Version historyRestore or compare changes.List, diff, metadata, restore.Record, prompt, asset, render.Current, selected, restored, failed restore.Restore preview before mutation.Project plan versions, post edits, video cuts.
Status badgesFast scannable state.Text, optional dot, optional icon.Neutral, info, warning, success, critical, AI.Current, stale, disabled.No decorative badge fields; text always present.Any status.
ToastsShort async feedback.Message, optional action, close.Success, info, warning, retry.Open, dismissed, retrying.aria-live; never hides primary controls.Saved, queued, failed retry.
TooltipsClarify compact controls.Trigger, content.Label, help, shortcut.Open, delayed, disabled trigger.Not required to complete task; accessible name separate.Icon buttons.
ModalsInterruptive decisions.Header, body, footer.Confirm, destructive, short form.Open, loading, blocked, error.Focus trap/restore; destructive consequence named.Delete task, publish confirm, cancel render.
DrawersContextual work without route loss.Header, body, footer, close.Detail, filter, edit, evidence, approval, import map.Dirty, saving, blocked, destructive pending.Full-screen sheet on mobile.Task detail, asset inspector, render settings.
Empty statesExplain absence and next step.Title, cause, action, optional example.First-use, filtered-empty, permission-empty.N/A.One action; no illustration unless useful.Empty project, no drafts, no renders.
Loading skeletonsPreserve layout while loading.Static blocks matching structure.Table, card, media, form.Loading, slow-loading.No shimmer required; announce long waits.All async views.
Error statesRecover from failure.Cause, affected object, next action.Field, inline, page, blocking, system.Retrying, failed, partial.Focus error summary; no color-only error.Sync fail, publish fail, render fail.
Confirmation statesShow accepted outcome.Message, changed object, next action.Inline, toast, receipt.Success, undo available.Quiet, non-blocking unless receipt matters.Save, approval, publish.
Data visualization blocksMake data actionable.Conclusion, chart/table, source, controls.KPI, trend, funnel, workload, forecast.Loading, stale, partial, no data, calculation error.Source and period visible; keyboard-accessible data table fallback.Workload, campaign performance, render metrics.
Settings screensConfigure product.Sidebar, sections, forms, audit.Workspace, user, AI, security, billing.Dirty, saving, permission, audit.Dangerous changes isolated.Product-wide settings.
User/permission screensManage access.Roles, members, scopes, audit.Member list, role matrix, invite.Pending invite, disabled, revoked, conflict.Explain roles and visible consequences.All apps with shared work.

Component Specification Template

Use this template before building or generating any reusable web-app primitive. The template makes component intent, CSS-token binding, states, responsive fallback, accessibility, and anti-patterns explicit enough for implementation.

  1. Anatomy: named subparts, landmarks, semantic element, and required content.
  2. CSS property table: map every surface, line, spacing, radius, shadow, focus, motion, and density decision to an existing --into-* token.
  3. Variants: production variants only, with when-to-use rules.
  4. States: loading, empty, error, success, partial, permission, conflict, sync-delayed, selected, focused, disabled, read-only, and reduced motion where relevant.
  5. Responsive collapse: desktop, tablet, mobile, 390px, and 200 percent zoom behavior.
  6. Accessibility contract: roles, names, keyboard path, live regions, focus management, touch targets, and contrast check.
  7. Anti-patterns: the specific failures the primitive must prevent.
CSS property familyRequired token binding
Page and panel surfaces--into-app-surface-page, --into-app-surface-panel, --into-app-surface-muted
Selected, hover, skeleton, drop target--into-app-surface-selected, --into-app-surface-hover, --into-app-surface-skeleton, --into-app-surface-drop-target
Text--into-text-primary, --into-text-secondary, --into-text-muted, --into-text-faint, --into-text-inverse
Lines and focus--into-line-soft, --into-line-strong, --into-app-focus-ring, --into-app-selected-outline
Action and state--into-accent, --into-accent-hover, --into-accent-soft, --into-state-positive, --into-state-warning, --into-state-critical
State soft surfaces and ink--into-state-positive-soft, --into-state-positive-ink, --into-state-warning-soft, --into-state-warning-ink, --into-state-critical-soft, --into-state-critical-ink
Spacing and structure--into-space-*, --into-app-content-padding, --into-app-content-padding-tablet, --into-app-content-padding-mobile
Controls, rows, touch--into-app-control-small, --into-app-control-medium, --into-app-control-large, --into-app-row-height, --into-app-row-height-compact, --into-app-touch-target
Density modes--into-density-compact-*, --into-density-comfortable-*
Radius and containment--into-radius-small, --into-radius-card, --into-radius-panel
Elevation and overlays--into-app-shadow-hairline, --into-app-shadow-panel, --into-app-shadow-floating, --into-app-shadow-command, --into-app-scrim-modal, --into-app-scrim-overlay
Glass and command surfaces--into-app-glass-surface, --into-app-glass-surface-hover, --into-app-glass-border, --into-app-glass-border-hover, --into-app-blur-surface
Motion--into-motion-instant, --into-motion-micro, --into-motion-quick, --into-motion-measured, --into-motion-precision

Data Table Primitive

Template partSpecification
AnatomyCaption, optional description, toolbar, saved view, filter/search, bulk action, table head, sortable headers, body rows, row action, expansion slot, pagination, empty/error/loading region.
CSS property tableSurfaces use --into-app-surface-page and --into-app-surface-panel; selected rows use --into-app-surface-selected plus --into-app-selected-outline; row height uses --into-app-row-height or --into-app-row-height-compact; sticky header lines use --into-line-soft; focus uses --into-app-focus-ring; status uses state tokens only.
VariantsStatic comparison, selectable, sortable, editable, expandable, virtualized, permission-limited, audit log. Use ARIA grid only when cell-level editing changes the keyboard model.
StatesLoading skeleton, empty, filtered-empty, selected, focused, disabled row, partial data, row error, sync delayed, permission denied, bulk-selected, expansion open, stale values.
Responsive collapseDesktop keeps comparison columns. Tablet hides P3/P4 columns behind row details. Mobile becomes stacked records with P1 identity, P1 state, P1 owner/date, row action, and detail sheet; never hide critical state or next action.
Accessibility contractNative table, caption, th scope, aria-sort, visible row actions, keyboard selection, focus-visible, status text, row expansion name, and no hover-only controls.
Anti-patternsHorizontal scroll as the only mobile strategy, icon-only column headers, color-only row state, bulk actions without selection count, virtualized rows without stable focus recovery.

Form Field Primitive

Template partSpecification
AnatomyLabel, required/optional note, input/control, helper, validation message, character or unit affordance, dirty/saved state, field-level permission note, form-level error summary.
CSS property tableField surfaces use --into-app-surface-panel; field lines use --into-line-soft and --into-line-strong; error uses --into-state-critical, --into-state-critical-soft, and --into-state-critical-ink; success uses positive tokens; warning uses Saffron state tokens; padding uses --into-space-*; control height uses app control tokens; focus uses --into-app-focus-ring.
VariantsText, search, numeric, currency, URL, select, combobox, textarea, checkbox group, radio group, toggle, date, file upload, prompt variable, import mapping field.
StatesIdle, focus, dirty, autosaving, saved, validating, error, warning, success, disabled, read-only, permission-denied, conflict, external sync delayed.
Responsive collapseDesktop may use two-column forms only when fields are independent. Tablet collapses dependent groups. Mobile is one column with the error summary before fields and a sticky save bar that never covers focused input.
Accessibility contractVisible label, helper via aria-describedby, error text linked to invalid field, form summary receives focus after failed submit, required state in text, native input where possible, no placeholder as label.
Anti-patternsHidden validation, disabled controls without reason, save buttons outside keyboard order, helper text replaced by icon-only tooltip, layout jump on error.

AI Workspace Shell Primitive

This primitive defines shell zones only. Prompt input, slash commands, streaming output, citations, traces, tool calls, model awareness, confidence, disclosure, refusal, feedback, attachments, and artifacts remain owned by brand/ai-interface-patterns.md.

Template partSpecification
AnatomyApp landmark shell, current path, task header, transcript or workbench, evidence/source panel, proposed-change region, approval gate, execution log, rollback route, persistent input, status/live region.
CSS property tableWarm reading surfaces use --into-app-surface-page; focus/review panels use --into-app-surface-panel; command or floating input uses glass tokens; selected evidence uses --into-app-surface-selected; AI state markers use --into-ai-* tokens only where already defined; approval warnings use state tokens.
VariantsDrafting, review, approval, execution, monitoring, rollback, side-by-side comparison, evidence-first.
StatesQueued, streaming, cited, partial, low-confidence, source-missing, needs-human, approved, executing, failed, reverted, paused, cancelled, permission-limited.
Responsive collapseDesktop can hold transcript, evidence, and approval side by side. Tablet turns evidence into a drawer. Mobile shows next safe decision first, then evidence, then transcript; input remains reachable without covering approval controls.
Accessibility contractAnnounce AI status changes through a restrained live region, keep source links navigable, expose model/tool metadata in text, ensure approval controls are keyboard reachable, and never execute irreversible actions without human confirmation.
Anti-patternsGeneric chat as the whole product, purple-blue AI styling, hidden tool execution, evidence detached from decision, approval buried below the transcript.
Template partSpecification
AnatomyTrigger, scrim when modal, surface, title, description, body, affected object, primary/secondary/destructive actions, close control, status or error region, focus return target.
CSS property tableScrims use --into-app-scrim-modal or --into-app-scrim-overlay; surface uses --into-app-surface-panel; lines use --into-line-soft; elevation uses --into-app-shadow-floating or --into-app-shadow-command; spacing uses --into-space-*; focus uses --into-app-focus-ring; enter/exit uses motion tokens.
VariantsConfirm modal, destructive modal, short form modal, detail drawer, filter drawer, edit drawer, evidence drawer, approval sheet, import mapping sheet.
StatesOpen, closing, dirty, saving, saved, error, blocked, destructive pending, permission denied, loading, reduced motion, interrupted by route change.
Responsive collapseDesktop drawers may be side panels and modals stay bounded. Tablet drawers may widen. Below mobile, drawers and most modals become full-screen sheets with close, save, and destructive action visible without horizontal overflow.
Accessibility contractdialog semantics or accessible library primitive, title and description, focus trap when modal, focus restore, Escape behavior where safe, background inert, visible close, action consequence copy.
Anti-patternsModal for primary browsing, destructive action without object/consequence, sheet without close, hidden save, nested overlays, focus lost to page background.

10. AI-Native Component Patterns

AI must feel powerful but governed.

PatternRequired UI contract
Human-in-the-loop approvalShow requested action, evidence count, risk, reviewer, consequence, approve/reject/request-change, audit result.
AI-generated draftsLabel as draft, show source/context, edited-by history, confidence or caveat when useful, and publish gate.
AI suggestionsInline suggestion with accept, reject, explain, and source link. Never auto-apply risky changes.
Confidence indicatorsUse only when calibrated and useful; pair numeric/label signal with explanation and next step.
Agent statusQueued, thinking, searching, drafting, waiting, needs human, executing, failed, complete, reverted.
Long-running tasksProgress stage, elapsed time, expected next stage, cancel/pause when possible, activity log.
Background jobsPersistent job tray or activity feed; no hidden execution.
Review queuesGroup by risk, due date, owner, and client-visible consequence.
Prompt editingVariables, test corpus, version history, approval, rollback, and permission states.
Prompt versioningDiff, author, date, affected workflows, restore preview, approval state.
AI memory/contextShow included sources, excluded sources, freshness, privacy boundary, edit route.
CitationsAttached to claim or generated block; source title, date, owner, and retrieval state.
Output comparisonSide-by-side variants with criteria, source, model, cost/time if relevant, and selected rationale.
Audit logsPrompt/request, context, model/tool, evidence, human reviewer, execution, rollback.
Human/AI handoffOwner, current state, what AI did, what human must decide, due time, safe next action.
AI action failureError cause, affected objects, retry, rollback, manual route, support log.
Needs human judgmentStop automation; show why judgment is needed and which role can decide.
Safe automationMode, scope, limit, approval threshold, rollback plan, kill switch, last run.

11. Workflow And Pipeline UI Patterns

Use workflow primitives by job:

  • Project work: table for comparison, board for state movement, timeline for dependency, detail drawer for record work, approval queue for reviews.
  • Content operations: calendar for scheduled publishing, pipeline for draft to publish, preview panel for channel output, queue for approval, audit for external visibility.
  • Video generation: stage pipeline for prompt, source, generation, render, review, approval, export; preview stage for media; render queue for jobs.

Pipeline anatomy:

Intake -> Draft/Generate -> Review -> Approve -> Execute/Render/Publish -> Measure -> Archive.

Each stage defines owner, allowed actions, required evidence, state color, automation level, manual override, and rollback.

12. Collaboration UI Patterns

  • Presence appears only when it changes editing, lock, review, approval, or handoff behavior.
  • Comments must anchor to records, fields, rows, chart points, media frames, sources, or decisions.
  • Reviews separate comment approval, content approval, execution approval, and client-visible approval.
  • Notifications use object, reason, action format: “Video v4 render failed: retry or open logs.”
  • Client-visible and external-link states must be labelled before export, publish, share, or agent execution.
  • AI cannot silently overwrite human work. Conflicts show prior, attempted, and latest values plus recovery.

13. Dashboard And Analytics UI Patterns

Dashboards exist to answer “what changed, why it matters, and what to do.”

Required analytics anatomy:

  • Conclusion title.
  • Period and source.
  • Metric or chart.
  • Delta with meaning.
  • Segment/filter controls.
  • Caveat or calculation note where relevant.
  • Drill-in route.
  • Next action.

Use no more than four KPI modules in the first viewport. Use tables when precise comparison matters. Use charts only when shape, distribution, trend, or comparison is the point.

14. Form And Data-Entry Patterns

  • Label every field. Placeholder is never the label.
  • Group by decision or object, not visual symmetry.
  • Show helper text before error text when the rule is not obvious.
  • Validate inline and summarize errors at the form level after submit.
  • Dirty forms need save, cancel, unsaved-change warning, and conflict recovery.
  • Import forms use upload, map, validate, preview, commit, report.
  • Prompt forms include variables, source scope, privacy boundary, test run, version, approval, and rollback.
  • Media forms include asset constraints, aspect ratio, source rights, caption, and export destination.

15. State Design

StateUI requirement
EmptyExplain absence, scope, and one next action.
LoadingShow static structure quickly; avoid unstable controls.
SuccessQuiet confirmation with changed object and next action if needed.
WarningSaffron signal plus consequence and recovery.
ErrorCause, affected object, recovery, retry/manual path.
DisabledVisible reason when the action is expected.
Read-onlyExplain lock, role, source, or archived state.
ProcessingStage, progress, elapsed time, cancel/pause if safe.
ApprovalReviewer, evidence, consequence, expiry, approve/reject/change.
Partial dataShow loaded scope, missing scope, freshness, and risk.
Permission deniedRequired role, owner, request route, safe fallback.
ConflictPrior value, attempted value, latest value, choose/retry route.
Offline/sync delayedLast successful sync, affected records, retry/reconnect.
Archived/deletedRetention, restore path, audit, permanent consequence.
Reduced motionSame information without transform-heavy transitions.

16. Accessibility Guidelines

  • Meet WCAG 2.2 AA for text and interactive contrast.
  • Preserve keyboard path for the primary workflow.
  • Never remove focus-visible.
  • Icon-only controls need accessible names and tooltips.
  • Tables use captions, scoped headers, aria-sort when sortable, and keyboard row actions.
  • Use native table semantics unless cell-level editing requires ARIA grid.
  • Dialogs and modal drawers trap focus, restore focus, and support Escape where safe.
  • Toasts and asynchronous status changes use live regions.
  • State is never color-only.
  • Touch targets are at least 2.75rem where touch is likely.
  • 200 percent zoom preserves reading order and access to primary actions.
  • Streaming AI output needs status announcements without overwhelming screen readers.
  • Canvas or media-only views need static summaries and keyboard-equivalent controls.

Component-specific checklist:

ComponentRequired accessibility checks
App shellLandmarks, skip link, current route, keyboard order, collapsed-nav labels, bottom-tab labels, and no icon-only primary navigation.
Data tableCaption, scoped headers, aria-sort, keyboard row actions, selection count, expansion control name, partial/error text, and stacked-record mobile equivalence.
Form fieldVisible label, helper association, error association, required text, dirty/save state, error-summary focus, conflict recovery, and mobile sticky-bar clearance.
AI workspace shellStatus live region, navigable citations/evidence, model/tool metadata in text, approval controls before irreversible execution, and rollback route.
Modal / drawer / sheetTitle, description, focus trap when modal, focus restore, Escape behavior, inert background, visible close, consequence copy, and full-screen mobile sheet behavior.
Toast / alertaria-live, persistent critical alerts, retry action text, no hidden primary control, and no color-only severity.
Canvas / PixiJS viewStatic summary, data-table fallback when the canvas carries data meaning, keyboard-equivalent controls, reduced-motion path, and paused hidden render loops.

Contrast verification table:

PairWarm Light ratioBlueprint Dark ratioStatus
Primary text on page16.67:115.83:1AA pass
Secondary text on page13.01:111.60:1AA pass
Muted text on page7.14:17.10:1AA pass
Primary text on raised panel15.43:114.66:1AA pass
Primary text on muted surface14.23:113.08:1AA pass
Inverse text on accent action9.44:17.57:1AA pass
Inverse text on critical action5.14:16.71:1AA pass
Positive action text/surface pair5.02:19.11:1AA pass
Warning ink/surface pair11.14:111.78:1AA pass

17. Responsive Design Rules

  • Mobile: one task, one decision, one primary action. Dense data becomes stacked records, one-lane queue, agenda, or sheet.
  • Tablet: keep the main work visible; move inspectors into drawers or side sheets.
  • Desktop: use dominant work region with supporting inspector, evidence, or activity region.
  • Wide desktop: widen exhibits before prose. Increase side air before line length.
  • Sticky bars must not cover focused fields, row actions, media controls, or approval decisions.
  • Tables collapse by priority fields, not by hiding critical state.
  • Boards collapse to a queue or one lane. Do not miniaturize all columns.
  • Calendars collapse to agenda.
  • Media previews preserve aspect ratio and controls.

18. Implementation Guidance For React, Tailwind, And Shadcn-Style Components

Implementation principles:

  • Treat shadcn/ui as open component source and anatomy, not as a visual theme.
  • Use copied component ownership: components live in the product repo and can be restyled to INTO tokens.
  • Use Tailwind CSS variables or @theme inline to expose --into-* tokens as utilities. Components should reference semantic tokens, not raw values.
  • Use class-variance-authority for component variants and sizes.
  • Use lucide-react for icons when a familiar command icon exists. Keep icons currentColor, outline, and accessible.
  • Use Radix-style primitives for dialog, sheet, popover, dropdown, tooltip, command, tabs, accordion, select, and checkbox when available.
  • Use Motion for state transitions that need mount/unmount or layout animation. Wrap the app in reduced-motion support.

Suggested component file shape:

// components/ui/button.tsx
import { Slot } from "@radix-ui/react-slot"
import { cva, type VariantProps } from "class-variance-authority"
import { Loader2 } from "lucide-react"
import { cn } from "@/lib/utils"

const buttonVariants = cva(
  "inline-flex items-center justify-start gap-2 rounded-[var(--into-radius-small)] font-[var(--into-font-sans)] font-medium tracking-[0] transition-colors focus-visible:outline-none focus-visible:shadow-[var(--into-app-focus-ring)] disabled:pointer-events-none disabled:opacity-55",
  {
    variants: {
      variant: {
        primary: "bg-[var(--into-accent)] text-[var(--into-text-inverse)] hover:bg-[var(--into-accent-hover)]",
        secondary: "border border-[var(--into-line-soft)] bg-transparent text-[var(--into-text-primary)] hover:bg-[var(--into-app-surface-hover)]",
        quiet: "bg-transparent text-[var(--into-text-secondary)] hover:text-[var(--into-text-primary)]",
        destructive: "bg-[var(--into-state-critical)] text-[var(--into-text-inverse)]",
      },
      size: {
        compact: "h-[var(--into-button-height-compact)] px-[var(--into-button-padding-x-compact)] py-[var(--into-button-padding-y-compact)] text-[var(--into-type-floor-button-compact)]",
        default: "h-[var(--into-button-height-default)] px-[var(--into-button-padding-x-default)] py-[var(--into-button-padding-y-default)] text-[var(--into-type-floor-button)]",
        touch: "h-[var(--into-button-height-touch)] px-[var(--into-button-padding-x-touch)] py-[var(--into-button-padding-y-touch)] text-[var(--into-type-floor-button)]",
      },
    },
    defaultVariants: { variant: "secondary", size: "default" },
  }
)

Naming conventions:

  • Components: AppShell, PageHeader, DataTable, ApprovalQueue, AgentActivityFeed, PromptEditor, OutputPreviewPanel.
  • Variants: variant, size, density, state, tone.
  • Props for high-risk controls: isLoading, isCurrent, permissionReason, destructiveLevel, requiresApproval, auditEvent.
  • State names are product vocabulary: queued, generating, needsHuman, approved, publishing, rendering, failed, reverted.

Acceptance criteria:

  • No hard-coded colors, shadows, radii, spacing, or type in components when a token exists.
  • Light and dark mode render every component state.
  • Every interactive component has keyboard, focus-visible, loading, disabled, error, and reduced-motion behavior where relevant.
  • Components expose enough props that builders do not invent visual variants at the screen layer.

19. Example Screens

Project Manager AI

Screen: Workstream command center.

  • App shell: project sidebar, top command path, global search.
  • Main region: timeline plus task table; one current blocker highlighted.
  • Inspector: AI proposal with evidence, owner, risk, approval gate.
  • Components: App shell, command palette, page header, table, board/timeline, approval queue, agent activity feed, detail drawer, comments, audit log.
  • States: draft, active, blocked, needs human, approved, overdue, sync delayed, conflict, archived.
  • Mobile: “Today / Needs Review” queue with blocker, owner, due date, evidence, approve/request-change actions.
  • QA proof: human can assign work, review AI suggestion, approve execution, and audit the change without losing context.

Social Media AI Suite

Screen: Campaign content operations.

  • App shell: channels, campaigns, approvals, calendar, assets, settings.
  • Main region: content pipeline from brief to draft to review to scheduled to published.
  • Preview: channel-specific post preview with image/video/caption, source citations, brand checks, and approval state.
  • Components: calendar, kanban board, prompt editor, output preview, approval queue, upload, comments, version history, analytics block.
  • States: generated draft, needs brand review, citation missing, scheduled, publish failed, published, pulled, client-visible.
  • Mobile: approval inbox and scheduled-post preview, not full calendar grid.
  • QA proof: user can create an AI draft, inspect sources, edit prompt, compare versions, approve, schedule, publish, and recover from failure.

Video Generation Pipeline

Screen: Render pipeline and review room.

  • App shell: projects, source assets, prompts, renders, approvals, exports.
  • Main region: stage pipeline for prompt, source, generation, render, review, approval, export.
  • Media region: dark preview stage with caption, source notes, version selector, timeline markers, and render status.
  • Components: upload, prompt editor, workflow pipeline, render queue, output preview, version history, approval gate, activity feed, error recovery.
  • States: source missing, queued, generating, rendering, preview ready, needs human judgment, approved, export failed, published, reverted.
  • Mobile: render status plus approval/reject/request-change decision card.
  • QA proof: user can start a render, monitor progress, compare versions, approve or reject, export with audit, and retry failed render safely.

20. Design QA Checklist For AI Builders And Coders

  • Read ai/START_HERE.md, contexts/web-app-system.html, media/web-apps.md, this file, and templates/web-app/style-system.md.
  • Run the implementation sufficiency audit before final screens.
  • Confirm all referenced tokens exist in tokens/into-consulting.theme.css.
  • Confirm light and dark mode for every component state.
  • Confirm component variants are built through props or CVA, not ad hoc screen classes.
  • Confirm one primary action per surface.
  • Confirm AI actions show evidence, source/context, approval, audit, and rollback where needed.
  • Confirm no silent AI overwrite path exists.
  • Confirm keyboard path completes the primary workflow.
  • Confirm focus-visible and error recovery.
  • Confirm 390px mobile behavior for dense tables, boards, calendars, and drawers.
  • Confirm reduced-motion behavior for every animated surface.
  • Confirm no decorative badge walls, nested cards, generic SaaS chrome, purple-blue AI styling, or stock imagery.
  • Confirm favicon uses assets/favicon.svg or an export from that square mark.
  • Confirm major examples show real workflow pressure and one next useful decision.

21. Self-Audit Results And Repairs Made

The web-app system already covered baseline type, spacing, grid, heuristics, data views, forms, AI review, collaboration, and accessibility. The following gaps would still cause implementation drift for AI software platforms:

GapWhy it would block buildersRepair encoded here
No single AI software platform sourceBuilders would scatter product UI rules across media, template, and HTML summaries.Added this source file and route it from the hybrid web-app system.
Surface/elevation/glass tokens were less explicit than color tokensProduct teams would invent shadows, glow, and glass per app.Added app shadow, glow, glass, and blur token requirements.
Component list did not cover the full requested platform libraryAI coders could omit prompt editors, version history, render queues, permission screens, or media previews.Added a component matrix covering the requested primitives and states.
New reference apps were not representedExamples would keep optimizing for workshop/timesheet/polling rather than project/social/video platforms.Added Project Manager AI, Social Media AI Suite, and Video Generation Pipeline screen contracts.
React/Tailwind/shadcn guidance needed a current implementation contractCoders could copy shadcn visuals or hard-code Tailwind values.Added token-first, copied-component, CVA, Lucide, Radix, and Motion guidance.
AI governance needed a stronger state vocabularyAI features could look powerful while hiding risk, evidence, or rollback.Added AI-native patterns for approval, confidence, memory/context, audit, safe automation, and failure recovery.

This repair makes the design system complete enough for a coding AI to build a first component library and the three reference application screens without inventing core visual language, interaction states, or AI governance logic.