First-class team branding control across every portal.
Update mascot, sport theme, and team colors from Supabase-backed records. The console shows mobile and dark previews, basic contrast checks, and audit evidence for saved changes.
Contrast ratio: 3.15. Use Pass for text-heavy portal headers.
All team themes
Theme audit
No theme audit events recorded yet.
20 target brand surfaces
Email, push, and binary asset upload rendering remain provider-gated; brand profiles and monitoring events are persistence/validation foundations.
1. Team logo
Covered - Rookie Rockets has the required brand tokens for Team logo.
2. Team banner / hero image
Covered - Rookie Rockets has the required brand tokens for Team banner / hero image.
3. Primary color
Covered - Rookie Rockets has the required brand tokens for Primary color.
4. Secondary color
Covered - Rookie Rockets has the required brand tokens for Secondary color.
5. Accent / button color
Covered - Rookie Rockets has the required brand tokens for Accent / button color.
6. Team display name
Covered - Rookie Rockets has the required brand tokens for Team display name.
7. Team short name or abbreviation
Covered - Rookie Rockets has the required brand tokens for Team short name or abbreviation.
8. Default team avatar/icon fallback
Covered - Rookie Rockets has the required brand tokens for Default team avatar/icon fallback.
9. Team home/dashboard header
Covered - Rookie Rockets has the required brand tokens for Team home/dashboard header.
10. Navigation accents
Covered - Rookie Rockets has the required brand tokens for Navigation accents.
11. Chat/message thread header
Covered - Rookie Rockets has the required brand tokens for Chat/message thread header.
12. Announcement cards
Covered - Rookie Rockets has the required brand tokens for Announcement cards.
13. Event/game schedule cards
Covered - Rookie Rockets has the required brand tokens for Event/game schedule cards.
14. RSVP buttons and status badges
Covered - Rookie Rockets has the required brand tokens for RSVP buttons and status badges.
15. Roster page header
Covered - Rookie Rockets has the required brand tokens for Roster page header.
16. Photo/gallery page header
Covered - Rookie Rockets has the required brand tokens for Photo/gallery page header.
17. Invite landing page
Covered - Rookie Rockets has the required brand tokens for Invite landing page.
18. Invite emails
Covered - Rookie Rockets has the required brand tokens for Invite emails.
19. Announcement/reminder emails
Covered - Rookie Rockets has the required brand tokens for Announcement/reminder emails.
20. Push notification team identity
Covered - Rookie Rockets has the required brand tokens for Push notification team identity.
Test brands and metrics
Coach can create and publish a brand
Target: Under 10 minutes. Current: Guided profile model and publish state are defined.
Branding appears on all 20 target features
Target: 100%. Current: 100% token coverage in launch validation.
Parent sees correct brand after switching teams
Target: 100%. Current: Team-scoped tokens are keyed by teamId.
Brand update appears on web after publish
Target: Under 5 minutes. Current: Supabase publish record plus cache invalidation policy required.
Invalid image uploads are rejected
Target: 100%. Current: HTTPS URL and review metadata gates are defined.
Non-coaches blocked from editing branding
Target: 100%. Current: Admin/assigned-coach RLS policy required for brand profiles.
Emails render with fallback brand if custom brand is missing
Target: 100%. Current: Fallback avatar and default token model defined.
Mobile web layout remains usable after branding
Target: 100%. Current: Mobile preview exists; browser QA still required.
Production monitoring
Brand API error rate > 1%
Brand asset upload failures spike
Published brand missing required tokens
Email rendering fails due to brand data
Public invite page cannot load brand
Coach feedback and acceptance
Was it clear what each branding field changed?
Did the preview match what parents actually saw?
Was publishing easy?
Were any important brand areas missing?
Did the final result feel like their team?
A coach can configure one team brand profile.
The coach can publish it immediately.
Parents see that brand across the team experience.
The brand applies to at least 20 defined features/surfaces. Emails and invite pages use the same published brand. The system works without separate code or deployments per team. The same brand-token model can support future iOS development.