import 'package:flutter/material.dart'; /// Press-Scale Mikro-Interaktion: Button skaliert beim Drücken auf 0.97. /// Verwendet AnimatedScale mit 120ms Curves.easeOut. class PressScale extends StatefulWidget { final Widget child; final VoidCallback? onTap; const PressScale({super.key, required this.child, this.onTap}); @override State createState() => _PressScaleState(); } class _PressScaleState extends State { double _scale = 1.0; @override Widget build(BuildContext context) { return GestureDetector( onTapDown: (_) => setState(() => _scale = 0.97), onTapUp: (_) { setState(() => _scale = 1.0); widget.onTap?.call(); }, onTapCancel: () => setState(() => _scale = 1.0), child: AnimatedScale( scale: _scale, duration: const Duration(milliseconds: 120), curve: Curves.easeOut, child: widget.child, ), ); } }