School’s Out design system
Step 1 of 6

Collect

Start with what the business gave us.

The four inputs

Only valid values count. A color must be a real color code, and a photo must exist.

✓Brand colorsProvided
✓PhotosProvided
✓DescriptionProvided18 words
✓LogoProvided
Show logic

Validates the listing’s raw fields and records where each came from: own (the business supplied it), suggested (read from its logo or photo), or missing. Imported data is messy, so only valid values count: colors must be #rgb or #rrggbb, a photo needs a source and counts once, and a blank logo path is no logo. The pixel rules live here too, so the browser adapter (common/schools-out/brand-sampling.ts) only reads pixels.

brandIntake(input: BrandInput): BrandIntake

Try it: which colors are kept?

Primary kept#f5501e
Secondary keptNone
Declared colors#f5501e

Relationship functions

FunctionFrom → toHome
validBrandColorsraw declared colors → valid colorsintake.ts
candidatesFromPixelspixels → color candidatesintake.ts
logoGroundFromPixelspixels → logo backgroundintake.ts