Skip to main content
Flowra
PricingCommunityFAQ
JoinStart with Flowra
  • PricingPlans, seats and payment
  • Frequently asked questionsEverything you have asked, in one place
  • Contact usWrite to the right team
  • CommunityKaro Studio, who make Flowra

For your team

  • Marketing teamsCampaigns from brief to launch
  • Product and dev teamsFeatures and bugs with full context
  • Design and content teamsBrief, files and delivery side by side
  • Operations teamsWork, documents and costs you can track
  • Sales and services teamsFrom meeting to contract and payment
  • Remote teamsOnline meeting to delivery, on your time

For your role

  • Project managersAction stories instead of chasing the team
  • Freelancers and consultantsFrom brief to contract and settlement

For your workflow

  • Meeting to actionMeeting decisions as trackable work
  • Actions with financial contextCosts next to the work that caused them
  • Actions with contract contextEvery commitment as trackable work
  • Brief to project deliveryEvery project step, one complete action
See all solutionsStart with FlowraJoin
++
Flowra design system

Fundamentals

PrinciplesVoice and writingCopy rules for each surfaceGlossaryRTL and languagesNumbers and datesAccessibility

Foundations

ColorDark modePrintingTypographySpacing and layoutRadius and shadowLayersMotionNotification soundKeyboard shortcutsIconsService logos

Components

ButtonsText fieldPickerDate and timeCheckboxRadioKeySegmented controlSliderMenu and sheetDialogCard and listTables and data listsBadge, pill, and switchTabs and filtersAvatarEmpty and loading statesProgress and stepsToastFloating helpNavigationPage headerAssistants

Patterns

Connector pageList, filter, and searchForm layoutCreation flowUpgrade promptConfirmation and irreversible actionsPhone layoutFixed bars and scrolling

Brand

Flowra brandMark and logoBrand colorBrand typographyMisuse

Design system/Components

Checkbox

A checkbox turns an independent choice on or off in a form that gets submitted later. The box is 20px, but the whole labeled row, at least 44px, is the tap target.

In codecomponents/controls.tsx (Checkbox)components/controls.css

On this page

  1. Live example
  2. States
  3. Anatomy
  4. When
  5. Rules
  6. Accessibility and direction
  7. Code

Live example

Try every state. Tapping the label checks it too; Tab to it and press Space to see the focus ring.

Live example

States

Live example
Off
On
Mixed
Inactive
On and disabled
Error
Box20 × 20px · r 6px · border 1.5px
Offborder var(--border-strong) · bg var(--card)
Hover (pointer only)border var(--text-tertiary)
Pressscale(0.9) · 0.12s
On and mixedbg var(--accent) · glyph #fff 14px / 2.6
Keyboard focusoutline 2px var(--accent) · offset 2px
Inactiveopacity 0.45 · cursor not-allowed
Errorborder var(--red)
Rowmin-height 44px · gap 10px · padding-block 12px
Label / description13.5px / 600 · 11.5px / 400
Boxedpadding 12px 14px · r 12pxOn: orange border at 45 percent

Anatomy

  1. Touch areaA native, invisible input, 12px bigger than the box on each side; click, keyboard, and form all go through that input.
  2. Box20px, on the first line of the label, at the start of the row in both directions.
  3. TagWhat checking it does, as a positive sentence.
  4. AboutOptional; the consequence of the choice in one quiet line.

When

When to use it

  • One independent choice in a form: “Group meeting”, “Create an autopay action”.
  • Several independent choices from a list: which suggested actions to create.
  • The parent of a list where some children are selected: the mixed (indeterminate) state.

When not to

  • A setting that applies immediately without a save button: a switch.
  • Several options where only one is valid: a radio or a segmented control.
  • An immediate action like “Done” on an action: a button or the action row's own check.

Rules

Do

Positive label: “Send email notifications”.

Don't

Negative label: “Don't send email notifications”; checking it becomes a double negative.

Do

An option that stands alone in a form: boxed, with a description.

Don't

A checkbox with no description whose consequence is unclear.

Do

Checkbox from components/controls.

Don't

A raw <input type="checkbox">; the browser draws a gray square or a cold blue.

Why

The browser draws checkboxes in the operating system's color and shape: blue on Mac, a gray square on Windows, and sometimes white in dark mode. It was the only cold, saturated thing in a warm interface.

Accessibility and direction

  • The native input is kept, so the checkbox role, the checked and mixed states, and Space all work on their own.
  • Without a visible label, ariaLabel is required.
  • An error sets aria-invalid, and the reason is written in text under the group, not shown with color alone.
  • The box sits next to the label with a logical gap, so it's on the right in right-to-left and on the left in left-to-right; the check mark doesn't mirror.
  • The white check on --accent has a contrast of about 3.5 to 1, which is enough for a graphical symbol (3 to 1).

Code

import { Checkbox } from "@/components/controls";

<Checkbox checked={isGroup} onChange={setIsGroup} label={tr("جلسه گروهی")} />

<Checkbox
  boxed
  checked={auto}
  onChange={setAuto}
  label={tr("اقدام پرداخت خودکار بساز")}
  description={tr("۵ روز مانده به هر سررسید، «پرداخت …» در اقدامات این شرکت ساخته می‌شود.")}
/>

Related pages

KeyA switch for a setting that applies immediately; a checkbox for forms.RadioSeveral options where only one is valid is a radio.Form layoutWhere the checkbox sits in a form, and its error.AccessibilityThe native input stays under the design; screen readers read that.
PreviousDate and timeNextRadio

Related pages

  • PageBrand kitThe Flowra mark and logo, colors, typography, clear space and minimum size, and the brand kit files to download.
  • PageDocumentationThe complete Flowra guide: actions, calendar, meetings, knowledge, files, Folio, chat, network, finance, connectors, settings and AI, each with its connections.
  • PageChangelogWhat each release added to Flowra, what got better, and what’s coming next.
  • PageContact usReach the right team: support, sales and plans, partnerships, careers, or security and privacy.
Flowra

Flowra is an all-in-one workspace for managing tasks, projects, finances, meetings, and teamwork, powered by AI to keep everything organized in one place.

Solutions for teams

  • Marketing teams
  • Product and dev teams
  • Design and content teams
  • Operations teams
  • Sales and services teams
  • Remote teams

Roles and flows

  • Project managers
  • Freelancers and consultants
  • Meeting to action
  • Actions with financial context
  • Actions with contract context
  • Brief to project delivery

With Flowra

  • All solutions
  • Pricing
  • Frequently asked questions
  • Documentation
  • Contact us
  • Brand kit
  • Design system
Crafted by Karo Studio
SecurityPrivacyTermsCookies
Version 0.16.0