Section class
A versatile section widget designed for use within Collection components in the Arcane Flutter UI system. It provides a structured container for organizing content, such as cards or lists, into logical sections with customizable headers. This widget integrates seamlessly with scrollable views, supporting both regular widgets and slivers, making it ideal for building dynamic, responsive layouts in applications like data-driven collections or dashboards.
Key features:
- Flexible header configuration with title, subtitle, leading/trailing widgets, and back button support.
- Expandable behavior for collapsible sections to manage screen space efficiently.
- Conditional rendering: Uses GlassSection for custom headers (e.g., glassmorphism effects) or BarSection for standard bar-based headers with navigation elements.
- Sliver compatibility via SliverSignal mixin, allowing conversion of non-sliver children to slivers for use in CustomScrollView or similar structures.
This widget fits into the broader UI component hierarchy by encapsulating content within Collection instances, often alongside components like CardCarousel for horizontal scrolling or CardSection for card-based subsections. It promotes modular design, enabling developers to compose complex UIs from reusable, documented building blocks.
Usage example:
Section(
  titleText: 'Featured Items',
  subtitleText: 'Browse our latest collection',
  child: CardCarousel(
    children: [
      // Add cards here
    ],
  ),
  expandable: true,
)
- Inheritance
- Mixed-in types
- Available extensions
Constructors
- 
          Section({Key? key, Widget? customHeader, bool initiallyExpanded = true, bool expandable = false, required Widget child, BarBackButtonMode backButton = BarBackButtonMode.never, Widget? title, Widget? subtitle, Widget? header, String? titleText, String? subtitleText, String? headerText, List<Widget> leading = const [], List<Widget> trailing = const []})
- 
          Constructs a new Section instance.
            const
Properties
- asBuilder → NeverWidgetBuilder
- 
      Available on Widget, provided by the WidgetExtension extension no setter
- asSliver → Widget
- 
      Available on Widget, provided by the XWidgetArcane extension no setter
- backButton → BarBackButtonMode
- 
  Controls the visibility and behavior of the back button in the header bar. Possible values include BarBackButtonMode.never (default, no back button), BarBackButtonMode.auto(shows if applicable), or BarBackButtonMode.always (forces display).final
- base → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- black → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- blockQuote → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- blurIn → Widget
- 
      Available on Widget, provided by the XWidgetEffect extension no setter
- bold → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- centered → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- child → Widget
- 
  The primary content widget displayed within the section. This can be any Widget, including slivers or regular widgets like Column, ListView, or other components such as CardCarousel. It is required and forms the core of the section's body.
  final
- customHeader → Widget?
- 
  An optional custom header widget that overrides the standard bar-based header. When provided, the section renders using GlassSection for a more stylized, glass-like appearance.
  final
- ellipsis → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- expand → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- expandable → bool
- 
  Determines if the section is expandable, allowing users to collapse and expand the content via interaction. Defaults to false.
  final
- extraBold → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- extraLight → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- firstP → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- flexible → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- foreground → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- h1 → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- h2 → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- h3 → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- h4 → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- hashCode → int
- 
  The hash code for this object.
  no setterinherited
- header → Widget?
- 
  An optional header widget for advanced customization of the top section area, which can include multiple elements or complex layouts.
  final
- headerText → String?
- 
  An optional string-based header text for custom header labeling when using BarSection.
  final
- ih → Widget
- 
      Available on Widget, provided by the XWidgetArcane extension no setter
- initiallyExpanded → bool
- 
  Specifies the initial expanded state of the section when expandable is true. Defaults to true (expanded).
  final
- inlineCode → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- intrinsicHeight → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- intrinsicSize → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- intrinsicWidth → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- italic → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- iw → Widget
- 
      Available on Widget, provided by the XWidgetArcane extension no setter
- key → Key?
- 
  Controls how one widget replaces another widget in the tree.
  finalinherited
- large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- lead → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- 
  leading
  → List<Widget> 
- 
  A list of widgets to display on the leading (left) side of the header bar, such as icons, buttons, or navigation elements. Defaults to an empty list.
  final
- li → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- light → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- medium → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- modify → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- mono → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- muted → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- normal → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- p → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- primaryForeground → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- runtimeType → Type
- 
  A representation of the runtime type of the object.
  no setterinherited
- safeArea → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- sans → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- scrollable → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- scrollableHorizontal → Widget
- 
      Available on Widget, provided by the XWidget extension no setter
- secondaryForeground → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- semiBold → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- singleLine → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- small → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- subtitle → Widget?
- 
  An optional subtitle widget that provides secondary descriptive text or elements below the title in the header.
  final
- subtitleText → String?
- 
  An optional string-based subtitle for additional context or description in the header.
  final
