Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
229720f
feat(scaffold): add StreamScaffold with floating app-bar / bottom-bar…
xsahil03x Aug 4, 2026
06b6c10
feat(ui): unify toolbar floating behaviour with StreamToolbarScope/Bu…
xsahil03x Aug 6, 2026
5f94eb1
chore: Update Goldens
xsahil03x Aug 6, 2026
222a11d
fix(theme): regenerate StreamColorScheme so brightness is threaded th…
xsahil03x Aug 6, 2026
2beebd3
refine(ui): graceful toolbar-scope fallback + scaffold body constraints
xsahil03x Aug 6, 2026
97831f5
Merge remote-tracking branch 'origin/main' into feat/stream-scaffold
xsahil03x Aug 6, 2026
805804d
fix(toolbar): set nav-bar height to 64, regen CI goldens, fix test ac…
xsahil03x Aug 6, 2026
be2d804
docs(toolbar,scaffold): use recommending voice per Effective Dart
xsahil03x Aug 6, 2026
3612fa1
docs(toolbar): describe the contract, not implementation
xsahil03x Aug 6, 2026
7f6c6a6
test(toolbar): add StreamBottomAppBar floating golden + pill-margin a…
xsahil03x Aug 6, 2026
69feed0
refactor(scaffold): drop the inert extendBody flag
xsahil03x Aug 6, 2026
11883b3
test(toolbar,scaffold): prune redundant / low-value tests
xsahil03x Aug 6, 2026
c49bf29
refactor(toolbar): unify StreamBottomNavBarBehavior into StreamToolba…
xsahil03x Aug 6, 2026
959383c
refactor(theme): unify StreamAppStyle + StreamToolbarBehavior into St…
xsahil03x Aug 6, 2026
21c5c36
refactor(theme): rename the surface-style prop to `surfaceStyle`
xsahil03x Aug 6, 2026
92de4a3
refactor(toolbar): resolve surfaceStyle inline, drop it from token-de…
xsahil03x Aug 6, 2026
b65ba12
feat(theme): add context.streamSurfaceStyle extension getter
xsahil03x Aug 6, 2026
06f9e58
docs(theme): align surface-style dartdocs with repo conventions
xsahil03x Aug 6, 2026
c07a5bf
docs(theme): describe StreamSurfaceStyle abstractly, not per component
xsahil03x Aug 6, 2026
adbb5a3
docs(theme): match SDK enum-doc conventions for StreamSurfaceStyle
xsahil03x Aug 6, 2026
6782ebf
docs(theme): terser StreamSurfaceStyle summary line
xsahil03x Aug 6, 2026
e581c88
docs(ui): terser first-line summaries for StreamScaffold / BottomNavB…
xsahil03x Aug 6, 2026
4a44b57
docs: normalize field docs — US 'color', noun phrases, sibling parity
xsahil03x Aug 6, 2026
32332ef
docs(theme): clarify app-bar floatingBackgroundColor is the gradient-…
xsahil03x Aug 6, 2026
73dab13
docs(theme): describe floatingBackgroundColor as contract, not rendering
xsahil03x Aug 6, 2026
65b30b1
refactor(toolbar): StreamToolbarButton requires a toolbar scope via of()
xsahil03x Aug 6, 2026
a6ea36b
docs+test+gallery: address independent PR-review findings
xsahil03x Aug 6, 2026
a696a1d
feat(nav-bar): align StreamBottomNavBarItem with Material's item slots
xsahil03x Aug 6, 2026
d9a78aa
refactor(nav-bar): match Material's tooltip/semanticsLabel handling
xsahil03x Aug 6, 2026
192f2e5
fix(nav-bar): offset item tooltip clear of the tile
xsahil03x Aug 6, 2026
94eb651
style(nav-bar): drop tooltip comment
xsahil03x Aug 6, 2026
beb0c93
fix(nav-bar): keep floating pill clear of the system bottom inset
xsahil03x Aug 6, 2026
0bb6041
refactor(nav-bar): float the pill via SafeArea + margin, not raw Padding
xsahil03x Aug 6, 2026
ca94154
feat(common): add StreamSafeArea and route the floating nav bar throu…
xsahil03x Aug 6, 2026
5ed94b4
refactor(common): StreamSafeArea composes SafeArea + margin, drop avo…
xsahil03x Aug 6, 2026
f72b11b
feat(common): expose maintainBottomViewPadding on StreamSafeArea
xsahil03x Aug 6, 2026
d35762c
docs(common): make StreamSafeArea docs contract-only; test all nav modes
xsahil03x Aug 6, 2026
a6fb114
docs(common): mirror Flutter's SafeArea doc style on StreamSafeArea
xsahil03x Aug 6, 2026
b32bd2d
test(common): verify StreamSafeArea insets physical edges under RTL
xsahil03x Aug 6, 2026
e76c914
fix(nav-bar): tighten floating pill bottom margin to spacing.xs
xsahil03x Aug 7, 2026
1e6616f
feat(nav-bar): floor the floating pill's bottom gap at spacing.xxl
xsahil03x Aug 7, 2026
0666391
fix(nav-bar): give the floating pill a uniform gap above the system UI
xsahil03x Aug 7, 2026
ae5ccfd
fix(nav-bar): only gap the floating pill above an opaque nav bar
xsahil03x Aug 7, 2026
e016566
revert(nav-bar): drop the opaque-bar heuristic for a uniform gap
xsahil03x Aug 7, 2026
29a48e7
docs(common): keep StreamSafeArea's SafeArea see-also contract-only
xsahil03x Aug 7, 2026
0e63485
feat(common): add StreamSafeArea.collapsing for an animated inset
xsahil03x Aug 7, 2026
6aacfa2
refactor(common): generalize the animated safe area to StreamSafeArea…
xsahil03x Aug 7, 2026
4ab36de
fix(common): StreamSafeArea.driven also absorbs the safe area
xsahil03x Aug 7, 2026
cd9e0e6
test(common): cover StreamSafeArea reactivity + default consume; doc …
xsahil03x Aug 7, 2026
4bf83ac
refactor(common): one implementation for StreamSafeArea, drop SafeArea
xsahil03x Aug 7, 2026
bca7775
docs(common): note resolveInsets returns the full (pre-interpolation)…
xsahil03x Aug 7, 2026
119abda
test(common): parity with Flutter's SafeArea suite + debugFillProperties
xsahil03x Aug 7, 2026
d133cbb
refactor(common): default StreamSafeArea.maintainBottomViewPadding to…
xsahil03x Aug 7, 2026
7f83173
fix(toolbar): floor the floating nav pill's bottom gap at spacing.md
xsahil03x Aug 7, 2026
3325f8a
feat(toolbar): let StreamToolbarButton override the resolved type
xsahil03x Aug 7, 2026
401b891
chore(thumb): drop accidentally-committed generated linux plugin files
xsahil03x Aug 7, 2026
8425a0f
chore(gallery): revert accidental macOS Xcode churn
xsahil03x Aug 7, 2026
208309b
refactor(scaffold): rename bottomBarSurfaceStyle to bottomSurfaceStyle
xsahil03x Aug 7, 2026
c4308b3
feat(ui): make `StreamBottomNavBar` bottom spacing platform-adaptive
xsahil03x Aug 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ import 'package:design_system_gallery/components/reaction/stream_reaction_picker
as _design_system_gallery_components_reaction_stream_reaction_picker;
import 'package:design_system_gallery/components/reaction/stream_reactions.dart'
as _design_system_gallery_components_reaction_stream_reactions;
import 'package:design_system_gallery/components/scaffold/stream_scaffold.dart'
as _design_system_gallery_components_scaffold_stream_scaffold;
import 'package:design_system_gallery/components/sheet/stream_sheet.dart'
as _design_system_gallery_components_sheet_stream_sheet;
import 'package:design_system_gallery/components/snackbar/stream_snackbar.dart'
Expand All @@ -124,6 +126,8 @@ import 'package:design_system_gallery/components/toolbar/stream_bottom_nav_bar.d
as _design_system_gallery_components_toolbar_stream_bottom_nav_bar;
import 'package:design_system_gallery/components/toolbar/stream_sheet_header.dart'
as _design_system_gallery_components_toolbar_stream_sheet_header;
import 'package:design_system_gallery/components/toolbar/stream_toolbar_button.dart'
as _design_system_gallery_components_toolbar_stream_toolbar_button;
import 'package:design_system_gallery/primitives/colors.dart'
as _design_system_gallery_primitives_colors;
import 'package:design_system_gallery/primitives/icons.dart'
Expand Down Expand Up @@ -1133,6 +1137,28 @@ final directories = <_widgetbook.WidgetbookNode>[
),
],
),
_widgetbook.WidgetbookFolder(
name: 'Scaffold',
children: [
_widgetbook.WidgetbookComponent(
name: 'StreamScaffold',
useCases: [
_widgetbook.WidgetbookUseCase(
name: 'Playground',
builder:
_design_system_gallery_components_scaffold_stream_scaffold
.buildStreamScaffoldPlayground,
),
_widgetbook.WidgetbookUseCase(
name: 'Real-world Example',
builder:
_design_system_gallery_components_scaffold_stream_scaffold
.buildStreamScaffoldDrawers,
),
],
),
],
),
_widgetbook.WidgetbookFolder(
name: 'Sheet',
children: [
Expand Down Expand Up @@ -1268,6 +1294,23 @@ final directories = <_widgetbook.WidgetbookNode>[
),
],
),
_widgetbook.WidgetbookComponent(
name: 'StreamToolbarButton',
useCases: [
_widgetbook.WidgetbookUseCase(
name: 'Playground',
builder:
_design_system_gallery_components_toolbar_stream_toolbar_button
.buildStreamToolbarButtonPlayground,
),
_widgetbook.WidgetbookUseCase(
name: 'Real-world Example',
builder:
_design_system_gallery_components_toolbar_stream_toolbar_button
.buildStreamToolbarButtonRealWorld,
),
],
),
],
),
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,22 +41,41 @@ Widget buildStreamMediaViewerPlayground(BuildContext context) {
description: 'Duration of the chrome show/hide animation.',
);

