A reusable solution to a common design problem
A design pattern is a reusable solutionSolutionDiscoveryA proposed approach to address an opportunityView reference → to a recurring interface problem, captured with the context in which it works and the trade-offs it carries. It names a thing teams keep reinventing, the way to confirm a destructive action, the way to load a long list, so the next team can reach for a known answer instead of redrawing one. The discipline's tension is between a pattern as living guidance and a pattern as a frozen component nobody questions.
The idea comes from architecture. Christopher Alexander's A Pattern Language (1977) proposed that good design recurs as named patterns, each describing a context, a problem, and a proven solution, and that the patterns combine into a language a community can share. Alexander's claim was that this knowledge should be written down and recombined, not rediscovered building by building.
Software adopted the idea twice. First in programming, where Kent Beck and Ward Cunningham experimented with it in the late 1980s and the "Gang of Four" book carried it into the mainstream. Then in interface design, where Jenifer Tidwell, citing Alexander directly, began assembling a pattern language for human-computer interfaces in the late 1990s, her Common Ground collection growing into Designing Interfaces (2005). That book made interaction patterns a standard part of the designer's vocabulary.
The thinking since has split the pattern's two jobsJobUserJob To Be Done: what the user is trying to accomplishView reference →. A pattern as shared craft knowledge lives in books and public catalogues and travels across products. A pattern adopted into a specific design systemDesign SystemDesign SystemThe root design system entityView reference → becomes a local rule with a status (proposed, adopted, experimental, deprecated) and a documented place to use it. The riskRiskComplianceA risk to the product or businessView reference → Alexander warned about returns in the system context: a pattern applied without its conditions becomes cargo-cult design, the right shape in the wrong situation.
A team keeps building one-off confirmation dialogs, each worded and laid out differently. They write a Design PatternDesign SystemA documented design pattern for "destructive confirmation": category feedback, usage context "any irreversible action such as delete or cancel-subscriptionSubscriptionSales & RevenueA recurring subscriptionView reference →", and an anti-patterns note warning against using it for reversible actions, where it just adds friction. The pattern records that the confirm button must name the action ("Delete project") rather than say "OK", because a generic label is the documented mis-application. Three months later a new featureFeatureProduct SpecificationA product capability or featureView reference → needsNeedUserA user need, pain, desire, or constraintView reference → to delete a workspace; the designer applies the adopted pattern in minutes, and the dialog matches every other destructive action in the product because they all descend from the same written solution.design_pattern
design_component_follows_design_patternDesign ComponentfollowsDesign Patternhierarchy records a component honouring a pattern.In the Unified Product Graph, Design PatternDesign SystemA documented design pattern is a leaf in the Design System domain of the Experience, Design & Brand region. It has no outbound structural edges; a pattern is referenced, not a container. Its one inbound edge, design_patternDesign ComponentfollowsDesign Patternhierarchy, lets the coded library point back to the reusable idea each component embodies. The design_component_follows_design_patternpattern_category, pattern_status, and anti_patterns properties carry Alexander's full insightInsightUser ResearchA synthesised finding from researchView reference → forward: a pattern is not just a solution but a solution with a context, an adoption state, and a record of how it goes wrong.
Type-specific fields on BaseNode
pattern_categorystringCategory
usage_contextstringWhen and where to use
pattern_statusstringAdoption status inside the system
anti_patternsstringCommon mis-applications or lookalikes to avoid
examplesstringReal-world usages: screens, components, flows
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
4 phases — initial: alpha · template: MATURITY
1 edge type connected to this entity.
design_component_follows_design_pattern1 framework use this entity type.