MarqueMini Brand Kit Generator
What it does for you
Brand name plus three adjectives in, a seeded starter brand kit out: accessible color ramps, font pairing, six SVG logo marks, voice card, and token exports.

Screenshots

In more detail
You type a brand name, three adjectives, and an industry, and Marque hands back a starter brand kit: colors, fonts, six logo marks, a type scale, and a voice card. The colors come with contrast checks already done, and everything exports in formats you can paste straight into code, like CSS variables and a Tailwind config.
Honest limits
Claude mode was never run against the live API because there was no key in the build environment. Its prompt builder and parser are tested with fixture responses only. The ramps use HSL, which is not perceptually even across hues. Exported SVG logos still depend on the font being installed. It is a starting point, not a finished brand.
How I built it
New projects usually start with an afternoon lost to picking colors and a placeholder logo, and the result is rarely checked for contrast. This was one of the parallel Claude Code builders from the September 19 one-shot night, and it shipped that same night in about 0.35 hours of logged time. I directed the scope: local-first generator, Claude mode only for the voice card, six named logo concepts, the export list, and the rule that the shipped module must be the tested module.
Claude Code wrote brand.js (color math, contrast search, font matcher, SVG logo builders, exporters) and 180 assertions. The first test run caught two wrong assertions in the tests themselves, an inverted hue check and a regex that counted spacing tokens as colors. Those were fixed in the tests, not papered over in the core. Then the screenshots caught three visual bugs: initials coming out as "K&" for "Kiln & Ember", a wordmark overflowing its lockup, and uneven logo card heights.
What I learned
- Hues have to be averaged as a circle. The plain average of 350 and 10 is 180, which is cyan, when the answer should be red. Summing unit vectors and taking atan2 fixes it.
- Build each color ramp around the brand color, easing lighter and darker from the middle step, so the brand color actually appears in its own ramp.
- A brand color rarely passes contrast as text on the light paper background. The useful output is a search: the first ramp step that hits 4.5:1. That turns a contrast report into an answer like "use 600 for links".
- Seeded randomness depends on call order. Picking a font alternate must not use up extra random numbers, or the colors shift. A test checks that directly.
- Inline SVG needs unique ids per instance, or twelve logos on one page all point at the first definition.
What carried forward
Everything random flows from one seeded generator, so the same brief gives the same kit, the same idea #28 used for its simulated demo deck that night. Because the logos and exporters are pure string functions, the whole kit is testable in Node with no browser, which is the tested-core pattern from #9 through #11. The Claude prompt builder and defensive JSON parser follow the same idea as #29: never trust the model to hand back clean JSON. And like #25 and #29, an em dash slipped into source where an escape was intended, and it got replaced.
If I took it further
I would build the ramps in OKLCH so steps look even across hues, and convert logo text to outlines so exported SVGs stand on their own.
#030 Built with Claude Code September 19, 2026 180 automated checks