Mon12Oct
Coaching
Minis assistant coach, rest of season
5:30–7:00 PM, Mon & WedCypress Gym
Plus Saturday games at 9. Paired with a head coach.
4 of 4 left

Volunteer
The league runs on about sixty adults and teenagers who give two to five hours a week. You don't need to have played. You need to show up.
Three ways in
Open shifts
Every shift has a lead who meets you at the door. Coaching spots are for the whole season; everything else is one day at a time.
Mon12Oct
Coaching
5:30–7:00 PM, Mon & WedCypress Gym
Plus Saturday games at 9. Paired with a head coach.
4 of 4 left
Sat10Oct
Table
8:45 AM–11:00 AMCypress Gym
Track points and minutes. Mr. Hobbs sits beside you.
1 of 2 left
Sat10Oct
Table
3:15–5:30 PMCypress Gym
Start, stop, buzzer. That's it.
0 of 2 left
Sat10Oct
Rides
8:30 AM–12:30 PMLeaves from Cypress lot
Ride along, count heads, help with seatbelts.
1 of 1 left
Sat24Oct
Refs
10:00 AM–1:00 PMPeralta Street Rec
Bring part 1 notes. Lunch provided.
7 of 16 left
Sat17Oct
Food
5:30–8:30 PMPeralta Street Rec
Orange slices, water, popcorn. Rosario runs it.
2 of 3 left
Sat21Nov
Food
8:00 AM–2:00 PMCypress Gym
Carving, serving, cleanup. Families bring sides.
5 of 8 left
Thu15Oct
Coaching
5:30–7:00 PM, ThursdaysPeralta Street Rec
Toni is looking for one more adult on the bench.
1 of 2 left
Nothing matches. Call Graciela and she'll find you something.
Demo board: tapping Sign up claims a spot on this page only.
The coach's code
Every coach signs this in August. If you remember nothing else from the training, remember these.
Two full quarters for every kid on the roster, every game, whatever the score.
Since 2004
No coach is ever alone with a player. Not in the gym, not in a car, not in a text thread.
No exceptions
A coach waits until the last kid is picked up or seated on the van.
Every practice
Our refs are teenagers learning the job. One calm question a half, then let it go.
Every game
And learn how to say it. Ask twice if you need to.
Week two
Every practice ends with one thing each kid did well, said out loud by the coach.
Every practice
After every game, in every division, whatever the score.
Every game
Staff & leads
Two part-time staff and five volunteer leads. Every one of them answers their own phone.

Founder & board chair
Lonnie drove a forklift at the Port for twenty-six years and started the league in 2004 with a milk crate of balls on the 10th Street court. He still opens Cypress Gym every Saturday at 8:30.






Before you sign up
Yes, every adult who works with kids gets Live Scan fingerprinting. We book it and pay the $52. It takes about a week.
Yes. About a third of our coaches never did. You'll start as an assistant beside a head coach, and the August training covers drills and the rules.
Teens 15 and up can train as refs or keep the clock, and refs are paid. Younger teens help at the snack table with a parent.
Coaching is about five hours a week, September to December. A table or van shift is one Saturday morning, whenever you can.
Design notes
A free youth league site built for the parent standing in a school pickup line with one hand free. The first thing it answers is where practice is tonight, and the second is how to get a kid onto a team.
Bebas Neue is set in caps with almost no tracking, the way gym banners and jersey backs are lettered, and it carries every heading and the giant footer wordmark. Body copy is Geologica, a plain geometric sans that holds up at small sizes on old phones. Times and figures use Overpass Mono, which comes from Highway Gothic road signs and gives the schedule the look of a scorer's book.
The green is the deep oak green of Oakland's city tree, and the orange is the pebbled leather of a game ball. The site opens dark, like a gym at seven o'clock under the lights, with a muted court green rather than a neon one. The light theme is tinted toward Bay fog instead of white so it doesn't glare at Saturday-morning games.
Six pages sit in a dock at the bottom of the screen, where a thumb already is. Most visits happen on a phone between work and practice, so every page is one tap away and the dock never scrolls away. On a laptop the dock stays put and the header carries only the logo and the sign-up button.
The home page opens on this week's schedule, day by day, with the next session counting down. The most common call to the office is "which gym is it tonight?", and this answers it before anything else. Sunday shows as a rest day because the gym really is closed.
The header button says "Sign up a player" because getting a kid onto a team is the whole point. The other actions are just as literal: "Coach a team", "Save a seat on the van", "Sponsor a team". Nothing asks a family for money; the sponsor page is written for neighbors and businesses.
Photos are of kids actually playing, mostly on outdoor courts, and the captions say so: they are labeled as summer league on the 10th Street court instead of pretending to be the winter gym. Adults appear only where they are coaching or volunteering. There are no crowd shots, because a Minis game draws about forty people.
Body text is 17px and every color pair passes WCAG AA in both themes. Dock buttons have full-height tap targets with text labels under each icon. Copy is written at about a sixth-grade reading level for parents reading in a second language, and the gym list notes step-free entrances and Wheels Night.
Every text pairing is checked against WCAG 2.2 in both themes.
| Pairing | Sample | Ratio | WCAG |
|---|---|---|---|
| Body text on page | Aa | 15.88:1 | AAA |
| Body text on cards | Aa | 14.39:1 | AAA |
| Secondary text | Aa | 6.98:1 | AA |
| Links | Aa | 9.26:1 | AAA |
| Button text | Aa | 9.36:1 | AAA |
| Accent label text | Aa | 7.63:1 | AAA |
| Text on dark bands | Aa | 16.74:1 | AAA |
| Muted text on dark bands | Aa | 8.34:1 | AAA |
| Text on brand bands | Aa | 9.36:1 | AAA |
| Muted text on brand bands | Aa | 5.65:1 | AA |
| Pairing | Sample | Ratio | WCAG |
|---|---|---|---|
| Body text on page | Aa | 15.32:1 | AAA |
| Body text on cards | Aa | 16.94:1 | AAA |
| Secondary text | Aa | 5.76:1 | AA |
| Links | Aa | 6.43:1 | AA |
| Button text | Aa | 7.47:1 | AAA |
| Accent label text | Aa | 5.07:1 | AA |
| Text on dark bands | Aa | 15.32:1 | AAA |
| Muted text on dark bands | Aa | 7.97:1 | AAA |
| Text on brand bands | Aa | 7.47:1 | AAA |
| Muted text on brand bands | Aa | 4.99:1 | AA |
Designed by Greater Purpose Web. Names, people and events are sample content.