Framework

Generated brand specimen

Framework Console

specimen/_input/brand-specimen.yaml

Quiet operational tooling for decision work.

The console favors dense, legible product surfaces over marketing composition. Serif type carries section identity; Hanken Grotesk carries repeated controls and table work.

Canon

The brand layer is generated from seed YAML: primitive color ramps, semantic references, typography tiers, spacing, radius, elevation, and motion are all emitted artifacts.

Seed YAMLGenerated CSSGenerated TS

Brand chrome

Framework

Console top bars use the Framework wordmark treatment from the public site: serif name, olive dot, and compact product context.

Shared fonts
Fraunces for brand and headings, Hanken Grotesk for interface copy, JetBrains Mono for code and compact metadata.
Spacing
Console spacing utilities resolve through the generated four-pixel Framework spacing rhythm.
Letter spacing
Console components use default letter spacing. The public site and console share type families without ad hoc caps spacing in product UI.

Drawer

Right-side drawers use a tokenized backdrop, close on backdrop click, close with Escape, and focus the close control on open.

Provenance labels

Sample · HealthcarePractice manager at a multi-location primary care group.
FrameworkAII’ll map the actors, decisions, and handoffs as you answer.

Provenance labels sit on the message boundary. Use them for sample selections and FrameworkAI responses; ordinary operator entries stay unlabeled.

Console shell

Sample artifact · Demo

Consolidated Ink

Flow view

Console pages use a persistent Framework top bar and a left navigation rail that collapses from text labels to semantic icons.

Loading state

Mapping the artifact

Node-map motion uses olive accent tones and the same spacing rhythm as the shell.

Primitive color ramps

Anchor

Lime

--color-lime-*
lime.0
#fbfbf9
lime.50
#f5f5ef
lime.100
#eff0e0
lime.200
#e8eac3
lime.300
#e0e396
lime.400
#dbe067
lime.500
#9da318
lime.600
#c0c723
lime.700
#9a9f23
lime.800
#6e7222
lime.900
#4a4c1f
lime.950
#2e2f18

Parchment

--color-parchment-*
parchment.0
#fafaf6
parchment.50
#f5f5f0
parchment.100
#ecece4
parchment.200
#dedecf
parchment.300
#c9c9b1
parchment.400
#b4b493
parchment.500
#9f9f75
parchment.600
#8a8a60
parchment.700
#72724f
parchment.800
#57573d
parchment.900
#3f3f2c
parchment.950
#2a2a1d

Ink

--color-ink-*
ink.0
#f5f5f4
ink.50
#e7e7e4
ink.100
#d3d3cf
ink.200
#b6b6af
ink.300
#989890
ink.400
#7f7f76
ink.500
#67675f
ink.600
#52524c
ink.700
#40403b
ink.800
#30302c
ink.900
#20201d
ink.950
#0c0c0a

Harmonic

Red

--color-red-*
red.0
#fbf9f9
red.50
#f5f0ef
red.100
#f0e1e0
red.200
#eac5c3
red.300
#e39b96
red.400
#e06f67
red.500
#de4135
red.600
#c72e23
red.700
#9f2b23
red.800
#722722
red.900
#4c221f
red.950
#2f1a18

Orange

--color-orange-*
orange.0
#fbfaf9
orange.50
#f5f2ef
orange.100
#f0e8e0
orange.200
#ead5c3
orange.300
#e3ba96
orange.400
#e09f67
orange.500
#de8435
orange.600
#c77023
orange.700
#9f5d23
orange.800
#724722
orange.900
#4c341f
orange.950
#2f2318

Amber

--color-amber-*
amber.0
#fbfaf9
amber.50
#f5f4ef
amber.100
#f0ece0
amber.200
#eadfc3
amber.300
#e3cf96
amber.400
#e0bf67
amber.500
#deb135
amber.600
#c79c23
amber.700
#9f7e23
amber.800
#725d22
amber.900
#4c401f
amber.950
#2f2918

Yellow

