1.4.0
Minor changes
-
Docked toolbar (M6, COMPONENT_SPEC §10; Compose
FlexibleBottomAppBar): spread, center, space-around and space-evenly arrangements, standard and vibrant colors, exit-on-scroll on the fast spatial snap spring. Newcomponents/docked-toolbar-defaults.cssandcomponents/bottom-app-bar-defaults.csstokens (the BottomAppBarDefaults values Compose renders), m3e-cssdocked-toolbar.css, m3e-elements<m3e-docked-toolbar>plus thedocked-toolbar-layout.js(DockedToolbarLayout) entry, and m3e-react<DockedToolbar>. The legacy bottom app bar ships deprecated (D4): m3e-cssbottom-app-bar.cssand m3e-react<BottomAppBar>(one-time dev warning). The exit-always scroll code is now shared by the floating toolbar, the docked toolbar and the top app bar (no behavior change). -
Floating toolbar (M6, COMPONENT_SPEC §9): horizontal and vertical, standard and vibrant, with a FAB, expanded/collapsed and exit-on-scroll. New
components/floating-toolbar-defaults.csstokens (the FloatingToolbarDefaults values Compose renders), m3e-cssfloating-toolbar.css, m3e-motion floating toolbar scroll math andtoolbarNavigationTarget, m3e-elements<m3e-floating-toolbar>plus thefloating-toolbar-layout.js(FloatingToolbarLayout) androving-focus.js(RovingFocus) entries, and m3e-react<FloatingToolbar>. -
Progress indicators (COMPONENT_SPEC §8): linear and circular, flat and wavy, determinate and indeterminate, default (4dp) and thick (8dp). m3e-css
linear-progress.css/circular-progress.css: flat indicators in CSS only (the value is--m3e-comp-progress-indicator-value, 0–1; indeterminate lines and arcs run Compose's keyframes), modifiers--wavy,--thick. m3e-elements:<m3e-linear-progress>/<m3e-circular-progress>(value,shape,thickness,amplitude,wavelength,wave-speed,label) and the shared@kyralabs/m3e-elements/progress-indicator.jsdrivers: values spring onProgressIndicatorDefaults.ProgressAnimationSpecwith their velocity kept, wavy indicators draw Compose's wave (linear quadratic wave, circular star morphed from a circle) every frame, travelling one wavelength per second, with the determinate amplitude ramp. m3e-react:<LinearProgress>/<CircularProgress>with the same props. m3e-tokens:components/progress-indicator-defaults.css(the ProgressIndicator / WavyProgressIndicator values Compose renders that are not in the token files, and the indeterminate keyframes). m3e-motion:cubicBezier, the progress timelines andAmplitudeAnimation. m3e-shapes:PathMeasure,LinearWavyPathCache,CircularWavyPathCacheandQpath commands. -
Search (M6, COMPONENT_SPEC §12; Compose
SearchBar,SearchBarDefaults.InputField,AppBarWithSearchand the four expanded views): the collapsed search bar, the full-screen, full-screen contained, docked and docked-with-gap expanded views (expand / collapse on Compose's SearchBarState springs and fades, interruptible), the ARIA combobox (virtual focus over a results listbox), light dismiss and the full-screen focus trap, and AppBarWithSearch with its enter-always scroll behavior and scrolled colors. Newcomponents/search-defaults.csstokens (the SearchBarDefaults / SearchBar.kt values Compose renders), m3e-csssearch.css, m3e-motionSearchBarAnimation,searchViewFrameandsearchNavigationTarget, m3e-elements<m3e-search>/<m3e-search-result>plus thesearch-layout.js(SearchLayout) entry, and m3e-react<SearchBar>,<SearchResult>and<AppBarWithSearch>. -
Top app bars (M6, COMPONENT_SPEC §11): center-aligned (Compose
CenterAlignedTopAppBar, or any bar withtitleHorizontalAlignmentcenter), medium and large flexible (MediumFlexibleTopAppBar,LargeFlexibleTopAppBar, with title + subtitle) and two-rows (TwoRowsTopAppBar: custom heights, per-row titles), plus the exit-until-collapsed scroll behavior: the expanded row collapses with the scroll to the 64dp small bar, the titles crossfade and the container color follows the collapsed fraction, as Compose computes them.components/top-app-bar-defaults.cssgains the TopAppBarDefaults heights, the title bottom paddings, the snap spring and the two-rows easings; m3e-css adds.m3e-top-app-bar--center-aligned,--medium-flexible,--large-flexible,--two-rowsand the__expandedpart; m3e-motion addsexit-until-collapsedtoscrollAppBarandtwoRowsFrame(on the sharedcubicBezier);attachTopAppBarScrollacceptsbehavior: 'exit-until-collapsed'and drives two-rows bars;<TopAppBar>acceptsvariant'center-aligned' | 'medium-flexible' | 'large-flexible' | 'two-rows',titleHorizontalAlignment,collapsedHeight/expandedHeightand per-rowtitle/subtitlefunctions. The small bar's DOM and classes are unchanged; its snap now jumps underprefers-reduced-motion(spatial motion off, CAC) and reads the generated--m3e-comp-top-app-bar-snap-*spring (still default effects).