Requirement
Product UI does not reach for the three signatures of the default generative aesthetic:
- Purple/violet gradient palettes — a
linear-gradientorradial-gradientrunning between two purple or violet hues, used as a surface, hero, or button fill. - Cyan-on-dark theming — saturated cyan or electric-blue foreground text and accents set on a near-black surface.
- Glow accents — a coloured, large-radius, zero-offset
box-shadowused as an ambient halo rather than as elevation.
This is an L1 control: a waiver is available, but it must be documented.
Rationale
These three treatments are what an image or code generator produces when it has no brand to draw from. They read as "generated" rather than as a product, and they arrive by default rather than by decision. The control exists so the absence of a design choice cannot pass as one.
The rule is about the default aesthetic, not about the colours themselves. A product whose declared palette contains violet is not in breach for using it. An orange declared as a product primary (for example, Radix orange-9) is a product colour, and using it as a token is not a glow accent.
Why this is hybrid
Static-check half. The three signatures have mechanical shapes: a gradient function
whose stops both resolve to hues in the purple/violet band, a cyan foreground token paired
with a near-black background token, and a box-shadow with a large blur, no offset, and a
saturated colour. A static check can find each of them in stylesheets and component
source. That half is planned in #156 as checks/slop-scan.py; no script exists yet.
Judgment half. Whether a given violet is the default aesthetic or the product's own brand cannot be decided from the declaration alone — it depends on the product's declared palette and on what the surface is doing. The evaluator holds that call, and it does not reduce to a colour range.
Passes when
- Gradients, if present, are drawn from the product's declared palette and serve a stated purpose rather than filling space.
- Foreground and background pairings come from declared tokens (TOK-1) and are not the saturated-cyan-on-near-black combination.
- Shadows express elevation — offset, tight blur, neutral colour — rather than an ambient halo.
Fails when
- A purple-to-violet gradient fills a hero, card, or primary button with no basis in the product's declared palette.
- Saturated cyan or electric-blue text and accents sit on a near-black surface as the theme rather than as one deliberate accent.
- A large-radius, zero-offset, saturated
box-shadowhalos an element.
Evaluator guidance
Flag:
- Any of the three signatures where the product's declared palette does not account for the colour.
- A surface that uses all three together — that combination is the default aesthetic almost by definition.
Do not flag:
- A violet, cyan, or orange that is a declared product token used as intended
(for example,
--brand-blueon this site). - Elevation shadows with an offset and a tight blur.
- Gradients in illustrations, data visualisations, or brand marks, which are not product chrome.
- A documented waiver recording why the treatment is deliberate — this is an L1 control
with
waiver: documented.