Design system

BSTR operating manual

The rules that let developers and designers extend this dashboard without breaking its essence.

Living docs
Docs

Theme presets

Enterprise sober, dark and bold premium are token presets over one component structure.

Open reference
Docs

Responsive contract

Rules define how each pattern adapts before code is written.

Open reference
Docs

Authz language

Permission states remain visible, explain cause and provide recovery.

Open reference

Design principles

BSTR's operating rules. New pages should obey these before adding new components.

Data first, decoration second

Visual effects must clarify hierarchy or state. If an effect does not make the workflow easier to understand, remove it.

Feedback is product language

Every action resolves into a toast, dialog, banner or inline state. Users should never wonder if the system heard them.

Responsive by composition

Mobile layouts reorganize information instead of hiding core workflows. Tables need card fallbacks or controlled scroll.

Permission states stay visible

Do not silently hide important modules. Explain the required role, why access is blocked and how to request access.

Theme presets share one structure

Enterprise sober and bold premium are token presets over the same components, not separate design systems.

Token contract

Use semantic tokens instead of raw values so theme presets remain possible.

TokenUse
--backgroundPage canvas and app background.
--surfaceDefault cards, controls and panels.
--surface-elevatedDrawers, nested cards and emphasized panels.
--surface-mutedSelected states, table headers and inactive controls.
--primaryPrimary actions, active navigation and key chart series.
--accentSecondary data series and special highlights.
--success / --warning / --danger / --infoSystem status only; never decorative.
--border / --border-strongSeparation, outlines and table structure.

Responsive contract

Dashboard components must declare how they behave on mobile and desktop.

AreaMobileDesktop
NavigationDrawer opened from top bar.Persistent sidebar.
TablesCard/list fallback or controlled scroll.Full table with visible actions.
FiltersWrapped chips or drawer.Inline filter bar with saved views.
ChartsOne primary chart above fold.Multi-panel chart plus table context.
DialogsFull-width or bottom-sheet style.Centered modal or right drawer.

Interaction contract

Every visible affordance must lead to a concrete, keyboard-reachable UI state.

PatternRule
Command paletteGlobal navigation and discovery. Open from top search, command icon or Cmd/Ctrl+K; close with Escape or the scrim.
Notification sheetEphemeral system activity. Opens from the bell and keeps page context behind a strong scrim.
Filter sheetQuery refinement. Filter chips summarize state; the sheet owns editing and apply/reset controls.
Detail drawerInspect one record without losing list context. Use for summaries and quick actions, not full workflows.
Row action menuOverflow opens a menu with view, edit and secondary actions. Destructive actions are separated visually.
CRUD create/editUse a primary Add button and a sheet/dialog form with visible labels, helper text and cancel/save actions.
CRUD deleteDelete never executes from the menu directly. It opens a confirmation dialog that states consequence and scope.
Bulk actionsSelection reveals a contextual toolbar with count, clear, export/archive and confirmed destructive actions.
Dirty formsClosing a changed form requires a discard confirmation so users never lose input silently.
Table statesLoading, empty, no-results and recoverable-error states need clear copy and recovery actions.
Action feedbackCreate, update, delete and bulk actions resolve into a toast or inline status with undo when reversible.
Saved viewsSaved views bundle filters, sort, density and visible columns into named operational modes.
Sortable columnsSortable headers expose direction visually and with aria-sort for assistive technology.
Column visibilityColumn visibility controls reduce density without hiding row actions or all data columns.

Feedback decision guide

Pick the smallest pattern that gives enough context and recovery.

SituationPattern
Short-lived resultToast
Destructive actionConfirmation dialog
System-wide noticeBanner
Local blocked sectionInline permission state
Long-running processLoading toast plus inline progress
Reversible destructive actionToast with undo

Status vocabulary

Consistent words reduce cognitive load across products.

StatusMeaning
ActiveUsable and healthy.
PendingWaiting for user or system action.
SuspendedIntentionally blocked. Explain recovery.
FailedCompleted unsuccessfully. Provide retry.
SyncedFresh and up to date.
DegradedAvailable with reduced reliability or delay.
Read-onlyVisible but not editable because of role, state or policy.
DeniedUser cannot perform the action. Explain required permission.