brand-identity
Brand identity sets from one brief - logo, typography and colour palette built together, measured (contrast, colour blindness, glyph coverage, font licences, small-size logo renders) and compared side by side as identity cards, shown on the user's own site, then a brand guidelines kit (PDF, logo files, tokens) for the chosen set. Use for a new brand or any part of one (logo, fonts, colours, or a mix), for refreshing an identity, or for critiquing one, even if the user only says "branding".
Install
npx skills add https://github.com/fatihaydost/brand-identity-skill --skill brand-identityCohesion
One voice per set, real difference between sets. Tags: [strong] [limited] [practice].
Mechanism and expression move
- Mechanism: one sentence naming the single visual idea that yields the mark, the type choice and the palette
together ("a ledger's ruled line: hairline-cut wordmark, rule-thin symbol, ink-on-paper palette"): one idea,
three expressions.
[practice] - Expression move: exactly one loud component. Expressive mark → quiet type and palette; expressive palette →
plain mark; expressive type → minimal graphics.
[practice] - Cohesion is consistency with the strategy, not "everything in one style"; art directors also seek an ownable
element against competitors (Phillips et al. 2014).
[limited]Mark taste-driven choices as taste inrationale.
Axes (identitylib.AXES, −2 first pole … +2 second pole)
Pick 2–4 per brief from the user's adjectives or site signals; the user may correct them.
Axes adapt GV's brand-sprint sliders (Reforge);
"real personality is at the ends" (Learning Loop).
The "carries" columns are [practice]. The shared vocabulary: logo design dimensions (natural, harmony, elaborate;
Henderson & Cote 1998) recur in type
(Henderson et al. 2004; weight, flourish shift brand personality,
Grohmann et al. 2013). [limited] Scores are reasoned judgement, not
measurement.
Making sets differ (warnings, heuristic, uncalibrated)
- Sets sit at different ends of ≥ 2 axes; three sets in the middle are one idea three times.
- Each component carries the difference: palette (hue family or light vs dark structure), type (class or clear width/weight), logo (mark type: wordmark, letterform, symbol). Differ in strategy, not only hue.
- Inside a set, component positions stay within 1 step; a bigger gap is deliberate contrast with a written reason.
- Refresh: one axis becomes distance from the current identity, evolution → revolution.
- Three routes, one RECOMMENDED: too many options hurt choice when sets are complex and preferences unclear
(Chernev et al. 2015).
[strong]
Colour × type
- Font colour and font design effects on brand personality are independent (Grohmann 2013, study 3)
[limited]; that they add up when aimed at one trait is our inference. - Thin or unusual faces render fainter than their colour (W3C Understanding 1.4.3, informative). Our heuristic: weight ≤ 300 or a hairline serif gets 4.5:1 even when large.
- Light text on dark looks bolder; dark mode often drops weight or uses negative GRAD
(web.dev).
[practice]Reading speed does not require it (Palmén et al. 2023).[limited] - Saturated accents vibrate in small text; keep them for display sizes and fills.
[practice]
Mixing (brand.py mix)
Clients pick parts from several routes and get a "Frankencomp" (Warren, ALA 2012).
[practice] Mix on request only: build set D, re-colour D's logo to D's palette, re-score axes and show the
cohesion warning. A conflict with a kept component is a suggestion; the kept part never changes.