plinth_components 0.5.0
plinth_components: ^0.5.0 copied to clipboard
Themeable, accessible Flutter widgets for Plinth UI.
Changelog #
All notable changes to this package will be documented in this file.
The format follows Keep a Changelog,
and this project intends to adhere to Semantic Versioning
once it reaches a 1.0.0 release. Versions before 1.0.0 may include
breaking changes without a major version bump.
0.5.0 #
Added #
PlinthAppShell— the page scaffold: header, footer, navbar, aside, and a main region, each optional and taking no space when omitted. Collapsing is controlled by the caller rather than by an internal breakpoint, since the surrounding page needs that same state to drive aPlinthBurgeror aPlinthDrawer.PlinthGrid+PlinthGridCol— a responsive 12-column grid where each column declares its span, optionally per breakpoint. Spans apply from their breakpoint upward, so the unqualifiedspanis the smallest case, matching CSS media queries. ComplementsPlinthSimpleGrid, which is for uniform equal-width items.PlinthLoader— a standalone loading indicator inoval,dots, andbarstypes.PlinthLoadingOverlayalready showed a spinner, but only while covering existing content.PlinthTitle— semantich1–h6headings. Unlike a largePlinthText, this exposes heading semantics and level to assistive technology, so a page becomes navigable by its headings.
75 components total.
0.4.1 #
Fixed #
PlinthSpoilerreported aRenderFlexoverflow (and painted overflow stripes) whenever its collapsed content was aColumnorRowtaller thanmaxHeight— the exact case it exists to handle. The child was laid out withinmaxHeight, so a widget that manages its own overflow reported one; the surroundingClipRecthid the painting but not the error. It is now laid out at its natural height and clipped to the viewport. ATextchild was unaffected, which is why every existing usage looked correct.
0.4.0 #
Added #
PlinthFlex— direction-configurable flex layout with a consistent gap;PlinthGroupspecialized to a fixed horizontal direction,PlinthFlexfor when the direction itself needs to vary.PlinthImage— network image with an automatic loading placeholder and error fallback.PlinthScrollArea— a scrollable region with a themed, always-visible, draggable scrollbar.PlinthPortal— renders its child into the ambientOverlayrather than in place; the primitive every other overlay component in this library is already built on, exposed directly.
71 components total.
0.3.0 #
Added #
PlinthCenter— thin themed wrapper aroundCenter, for API consistency with the rest of the library.PlinthAspectRatio— thin themed wrapper aroundAspectRatio, commonly paired with images or embeds.PlinthGroup— horizontal layout with a consistent gap, wraps onto a new line by default when children overflow (unlike a plainRow, which just overflows) — the common "row of chips/tags" need.PlinthList+PlinthListItem— bulleted or numbered list, with each item able to override its own marker (e.g. a checklist mixing checkmarks and crosses).PlinthContainer— max-width content wrapper that centers its child, the standard "page content shouldn't get absurdly wide" primitive.PlinthSpace— a themed fixed-size spacer resolved throughtheme.spacing.PlinthUnstyledButton— a bare tap target with no visual chrome, for fully custom-styled clickable elements.PlinthSimpleGrid— a non-scrolling grid with a fixed number of columns and consistent spacing.
67 components total.
0.2.0 #
Added #
PlinthPinInput— segmented OTP/PIN entry, one box per character, with auto-advancing focus as digits are typed and auto-retreating focus on backspace from an already-empty box.PlinthButtonGroup— visually joins a row of buttons into one connected group (shared borders, squared-off inner corners).PlinthOverlay— generic dimming backdrop, distinct fromPlinthLoadingOverlay(which always shows a spinner and always blocks pointer events) — this is the more general primitive for dimming a background without necessarily blocking interaction.PlinthVisuallyHidden— content visible to screen readers but not sighted users, for supplementary context on icon-only controls.
59 components total.
0.1.0 #
Added #
PlinthBurger— animated hamburger→X toggle icon.PlinthHoverCard— hover-triggered anchored panel (desktop/web), the same underlyingCompositedTransformTarget/Followertechnique asPlinthPopoverbut with its own implementation, since a hover trigger and a "stay open while the pointer travels onto the panel" grace period don't fitPopover's tap-based design.PlinthRangeSlider— dual-thumb range slider, wrapping Flutter's built-inRangeSlider(same rationale asPlinthSlider).PlinthMultiSelect<T>+PlinthMultiSelectOption<T>— multi-value select with removable chips in the field and a dropdown to add more.
55 components total.
0.0.1 — Initial development release #
51 themeable components, all reading color/spacing/radius from a single
PlinthTheme (plinth_core). See docs/COMPONENTS.md in the repository
for the full prop reference.
Primitives #
PlinthButton, PlinthActionIcon, PlinthBox, PlinthText,
PlinthDivider, PlinthKbd, PlinthCode, PlinthMark.
Forms #
PlinthTextInput, PlinthTextarea, PlinthPasswordInput,
PlinthCheckbox, PlinthRadio / PlinthRadioGroup, PlinthSelect,
PlinthSegmentedControl, PlinthNumberInput, PlinthChip,
PlinthRating, PlinthSlider, PlinthSwitch.
Feedback #
PlinthBadge, PlinthAlert, PlinthProgress, PlinthRingProgress,
PlinthNotification, PlinthSkeleton, PlinthSpoiler,
PlinthLoadingOverlay.
Data Display #
PlinthAvatar, PlinthThemeIcon, PlinthIndicator,
PlinthColorSwatch, PlinthTable.
Navigation #
PlinthTabs / PlinthTabView, PlinthAccordion, PlinthStepper,
PlinthBreadcrumbs, PlinthPagination, PlinthTimeline,
PlinthNavLink.
Surfaces #
PlinthPaper, PlinthCard, PlinthBlockquote, PlinthAnchor,
PlinthCopyButton.
Overlays #
PlinthModal, PlinthDrawer, PlinthPopover, PlinthMenu,
PlinthTooltip, PlinthAffix.
Notes on this release #
PlinthMarkandPlinthCode's single positional content field is namedlabel, matchingPlinthBadge/PlinthKbd/PlinthAnchor's convention for the same pattern (found and fixed during an API consistency pass — see the main README's "API consistency review" section for the full audit).- Golden (visual regression) test coverage currently exists only for
PlinthButton— other components have behavior tests but not appearance tests yet. - Widgetbook gallery entries use static per-variant use cases rather than interactive knobs; the knob API wasn't verified against a live SDK during initial development.