import 'dart:ui'; import 'package:flutter/material.dart'; /// Pastille circulaire en verre dépoli, posée sur une photo. /// /// Remplace les ronds `Colors.black.withValues(alpha: 0.3)` qui s'écrasaient /// sur les images sombres : le flou détache la pastille de n'importe quel fond, /// le liseré clair garde un contour visible sur une photo claire. /// /// Trois usages : réglages et lunettes sur le héros de l'accueil, badge de /// téléchargement sur une tuile bento. class GlassPill extends StatelessWidget { final double size; final Widget child; final VoidCallback? onTap; final VoidCallback? onLongPress; const GlassPill({ super.key, required this.child, this.size = 46, this.onTap, this.onLongPress, }); @override Widget build(BuildContext context) { return GestureDetector( onTap: onTap, onLongPress: onLongPress, child: ClipOval( child: BackdropFilter( filter: ImageFilter.blur(sigmaX: 12, sigmaY: 12), child: Container( width: size, height: size, decoration: BoxDecoration( shape: BoxShape.circle, color: Colors.black.withValues(alpha: 0.28), border: Border.all(color: Colors.white24, width: 1), ), child: Center(child: child), ), ), ), ); } }