Buttons
ButtonMeet Sprout. Thoughtful components, a softer palette, and just enough play. Make the next lesson feel like an invitation.
Semantic tokens, shared across every component.
Palatino for moments of discovery. Trebuchet for everyday learning.
12 / 14 / 16 / 20 / 24 / 32 / fluid display. Local fonts, no downloads.
4px base spacing. 8px small corners, 12px controls, 20px cards.
44px minimum control height. 140ms feedback, reduced-motion aware.
Try them. These are working controls.
ButtonField · Input · SelectBadge · AvatarCheckbox · Switch · ProgressAlertYour latest lesson is saved. Take a well-earned pause.
This assignment is due tomorrow at 5 pm.
Textarea · SkeletonThe same pieces, with a purpose.
Everyday exercises for your wonderfully curious mind.
Clear information, even on busy days.
| Learner | Progress | Status | Last active |
|---|---|---|---|
Maya Chen | 6 / 6 lessons | ✓ Completed | Today |
Arjun Rao | 4 / 6 lessons | ◷ In progress | Today |
Lina Park | 0 / 6 lessons | Not started | Yesterday |
Try a different name, or clear your search.
Copy. Compose. Make it yours.
Copy the source into your project. Choose the pieces you need, then change them freely. Every component shares the same tokens and accepts native HTML props.
Wrap your UI in .sprout and import the two style files. The included React components need only React 19. This catalogue runs entirely offline.
LessonCard.tsx<Card>
<CardHeader>
<Badge tone="lilac">Biology</Badge>
<CardTitle>Small wonders</CardTitle>
<CardDescription>
A closer look at the living world.
</CardDescription>
</CardHeader>
<CardFooter>
<a {...buttonProps()} href="/lessons/1">
Start learning →
</a>
</CardFooter>
</Card>