import 'package:flutter/material.dart'; class HighlightDecoration extends Decoration { final Color color; const HighlightDecoration({required this.color}); @override _HighlightDecorationPainter createBoxPainter([VoidCallback? onChanged]) { return _HighlightDecorationPainter(this, onChanged); } } class _HighlightDecorationPainter extends BoxPainter { final HighlightDecoration decoration; const _HighlightDecorationPainter(this.decoration, VoidCallback? onChanged) : super(onChanged); @override void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) { final size = configuration.size; if (size == null) return; final confHeight = size.height; final paintHeight = confHeight * .4; final rect = Rect.fromLTWH(offset.dx, offset.dy + confHeight - paintHeight, size.width, paintHeight); final paint = Paint()..color = decoration.color; canvas.drawRect(rect, paint); } }