What we shipped on 2026-08-29
Shipped 29 items (23 code, 3 infra, 2 docs, 1 release).
Code
fix(MenuItem): tighten base-variant padding when the leading icon slot is occupiedThe base variant used its px to indent a bare text row; when a leading icon or
fix(MorphingModal): stop the elevated shadow from being clipped by the panelThe panel carried overflow-hidden on the elevated surface itself, which clipped
fix(CommandPalette): hide shortcut hints and use a close button on touch screensOn narrow screens the palette is a full touch sheet, where keyboard-shortcut
fix(AnimatedList): render items on Fabric by animating height via layout transitionAnimating height through useAnimatedStyle is dropped by Yoga on the new
fix(gestures): claim the pan at hold so vertical drags beat the scrollOn native, a held row dragged straight down scrolled the enclosing
fix(FileSystem): settle expand animation before sampling drop pointsThe DragIntoOwnSubtree story sampled its drop coordinates while the
fix(AnimatedList): drive the entrance from a post-commit effectOn native, onLayout can fire in the same commit that first applies the
refactor(gestures): extract the rect-shift spatial predicate in drag-storeshiftZoneRects' per-entry filter combined a null check, a manager-path
chore(rows): drop two dead hold-menu geometry constantsHOLD MENU HEADING CLASS and HOLD ITEM SCALE are exported but never
refactor(buttons): consolidate variant glyph-colour mapping into button-variantsThe flat Button's buildSpinnerColor and the stateful Button's
refactor(menus): hoist MorphingSwitcher's pure pane/trigger computationsFive pure helpers extracted from the shell so the component body reads as
refactor(file-system): name store's load-guard, declared-folder, and file-filter helpersHoist three pure computations out of file-system-context.tsx so the
refactor(scripts): name the exportable-file predicate in check-exportsExtracts the six-operator condition in collectSourceFiles into an
refactor(gestures): name endDrag's drop-credit and fallback decisionsSplits the 4-boolean-operator condition in endDrag into a named
refactor(moti): hoist AnimatePresence's pure key logic into helpersExtracts the two pure computations from AnimatePresence — key classification
chore(ui): remove five unreferenced symbolsRemoves symbols with no importers anywhere in the tree (verified against
refactor(motion): consolidate layout and instant motion tokensAdd springLayout(spring) to lib/ease.ts — a Fabric-safe Reanimated layout transition that mirrors a Moti spring config — and replace the inline LinearTransition.springify().damping().stiffness().mass() chains with it, so a component's layout glide and its parallel Moti spring share one set of numbers instead of carrying a hand-kept copy.
fix(motion): resolve nested styles and onDidAnimate repeat callbackNested style objects (shadowOffset, textShadowOffset, …) now animate each inner value instead of handing the whole object to the spring, which collapsed the channels onto one shared value.
feat(theme): remove the `special` color token and its variantsDrop the non-semantic special accent: --color-special /
fix(menus): gate HoldItem twin children on the lift, not permanent mountThe portal twin of a HoldItem's children was mounted unconditionally, so
fix(motion): drive animated layout props through layout transitions for FabricAnimating width/height/top/left/margin/padding through Moti's pipeline doesn't
fix(menus): theme-exempt the BottomSheet scrim color
feat(menus): rebuild HoldMenu on shared Menu, raise elevation defaultsHoldMenu now maps its items onto the shared Menu in a new variant
Infra
fix(ci): upload APKs with application/vnd.android.package-archive Content-TypePort of the staging fix: S4 stores application/x-www-form-urlencoded on
ci: distribute APKs via MEGA S4 presigned links instead of GitHub artifacts/releasesPort of the staging change to main: the apk-production job PUTs the APK to
ci: distribute storybook APK via MEGA S4 presigned links instead of GitHub artifacts/releasesThe apk job no longer uploads the APK as an Actions artifact or creates
Docs
docs: de-identify fork origin and reattribute surface systemStrip references to the source project (offkeep) and cubby-ui from
chore: auto-sync README
Release
rn-motion-ui@7.0.0b2fffd9: feat: rename BloomMenu to MorphingMenu , and give it overlay + closeOnOutsidePress
← All shipped days