Aaron Benjamin

Shapes / Product System framework

A design system for more than the interface.

A Product becomes unavailable. Which interfaces change, which actions are allowed, and what happens to the purchase flow?

I’m building Shapes to connect the definitions, interfaces, and rules a team needs to answer those questions.

My contribution
Defined the reference model, the documentation-to-standard boundary, and the authoring workflow.
Design focus
A connected Product System for designers and engineers, starting with a retail domain.
Current stage
Independent framework in development; conceptual retail workspace

A rule changes.
The team needs the whole picture.

Changing product availability can affect the shopper card, merchant catalog, cart, and purchase flow. A component library explains how the card is built, while availability rules and action conditions may live in separate documents.

I designed Shapes as a connected reference so designers and engineers can follow a rule from its definition through the interfaces and actions it affects.

Define the Product once.
Explain each context.

I separated an object’s definition from its representations. The shopper card, merchant row, and cart summary reference the same Product while exposing the information and actions each audience needs.

A separate definition in every screen document would make each page self-contained. Sharing it gives changes a common reference, with the cost of maintaining those links as the product evolves.

Representations

Same Product. Different jobs to do.

Product / MUG-01Shared identity and definitions

Shopper / discover

Everyday mug

$28.00

Add to cart

Lead with image, name, and price.

Merchant / maintain

Everyday mug

MUG-01

Price
$28.00
Availability
Available
Edit product

Expose fields and editing controls.

Shopper / review

Everyday mug

$28.00 each

Quantity: 2$56.00
Remove item

Show quantity and the line total.

The Product supplies the shared identity. The cart line supplies quantity and total.

Shared identity still needs clear boundaries: current catalog price and recorded cart-line price can follow different rules. Quantity belongs to a Cart Line.

I organized the framework into objects, actions, representations, surfaces, flows, and UI elements. Object-Oriented UX informs the model: understand the meaningful things, their relationships, and the actions people take on them.

Follow the rule.
See what it means for the interface.

The workspace turns those connections into a reading path. Start with Product, open its Product Card representation, and see how availability shapes both the interface and the next action.

I kept one library tree and one focused document. Attributes and connected references use consistent tables, so the reader can move from a definition to its context without reconstructing a new layout.

The Shapes workspace

Start with a shared Product definition.

Retail Product System
shapesRetail workspace
Search the system

Product System

  • Objects
    • Product
    • Cart
    • Cart Line
  • Actions
  • Representations
  • Surfaces
  • Flows
  • UI elements

Library Objects Product

Product

Object

An item offered for sale, independent of where it appears.

OverviewConnectionsHistory

Attributes

What defines a Product
Product attributes and their definitions
AttributeTypeDefinition
IDTextStable product identity
NameTextCustomer-facing name
PriceMoneyCurrent catalog price
AvailabilityStateAvailable or unavailable

Connected references

How Product fits into the system
References connected to the Product object
Reference typeConnected to Product
Objects
Cart Line
Representations
Product Card Catalog Row Cart Summary
Surfaces
Search Results Merchant Catalog
Actions
Add to cart Edit product
Flows
Purchase
The Product record brings the definition and its connected references together. Product Card is the next stop for understanding the shopper experience.

From the Product record, follow Product Card to the state and behavior it defines.

Follow a reference

See how availability changes the experience.

Retail Product System
shapesRetail workspace
Search the system

Product System

  • Objects
  • Actions
  • Representations
    • Product Card
    • Catalog Row
    • Cart Summary
  • Surfaces
  • Flows
  • UI elements

Representations Product Card

Product Card

Representation

A shopper-facing summary of a Product, shaped by its availability.

OverviewStates & behaviorHistory
Reads fromProduct.availability

State mapping

Product availability mapped to Product Card behavior
Product stateCard behavior
AvailableShow price and Add to cart
UnavailableShow availability; offer another product

Action contract

