import 'package:flutter/material.dart'; /// Grille responsive pour les cartes machines (téléphone → tablette). abstract final class MachineGridLayout { static const _minTileWidth = 155.0; static const _maxTileWidth = 190.0; static SliverGridDelegate delegate(BuildContext context) { final width = MediaQuery.sizeOf(context).width; const padding = 32.0; final available = width - padding; if (available > _maxTileWidth * 3) { return const SliverGridDelegateWithMaxCrossAxisExtent( maxCrossAxisExtent: _maxTileWidth, mainAxisSpacing: 10, crossAxisSpacing: 10, childAspectRatio: 0.88, ); } final count = (available / _minTileWidth).floor().clamp(2, 3); return SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: count, mainAxisSpacing: 10, crossAxisSpacing: 10, childAspectRatio: count >= 3 ? 0.85 : 0.92, ); } }