Design kit
Set brand tokens for public and portal surfaces without freeform CSS.
Design without freeform CSS
Admin → Settings → Design lets operators set brand color and radius tokens. The product rejects freeform CSS injection. Draft tokens can be edited safely; publish promotes draft to published after contrast checks when enforced.
This keeps multi-tenant public pages maintainable and reduces XSS and support burden from arbitrary CSS. Marketing microsites that need bespoke layout should live outside SpeakerOps.
Edit and publish
Adjust brand color and radius (soft, curvy, or round). Save draft. Preview public surfaces if available. Publish when contrast gates pass. If publish fails with CONTRAST_FAILED, pick a brand color that meets accessibility contrast against the kit backgrounds.
- Open Admin → Settings → Design.
- Set brand color and radius on the draft.
- Save draft and preview key public pages (CFP, portal if themed).
- Publish when satisfied and contrast checks pass.
- Hard-refresh public pages to confirm published tokens.
CLI workflow
Agents with design:read and design:write can automate draft updates and publish. design get returns draft and published snapshots so agents can diff before publish.
speakerops design get --event <eventId> --json
speakerops design set --event <eventId> --brand '#4F46E5' --radius soft
speakerops design publish --event <eventId> --json
Accessibility and brand
Brand color is not only aesthetics. Low-contrast brands fail publish gates and fail real users. Prefer solid brand hues that pass contrast on white and dark kit surfaces. Radius tokens keep components consistent without custom CSS frameworks.
- Draft first; publish intentionally
- Contrast gate may return CONTRAST_FAILED (CLI exit 1)
- No freeform CSS or remote stylesheets
- Preview public CFP after every publish
Why this is constrained
Tokenized design is a deliberate product boundary. If a stakeholder demands full CSS control, explain the security and multi-event maintenance tradeoff and offer export of brand tokens to an external site instead of weakening the kit.