unfold library

Layouts for iPhone Duo from UIKit's own APIs, plus Android foldables.

Classes

AdaptiveAction
A bar action in an AdaptiveNavigationScaffold: in the app bar, or at the top of iPhone Duo's side column.
AdaptiveDestination
A destination in an AdaptiveNavigationScaffold.
AdaptiveNavigationScaffold
Tabs and actions in iPhone Duo's side column, a rail on wide windows, or a bottom bar.
DeviceGeometry
What the platform says about the shape of the device.
DeviceGeometryScope
Provides DeviceGeometry below it, e.g. from MaterialApp.builder.
Fold
A fold or hinge across the window.
FoldSplit
primary and secondary side by side, divided where the window divides.
HingeAngleBuilder
Rebuilds builder with each hinge angle, in degrees, and nothing above it.
OcclusionSafeArea
Insets child away from the active occlusions it overlaps: the camera, the status bar column, margins included.
ReservedRegion
A UIView.ReservedRegion; frame includes margins.
SideStrip
The column iPhone Duo keeps for its camera, status bar and bars.
TabletopSplit
top above the fold and bottom below it in tabletop posture.
Unfold
Platform calls outside the widget tree.
UnfoldAndroid
Android needs no native code: it reports folds through MediaQuery.displayFeatures, which DeviceGeometryScope reads.

Enums

DisplayFeatureBridge
What DeviceGeometryScope publishes to MediaQuery.displayFeatures on iOS.
GeometryAspect
Which part of DeviceGeometry a widget depends on.
HingeStatus
UIHinge.Status on iOS; mapped from the fold posture on Android.
SizeClass
UIUserInterfaceSizeClass: iOS lays out from these, not from widths.
StripSide
A physical side edge. iPhone Duo keeps its bar column on the same hardware side in right-to-left languages, so this is never leading or trailing.
VerticalBarCompression
What gives way first when tabs and actions do not both fit in the column (UINavigationItem.verticalBarCompressionBehavior).

Extensions

DeviceGeometryContext on BuildContext
Reads the device's geometry from the nearest DeviceGeometryScope.