apptomate_custom_grid_tile 0.0.2 copy "apptomate_custom_grid_tile: ^0.0.2" to clipboard
apptomate_custom_grid_tile: ^0.0.2 copied to clipboard

A versatile grid tile widget with extensive customization options for building beautiful grid layouts with interactive elements.

CustomGridTile #

A versatile grid tile widget with extensive customization options for building beautiful grid layouts with interactive elements.

Features #

  • Flexible Layout:

    • Adjustable dimensions
    • Responsive content organization
    • Header, footer, and body sections
    • Center or left-aligned titles
  • Visual Customization:

    • Background colors/gradients
    • Custom borders and radius
    • Elevation and shadow effects
    • Text styling and overflow control
    • Interactive state colors
  • Content Options:

    • Leading icons/avatars
    • Trailing widgets
    • Custom footer section
    • Multi-line text support
  • Interaction:

    • Tap/long-press handlers
    • Visual feedback options
    • Disabled state support

Installation #

Installation #

Add the dependency to your pubspec.yaml:

dependencies:
  apptomate_custom_grid_tile: ^0.0.2

Basic Usage #

CustomGridTile(
  title: 'Product Name',
  subtitle: 'Product description',
  height: 150,
  onTap: () => navigateToProduct(),
)

Complete Examples #

1. Product Card #

CustomGridTile(
  title: 'Wireless Headphones',
  subtitle: 'Noise cancelling, 30hr battery',
  leading: Icon(Icons.headphones, size: 32),
  trailing: Icon(Icons.favorite_border),
  footer: Container(
    padding: EdgeInsets.all(4),
    color: Colors.black54,
    child: Text('\$199', 
      style: TextStyle(color: Colors.white)),
  ),
  backgroundColor: Colors.white,
  borderRadius: 12,
  elevation: 6,
)

2. Gradient Tile with Centered Content #

CustomGridTile(
  title: 'Premium Feature',
  subtitle: 'Exclusive content for members',
  centerTitle: true,
  gradient: LinearGradient(
    colors: [Colors.purple, Colors.deepPurple],
  ),
  titleStyle: TextStyle(color: Colors.white),
  subtitleStyle: TextStyle(color: Colors.white70),
  height: 180,
)

3. Compact Grid Item #

CustomGridTile(
  title: 'Compact Mode',
  height: 100,
  width: 100,
  padding: EdgeInsets.all(8),
  titleStyle: TextStyle(fontSize: 12),
  dense: true,
)

Parameter Reference #

Core Content #

Parameter Type Description
title String Required primary text
subtitle String? Optional secondary text
leading Widget? Leading widget
trailing Widget? Trailing widget
footer Widget? Footer widget

Layout #

Parameter Type Default Description
width double double.infinity Tile width
height double 120 Tile height
padding EdgeInsets 12 Inner padding
centerTitle bool false Center-align content
footerAlignment Alignment bottomRight Footer position

Text Styling #

Parameter Type Default Description
titleStyle TextStyle? null Title text style
subtitleStyle TextStyle? null Subtitle text style
titleMaxLines int? 1 Title line limit
subtitleMaxLines int? 2 Subtitle line limit
titleOverflow TextOverflow? ellipsis Title overflow
subtitleOverflow TextOverflow? ellipsis Subtitle overflow

Visual Styling #

Parameter Type Default Description
backgroundColor Color white Background color
gradient Gradient? null Background gradient
borderRadius double 8 Corner radius
elevation double 4 Shadow elevation
shadowColor Color grey Shadow color
customShadows List<BoxShadow>? null Custom shadows
border BoxBorder? null Border styling

Interaction #

Parameter Type Default Description
onTap VoidCallback? null Tap handler
onLongPress VoidCallback? null Long-press handler
showOverlayOnTap bool true Show tap overlay
splashColor Color? null Splash effect color
hoverColor Color? null Hover state color
highlightColor Color? null Highlight color

Best Practices #

  1. Grid Layouts:

    • Use consistent tile sizes in grids
    • Match aspect ratios with SliverGridDelegate
    • Consider responsive breakpoints
  2. Content Density:

    • Adjust padding for different tile sizes
    • Use titleMaxLines to control text layout
    • Consider dense mode for compact grids
  3. Visual Hierarchy:

    • Use elevation to indicate interactivity
    • Maintain consistent corner radii
    • Establish clear color schemes
  4. Performance:

    • Cache network images in tiles
    • Avoid complex widgets in large grids
    • Use const constructors where possible
0
likes
140
points
38
downloads

Publisher

unverified uploader

Weekly Downloads

A versatile grid tile widget with extensive customization options for building beautiful grid layouts with interactive elements.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on apptomate_custom_grid_tile