Skip to content
FrameBaseCSS

Public HTML contracts

Components and states

These examples use semantic HTML and FrameBaseCSS only. JavaScript is required solely when application behavior cannot be supplied by a native element; the stylesheet never claims to provide that behavior.

Component matrix

Public component capabilities and behavior ownership
Component Variants States Accessibility contract JS required
Loadingspinner, bar, skeletonbusy, determined, indeterminatearia-busy, status textNo
Toastinfo, success, warning, dangerentering, open, closedstatus, alert, live regionLifecycle only
Dropdownstart, end, destructiveselected, disabled, opennative details or consumer menu keyboard modelOptional
Drawerstart, end, narrow, wideopen, closednative dialog focus and accessible nameOpen/close only
Data tabledensity, sticky, responsivesorted, selected, loading, emptycaption, scopes, sort stateData behavior
Composite inputaddon, search, PIN, segmentedfocus, disabled, invalid, successlabels and described-by textAction behavior
Timelineactivity, audit, changelogcurrent and semantic statesordered list and time elementNo
Stepperhorizontal, verticalcomplete, current, upcoming, errorordered list and current stepNo
Calendarpresentation gridtoday, selected, disabled, outsidenamed group and native buttonsSelection behavior

Class and state reference

Canonical extension points for the components on this page
FamilyClasses and attributesConsumer behavior
Loading.fb-spinner--sm, --md, --lg; .fb-loading-bar--indeterminate; skeleton text, title, avatar, card; aria-busy; --fb-progressUpdate progress values and busy state.
Toast.fb-toast--success, --warning, --danger; top/bottom regions; data-stateCreate, announce, time, and dismiss messages.
Menu.fb-dropdown--end; label, separator, shortcut, selected/checked, disabled, dangerImplement the full menu keyboard model when ARIA menu roles are used.
Drawer.fb-drawer--start, --narrow, --wide; header, body, footer; open; data-stateOpen, close, label, and restore focus.
Tablesticky header/first column; compact/comfortable; selected, expanded, detail, loading, empty, total; responsiveSort, select, expand, load, and write matching data-label values.
Inputsaddon, search, segmented, PIN, drop area, inline, required, help, error, successCopy, reveal, upload, validate, and move PIN focus.
Timelinecurrent, success, warning, danger and timestampNo behavior required; optional details remain native.
Stepperhorizontal, vertical, complete, current, error; --fb-step-countKeep current step and application progress synchronized.

Loading states

Use visible text or an accessible status with every visual indicator.

Spinners and button

Loading records

Progress bars

68%
Reserved layout while content loads

Toast notifications

Use role="status" for ordinary updates and role="alert" only for urgent information. The consumer owns creation, timing, focus decisions, and dismissal.

Deployment complete

The production assets are available.

Drawer

The drawer uses a native dialog. Application code calls showModal() and close(); FrameBaseCSS supplies only layout, animation, safe-area spacing, and size variants.

Project settings

The body owns vertical scrolling while header and footer remain visible.

Responsive navigation

At the mobile breakpoint the toggle becomes visible and the panel responds to data-open="true" or a native open details parent.

Advanced data table

Real table elements preserve relationships. On narrow screens the optional responsive contract uses each cell's data-label as its visible card label.

Build status; sorted by duration ascending
Status Actions
#184 Passed 42 s
#183 Running 1 m 18 s
Total runtime 2 m

Composite inputs

Addons and actions

Address is available.

Segmented control and PIN

Density
Verification code

File drop presentation

Required for notifications.

Icons, badges, timeline, and stepper

Icon contract and overlays

More than 99 notifications New notification

Activity timeline

  1. Build passed
  2. Deploying
  3. Production verificationUpcoming
  1. Account
  2. Project
  3. Review
  4. Publish

Calendar presentation

This is a visual calendar grid, not a date-picker implementation.

August 2026
MonTueWedThuFriSatSun