TTile class

A versatile tile widget containing a leading icon/image container, title, subtitle, and optional trailing widget.

TTile can be used standalone, inside cards, lists, accordions, and table cells. Sizing uses the unified TSize system, with presets TTileSize.h1 through TTileSize.h6 available via size or named constructors TTile.h1 through TTile.h6. All visual properties including icon colors, background colors, padding, border radius, text styles, and spacing are fully configurable.

Inheritance
Available extensions

Constructors

TTile({Key? key, TSize size = TTileSize.h5, String? title, Widget? titleWidget, String? subtitle, Widget? subtitleWidget, dynamic icon, dynamic leading, Color? iconColor, Color? hoveredIconColor, Color? expandedIconColor, Color? iconBackgroundColor, Color? hoveredIconBackgroundColor, Color? expandedIconBackgroundColor, EdgeInsetsGeometry? iconPadding, BorderRadius? iconBorderRadius, double? iconSize, TextStyle? titleStyle, TextStyle? subtitleStyle, double? spacing, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, Widget? trailing, VoidCallback? onTap, EdgeInsetsGeometry? padding, BorderRadius? borderRadius, bool isHovered = false, bool isExpanded = false})
const
TTile.h1({Key? key, String? title, Widget? titleWidget, String? subtitle, Widget? subtitleWidget, dynamic icon, dynamic leading, Color? iconColor, Color? hoveredIconColor, Color? expandedIconColor, Color? iconBackgroundColor, Color? hoveredIconBackgroundColor, Color? expandedIconBackgroundColor, EdgeInsetsGeometry? iconPadding, BorderRadius? iconBorderRadius, double? iconSize, TextStyle? titleStyle, TextStyle? subtitleStyle, double? spacing, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, Widget? trailing, VoidCallback? onTap, EdgeInsetsGeometry? padding, BorderRadius? borderRadius, bool isHovered = false, bool isExpanded = false})
Heading 1: Extra-large tile for hero headers, primary dashboards, and page titles.
const
TTile.h2({Key? key, String? title, Widget? titleWidget, String? subtitle, Widget? subtitleWidget, dynamic icon, dynamic leading, Color? iconColor, Color? hoveredIconColor, Color? expandedIconColor, Color? iconBackgroundColor, Color? hoveredIconBackgroundColor, Color? expandedIconBackgroundColor, EdgeInsetsGeometry? iconPadding, BorderRadius? iconBorderRadius, double? iconSize, TextStyle? titleStyle, TextStyle? subtitleStyle, double? spacing, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, Widget? trailing, VoidCallback? onTap, EdgeInsetsGeometry? padding, BorderRadius? borderRadius, bool isHovered = false, bool isExpanded = false})
Heading 2: Large tile for major section headers and modal titles.
const
TTile.h3({Key? key, String? title, Widget? titleWidget, String? subtitle, Widget? subtitleWidget, dynamic icon, dynamic leading, Color? iconColor, Color? hoveredIconColor, Color? expandedIconColor, Color? iconBackgroundColor, Color? hoveredIconBackgroundColor, Color? expandedIconBackgroundColor, EdgeInsetsGeometry? iconPadding, BorderRadius? iconBorderRadius, double? iconSize, TextStyle? titleStyle, TextStyle? subtitleStyle, double? spacing, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, Widget? trailing, VoidCallback? onTap, EdgeInsetsGeometry? padding, BorderRadius? borderRadius, bool isHovered = false, bool isExpanded = false})
Heading 3: Medium-large tile for secondary sections and large card headers.
const
TTile.h4({Key? key, String? title, Widget? titleWidget, String? subtitle, Widget? subtitleWidget, dynamic icon, dynamic leading, Color? iconColor, Color? hoveredIconColor, Color? expandedIconColor, Color? iconBackgroundColor, Color? hoveredIconBackgroundColor, Color? expandedIconBackgroundColor, EdgeInsetsGeometry? iconPadding, BorderRadius? iconBorderRadius, double? iconSize, TextStyle? titleStyle, TextStyle? subtitleStyle, double? spacing, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, Widget? trailing, VoidCallback? onTap, EdgeInsetsGeometry? padding, BorderRadius? borderRadius, bool isHovered = false, bool isExpanded = false})
Heading 4: Standard prominent tile for regular cards and dialog sections.
const
TTile.h5({Key? key, String? title, Widget? titleWidget, String? subtitle, Widget? subtitleWidget, dynamic icon, dynamic leading, Color? iconColor, Color? hoveredIconColor, Color? expandedIconColor, Color? iconBackgroundColor, Color? hoveredIconBackgroundColor, Color? expandedIconBackgroundColor, EdgeInsetsGeometry? iconPadding, BorderRadius? iconBorderRadius, double? iconSize, TextStyle? titleStyle, TextStyle? subtitleStyle, double? spacing, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, Widget? trailing, VoidCallback? onTap, EdgeInsetsGeometry? padding, BorderRadius? borderRadius, bool isHovered = false, bool isExpanded = false})
Heading 5: Standard default tile for lists, accordions, and table cells.
const
TTile.h6({Key? key, String? title, Widget? titleWidget, String? subtitle, Widget? subtitleWidget, dynamic icon, dynamic leading, Color? iconColor, Color? hoveredIconColor, Color? expandedIconColor, Color? iconBackgroundColor, Color? hoveredIconBackgroundColor, Color? expandedIconBackgroundColor, EdgeInsetsGeometry? iconPadding, BorderRadius? iconBorderRadius, double? iconSize, TextStyle? titleStyle, TextStyle? subtitleStyle, double? spacing, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, Widget? trailing, VoidCallback? onTap, EdgeInsetsGeometry? padding, BorderRadius? borderRadius, bool isHovered = false, bool isExpanded = false})
Heading 6: Compact/dense tile for tight lists, sidebars, and dense table rows.
const