--color-yellow-*
yellow.0
#fbfbf9
yellow.50
#f5f5ef
yellow.100
#f0efe0
yellow.200
#eae8c3
yellow.300
#e3e196
yellow.400
#e0dc67
yellow.500
#ded935
yellow.600
#c7c223
yellow.700
#9f9b23
yellow.800
#726f22
yellow.900
#4c4b1f
yellow.950
#2f2e18

Green

--color-green-*
green.0
#f9fbf9
green.50
#eff5f1
green.100
#e0f0e4
green.200
#c3eacc
green.300
#96e3a8
green.400
#67e083
green.500
#35de5d
green.600
#23c74a
green.700
#239f40
green.800
#227235
green.900
#1f4c2a
green.950
#182f1e

Emerald

--color-emerald-*
emerald.0
#f9fbfa
emerald.50
#eff5f2
emerald.100
#e0f0e9
emerald.200
#c3ead8
emerald.300
#96e3bf
emerald.400
#67e0a7
emerald.500
#35de8f
emerald.600
#23c77b
emerald.700
#239f65
emerald.800
#22724d
emerald.900
#1f4c37
emerald.950
#182f24

Teal

--color-teal-*
teal.0
#f9fbfb
teal.50
#eff5f5
teal.100
#e0f0ee
teal.200
#c3eae6
teal.300
#96e3db
teal.400
#67e0d4
teal.500
#35decd
teal.600
#23c7b7
teal.700
#239f93
teal.800
#22726a
teal.900
#1f4c48
teal.950
#182f2d

Cyan

--color-cyan-*
cyan.0
#f9fafb
cyan.50
#eff4f5
cyan.100
#e0ecf0
cyan.200
#c3e1ea
cyan.300
#96d2e3
cyan.400
#67c6e0
cyan.500
#35bade
cyan.600
#23a4c7
cyan.700
#23849f
cyan.800
#226172
cyan.900
#1f424c
cyan.950
#182a2f

Sky

--color-sky-*
sky.0
#f9fafb
sky.50
#eff3f5
sky.100
#e0e9f0
sky.200
#c3d9ea
sky.300
#96c3e3
sky.400
#67ade0
sky.500
#3598de
sky.600
#2383c7
sky.700
#236b9f
sky.800
#225172
sky.900
#1f394c
sky.950
#18262f

Blue

--color-blue-*
blue.0
#f9fafb
blue.50
#eff1f5
blue.100
#e0e4f0
blue.200
#c3cdea
blue.300
#96abe3
blue.400
#6787e0
blue.500
#3562de
blue.600
#234fc7
blue.700
#23449f
blue.800
#223772
blue.900
#1f2b4c
blue.950
#181e2f

Indigo

--color-indigo-*
indigo.0
#f9f9fb
indigo.50
#f0eff5
indigo.100
#e2e0f0
indigo.200
#c7c3ea
indigo.300
#9e96e3
indigo.400
#7367e0
indigo.500
#4635de
indigo.600
#3423c7
indigo.700
#2f239f
indigo.800
#2a2272
indigo.900
#241f4c
indigo.950
#1b182f

Violet

--color-violet-*
violet.0
#faf9fb
violet.50
#f2eff5
violet.100
#e7e0f0
violet.200
#d4c3ea
violet.300
#b896e3
violet.400
#9b67e0
violet.500
#7e35de
violet.600
#6a23c7
violet.700
#59239f
violet.800
#452272
violet.900
#331f4c
violet.950
#22182f

Purple

--color-purple-*
purple.0
#faf9fb
purple.50
#f4eff5
purple.100
#ece0f0
purple.200
#dfc3ea
purple.300
#cf96e3
purple.400
#bf67e0
purple.500
#b135de
purple.600
#9c23c7
purple.700
#7e239f
purple.800
#5d2272
purple.900
#401f4c
purple.950
#29182f

Fuchsia

