Vary designs, don’t converge

Give each design its own theme, typeface and look; skip the defaults.

From frontend-design: no design should be the same.

Generate six

Press Generate a few times and compare the counters.

Converging generatorBad
Varying generatorGood
const batch = [...leastUsed(dark).slice(0, 2), ...leastUsed(light).slice(0, 2)];
batch.push(...leastUsed(rest).slice(0, n - 4));

Sameness check

Load a set or change any field to score sameness.

0% shared

Varied

    const DEFAULTS = new Set(["Space Grotesk", "Inter", "Purple gradient", "Centered hero + 3 cards"]);
    const score = sharedPairs(designs, ["font", "theme", "palette", "layout"]) / totalPairs;

    Why it matters, pros and cons

    Why it matters

    One design can look intentional; six side by side expose a shared default.

    Pros

    • Each look fits its own brief
    • Outputs stop looking machine-made
    • Forces a real choice every time

    Cons

    • Within one product, consistency wins
    • Variety for its own sake can ignore the brief
    • An established brand or design system overrides it