Skip to content
SproutAceve · v3.22.0
Get started
Overview What is your role? Connect to Sprout Adopting Sprout
Foundations
Brand & logos Color Typography Spacing & layout Elevation Iconography Accessibility
Components
Overview Buttons Inputs & forms Numeric input Data grid Ribbon toolbar Navigation Cards Alert Avatar Badge Dialog Tabs Floating tabs Menu
Practice
Interaction & motion Voice & content Product patterns
Artificial Intelligence
AI patterns AI transparency & disclosure AI disclosure label
People & ethics
Design principles Personas Trust and ethics Meet the makers
Playground
Build the systemplay Tower of tokensplay
Behind the system
How it works Changelogv3.22 Roadmap Contribute
Draft
Components

Inputs & forms.

An input component lets users enter or edit text in a form or collection flow. It supports text, password, email and number types, and can carry helper text, inline validation, and leading or trailing icons. Checkboxes and switches follow the same shared recipe: crisp stroke, 4px radius, brand-green focus ring.

Text input

Text inputs let users enter short, free-form content such as names, addresses, or search terms. Always pair an input with a visible label above it. Placeholder text is for examples only - never use it as a substitute for a label, since it disappears when the user starts typing.

Appears as the title in the Suite Header.
This field is required

Anatomy

LabelPlaceholder textLeadingicon / textTrailingicon / text10 pxHelper text or error appears here — 12px, 4px gap below input

Size

Three heights serve different UI densities. Medium (32px) is the Sprout default.

Small - 24px
Text input
Medium (default) - 32px
Text input
Large - 40px
Text input

Use of icons

A leading icon indicates the type of input and reinforces the label - for example a search icon in a search field. A trailing icon adds an interaction: clearing the field, toggling password visibility, or confirming valid data with a checkmark. Icons should never be used for decoration alone.

Do's & Don'ts

Email address *
E.g. jane@doe.com
Do
Clearly label every input field above the control
Email address
Don't
Don't rely on placeholders as labels - they vanish on input
Street address *
E.g. Storgatan 12
Do
Keep inputs concise and ask for one piece of data per field
Your address *
Street name, no, zip code, city
Don't
Don't ask for too much info in a single field
Email address *
jane@doe.com
Please enter a valid email address
Do
Provide inline validation with a specific, helpful error message
Email address *
jane@doe.com
Don't
Don't show vague error signals without a message explaining what went wrong
Street address *
E.g. Storgatan 12
Zip *
123 45
City *
Stockholm
Do
Group related inputs logically - address fields together, not scattered
Password *
E.g. Storgatan 12
Zip *
123 45
Phone *
+46 70 123 45 67
Don't
Don't scatter inputs randomly without a clear order or logical grouping

Checkbox

Checkboxes let users select one or more options from a list. Each can be checked (selected) or unchecked (unselected), giving users direct control over their choices.

Some checkboxes support an intermediate (indeterminate) state, shown with a dash or shaded box. This indicates a partial selection - often used on parent items when child items have mixed selections. It helps users understand the selection is not fully applied.

Anatomy

IconCheckbox label8 px

Size

Checkbox size scales with surrounding text. The 16px medium size is the Sprout default.

Do's & Don'ts

Your favourite fruit?

Do
Use for multiple selections from a group

Any allergies?

Don't
Don't use checkboxes when only one choice is allowed - use radio buttons
Do
Leave opt-in boxes unchecked by default unless a safe default is truly obvious
Don't
Don't pre-check options that benefit the product at the user's expense

Switch

The Switch represents a binary state - on/off or enabled/disabled. It looks like a sliding button and gives immediate visual feedback on toggle. Switches are commonly used for preferences, settings, or feature activation. Unlike checkboxes, switches commit on toggle with no Save button required.

Anatomy

SwitchLabel text9 px

Size

Three sizes for different surface densities. Medium (34x18px) is the Sprout default.

Small
Medium (default)
Large

Do's & Don'ts

Enable notifications
Do
Always pair a switch with a short, descriptive label
Don't
Don't use a switch without a label - the user won't know what it controls
Enable notificationsDark mode
Do
Apply changes immediately on toggle - no save button needed
Enable notifications
Don't
Don't pair a switch with a Save button - that's a form pattern, not a switch
Enable wifi
Do
Use for simple, reversible on/off settings the user controls
Delete all data
Don't
Don't use switches for destructive or irreversible actions
Privacy mode
Do
Use a switch for persistent preferences the system remembers
Privacy settings
Don't
Don't use a checkbox where a switch is expected - pick one pattern per context

Spec

Input height32px (medium), 24px (small), 40px (large)
Input horizontal padding10px (medium), 8px (small), 12px (large)
Border1px solid var(--line-strong)
Focus ring2px solid var(--accent), offset 1px
Error border1px solid var(--danger)
Radius4px
Label gap4px between label and input
Helper / error text12px, 4px below input
Checkbox size16x16px (medium), 12x12px (small), 20x20px (large)
Checkbox radius2px
Switch track34x18px (medium), 26x14px (small), 44x24px (large)
Switch thumb14px diameter (medium), 10px (small), 18px (large)
Switch gap label9px between track and label
← PreviousButtonsNext →Numeric input
Sprout · Aceve Design System · v3.22.0
Figma library GitLabReleases
On this page
Text inputAnatomySizeUse of iconsDo's & Don'ts
CheckboxAnatomySizeDo's & Don'ts
SwitchAnatomySizeDo's & Don'ts
Spec