--color-fuchsia-*
fuchsia.0
#fbf9fb
fuchsia.50
#f5eff5
fuchsia.100
#f0e0ee
fuchsia.200
#eac3e6
fuchsia.300
#e396db
fuchsia.400
#e067d4
fuchsia.500
#de35cd
fuchsia.600
#c723b7
fuchsia.700
#9f2393
fuchsia.800
#72226a
fuchsia.900
#4c1f48
fuchsia.950
#2f182d

Pink

--color-pink-*
pink.0
#fbf9fa
pink.50
#f5eff2
pink.100
#f0e0e8
pink.200
#eac3d6
pink.300
#e396bd
pink.400
#e067a3
pink.500
#de358a
pink.600
#c72375
pink.700
#9f2361
pink.800
#72224a
pink.900
#4c1f36
pink.950
#2f1824

Rose

--color-rose-*
rose.0
#fbf9f9
rose.50
#f5eff0
rose.100
#f0e0e3
rose.200
#eac3c9
rose.300
#e396a3
rose.400
#e0677b
rose.500
#de3551
rose.600
#c7233f
rose.700
#9f2338
rose.800
#72222f
rose.900
#4c1f27
rose.950
#2f181c

Neutral

Stone

--color-stone-*
stone.0
#fafaf9
stone.50
#f4f3f1
stone.100
#eae9e6
stone.200
#dad8d2
stone.300
#c3c0b6
stone.400
#aca79a
stone.500
#958f7e
stone.600
#817b6a
stone.700
#6b6557
stone.800
#514d43
stone.900
#3b3830
stone.950
#272520

Neutral

--color-neutral-*
neutral.0
#fafaf9
neutral.50
#f4f3f1
neutral.100
#eae9e6
neutral.200
#dad8d2
neutral.300
#c3c0b6
neutral.400
#aca89a
neutral.500
#95907e
neutral.600
#817c6a
neutral.700
#6b6657
neutral.800
#514e43
neutral.900
#3b3830
neutral.950
#272620

Gray

--color-gray-*
gray.0
#f9fafa
gray.50
#f1f2f4
gray.100
#e6e7ea
gray.200
#d2d5da
gray.300
#b6bac3
gray.400
#9aa0ac
gray.500
#7e8695
gray.600
#6a7181
gray.700
#575e6b
gray.800
#434751
gray.900
#30343b
gray.950
#202327

Zinc

--color-zinc-*
zinc.0
#faf9fa
zinc.50
#f1f1f4
zinc.100
#e7e6ea
zinc.200
#d3d2da
zinc.300
#b8b6c3
zinc.400
#9d9aac
zinc.500
#827e95
zinc.600
#6d6a81
zinc.700
#5a576b
zinc.800
#454351
zinc.900
#32303b
zinc.950
#212027

Slate

--color-slate-*
slate.0
#f9fafa
slate.50
#f1f2f4
slate.100
#e6e7ea
slate.200
#d2d5da
slate.300
#b6bac3
slate.400
#9aa0ac
slate.500
#7e8695
slate.600
#6a7181
slate.700
#575e6b
slate.800
#434751
slate.900
#30343b
slate.950
#202327

Semantic token map

RoleLightDarkSwatch
color.ground.paperparchment.0ink.950
color.ground.subtleparchment.50ink.900
color.surface.raisedparchment.0ink.900
color.surface.sunkenparchment.100ink.950
color.surface.overlayparchment.50ink.800
color.text.primaryink.950parchment.0
color.text.secondaryink.800parchment.100
color.text.mutedstone.600stone.300
color.border.subtleparchment.300ink.700
color.border.strongparchment.500stone.600
color.accent.baselime.500lime.300
color.accent.stronglime.700lime.200
color.accent.softlime.200lime.800
color.status.successgreen.600green.300
color.status.warningamber.600amber.300
color.status.dangerred.600red.300
color.status.infosky.600sky.300

Typography tiers