final surfaceStyle = context.knobs.object.dropdown(
label: 'Chrome surfaceStyle',
options: StreamSurfaceStyle.values,
initialOption: StreamSurfaceStyle.floating,
description:
'Floating chrome overlays full-bleed media with a gradient fade; '
'regular chrome insets the media between opaque bars.',
);

final tintChrome = context.knobs.boolean(
label: 'Tint chrome over dark media',
description:
'Demonstrates StreamMediaViewerThemeData.appBarStyle / '
'bottomAppBarStyle — scopes a translucent chrome over the media.',
'bottomAppBarStyle — scopes a translucent chrome colour over the media.',
);

final tint = tintChrome ? const Color(0x55000000) : null;

return _MediaViewerLauncher(
label: 'Open media viewer',
onPressed: (launchContext) => _push(
launchContext,
StreamMediaViewerTheme(
data: StreamMediaViewerThemeData(
chromeAnimationDuration: Duration(milliseconds: animationMs.round()),
appBarStyle: tintChrome ? const StreamAppBarStyle(backgroundColor: Color(0x55000000)) : null,
bottomAppBarStyle: tintChrome ? const StreamBottomAppBarStyle(backgroundColor: Color(0x55000000)) : null,
appBarStyle: StreamAppBarStyle(
surfaceStyle: surfaceStyle,
backgroundColor: tint,
floatingBackgroundColor: tint,
),
bottomAppBarStyle: StreamBottomAppBarStyle(
surfaceStyle: surfaceStyle,
backgroundColor: tint,
floatingBackgroundColor: tint,
),
),
child: _PlaygroundMediaViewer(
showHeader: showHeader,
Expand Down
Loading
Loading