- textCenter → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- textEnd → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- textJustify → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- textLarge → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- textLeft → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- textMuted → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- textRight → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- textSmall → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- textStart → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- thin → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- title → Widget?
- 
  An optional title widget for the section header, allowing custom UI elements like Text or RichText to be placed prominently above the content.
  final
- titleText → String?
- 
  An optional string-based title for the section, rendered as plain text in the header bar. Use this for simple textual titles when a custom title widget is not needed.
  final
- 
  trailing
  → List<Widget> 
- 
  A list of widgets to display on the trailing (right) side of the header bar, typically for actions like buttons or menus. Defaults to an empty list.
  final
- underline → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- x2Large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- x3Large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- x4Large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- x5Large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- x6Large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- x7Large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- x8Large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- x9Large → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- xLarge → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
- xSmall → TextModifier
- 
      Available on Widget, provided by the TextExtension extension no setter
Methods
- 
  animate({Key? key, List< Effect> ? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) → Animate
- 
      Available on Widget, provided by the AnimateWidgetExtensions extension Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex.myWidget.animate()is equivalent toAnimate(child: myWidget).
- 
  asSkeleton({bool enabled = true, bool leaf = false, Widget? replacement, bool unite = false, AsyncSnapshot? snapshot}) → Widget 
- 
      Available on Widget, provided by the SkeletonExtension extension Converts the widget to a skeleton with advanced configuration options.
- 
  asSkeletonSliver({bool enabled = true}) → Widget 
- 
      Available on Widget, provided by the SkeletonExtension extension Converts the widget to a skeleton suitable for sliver layouts.
- 
  ast(int ml) → Widget 
- 
  build(BuildContext context) → Widget 
- 
  Builds and returns the Section widget.
  override
- 
  center({Key? key}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  clip({Clip clipBehavior = Clip.hardEdge}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  clipOval({Clip clipBehavior = Clip.antiAlias}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  clipPath({Clip clipBehavior = Clip.antiAlias, required CustomClipper< Path> clipper}) → Widget
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  clipRRect({BorderRadiusGeometry borderRadius = BorderRadius.zero, Clip clipBehavior = Clip.antiAlias}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  constrained({double? minWidth, double? maxWidth, double? minHeight, double? maxHeight, double? width, double? height}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  createElement() → StatelessElement 
- 
  Creates a StatelessElement to manage this widget's location in the tree.
  inherited
- 
  debugContainer([Color color = Colors.red]) → Widget 
- 
      Available on Widget, provided by the DebugContainer extension 
- 
  debugDescribeChildren() → List< DiagnosticsNode> 
- 
  Returns a list of DiagnosticsNode objects describing this node's
children.
  inherited
- 
  debugFillProperties(DiagnosticPropertiesBuilder properties) → void 
- 
  Add additional properties associated with the node.
  inherited
- 
  excludeSkeleton({bool exclude = true}) → Widget 
- 
      Available on Widget, provided by the SkeletonExtension extension Controls whether the widget should be preserved in skeleton mode.
- 
  expanded({int flex = 1}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  iconDestructiveForeground() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconLarge() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconMedium() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconMutedForeground() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconPrimary() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconPrimaryForeground() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconSecondary() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconSecondaryForeground() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconSmall() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconX2Large() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconX2Small() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconX3Large() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconX3Small() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconX4Large() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconX4Small() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconXLarge() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  iconXSmall() → Widget 
- 
      Available on Widget, provided by the IconExtension extension 
- 
  ignoreSkeleton() → Widget 
- 
      Available on Widget, provided by the SkeletonExtension extension Excludes the widget from skeleton effects in its parent skeleton context.
- 
  intrinsic({double? stepWidth, double? stepHeight}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  intrinsicHeight() → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  intrinsicWidth({double? stepWidth, double? stepHeight}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  isSliver(BuildContext context) → bool 
- 
      Available on Widget, provided by the XSliverWidget extension 
- 
  noSuchMethod(Invocation invocation) → dynamic 
- 
  Invoked when a nonexistent method or property is accessed.
  inherited
- 
  onDoublePressed(VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget
- 
      Available on Widget, provided by the XOnGestureWidget extension Adds a handler for double press/tap gestures to this widget in Arcane UI.
- 
  onHover(void action(bool hovering)) → Widget 
- 
      Available on Widget, provided by the XOnGestureWidget extension Adds a handler for hover events to this widget in Arcane UI.
- 
  onLongPressed(VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget
- 
      Available on Widget, provided by the XOnGestureWidget extension Adds a handler for long press gestures with the primary button to this widget in Arcane UI.
- 
  onLongSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget
- 
      Available on Widget, provided by the XOnGestureWidget extension Adds a handler for long press gestures with the secondary button to this widget in Arcane UI.
- 
  onLongTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget
- 
      Available on Widget, provided by the XOnGestureWidget extension Adds a handler for long press gestures with the tertiary button to this widget in Arcane UI.
- 
  onPressed(VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget
- 
      Available on Widget, provided by the XOnGestureWidget extension Adds a handler for primary press/tap gestures to this widget in Arcane UI.
- 
  onSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget
- 
      Available on Widget, provided by the XOnGestureWidget extension Adds a handler for secondary press gestures (right-click) to this widget in Arcane UI.
- 
  onTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set< PointerDeviceKind> ? supportedDevices}) → Widget
- 
      Available on Widget, provided by the XOnGestureWidget extension Adds a handler for tertiary press gestures (middle-click) to this widget in Arcane UI.
- 
  pad(double all) → Widget 
- 
  padBottom(double value) → Widget 
- 
  padBy({double? left, double? top, double? right, double? bottom, double? horizontal, double? vertical}) → Widget 
- 
      Available on Widget, provided by the XWidgetArcane extension 
- 
  padHorizontal(double value) → Widget 
- 
      Available on Widget, provided by the XWidgetArcane extension 
- 
  padLeft(double value) → Widget 
- 
  padOnly({double left = 0, double top = 0, double right = 0, double bottom = 0}) → Widget 
- 
  padRight(double value) → Widget 
- 
  padSliverBy({double? left, double? top, double? right, double? bottom, double? horizontal, double? vertical}) → Widget 
- 
      Available on Widget, provided by the XWidgetArcane extension 
- 
  padSliverHorizontal(double value) → Widget 
- 
      Available on Widget, provided by the XWidgetArcane extension 
- 
  padTop(double value) → Widget 
- 
  positioned({Key? key, double? left, double? top, double? right, double? bottom}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  shadeEdge(double radius) → Widget 
- 
      Available on Widget, provided by the XWidgetEdge extension 
- 
  shadeFrost(double value) → Widget 
- 
      Available on Widget, provided by the XWidgetFrost extension 
- 
  shadeInvert() → Widget 
- 
      Available on Widget, provided by the XWidgetInvert extension 
- 
  shadePixelate(double radius) → Widget 
- 
      Available on Widget, provided by the XWidgetPixelate extension 
- 
  shadePixelateBlur({int samples = 4, double pixelSize = 8, double radius = 2}) → Widget 
- 
      Available on Widget, provided by the XWidgetPixelateBlur extension 
- 
  shadeRGB({double radius = 5, double spin = 1}) → Widget 
- 
      Available on Widget, provided by the XWidgetRGB extension 
- 
  shadeWarp({double amplitude = 1, double frequency = 1, double z = 1, int octaves = 2}) → Widget 
- 
      Available on Widget, provided by the XWidgetWarp extension 
- 
  shadeWarpAnimation({double amplitude = 1, double frequency = 1, double z = 1, double zSpeed = 1, int octaves = 2}) → Widget 
- 
      Available on Widget, provided by the XWidgetWarp extension 
- 
  shimmer({bool loading = true}) → Widget 
- 
      Available on Widget, provided by the XWidgetArcane extension 
- 
  sized({double? width, double? height}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  sized({double? width, double? height}) → Widget 
- 
  then(InlineSpan span) → Widget 
- 
      Available on Widget, provided by the TextExtension extension 
- 
  thenButton({required VoidCallback onPressed, required Widget child}) → Widget 
- 
      Available on Widget, provided by the TextExtension extension 
- 
  thenInlineCode(String text) → Widget 
- 
      Available on Widget, provided by the TextExtension extension 
- 
  thenText(String text) → Widget 
- 
      Available on Widget, provided by the TextExtension extension 
- 
  toBox(BuildContext context, {bool softWarn = true}) → Widget 
- 
      Available on Widget, provided by the XSliverWidget extension 
- 
  toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode 
- 
  Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
  inherited
- 
  toSliver(BuildContext context, {bool fillRemaining = false, bool softWarn = true}) → Widget 
- 
      Available on Widget, provided by the XSliverWidget extension 
- 
  toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String 
- 
  A string representation of this object.
  inherited
- 
  toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String 
- 
  Returns a string representation of this node and its descendants.
  inherited
- 
  toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String 
- 
  Returns a one-line detailed description of the object.
  inherited
- 
  toStringShort() → String 
- 
  A short, textual description of this widget.
  inherited
- 
  transform({Key? key, required Matrix4 transform}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  withAlign(AlignmentGeometry alignment) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  withMargin({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  withOpacity(double opacity) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  withPadding({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all, EdgeInsetsGeometry? padding}) → Widget 
- 
      Available on Widget, provided by the WidgetExtension extension 
- 
  withTooltip(String tooltip) → Widget 
- 
      Available on Widget, provided by the XWidgetArcane extension 
Operators
- 
  operator ==(Object other) → bool 
- 
  The equality operator.
  inherited