Action
Add to cart
Requires
Product is available
Changes
Creates or updates a Cart Line
When unavailable
Offer available products

Card / unavailable state

Everyday mug

$28.00

Currently unavailableView other products

Purchase flow

Keep the shopper’s next step clear
  1. Browse products
  2. Choose an available Product
  3. Review cart
Product availability informs the card’s state, the Add to cart precondition, and the shopper’s route through the purchase flow.

Document what exists.
Choose what becomes a standard.

I made documentation, reuse, and enforcement separate decisions. An implementation records what exists. A pattern explains an approach that can repeat. A standard records what an organization has chosen to require.

Automatically promoting every documented interface would make consistency easier to enforce, but it would also flatten differences that serve different audiences or tasks. Keeping these levels distinct preserves the context behind a variation. It also asks the team to make an explicit adoption decision.

From evidence to convention

Sharing is a decision, not an automatic promotion.

  1. Implementation

    What exists

    Document one real interface and its context.

  2. Pattern

    What can repeat

    Explain the reusable approach and where it fits.

  3. Standard

    What is required

    Record a convention the organization has chosen.

Evidence of repetition Review of context Explicit adoption

Similar appearance does not prove shared meaning. A variation can be intentional.

Review the meaning.
Then add it to the shared model.

I made contributor review part of authoring. A screenshot can reveal a field or control; source code, requirements, or an owner can explain its permissions and effects. Reviewing that interpretation adds effort, but gives shared definitions a source and open questions an owner.

Human verification

Connect what is visible to what the product does.

Authoring workflow

Review the interpretation

  • Product.name

    Visible title maps to an existing attribute.

    Accepted
  • “Buy” → Add to cart

    Edit the proposed action name to match the observed control.

    Edited
  • “Clicking creates an Order”

    A screenshot does not establish that effect.

    Rejected
  • Who may change the price?

    Check implementation or confirm with an owner.

    Unresolved

The same review supports maintenance. Structured, version-controlled definitions link to implementation and design evidence; changes bring affected references back into review.

Keeping Product.availability current

Source
The availability rule and its implementation reference
Owner
The contributor responsible for the Product definition
Review trigger
A change to the rule, its action contract, or a connected representation

A proposed change brings the affected references into review before the shared definition is updated.

I scoped the first release around one complete authoring path: document an interface, model its meaning, connect its context, and publish the reference. Keeping that path focused gives the team something useful to maintain before adding advanced extraction or visual editing.

What I plan to test

Make understanding faster.
Keep the upkeep small.

Next, I’ll test the connected retail reference against existing documentation. Designers and engineers will explain the same Product Card and trace the same availability change in each approach. I’ll compare their answers against a defined set of dependencies.

  1. Understand the feature

    Measure how accurately someone explains the card’s content, actions, and underlying rules, and how long it takes to find the answer.

  2. Trace the change

    Check whether they find the affected representations, action conditions, and purchase-flow states. Record the dependencies they miss.

  3. Maintain the reference

    Have a contributor update the rule and its connections. Compare the effort with maintaining the existing documents and record any definitions left out of sync.

The principle behind Shapes

A useful design system shouldn’t stop at showing us the parts. It should help us understand the product they make.

Explore the six reference types

Objects

What is this thing?

Product identity, attributes, relationships, and lifecycle.

Product → name, price, availability

Actions

What can change?

Who may act, under which conditions, and what happens afterward.

Add to cart → create or update a cart line

Representations

What matters here?

The information and controls an audience needs in a particular context.

Shopper card → name, image, price, add

Surfaces

Where does it live?

How pages, forms, dialogs, and collections compose an experience.

Search results → collection of Product Cards

Flows

How does someone reach a goal?

The sequence of surfaces, decisions, states, and outcomes.

Purchase → choose, review, checkout

UI elements

How is the interface built?

The components, tokens, and implementation details that give it form.

Card + button + typography + spacing