Display
3.355rem / 1.08 / 300
Generated decision systems
Heading 1
2.517rem / 1.12 / 300
Tell us about the workflow.
Heading 2
1.888rem / 1.18 / 350
Workflow preview
Body
1.062rem / 1.55 / 400
Dense, legible console copy for repeated operational work.
Caption
0.797rem / 1.4 / 500
Generated from seed YAML
Code
0.797rem / 1.45 / 400
color.accent.base -> lime.500

Spacing taxonomy

Inset

Even padding inside a component.

space.4space.6

Inset squish

Tight vertical padding with wider horizontal padding.

space.2space.4

Inset stretch

Taller vertical padding for multi-line entry.

space.5space.4

Stack

Vertical gap between siblings.

space.3space.6

Inline

Horizontal gap between siblings.

space.2space.3

Grid

Row and column rhythm across a two-dimensional surface.

space.4space.6
space.14px
space.28px
space.312px
space.416px
space.520px
space.624px
space.832px
space.1040px
space.1248px

Elevation and motion

none--shadow-none

Flat inline content.

xs--shadow-xs

Hover lift.

sm--shadow-sm

Dropdowns and small popovers.

md--shadow-md

Raised application cards.

lg--shadow-lg

Dialogs and overlays.

instant80ms
fast120ms
normal200ms
slow320ms

Form primitive

Automation status

Choice groups cover radio, checkbox, and chip variants.

Empty state

No workflows need review

The empty state uses the same quiet product tone as settings surfaces.

Schema-driven inputs

KindComponentValue
Short textInputstring
Long answerTextareastring
Yes / noChoiceGroupboolean
Single selectSelectstring
Multi selectChoiceGroupstring_array
Multi-select dropdownMultiSelectDropdownstring_array
Chips with custom valuesChoiceGroupstring_array
1-5 scaleScalenumber

Portal surfaces

My Workflows

/portal/workflows

customer

Customer-facing list of approved and in-progress workflow artifacts.

Continue Workflow Intake

/portal/workflows/:workflowId/continue

customer

Customer-facing continuation flow that captures missing source evidence.

Review Queue

/review

framework reviewer

Framework reviewer queue for generated workflow drafts and continuation versions.

Filters and operational table

Domains
Sales, Operations
SalesOperations
3 matching workflow drafts
Review queue table
CustomerWorkflowStatusQualityOwner
Consolidated InkQuote to fulfillmentReady for review92%Framework
Kinetic PTReferral intakeNeeds evidence74%Customer
Summit HVACDispatch triageIn progress81%Framework

Component inventory

Intake and artifact components

Console intake surfaces use the same generated token contract as the primitive library: sample launch, artifact navigation, status recovery, workflow preview, and examine panels are all represented here before they ship elsewhere.

Intake launch components

Sample starters

Start from a realistic opener and continue the path.

Selected sampleProfessional services

Artifact navigation chrome

Framework Console · Specimen · Demo

Consolidated Ink

Responsive header, shared surface control, tokenized actions

Workflow preview

Workflow previewstreaming · updates as you talk

Actors

2
Sales RepSales
ProductionProduction

Steps

2
Sales
Production
Sales
01
Sales Rep
Review quote requestdecision

Confirm customer intent, due date, and artwork readiness.

Production
02
Production
Estimate production path

Choose equipment, handoff timing, and exception path.

Decisions

1
Ready to quote?D-01
  • Quote
  • Request details

Status and recovery

Draft is updating

The live preview uses the same spacing and status tokens as the finalized artifact shell.

Examine surface

Interactive modes

Selection state carries across mode switches.

1 · Flow

Lead Acquisition → Quote Delivery

Cycle: 1–3 days · Actor: Sales Rep + Owner (pricing escalation) · Cost: $25–50/lead

Sales

6 steps

Billing

5 steps

Pain Points · 6
PP-04
Ordering errors≈ $200 / occurrence

Errors ordering from distributors: black heather vs black t-shirts from S&S/Sanmar, youth vs adult size hats from Richardson. Monetary and reputational cost.

weeklyproductionSales Rep
PP-01
Quote creation & margin calculation≈ $37.50 / occurrence