Properties

borderRadius → BorderRadius?
Border radius of the tile when clickable.
final
crossAxisAlignment → CrossAxisAlignment
Cross axis alignment of the row.
final
expandedIconBackgroundColor → Color?
Background color of the leading icon container when expanded/active.
final
expandedIconColor → Color?
Color of the leading icon when expanded/active.
final
hashCode → int
The hash code for this object.
no setterinherited
hoveredIconBackgroundColor → Color?
Background color of the leading icon container when hovered.
final
hoveredIconColor → Color?
Color of the leading icon when hovered.
final
icon → dynamic
Leading icon. Supports IconData, HugeIcon, or Widget.
final
iconBackgroundColor → Color?
Background color of the leading icon container.
final
iconBorderRadius → BorderRadius?
Border radius of the leading icon container.
final
iconColor → Color?
Color of the leading icon.
final
iconPadding → EdgeInsetsGeometry?
Padding inside the leading icon container.
final
iconSize → double?
Size of the leading icon.
final
isExpanded → bool
Whether the tile is currently in an expanded/active state.
final
isHovered → bool
Whether the tile is currently in a hovered state.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
leading → dynamic
Leading icon. Alias for icon.
final
onTap → VoidCallback?
Callback when the tile is tapped.
final
padding → EdgeInsetsGeometry?
Internal padding around the tile.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
size → TSize
The size configuration of the tile. Defaults to TTileSize.h5.
final
spacing → double?
Horizontal spacing between the leading icon and title/subtitle column.
final
subtitle → String?
Optional subtitle text displayed below the title.
final
subtitleStyle → TextStyle?
Text style for the subtitle. Merged on top of default sizing style if provided.
final
subtitleWidget → Widget?
Custom widget for the subtitle.
final
title → String?
The title text to display.
final
titleStyle → TextStyle?
Text style for the title. Merged on top of default sizing style if provided.
final
titleWidget → Widget?
Custom widget for the title.
final
trailing → Widget?
Optional trailing widget.
final

Methods

box({double minW = 0.0, double minH = 0.0, double maxW = double.infinity, double maxH = double.infinity}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a ConstrainedBox to apply layout constraints.
build(BuildContext context) → Widget
Describes the part of the user interface represented by this widget.
override
center({bool when = true}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Center widget.
createElement() → StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
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
expanded({int flex = 1}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in an Expanded widget.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
padding([double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0]) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Padding with flexible edge control.
paddingSymmetric({double h = 0.0, double v = 0.0}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Padding with symmetric horizontal and vertical spacing.
size({double? w, double? h}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a SizedBox to apply fixed width and/or height.
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
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
visible(bool visible, {bool maintainState = false}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Visibility widget.
when(bool condition) → Widget

Available on Widget, provided by the WidgetX extension

Returns this widget if condition is true, otherwise returns SizedBox.shrink(). Usage: Text('Hello').when(isVisible)

Operators

operator ==(Object other) → bool
The equality operator.
inherited