Skip to content
CONCEPTS
3 min readЧитать на русском

Primitives-Library-First: When Brand Exploration Becomes a Design System

The first batch of any generative-identity project is exploratory: one direct attempt per reference style, no shared abstractions. Once the designer signals "I like these 20 — let's go deeper," there is a fork:

  • Continue variant-by-variant — write more one-offs in the same loose style. Linear effort, no compound benefit.
  • Switch to primitives-first — extract the recurring techniques from the favorites, write them as a primitives library, then compose the next batch on top of the library.

The latter is the moment a brand exploration becomes a design system.

When to apply

  • The first exploratory batch has shipped, the user has picked favorites, and they want 30+ more at higher quality.
  • Multiple favorites share the same underlying technique (boolean unions, slice cuts, paired capsules) — there is a real abstraction to extract.
  • The brief asks for breadth rather than narrowing to one direction.

Mechanism

  1. Read the favorites for techniques. Group them by what's actually doing the work: boolean union, slice, capsule-pierce, mixed-typeface, etc. Each recurring technique becomes a candidate primitive.
  2. Extract primitives. Each is a pure function over SVG paths, parameterized minimally — start with 2–4 knobs, expand only when a real composition demands it.
  3. Expand tokens. Mono-only is fine for batch 1; batch 2 needs the full palette. Add 6–8 color tokens. Variants ship in both mono and color.
  4. Compose on top. New variants are short scripts that call primitives. A variant file should be readable in 10 seconds.
  5. Keep the design record. The exploratory batch is not deleted. Old variants stay in out/; new variants land alongside with a clear naming convention (e.g. batch-2/).

Why this matters

A primitives library is the difference between "shipping more logos" and "shipping a system." The next time the brand needs a sub-mark, an animated lockup, a packaging variant, or a sibling brand — the library is the starting point, not 125 disconnected SVG files.

Example — second batch on a real exploration

After 78 variants in the first batch, the designer picked 20 favorites and structurally edited them: boolean unions consolidated complex compositions into single paths, decorations were added, a new monogram concept was invented by hand (a serif glyph with two slash-capsules piercing horizontally).

The pivot: stop generating more one-offs. Build the design system first.

  • 6–8 color tokens (hot pink, orange, neon green, electric blue, yellow, violet, black, cream).
  • Primitives extracted from the favorites: blob-merge, slice, capsule-pierce, mixed-typeface, monogram-with-capsules, etc.
  • 30 new logos as compositions on the primitives library.

The compounding starts here. The 79th logo costs less than the 78th. The 100th costs less still.

Pitfalls

  • Premature library. Extracting primitives from batch 1 before user signal is the same mistake as premature abstraction in code. Wait for "these I like."
  • Library too rigid. Primitives parameterized too tightly produce only variations of the favorites and miss the next direction. Leave one or two knobs that let a composition deliberately misuse the primitive.
  • No record. Overwriting batch 1 with batch 2 destroys the comparison the designer needs. Keep both.

Pairs with