No set pricelists. Every quote requires fresh margin calculation using live vendor pricing. Costs $25-50 per quote in rep time.

dailybillingSales Rep
PP-05
Art mockup bottleneck≈ $20.00 / occurrence

If the production artist left, mockup creation would shift to overseas artists, potentially delaying sales closures. Subjective sizing also creates customer mismatches.

dailyproductionProduction Artist
PP-02
Purchase order placement≈ $15.00 / occurrence

Each PO takes 10-15 minutes. Jobs can have 1 to 7+ POs. Submitted via email PDFs to vendors. Significant time taken from selling.

dailyproductionSales Rep
PP-03
No set pricelists≈ $10.00 / occurrence

Vendor pricing is fragmented: printers have static pricelists, blank distributors have live pricing that changes frequently. No unified view.

dailybillingSales Rep
PP-06
Lead nurturing capacity≈ $0.00 / occurrence

At current size each sales person runs the full lifecycle. Lead volume is constrained by rep capacity, not market demand. Scaling requires hiring.

dailysalesSales Rep
Knowledge Encoded · 6
KE-01
Vendor Geographic Routingrule

Vendor selection primarily based on customer geographic location and due date. Closer vendors for tighter deadlines.

productionD-01D-10
KE-02
Margin Floor Policypolicy

Target margin: 40%. Acceptable floor: 35%, possibly 30% for large orders. Below 40% requires owner approval.

billingD-03D-05
KE-03
Production Lead Timesconstraint

Printed apparel: 7-10 business days. Patches: 15-20 business days. Overseas parts add 14-21 days.

productionD-02D-04
KE-04
Product-Embellishment Constraintsheuristic

Deep product knowledge of logo size constraints and embellishment limitations per garment style. Learned through 3-8 months of training.

productionD-06
KE-05
One-Question Buy-In Strategyheuristic

Strategy briefs focus on getting customer buy-in with one simple question they can answer on the go, rather than sending emails with too many prices and options.

salesD-08D-11
KE-06
Pricing Strategy by Order Typerule

Overseas patch products (200-500 units): use competitor pricing. Apparel jobs (500-1000 units): use vendor pricelists directly. Printer = static pricing, distributor = live pricing.

salesD-03D-09

Live workflow sketch · for reference

Workflow previewstreaming · updates as you talk

Actors

4
CustomerCustomer
SystemSystem
Sales RepSales Rep
OwnerOwner

Steps

11
Customer
System
Sales Rep
Owner
Unassigned
01
Customer
Customer Submits Request

Customer finds Consolidated Ink via search, referral, or repeat visit. Submits a quote request through the WordPress website (Gravity Forms) or sends an email with project details.

02
System
Lead Arrives

Quote request arrives via WP website form (Gravity Forms) or email, received in Pipedrive CRM.

03
System
AI Strategy Brief Generated

Pipedrive triggers Zapier flow to ChatGPT, which generates a sales strategy brief for the rep on how to respond to the lead.

04
Sales Rep
Sales Rep Reviews & Nurtures Lead

Rep reaches out using the strategy brief guidance. Focus on one simple question to get buy-in without overwhelming the customer.

05
Sales Rep
Customer Ready to Buy?decision

Sales rep determines if the customer is ready to proceed based on communication signals and timeline urgency.

06
Sales Rep
Choose Pricing Strategydecision

Determine pricing method: use vendor pricelists directly for larger apparel jobs (500+ units) or competitor pricing for overseas patch products (200-500 units).

07
Sales Rep
Calculate Margindecision

Calculate profit margin for the quote. Target margin: 40%. Below 40% triggers owner approval.

08
Customer
Rush Fee Needed?decision

Sales Rep asks Customer if they are willing to cover expedited rush fees for production or shipping. Customer decides — if yes, price increases and may push margin below 40%, triggering Owner escalation.

09
Sales Rep
Margin Below 40%?decision

