Presets Custard Schoolbook
Custard Schoolbook
Retro-modern learning UI: ochre actions on cream paper, heavy Epilogue headlines and hard-offset shadows on a modern 4px grid.
Colour
Five ramps, 50 to 950
Semantic tokens
Light and dark
Typography
Epilogue, Karla and IBM Plex Mono
Grow what matters
display-lg · 56/1.05 · 800 · -0.03em
Epilogue
Grow what matters
display-md · 40/1.1 · 800 · -0.025em
Epilogue
A calmer way to work
heading-lg · 28/1.2 · 700 · -0.015em
Epilogue
A calmer way to work
heading-md · 20/1.3 · 700 · -0.01em
Epilogue
A calmer way to work
heading-sm · 16/1.4 · 700
Karla
Good systems disappear. People notice the product, not the parts.
body-lg · 18/1.6 · 400
Karla
Good systems disappear. People notice the product, not the parts.
body-md · 16/1.6 · 400
Karla
Good systems disappear. People notice the product, not the parts.
body-sm · 14/1.5 · 400
Karla
Save changes
label · 14/1.25 · 700 · 0.01em
Karla
Updated 2 minutes ago
caption · 12/1.4 · 500 · 0.02em
Karla
const theme = preset("custard-schoolbook")
code · 14/1.55 · 400
IBM Plex Mono
Spacing · radius · shadow
The quiet rules
2px
6px
10px
16px
full
Components
Every part, every state
Buttons
Inputs
Navigation
Feedback
Cards, table and overlays
$48,210
74% of the $65k goalWhat changed this quarter, and what to do next.
Product designer
| Customer | Date | Status | Amount | |
|---|---|---|---|---|
| MRMd Rakib Shekh | Mar 12 | Paid | $2,400.00 | |
| NJNusrat Jahan | Mar 11 | Pending | $860.00 | |
| IJIsrat Jahan | Mar 09 | Failed | $1,120.00 |
“Q3 launch” and its 24 files will be removed for everyone. You can’t undo this.
When customers write to you, their messages show up here.
Invite your teamScreens
Custard Schoolbook as a real product
Landing page
Custard Schoolbook
Retro-modern learning UI: ochre actions on cream paper, heavy Epilogue headlines and hard-offset shadows on a modern 4px grid.
+24.6%
Dashboard
Good morning, Rakib
Overview
$48,210
+12.4%2,318
+4.1%1.8%
-0.3%| Customer | Date | Status | Amount | |
|---|---|---|---|---|
| MRMd Rakib Shekh | Mar 12 | Paid | $2,400.00 | |
| NJNusrat Jahan | Mar 11 | Pending | $860.00 | |
| IJIsrat Jahan | Mar 09 | Failed | $1,120.00 |
Phone app
Welcome back
Md Rakib Shekh$12,480
Q3 launch
Pricing
$0 /month
For trying things out
Start free- 1 project
- Basic reports
- Email support
$24 /month
For growing teams
Choose Pro- Unlimited projects
- Team workspaces
- Priority support
- Advanced reports
$79 /month
For larger organisations
Choose Business- Everything in Pro
- SSO and audit log
- A dedicated manager
Sign in
Welcome back
Sign in to continue to your workspace.
“We set up our whole workspace in an afternoon.”
NJNusrat JahanHead of operations
Settings
Settings
Use Custard Schoolbook
In Figma
Open UIX, go to Presets and search “Custard Schoolbook”. Press Use this preset, then Sync to Figma.
Install UIXIn code
Install the theme with shadcn/ui, or download the files.
DESIGN.mdtheme.csstokens.dtcg.jsonfigma-variables.jsonshadcn-theme.jsonpreset.json
Send to your AI agent
Connect the UIX MCP once, then ask Claude Code, Cursor or any MCP client: “Use the Custard Schoolbook preset”.
Get your MCP linkAbout Custard Schoolbook
Overview
Custard Schoolbook is for learning products that borrow from 70s textbooks, 80s software manuals and risograph print. The retro cues are limited to three things: the ochre and cream palette, Epilogue 700-800 headlines, and zero-blur offset shadows. Spacing, contrast and control sizes follow current accessibility practice. Text pairs meet at least 4.5:1 in both modes, and controls are 44px tall, so lessons stay readable over long sessions.
Color
Ochre (OKLCH hue about 70) is the only action color. It is used for primary, ring, links and progress. In light mode primary is brand.600 #96600a with white text (about 5.3:1). Against the cream background it measures about 4.9:1. The neutral ramp is tinted toward the same hue: steps 400-700 were nudged from olive toward brown so mid-greys don't go muddy. Ink is neutral.950 #1b1812, a brown-black rather than grey. Destructive is crimson (danger.600 #b92646, about 6.1:1 with white), roughly 60° of hue away from ochre, so an error never reads as a darker primary. Warning stays lemon yellow (warning.200 fill with warning.900 text) so it is not confused with the brand. Success is a warm textbook green (success.700 with white, about 7:1). In dark mode, background is neutral.950 and card/popover are neutral.900, one step lifted. Primary moves to brand.400 #e8a52d with brand.950 text (about 8:1), giving a CRT-amber glow without neon saturation.
Typography
Display and heading sizes follow a 1.4 ratio: 20 → 28 → 40 → 56px. Tracking tightens as size grows: heading-md -0.01em, heading-lg -0.015em, display-md -0.025em, display-lg -0.03em. Epilogue uses only weights 700 and 800. Karla (400/500/700) sets all body text, forms and buttons. Body sizes step 14 → 16 → 18px with line heights of 1.5-1.6 for long reading. IBM Plex Mono 400/500 (typography.code, 14/1.55) is reserved for code, keyboard shortcuts, quiz answer keys and data labels.
Layout
Comfortable density on a 4px base grid (space.1 = 4px). Reading columns max out at about 68ch (about 680px at body-md), and page containers at 1160px. Buttons and inputs are 44px tall. Card padding is space.6 (24px). Page sections are separated by space.12 to space.16 (48-64px).
Elevation
Depth uses hard-offset, zero-blur shadows: sm 2px, md 4px, lg 8px, all in brand.950 at 85% opacity, paired with a 2px border. Cards and raised buttons use shadow.sm. Popovers and dialogs use shadow.lg. In dark mode the shadow nearly disappears against neutral.950, so the 2px border carries the edge. No blurred shadows anywhere.
Shapes
Controls use radius.md (6px) and cards use radius.lg (10px), for a printed-label feel. radius.full is limited to badges and progress tracks. Cards, inputs and buttons use a 2px border: border (neutral.300 light / neutral.700 dark) on cards, input (neutral.400 / neutral.600) on fields.
Do
- Use primary (brand.600 in light, brand.400 in dark) for one main action per view, such as 'Start lesson'. Use secondary or ghost buttons for every other action in that view.
- Set display-lg (56px, -0.03em), display-md (40px, -0.025em) and heading-lg (28px, -0.015em) in Epilogue 800/800/700. Keep the token letterSpacing values; don't loosen them.
- Give cards and raised buttons a 2px border plus shadow.sm. Use shadow.lg only for dialogs and popovers.
- In dark mode, let the 2px border (neutral.700) define card and dialog edges, since the brand.950 shadow barely shows on neutral.950.
- Set lesson copy in body-md (Karla 16px / 1.6) or body-lg (18px / 1.6). Cap reading columns at 68ch.
- Show focus on buttons and inputs as a 2px ring in the ring token with a 2px offset. It measures at least 3:1 against background in both modes.
- Use typography.code (IBM Plex Mono 14px) only for code samples, keyboard shortcuts and quiz answer keys.
- Pair every success, warning and destructive state with an icon or text label so meaning never depends on color alone.
Don’t
- Don't add blur to shadows. Every shadow token is a zero-blur offset (2/4/8px).
- Don't use brand ochre for errors. Use destructive (danger.600 light / danger.400 dark), and keep warning on the warning scale (warning.200 fill with warning.900 text in light).
- Don't set Epilogue below 20px (heading-md) or under weight 700. Use Karla heading-sm or label for anything smaller.
- Don't use brand.500 or lighter for text or icons on background or card in light mode. Brand.500 is about 2.9:1 and brand.400 about 2:1 on neutral.50.
- Don't use #000000, #ffffff or cool grey for page backgrounds. Stay on the neutral ramp; light card and popover may use #fffdf8.
- Don't place more than one primary-filled button in the same card, dialog footer or toolbar.
- Don't round buttons or inputs beyond radius.md (6px) or cards beyond radius.lg (10px). Reserve radius.full for badges and progress tracks.
- Access
- Free
- Industries
- education, e learning, publishing
- Mood
- retro, friendly, bold, warm
- Display font
- Epilogue
- Body font
- Karla
- Mono font
- IBM Plex Mono
- Density
- Comfortable
- Contrast
- Standard
- Corner radius
- 6px