mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
## Summary
- Refine the mobile composer with compact and expanded states, shared
footer fades, haptics, reliable keyboard dismissal, and full-width
camera and photo surfaces.
- Standardize popovers, filters, and section menus with consistent type,
strokes, radii, spacing, icons, and destructive styling.
- Align message presentation with desktop through consistent system
rows, typing and loading feedback, emoji placement, and predictable
photo viewing.
## Validation
- `just mobile-check`
- `just mobile-test` — 1,037 passed, 1 skipped
- Tested on Pixel 10 and a connected iPhone
## Snapshots
<table>
<tr>
<td align="center">Compact composer</td>
<td align="center">Attachment menu</td>
<td align="center">Recent photos</td>
</tr>
<tr>
<td><img
src="https://raw.githubusercontent.com/block/buzz/9732022cb13bb39ce797c4faaa714fe4c924955f/pr-3918--01-compact-composer.png"
width="260" /></td>
<td><img
src="https://raw.githubusercontent.com/block/buzz/9732022cb13bb39ce797c4faaa714fe4c924955f/pr-3918--02-attachment-menu.png"
width="260" /></td>
<td><img
src="https://raw.githubusercontent.com/block/buzz/9732022cb13bb39ce797c4faaa714fe4c924955f/pr-3918--03-photo-surface.png"
width="260" /></td>
</tr>
</table>
---------
Signed-off-by: kenny lopez <klopez4212@gmail.com>
28 lines
969 B
Dart
28 lines
969 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:buzz/shared/theme/app_theme.dart';
|
|
|
|
void main() {
|
|
test('disables Material touch ripples in every app theme', () {
|
|
expect(AppTheme.light().splashFactory, NoSplash.splashFactory);
|
|
expect(AppTheme.dark().splashFactory, NoSplash.splashFactory);
|
|
});
|
|
|
|
test('uses Inter and the shared elevated popover treatment', () {
|
|
final theme = AppTheme.light();
|
|
final popupTheme = theme.popupMenuTheme;
|
|
final shape = popupTheme.shape! as RoundedRectangleBorder;
|
|
final side = shape.side;
|
|
|
|
expect(popupTheme.textStyle?.fontFamily, 'Inter');
|
|
expect(popupTheme.elevation, 8);
|
|
expect(
|
|
popupTheme.shadowColor,
|
|
theme.colorScheme.shadow.withValues(alpha: 0.18),
|
|
);
|
|
expect(shape.borderRadius, BorderRadius.circular(Radii.popover));
|
|
expect(side.color, Colors.black.withValues(alpha: 0.04));
|
|
expect(side.width, 1);
|
|
});
|
|
}
|