Sales Rep checks if the calculated margin is below the 40% floor. If at or above 40%, the quote proceeds directly to send. If below, escalates to Owner for approval.

10
Owner
Owner Margin Approvaldecision

Owner reviews the below-40% margin and decides whether to approve the exception (down to 35% or 30% depending on order size) or reject it, sending the Sales Rep back to rework pricing.

11
Sales Rep
Send Quote via Quotient

Final quote with all pricing decisions resolved — margin, rush fees, competitive adjustments — sent to customer through Quotient.

Decisions

6
Vendor Selection for Blank GarmentsD-01
  • Local Vendor
  • Distant Vendor (Price)
  • In-House Production
Domestic vs Overseas ProductionD-02
  • Domestic Only
  • Overseas + Domestic Finish
Margin CalculationD-03
  • Margin ≥ 40%
  • Margin < 40%
Rush Fee NegotiationD-04
  • No Rush Needed
  • Rush Fee Applied
  • Customer Declines
Margin Floor ApprovalD-05
  • Approved
  • Rejected
Art Mockup SizingD-06
  • Sizing Approved
  • Rework Needed

Generated specimen contract

Foundations

foundations

Token primitives, semantic colors, type, spacing, radius, elevation, and motion.

app/design-system/page.tsx

Form controls

form_controls

Inputs, textareas, selects, multi-select dropdowns, choice groups, validation, and helper text.

components/ui

Filters

filters

Search, multi-select filters, saved-view layout, result counts, and clear/apply actions.

components/ui/FilterBar.tsx

Operational table

power_table

Sortable, filterable, review-queue-grade tables for dense console work.

components/ui/DataTable.tsx

Portal surfaces

portal_surfaces

Customer workflow list, continuation flow, and Framework review queue shell.

lib/portal/surface-registry.ts

Intake and artifact surfaces

intake_surfaces

Sample openers, live workflow preview, demo/examine chrome, and post-intake analysis panels.

components/intake

Console chrome

console_chrome

Framework top bar, collapsible sidebar, semantic icon rail, and asynchronous loading states.

components/console

Component state coverage

ComponentCapabilitiesStates
Multi-select dropdown
MultiSelectDropdown
multi-value selection, chip summary, checkbox listdefault, hover, focus, open, selected, disabled, error
Filter bar
FilterBar
global search, field filters, saved-view ready layoutdefault, loading, empty, dirty, error
Operational data table
DataTable
sortable columns, filterable rows, pagination-ready structuredefault, loading, empty, error, selected, sorted, filtered
Segmented control
SegmentedControl
mode switching, route-backed links, state-backed buttonsdefault, hover, focus, active, disabled
Framework wordmark
FrameworkWordmark
brand mark, product context label, link wrapperdefault, hover, wrapped
Console shell
ConsoleShell
global brand chrome, collapsible sidebar, icon raildefault, active route, collapsed, mobile
Semantic icon
ConsoleIcon
semantic names, outlined symbol style, sidebar-ready sizingdefault, active, muted
Framework loader
FrameworkLoader
node-map motion, status role, reduced-motion supportloading, error recovery
Drawer
Drawer
right-side panel, backdrop dismissal, Escape dismissalopen, closed, focused close, backdrop
Tooltip
Tooltip
hover explanation, focus explanation, disabled action guidancehidden, hover, focus
Provenance label
ProvenanceLabel
source attribution, message-boundary placement, selection statedefault, positioned on message
Sample opener gallery
SampleOpenerGallery
sample launch, responsive scroll-snap cards, disabled streaming statedefault, hover, focus, disabled
Artifact surface header
ArtifactSurfaceHeader
artifact navigation, surface toggle, metadata linedefault, active surface, wrapped controls
Workflow preview
WorkflowRenderer
live draft rendering, lane grouping, actor rowsempty, loading, populated
Examine surface
ExamineSurface
interactive mode switcher, journey timeline, analysis panelsdefault, active tab, empty panel
Status callout
Callout
semantic status, retry action slot, alert/status rolesdefault, action, alert