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/Patterns

Confirmation and irreversible actions

An action that can't be undone has a confirmation dialog, and only one: ConfirmDialog, with a red trash can avatar, a sentence that says what will be lost, and two full-width buttons.

In codecomponents/confirm.tsx

On this page

  1. Live example
  2. Anatomy
  3. Rules
  4. Sizes
  5. States and accessibility

Live example

Open the dialog and tap "Yes, delete" to see the in-progress state: both buttons are disabled and the backdrop no longer closes it, so the action isn't left half done.

Live example

Anatomy

  1. MarkA 48px soft red avatar with a trash can.
  2. QuestionA 17px heading: "Delete this action?"
  3. ConsequenceOne or more paragraphs: what goes with it, and whether it comes back.
  4. ApproveA full-width red button with a verb: "Yes, delete".
  5. CancelA full-width light button below it.

Rules

Do

State the consequence: "This action's attachments and story will be deleted too."

Don't

"Are you sure?"

Do

If the action can be undone, skip the confirmation: do it and offer a way back.

Don't

A confirmation dialog for every small reversible action.

Do

Red buttons only for destructive actions.

Don't

Red for "Sign out" or "Cancel subscription", which can still be reversed.

<ConfirmDialog
  open={asking}
  title={tr("این اقدام حذف شود؟")}
  body={[tr("پیوست‌ها و سرگذشتش هم حذف می‌شوند.")]}
  busy={deleting}
  onConfirm={remove}
  onClose={() => setAsking(false)}
/>

Sizes

Dialogmax-width 380px · padding 32px · centered
Mark48px · icon 20px--red on --red-soft
Heading17px / 600 · margin-top 16px
Paragraph13px · --text-secondary · leading 24px · mt 6px
Confirm buttonbtn-danger btn-field · 58px · full width · mt 20pxTouch 62px · icon 15px
Cancelbtn-ghost btn-field · mt 8pxdata-autofocus
PhoneBottom sheet · buttons radius 12px

States and accessibility

In progressbusy · both buttons disabled · .spinner
Backdrop while busyDoes not close
Rolerole="alertdialog" · aria-modal · aria-labelledby
Markaria-hidden
Button contrast5.14 : 1 · 5.54 : 1#fff on --red-strong; AA
Consequence contrast5.14 : 1 · 5.80 : 1--text-secondary on --card; AA
Initial focusCancelTab cycles inside the dialog; on close, focus returns to the trigger
  • ConfirmDialog also closes with Escape, except while it's busy; Cancel and clicking the backdrop are the other two ways out. When it opens, initial focus is on "Cancel", the safe option, so a hasty Enter doesn't delete anything.
  • The Cancel button comes second, below Confirm; on phones both are thumb-sized.
  • The confirm button is btn-danger, and its white label on --red-strong meets AA; even so, it always has the trash icon and a full verb, with the consequence sentence above it, so meaning never relies on color alone.

Do

The confirm label is the action itself: “Yes, delete”, “Yes, cancel”.

Don't

“Confirm” or “OK” under a delete question.

Do

The title is a question with the thing's name: “Delete this action?”

Don't

“Warning!” that doesn't say what's going to happen.

Related pages

DialogThe same .modal, centered.Menu and sheetThe red delete row in the menu, where it starts.Voice and writingThe button label names the action itself.ButtonsA 58px btn-field, red and light.
PreviousUpgrade promptNextPhone layout

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