feat(material): adopt expressive controls across the app

This commit is contained in:
zarzet committed 2026-09-27 17:01:11 +07:00
1 parent a9ed5a19cd
commit d390a214c3
23 files changed
+988 -138

No files matched your search

+28
View File
@@ -2,6 +2,8 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart' show CupertinoIcons;
import 'package:material_3_expressive/material_3_expressive.dart';
import 'package:spotiflac_android/theme/material_expressive.dart';
import 'package:spotiflac_android/widgets/app_switch.dart';
import 'package:spotiflac_android/theme/app_tokens.dart';
import 'package:spotiflac_android/theme/mornye_theme.dart';
@@ -236,6 +238,32 @@ class SettingsGroup extends StatelessWidget {
);
}
if (materialExpressiveEnabled(context)) {
return LayoutBuilder(
builder: (context, constraints) => Padding(
padding:
margin ??
EdgeInsets.symmetric(
horizontal:
16 +
(constraints.hasBoundedWidth
? wideInsetForWidth(constraints.maxWidth)
: 0),
vertical: 4,
),
child: MaterialExpressiveScope(
child: M3ECard(
variant: M3ECardVariant.filled,
color: cardColor,
padding: EdgeInsets.zero,
borderRadius: context.tokens.borderRadiusCard,
child: child,
),
),
),
);
}
// Explicit caller margin wins as-is. Otherwise center on wide surfaces
// using the incoming constraint (not screen width) so groups nested in an
// already clamped box, e.g. a bottom sheet, are not over-inset.