plinth_blocks library
Composed sections for Plinth UI — whole arrangements rather than the components they are made of.
A block is the thing a page is assembled from: a sign-in card, a navbar, a stat tile. Each one is a real widget with a real API, not a snippet to paste — Dart tree-shakes the ones an app does not use, so breadth here costs a binary nothing.
Every visible string is a parameter, with an English default so a
block renders before anything has been translated. This package has
no localisation of its own and does not depend on intl.
Re-exports plinth_components, so an app that builds pages from
blocks and fills them with components needs one import.
Classes
- AnimatedFractionallySizedBox
- FractionallySizedBox doesn't animate its factor changes on its own — this wraps it in a TweenAnimationBuilder so the fill smoothly grows/shrinks when widthFactor changes, rather than snapping instantly.
- PlinthAccentBar
- A band of theme colour, full width.
- PlinthAccordion
-
An expandable/collapsible list matching Mantine's
Accordion. - PlinthAccordionItem
- A single collapsible entry in a PlinthAccordion.
- PlinthActionIcon
-
An icon-only button matching Mantine's
ActionIcon: same variant/size/color resolution as PlinthButton, but square (or circular) with no label. - PlinthAddressCountry
- A country a PlinthAddressForm will accept.
- PlinthAddressForm
- A postal address.
- PlinthAffix
-
A fixed-position overlay matching Mantine's
Affix, e.g. a "scroll to top" button that stays anchored to a screen corner regardless of scroll position. - PlinthAlert
-
A colored callout box matching Mantine's
Alert: an icon, optional title, body content, and an optional dismiss button — all tinted by color via the active PlinthTheme. - PlinthAlphaSlider
-
Picks an opacity for a given colour, matching Mantine's
AlphaSlider. - PlinthAnchor
-
Styled link text matching Mantine's
Anchor: theme-colored, with an underline on hover (desktop/web) — matches conventional link affordance without needing a router integration, since this is just a styled tap target, not a navigation widget itself. - PlinthAngleSlider
-
A circular dial for choosing an angle, matching Mantine's
AngleSlider. - PlinthAnnounce
- Speaks a message that has no node to attach to.
- PlinthAnnounceWhen
- Speaks message once, at the moment when turns true.
- PlinthAppShell
-
The page scaffold matching Mantine's
AppShell: an optional header and footer spanning the full width, an optional navbar and aside down either side, and child filling what's left. - PlinthArticleCard
- One article in a feed.
- PlinthAspectRatio
-
Constrains child to a given width/height ratio, matching
Mantine's
AspectRatio— the common case is reserving space for an image or embed before it loads, so layout doesn't jump. - PlinthAsyncButton
- A button that runs something slow and says so.
- PlinthAuthCard
- The card every authentication block is built in.
- PlinthAuthScreen
- A full-screen shell with an accent bar across the top and content centred under it.
- PlinthAutocomplete
-
A text field with suggestions, matching Mantine's
Autocomplete. - PlinthAvailabilityField
- A text field that checks its value against something asynchronous and says what came back.
- PlinthAvatar
-
A circular avatar matching Mantine's
Avatar: shows imageUrl if provided, falls back to initials on a theme-colored background, and falls back further to a generic person icon if neither is set. - PlinthBackgroundImage
-
An image behind arbitrary content, matching Mantine's
BackgroundImage. - PlinthBadge
-
A small pill-shaped label matching Mantine's
Badge. Follows the same variant/size/color resolution as PlinthButton — colors and spacing come from the active PlinthTheme. - PlinthBannerBlock
- A page-level message with something to do about it.
- PlinthBlockquote
-
A blockquote matching Mantine's
Blockquote: quoted text with a colored left border and an optional citation line. - PlinthBox
-
A
Container-like primitive with Mantine-style spacing shorthand: instead of rawEdgeInsets, margin/padding accept PlinthSize keys that resolve through the active PlinthTheme, so spacing stays consistent with the rest of the design system. - PlinthBreadcrumbItem
- A single crumb in a PlinthBreadcrumbs trail.
- PlinthBreadcrumbs
-
A navigation trail matching Mantine's
Breadcrumbs: a row of tappable crumbs separated by a divider character, with the final crumb (the current page) rendered as plain, non-interactive text. - PlinthBurger
-
An animated hamburger-menu toggle matching Mantine's
Burger: three bars that morph into an X when opened, for driving a nav drawer or mobile menu. - PlinthButton
-
A themeable button matching Mantine's Button API shape: a
variantcontrolling visual weight, asizefrom the shared PlinthSize scale, and acolorthat keys into the active PlinthTheme's palette. - PlinthButtonGroup
-
Joins a row of buttons (or action icons) into one visually
connected group, matching Mantine's
Button.Group: outer corners stay rounded, inner corners square off, and adjacent borders collapse into a single shared line instead of doubling up. - PlinthCard
-
A themed card matching Mantine's
Card: a PlinthPaper with an established header/body/footer section convention. - PlinthCarousel
-
A slide carousel matching Mantine's
Carousel: swipeable slides with optional arrows, dot indicators, and looping. - PlinthCarouselController
- Drives a PlinthCarousel from outside it — a "next" button in a toolbar, a step that advances when a form is valid.
- PlinthCascader
-
Column-by-column selection through a hierarchy, matching Mantine's
Cascader. - PlinthCascaderOption
- One option in a PlinthCascader.
- PlinthCenter
-
Centers child within itself, matching Mantine's
Center. - PlinthCharacterLimitField
- A field that counts down to a limit it will not let you cross.
- PlinthCheckbox
-
A themeable checkbox matching Mantine's
Checkbox: a square box that fills with the active theme color when checked, plus an optional inline label. - PlinthChip
-
A selectable pill toggle matching Mantine's
Chip: shows a checkmark and fills with the theme color when selected. - PlinthClock
- A duration as a display number — a rest timer, a countdown, a lap time.
- PlinthCloseButton
-
The dismiss affordance shared by anything closeable, matching
Mantine's
CloseButton. - PlinthCode
-
An inline code snippet matching Mantine's
Code: monospace text on a subtle tinted background, for referencing identifiers, commands, or file names within a sentence. - PlinthCollapse
-
An animated height reveal, matching Mantine's
Collapse. - PlinthColorInput
-
A text field holding a hex colour, with a preview swatch that opens
a PlinthColorPicker. Matches Mantine's
ColorInput. - PlinthColorPicker
-
A full colour picker — saturation/brightness area, hue, and
optionally opacity — matching Mantine's
ColorPicker. - PlinthColorSwatch
-
A selectable color square matching Mantine's
ColorSwatch. -
PlinthCombobox<
T> -
The option-list primitive behind a select-shaped control, matching
Mantine's
Combobox. -
PlinthComboboxOption<
T> - One option in a PlinthCombobox.
- PlinthCommentData
- One comment, and the replies under it.
- PlinthCommentThread
- A comment thread.
- PlinthComparisonBlock
- A feature matrix — plans across, features down.
- PlinthComparisonRow
- One row of a comparison: what is being compared, and the answer for each column.
- PlinthConfirmButton
- A destructive action that asks once, in place.
- PlinthContactBlock
- A "get in touch" form, with room for what surrounds it.
- PlinthContainer
-
Constrains child to a maximum width and centers it, matching
Mantine's
Container— the standard "page content shouldn't get absurdly wide on a big monitor" wrapper. - PlinthContrastIssue
- One pair of colours that does not clear its floor.
- PlinthCopyButton
-
A button that copies value to the clipboard, matching Mantine's
CopyButton, showing a transient checkmark for confirmDuration after a successful copy before reverting to the copy icon. - PlinthDataList
-
Key/value pairs in a definition-list layout, matching Mantine's
DataList. - PlinthDataListItem
- One label/value pair in a PlinthDataList.
-
PlinthDependentSelects<
P, C> - A parent select and a child select whose options it determines.
- PlinthDialog
-
A small floating panel anchored to a screen corner, matching
Mantine's
Dialog. - PlinthDisclosureController
-
A
ChangeNotifier-based equivalent of Mantine'suseDisclosurehook — tracks a single open/closed boolean and exposes imperativeopen()/close()/toggle()methods, so it can drive Modal, Drawer, Popover, or any other overlay's visibility. - PlinthDivider
-
A themed divider matching Mantine's
Divider: a thin rule, optionally with a centered label (e.g. "OR" between two sign-in options). - PlinthDrawer
-
A slide-in side panel matching Mantine's
Drawer: full-height (or full-width, for top/bottom) content anchored to a screen edge, dismissible via backdrop tap. - PlinthDrawerHost
-
Wraps child and automatically calls
drawer.showwhenever drawer's controller opens — the PlinthDrawer equivalent of PlinthModalHost. - PlinthDtcg
- DTCG read and write.
- PlinthDtcgResult
- What came back from reading a DTCG document.
- PlinthElevation
- One step on the elevation scale, as geometry rather than as a colour.
- PlinthEmptyState
-
The "nothing here" placeholder, matching Mantine's
EmptyState. - PlinthErrorPageBlock
- A whole-page apology: a status, a heading, an explanation, and a way out.
- PlinthFaqBlock
- A frequently-asked-questions section.
- PlinthFaqItem
- One question and its answer.
- PlinthFeature
- One thing the product does.
- PlinthFeatureBlock
- A "what it does" section.
- PlinthFieldset
-
A bordered group of related fields with a legend, matching Mantine's
Fieldset. -
PlinthFileButton<
T> -
A button that opens your file picker, matching Mantine's
FileButton. -
PlinthFileInput<
T> -
A file-selection field matching Mantine's
FileInput, sharing PlinthTextInput's label/description/error chrome. - PlinthFlex
-
A direction-configurable flex layout with a consistent gap
between children, matching Mantine's
Flex. - PlinthFloatingWindow
-
A draggable, resizable panel, matching Mantine's
FloatingWindow. - PlinthFocusTrap
- Keeps keyboard focus inside an overlay, and gives it back when the overlay goes away.
- The bottom of a page.
- A titled column of links in a PlinthFooter.
- PlinthGoal
- One target and how far along it is.
- PlinthGoalRings
- A row of progress rings, one per target.
- PlinthGrid
-
A responsive column grid matching Mantine's
Grid. - PlinthGridCol
-
One column in a PlinthGrid, matching Mantine's
Grid.Col. - PlinthGroup
-
Arranges children in a horizontal row with a consistent gap
between them, matching Mantine's
Group. - PlinthHeroBlock
- The top of a landing page: a claim, a sentence, and something to do.
- PlinthHighlight
-
Text with matching substrings marked, following Mantine's
Highlight. - PlinthHoverCard
-
A hover-triggered anchored panel matching Mantine's
HoverCard. - PlinthHueSlider
-
Picks a hue from the full colour wheel, matching Mantine's
HueSlider. - PlinthImage
-
An image with a loading placeholder and an error fallback, matching
Mantine's
Image. - PlinthImageFallback
- A placeholder for an image that is missing, not yet uploaded, or behind a login the app has not got through.
- PlinthIndicator
-
A small notification dot/badge anchored to a corner of child,
matching Mantine's
Indicator— e.g. an unread-count badge on a notification bell icon. - PlinthJsonInput
-
A textarea that validates JSON, matching Mantine's
JsonInput. - PlinthKanbanBoard
- A drag-and-drop board.
- PlinthKanbanColumn
- One column of a PlinthKanbanBoard.
- PlinthKbd
-
A styled keyboard-key badge matching Mantine's
Kbd, e.g. for documenting a shortcut: "PressCtrl+Kto search." - PlinthLeaderboard
- A ranked list with a bar behind each row.
- PlinthLeaderboardRow
- One ranked row.
- PlinthList
-
A bulleted, numbered, or custom-icon list matching Mantine's
List. Each item can override its own marker via PlinthListItem.icon — e.g. a checklist mixing checkmarks and crosses. - PlinthListItem
- One entry in a PlinthList.
- PlinthLiveRegion
- Marks child as the message a screen reader should visit when message changes, without the user having moved focus.
- PlinthLoader
-
A standalone loading indicator matching Mantine's
Loader. - PlinthLoadingOverlay
-
A full-container loading overlay matching Mantine's
LoadingOverlay: dims child and shows a centered spinner on top when visible is true, blocking interaction with the content beneath. - PlinthLocalizations
- Reaches the PlinthStrings in scope.
- PlinthLogoStrip
- A row of customer names under a label.
- PlinthLtr
- Pins child to left-to-right inside a right-to-left page.
- PlinthMark
-
Highlighted inline text matching Mantine's
Mark, e.g. for highlighting search-match terms within a larger block of text. - PlinthMarquee
-
Content that scrolls past continuously, matching Mantine's
Marquee. - PlinthMaskInput
-
A text field that formats as you type, matching Mantine's
MaskInput. - PlinthMember
- One person in a PlinthMemberList.
- PlinthMemberList
- The people on a team, with the ones who did not fit summarised.
- PlinthMenu
-
A dropdown menu matching Mantine's
Menu: a list of tappable items shown in an anchored floating panel. - PlinthMenubar
-
A horizontal bar of menus, desktop-style, matching Mantine's
Menubar. - PlinthMenubarMenu
- One top-level menu in a PlinthMenubar.
- PlinthMenuItem
-
A single entry in a PlinthMenu. Pass
divider: truefor a plain separator line instead of a tappable item (in which case label/ onTap are ignored). - PlinthModal
-
An overlay dialog matching Mantine's
Modal: centered content on a dismissible backdrop, with an optional title bar and close button. - PlinthModalHost
-
Wraps child and automatically calls
modal.showwhenever modal's controller opens, so you can declare the modal once and forget about wiring listeners manually. -
PlinthMultiSelect<
T> -
A multi-value select matching Mantine's
MultiSelect: chosen values render as removable pills inside the field; tapping the field opens a dropdown of the remaining options. -
PlinthMultiSelectOption<
T> - A single option for PlinthMultiSelect.
- One destination in a PlinthSidebar.
-
A sidebar-style navigation item matching Mantine's
NavLink: icon, label, active-state highlighting, and optional trailing content (e.g. a badge showing an unread count). - A titled group of destinations.
- PlinthNotification
-
A toast-style notification matching Mantine's
Notification. - PlinthNumberFormatter
-
Formatted number display, matching Mantine's
NumberFormatter. - PlinthNumberInput
-
A numeric input matching Mantine's
NumberInput: a text field restricted to numbers, with increment/decrement buttons, sharing PlinthTextInput's label/description/error chrome and focus/error border styling. - PlinthOfflineNotice
- "You are offline" — as a notice the page keeps working around, rather than a page that replaces itself.
- PlinthOverflowList
-
Shows as many children as fit on one line and collapses the rest
into a
+Nmarker, matching Mantine'sOverflowList. - PlinthOverlay
-
A generic dimming backdrop matching Mantine's
Overlay: a semi-opaque layer over whatever it wraps, with optional centered content of your own. - PlinthPage
- PlinthPageHeader
- The top of a page: what this is, and what you can do to it.
- PlinthPagination
-
Page-number navigation matching Mantine's
Pagination. - PlinthPaper
-
A themed surface container matching Mantine's
Paper: a white (or custom) background with optional shadow, border, radius, and padding. The foundation PlinthCard builds on — reach forPaperdirectly when you just need a surface, andCardwhen you want its header/footer section conventions too. - PlinthPasswordInput
-
A password field matching Mantine's
PasswordInput: shares PlinthTextInput's label/description/error chrome, with a show/hide visibility toggle instead of a plainobscureTextflag. - PlinthPasswordResetBlock
- A "send me a reset link" card.
- PlinthPasswordRule
- One requirement a password has to meet.
- PlinthPasswordStrength
- A strength meter and the checklist behind it.
- PlinthPhotoHeader
- PlinthPill
-
A removable value chip, matching Mantine's
Pill. - PlinthPillsInput
-
A field that holds PlinthPills, matching Mantine's
PillsInput. - PlinthPinInput
-
A segmented code/PIN input matching Mantine's
PinInput: one box per character, auto-advancing focus as each digit is typed and auto-retreating on backspace from an empty box. - PlinthPopover
-
An anchored floating panel matching Mantine's
Popover: content appears positioned relative to target when controller opens, dismissible by tapping outside. - PlinthPortal
-
Renders child into the ambient
Overlayrather than in its normal place in the tree, matching Mantine'sPortal. - PlinthPricingCard
- One plan on a pricing page.
- PlinthProfileCard
- A card about one person.
- PlinthProgress
-
A themeable linear progress bar matching Mantine's
Progress: a track filled proportionally to value, animated on change. - PlinthProgressSection
-
One part of a multi-section PlinthProgress or
PlinthRingProgress, matching Mantine's
Progress.Section. -
PlinthRadio<
T> -
A single themeable radio button, matching Mantine's
Radio. Used standalone or, typically, inside a PlinthRadioGroup which wires up the shared selected value and change callback for you. -
PlinthRadioGroup<
T> -
Renders a labeled, vertically-stacked set of PlinthRadios sharing
one selected value — the equivalent of Mantine's
Radio.Group. Handles wiringgroupValue/onChangedto each option so you don't repeat that per radio. -
PlinthRadioOption<
T> - A single selectable option for PlinthRadioGroup.
- PlinthRangeSlider
-
A dual-thumb range slider matching Mantine's
RangeSlider. - PlinthRating
-
A star rating selector matching Mantine's
Rating. - PlinthRepeatableFields
- Rows that can be added and removed, with the announcements that makes necessary.
- PlinthRingProgress
-
A circular progress indicator matching Mantine's
RingProgress. Companion to PlinthProgress (linear) — reach for this when the available space is better suited to a ring, e.g. a compact dashboard stat card. - PlinthRollingNumber
-
Digits that roll to their new value on change, matching Mantine's
RollingNumber. - PlinthSchemeDisagreement
-
One field where a
ColorSchemeand a PlinthTheme disagree about what colour something is. - PlinthScrollArea
-
A scrollable region with a themed, draggable scrollbar rendered
alongside the content, matching Mantine's
ScrollArea. - PlinthScroller
-
A back-to-top affordance that appears once there is something to
go back to, matching Mantine's
Scrollerhelpers aroundScrollArea. - PlinthSecretField
- A value the server issued and you need to get back out intact — an API key, a webhook secret, a recovery code.
-
PlinthSegmentedControl<
T> -
A pill-shaped single-select toggle group matching Mantine's
SegmentedControl: options laid out in a row inside a rounded track, with the active option's segment filled. -
PlinthSegmentedControlItem<
T> - A single option in a PlinthSegmentedControl.
-
PlinthSelect<
T> -
A themeable dropdown select matching Mantine's
Select: shares PlinthTextInput's label/description/error chrome, but renders a tappable field that opens a menu instead of a text field. -
PlinthSelectOption<
T> - A single option for PlinthSelect.
- PlinthSemanticColor
- A colour named by the role it plays, rather than by its hue.
- PlinthSemiCircleProgress
-
A half-ring gauge, matching Mantine's
SemiCircleProgress. - PlinthSeriesColor
- One entry in a categorical sequence: a ramp, and the shade to take from it.
- PlinthSidebar
- A vertical navigation rail.
- PlinthSignInBlock
- A sign-in card: email, password, remember-me, and a way in.
- PlinthSignUpBlock
- A registration card: name, email, password, terms, and a way in.
- PlinthSimpleGrid
-
Arranges children into a grid with a fixed number of columns
per row and consistent spacing, matching Mantine's
SimpleGrid. - PlinthSkeleton
-
A loading placeholder matching Mantine's
Skeleton: a gray block that pulses gently to signal "content is loading here." - PlinthSlider
-
A themeable slider matching Mantine's
Slider. - PlinthSliderMark
-
A named position on a PlinthSlider or PlinthRangeSlider track,
matching Mantine's
marks. - PlinthSpace
-
A fixed-size spacer keyed by PlinthSize and resolved through
theme.spacing, matching Mantine'sSpace— for the common case of "I need a themed gap here" without reaching for a rawSizedBoxwith a magic-number pixel value. - PlinthSpacing
- The spacing scale as compile-time constants.
- PlinthSplitAuthBlock
- A two-pane authentication layout: brand on one side, form on the other.
- PlinthSplitter
-
Two resizable panes with a draggable divider, matching Mantine's
Splitter. - PlinthSpoiler
-
A "show more/less" collapsible content wrapper matching Mantine's
Spoiler: clips child to maxHeight when collapsed, with a toggle control to expand/collapse. - PlinthStack
-
A vertical layout with a consistent gap, matching Mantine's
Stack. - PlinthStat
- One number and what it counts.
- PlinthStatGrid
- A row of PlinthStatTiles that becomes a column when narrow.
- PlinthStatStrip
- A row of numbers under a claim.
- PlinthStatTile
- One figure on a dashboard.
- PlinthStep
- A single step in a PlinthStepper.
- PlinthStepper
-
A numbered step progress indicator matching Mantine's
Stepper. - PlinthStickyHeader
- A header that stays put while what is under it scrolls.
- PlinthStrings
- Every string the library falls back on, as fields.
- PlinthSupportChannel
- One way to reach you.
- PlinthSupportChannels
- Ways to reach you, as a grid of routes.
- PlinthSwitch
-
A themeable toggle switch matching Mantine's
Switch: a pill-shaped track that fills with the active theme color when on, with an animated thumb and an optional inline label. -
PlinthTabItem<
T> - A single tab for PlinthTabs.
- PlinthTable
-
A themeable data table matching Mantine's
Table. - PlinthTableOfContents
-
A jump list built from a page's headings, matching Mantine's
TableOfContents. -
PlinthTabs<
T> -
A themeable tab bar matching Mantine's
Tabs: an underline indicator on the active tab, theme-driven color and sizing. -
PlinthTabView<
T> -
Switches between children based on value, with a fade
transition. Pairs with PlinthTabs — pass the same
value/type parameter to both. - PlinthTagsInput
-
Free-text entry that turns what you type into removable chips,
matching Mantine's
TagsInput. - PlinthTapTarget
- Gives child at least the theme's PlinthDensity.minTapTarget in both directions, without changing how it looks.
- PlinthText
-
A text primitive that resolves its size from the active
PlinthTheme's font-size scale (like
Text+ Mantine'sTextcomponent'ssizeprop), instead of a rawfontSizedouble. - PlinthTextarea
-
A multi-line text field matching Mantine's
Textarea. Shares PlinthTextInput's label/description/error chrome and focus/error border styling. - PlinthTextInput
-
A themeable text field matching Mantine's
TextInput: alabel, optionaldescription/errortext, and border styling that reacts to focus and error state — all resolved through the active PlinthTheme, following the same size/color pattern as PlinthButton. - PlinthTheme
- The design-token layer for Plinth. Every Plinth widget reads its colors, spacing, radius, and font sizes from an instance of this class rather than hardcoding values, so a single theme swap restyles the whole app.
- PlinthThemeIcon
-
A colored icon container matching Mantine's
ThemeIcon: wraps an icon in a themed background circle/square, for use as a leading visual in list items, feature cards, etc. - PlinthTimeline
-
A vertical event timeline matching Mantine's
Timeline: dot markers connected by a line, with a title/description per event. - PlinthTimelineItem
- A single event in a PlinthTimeline.
- PlinthTitle
-
A semantic heading matching Mantine's
Title. - PlinthTocItem
- One heading in a PlinthTableOfContents.
- PlinthToken
- One token: where it lives, what tier it is, and what it holds.
- PlinthTooltip
-
A themed tooltip matching Mantine's
Tooltip: dark background, theme-driven radius and font size, shown on hover (desktop/web) or long-press (touch). - PlinthTopBar
- A horizontal application bar: brand on the left, actions on the right, and whatever belongs between them.
- PlinthTopBarBrand
- A logo and a product name, as a PlinthTopBar.brand.
- PlinthTree
-
Hierarchical navigation with expandable branches, matching
Mantine's
Tree. - PlinthTreeNode
- One node in a PlinthTree.
- PlinthTreeSelect
-
A select whose options are a hierarchy, matching Mantine's
TreeSelect. - PlinthTwoFactorBlock
- The second-factor step: enter the code, verify, or ask for another.
- PlinthUnstyledButton
-
A bare tap target with no visual chrome — no color, border,
padding, or ripple by default — matching Mantine's
UnstyledButton. The building block for fully custom-styled clickable elements (custom cards, avatars-as-buttons, nav items with bespoke layouts) where PlinthButton's built-in variant/color/size resolution would fight the custom look rather than help it. - PlinthUserTile
- A person: their face, their name, and one line about them.
- PlinthVisuallyHidden
-
Renders child so screen readers announce it while sighted users
never see it, matching Mantine's
VisuallyHidden. - RenderOverflowList
-
Lays PlinthOverflowList out and paints its
+Nmarker.
Enums
- PlinthAnchorUnderline
- When a PlinthAnchor shows its underline.
- PlinthArticleLayout
- How a PlinthArticleCard arranges itself.
- PlinthAvailability
- What the field currently knows.
- PlinthBannerLayout
- How a PlinthBannerBlock is arranged.
- PlinthContainerSize
- PlinthContrast
- The contrast floor a colour has to clear, by what it is being used for. WCAG 2.x gives three, and picking between them is a decision about the content — not something a caller should have to remember as a bare number.
- PlinthCurve
- Easing, as roles rather than curves.
- PlinthDataListOrientation
- How a PlinthDataList arranges each label against its value.
- PlinthDensity
- How much room interactive controls are given, as a minimum tap target.
- PlinthDialogPosition
- Where a PlinthDialog sits on screen.
- PlinthDrawerPosition
- Which screen edge a PlinthDrawer slides in from.
- PlinthFaqLayout
- How a PlinthFaqBlock lays its questions out.
- PlinthFeatureLayout
- How a PlinthFeatureBlock arranges its features.
- PlinthHeroLayout
- How a PlinthHeroBlock arranges itself.
- PlinthImageSource
-
Where a PlinthImage loads from, decided by its
src. - PlinthIndicatorPosition
- Which corner a PlinthIndicator's dot/badge is anchored to.
- PlinthListType
- PlinthLoaderType
-
The animation style a PlinthLoader uses, mirroring Mantine's
Loadertypes. - PlinthPhotoHeaderAlign
- Where the title sits over the photograph.
- PlinthPopoverPosition
- Which side of the target PlinthPopover's content appears on.
- PlinthPresence
- Whether somebody is around.
- PlinthRole
- The colour roles the component library itself needs, independent of which ramp answers them.
- PlinthShadow
- Elevation steps, from flat to a drawer over a page.
- PlinthSize
- The Plinth size scale, used across nearly every component (buttons, inputs, badges, etc.) so sizing stays consistent throughout an app.
- PlinthTier
- Which tier a token sits in.
- PlinthTimelineAlign
- Which side of a PlinthTimeline its rail of dots runs down.
- PlinthTokenType
- A token's type, named as the Design Tokens Community Group names it.
- PlinthTooltipPosition
- Which side of its target a PlinthTooltip prefers.
- PlinthTrend
- Which way a figure moved.
- PlinthVariant
- The Plinth visual variant scale, mirroring Mantine's approach: each component interprets these consistently so switching a component's "loudness" is a one-line change.
- PlinthWeight
- Font weights, as roles rather than numbers.
Extensions
- PlinthMaterialBridge on PlinthTheme
-
Reconciling a PlinthTheme with Material's
ThemeData. - PlinthStringsContext on BuildContext
- Reads the strings the same way the tokens are read.
- PlinthThemeContext on BuildContext
-
Convenience accessor:
context.plinth. - PlinthThemeData on ThemeData
- The same lookup for code that already holds a ThemeData.
- PlinthThemeTokens on PlinthTheme
- Enumerating a theme.
- PlinthThemeValidation on PlinthTheme
- Checks a theme's literal colours against the floors they claim.
Constants
- kDarkBorder → const Color
-
3.01:1 against
kDarkSurfaceSunken, for the same reason as kLightBorder. Was #373A40, which was 1.19:1 there. - kDarkBorderMuted → const Color
- kDarkSurface → const Color
-
The same set for the dark theme, using Mantine's
darkramp. - kDarkSurfaceMuted → const Color
- kDarkSurfaceSunken → const Color
- kDarkText → const Color
- kDarkTextDisabled → const Color
- kDarkTextMuted → const Color
-
4.53:1 against
kDarkSurfaceSunken. Was #909296, which was 4.36:1 — under the 4.5 floor by a margin small enough that nobody checking by eye would ever have caught it, which is the argument for checking by arithmetic. -
kDefaultBorderWidths
→ const Map<
PlinthSize, double> - Default border widths.
-
kDefaultBreakpoints
→ const Map<
PlinthSize, double> -
Minimum viewport width (logical pixels) at which each breakpoint
applies, matching Mantine's defaults converted from
emat a 16px root (36/48/62/75/88em). -
kDefaultCurves
→ const Map<
PlinthCurve, Curve> - Default easing, one per PlinthCurve.
-
kDefaultDurations
→ const Map<
PlinthSize, Duration> - Default motion durations.
-
kDefaultElevations
→ const Map<
PlinthShadow, PlinthElevation> -
Default elevations, matching what
PlinthPaperdrew before this scale existed — so adopting it changes nothing on screen. -
kDefaultFontSizes
→ const Map<
PlinthSize, double> - Default font size scale (in logical pixels).
-
kDefaultFontWeights
→ const Map<
PlinthWeight, FontWeight> - Default font weights, one per PlinthWeight.
-
kDefaultRadius
→ const Map<
PlinthSize, double> - Default corner radius scale (in logical pixels).
-
kDefaultRoleRamps
→ const Map<
PlinthRole, String> - Which ramp answers each of the component library's own roles.
-
kDefaultSeriesColors
→ const List<
PlinthSeriesColor> - The default categorical sequence — chosen to survive colour-vision deficiency, not just to look well separated.
-
kDefaultSpacing
→ const Map<
PlinthSize, double> - Default spacing scale (in logical pixels), matching Mantine's defaults.
- kLightBorder → const Color
- kLightBorderMuted → const Color
- kLightSurface → const Color
- Surface, text, and border colors for the light theme.
- kLightSurfaceMuted → const Color
- kLightSurfaceSunken → const Color
- kLightText → const Color
- kLightTextDisabled → const Color
- kLightTextMuted → const Color
- kSpaceUnit → const double
- The base spacing unit. Every step on the spacing scale, and every ad-hoc gap a caller needs, should be a whole multiple of this.
-
kVividSeriesColors
→ const List<
PlinthSeriesColor> - The hue-optimised sequence: maximum separation for normal colour vision only.
Typedefs
- PlinthAddressValues = ({String city, String? country, String postcode, String street})
- What a PlinthAddressForm reports.
-
PlinthColorShades
= List<
Color> - A shade ramp for a single color, indexed 0 (lightest) to 9 (darkest), matching Mantine's 10-shade convention.
- PlinthContactValues = ({String email, String message, String name})
- What a PlinthContactBlock hands back when it is sent.
- PlinthRepeatableRowBuilder = Widget Function(BuildContext context, int index)
- Builds the field for one row.
- PlinthSignInValues = ({String email, String password, bool rememberMe})
- What a PlinthSignInBlock hands back when it is submitted.
- PlinthSignUpValues = ({bool acceptedTerms, String email, String name, String password})
- What a PlinthSignUpBlock hands back when it is submitted.