Design system/Fundamentals
Design principles
Seven principles we draw the answer from when there's no rule yet for a new situation.
1. Context before decoration
Flowra's promise is "every action with its full context." Screens are built to show exactly that: owner, due date, meeting, files, and cost right next to the work. Decoration stays only when it makes something clearer.
2. One way to do each thing
One confirmation dialog, one picker, one empty state, one button shape. People learn each pattern once and use it everywhere.
3. Phone first
Every component is designed for a finger first: menus become bottom sheets on phones, touch targets are at least 40px, and no information hides behind hover alone, because fingers can't hover.
4. Be honest
We don't ship a control that can only say no. A connector that isn't built yet has no "Connect" button; a payment that didn't go through gets no success message; a disabled button explains nothing, so we'd rather keep the button enabled and, after it's pressed, say which field has a problem.
5. Warm and calm, with one accent color
The background is warm and paper-like, the primary button is charcoal, and orange is only for things that must be seen. If everything is emphasized, nothing is.
6. Both directions, both themes
Right-to-left and left-to-right, light and dark: none of them is the second version. Every token has two values, and every layout is written with CSS logical properties so it sits correctly in both directions.
7. Motion has meaning
Motion says where something came from and where it went: sheets from the bottom, toasts from the bottom, menus from their field. We don't use decorative motion, and when your system asks for reduced motion, everything simply fades or settles into place without moving.
From principle to number
Every principle has become a number or a specific rule in code. If a number doesn't match its principle, the number is wrong.
btn-sm 40px · sheet row 48pxBelow 640px@media (hover: hover).icon-btn and .media-row--accent #F04D1A / #F4571Fhtml[data-theme="dark"]Two values for every tokenprefers-reduced-motion → 0.01msDo
When there's no rule, ask the principles and add the answer to the system.
Don't
A one-off exception on a single page that lives only there.
Do
If two principles conflict, honesty and accessibility win.
Don't
A prettier control that a screen reader or a finger can't use.
Related pages