Animated Number Avatar Badge Button Button Group Toggle Toggle Group Checkbox Chip Countdown Divider Fab Grid Icon Image Input Search Input Textarea Label Loader Marquee Masked Input Message Bubble Notification Banner Offline Banner Progress Progress Ring Radio Group Range Slider Rating Separator Skeleton Slider Stack Stepper Switch Text Theme Toggle Ticker Typing Indicator Accordion Action Sheet Action Swap Alert App Bar Avatar Group Biometric Gate Bloom Menu Bottom Sheet Paywall Sheet Side Sheet Breadcrumb Calendar Card Carousel Charts Coach Marks Collapsible Collapsible Header Combobox Confetti Context Menu Data Table Date Range Picker Dialog Dock Drawer Dropdown Menu Drum Picker Empty State Expandable Control Feature Gate Form Liquid Glass Glass Cluster Glass Dock Morph Glass Fab Morph Glass Lab Glass Orb Glass Search Morph Glass Sheet Edge Gradient Button Image Viewer Keyboard Avoiding Keyboard Toolbar List Reorderable List Swipeable Row Mini Player Morphing Modal Multi Select OTP Input Permission Primer PIN Pad Popover Promo Banner Prompt Input Pull To Refresh Quick Actions Quick Replies Reaction Picker Review Prompt Segmented Control Select Smart Banner Stat Card Stateful Button Steps Stories Viewer Tabs Time Picker Timeline Toast Tooltip Waveform Account Switcher Screen Biometric Setup Screen Delete Account Screen Forgot Password Screen Ugrow Uauth Screen Login Screen Login — Social Screen Nouri Onboarding Onboarding Screen OTP Verification Screen Password Reset Screen Phone Verification Screen Onboarding Quiz Screen Session Devices Screen Signup Screen Social Auth Screen Split Auth Screen Verify Identity Screen Welcome Screen AI Chat Screen AI Assistant Screen Channels List Screen Chat Info Screen Chat List Screen Chat Media Screen Chat Thread Screen Create Group Screen Group Info Screen Message Requests Screen New Message Screen Starred Messages Screen Accessibility Screen Activity log Screen Appearance Screen Blocked accounts Screen Export your data Screen Downloads Screen Edit Profile Screen Edit Profile — Rows Screen Error State Screen Send feedback Screen Help Center Screen Home Feed Screen Invite Friends Screen Language & region Screen Linked accounts Screen Notification settings Screen Notifications Screen Paywall Screen Privacy Screen Profile Screen Report issue Screen Saved items Screen Search Screen Settings Screen Storage & data Screen Terms & privacy Screen Add Payment Screen Address Book Screen Cart Screen Categories Screen Checkout Screen Checkout — Steps Screen Checkout Success Screen Delivery Screen Filters & sort Screen Flash Sale Gift Cards Screen Loyalty Points Screen Order Cancel Screen Order Detail Screen Orders Screen Payment Methods Screen Product Detail Screen Product Detail — Hero Screen Product Grid Screen Product Reviews Screen Promo Codes Screen Recently viewed Screen Return items Screen Search results Screen Ushop Uassistant Screen Store home Screen Order Tracking Screen Wishlist Screen Write a review Screen Add Card Screen Bank Accounts Screen Dashboard — Bento Screen Bill Pay Screen Budgets Screen Card Details Screen Crypto Portfolio Screen Finance Dashboard Screen Dashboard — Dark Screen Exchange Currency Screen Expense List Screen Invoice Detail Screen Manage Cards Screen Savings Goals Screen Send Money Screen Spending Analytics Screen Token Detail Screen Token Swap Screen Transactions Screen Wallet Home Screen Uwallet Umovers Screen Courier Tracking Screen Food Cart Screen Food Home Screen Food Orders Screen Grocery List Screen Recipe Detail Screen Restaurant — Dark Screen Restaurant Detail Screen Activity Rings Screen Fitness Home Screen Habit Quest Screen Habit Tracker Screen Meal Planner Screen Med Store Meditation Player Screen Mood Checkin Nutrition Home Prior Auth Screen Prior Auth Cases Screen Quest Complete Screen Run Tracking Screen Rx Scan Sleep Tracker Screen Uwalk Umap Screen Water Tracker Screen Uworkout Ucomplete Screen Workout Detail Screen Audiobook Player Screen Camera Screen Gallery Albums Screen Ugame Ustore Screen Mini Player Screen Music Player Screen Photo Editor Screen Photo Gallery Screen Playlist Detail Screen Podcast Player Screen Reels Feed Screen Serene Home Stories Screen Video Player Screen Article Reader Screen Course Detail Screen Event Detail Screen Halo Memory Screen Leaderboard Screen Lesson Player Screen Match Detail Screen News — Editorial Screen News Home Screen Prediction Live Screen Prediction Welcome Screen Standings Screen Ticket Wallet Screen Topics Follow Screen Add Task Sheet Screen Alarm Clock Screen Calendar Day Screen Calendar Month Screen File Manager Screen Kanban Board Screen Note Editor Screen Notes List Screen Reminders Screen Task List Screen Time Blocks Arc Create Screen Arc Detail Screen Arc Onboarding Screen Create Post Screen Explore Grid Screen Followers List Screen Hashtag Feed Screen Mentions Screen Post Detail Screen Post Hero Social Profile Screen Boarding Pass Screen Booking Confirm Screen Discover Screen Flight Live Screen Flight Preferences Screen Flight Results Screen Flight Search Screen Hotel Detail Screen Trip — Map Day Screen Seat Select Screen Travel Home Screen Trip Itinerary Screen Trip Onboarding Screen Collapsible HeaderiOS Copy page Scroll-driven iOS large-title header — the big title collapses into a compact nav row (or a revealed accessory like search) on scroll
$ npx lumioui add collapsible-header npx pnpm bun
copy import { CollapsibleHeader } from "@/components/ui/collapsible-header/collapsible-header";
CLI Manual
Files installed into your repo
components/ui/collapsible-header/collapsible-header.tsx
Native packages required
@lumioui/core@latestreact-native-reanimated@*react-native-safe-area-context@*
Props 13
title string Large title — collapses to the compact row. subtitle? string Optional line under the large title (expanded area only). left? React.ReactNode Compact row left slot (e.g. a back button). right? React.ReactNode Compact row right slot (e.g. actions). collapsedContent? React.ReactNode Revealed in the compact row once collapsed — replaces the small title. Keep it ≤40pt tall: the compact row is 44pt. expandedAccessory? React.ReactNode Rendered under the large title inside the expanded block — the iOS Mail/Notes idiom for a search field or filter row. Scrolls away with the title; bump `expandedHeight` to fit it. expandedHeight? number Height of the expanded block in px. Default 64 — fits title (+ tight subtitle); pass more for taller accessories. scrollY? SharedValue<number> External scroll shared value — drive your own scroll view and share the value, or let the built-in ScrollView write into it. translucent? boolean Translucent header background (bg-background/80) so scrolled content ghosts through. True blur needs expo-blur — intentionally not used here to keep the component Expo Go compatible. scrollable? boolean Render the built-in Animated.ScrollView around children. Default true — set false and pass `scrollY` to wire your own. children? React.ReactNode className? string contentClassName? string
Collapsible Headersearch.tsx
Live preview offline the relay is unreachable — check back shortly
Description Usage Code ◐ collapsible-header/variants/search.tsx open $ npx lumioui add collapsible-header-search Scroll-driven iOS large-title header — the big title collapses into a compact nav row (or a revealed accessory like search) on scroll
copy import { CollapsibleHeaderSearch } from "@/components/ui/collapsible-header/variants/search";
export function Example() {
return (
<CollapsibleHeaderSearch />
);
} copy import * as React from "react";
import { View } from "react-native";
import { CollapsibleHeader } from "../collapsible-header";
import { SearchInput } from "../../search-input/search-input";
import { Icon } from "../../icon/icon";
import { Text } from "../../text/text";
import { Glass } from "../../glass/glass";
const NOTES = [
{ title: "Kyoto itinerary", body: "Fushimi Inari at dawn, then Nishiki market" },
{ title: "Ramen ranking", body: "Sakura Tonkotsu 9.5 · Porto Nights 8.8" },
{ title: "Lisbon packing", body: "Linen shirts, film camera, tram pass" },
{ title: "Book list", body: "Kitchen Confidential · The Making of a Chef" },
{ title: "Gift ideas", body: "Ceramic pour-over set for Priya" },
{ title: "Expense notes", body: "Split Order #8421 with Amara — $14.50 each" },
];
/** CollapsibleHeaderSearch — iOS Notes idiom: search sits under the large
* title and scrolls away; the collapsed nav row shows the small title. */
export function CollapsibleHeaderSearch() {
const [query, setQuery] = React.useState("");
return (
<View className="w-full gap-3">
<Glass interactive curvature="edge" className="h-96 w-full overflow-hidden rounded-2xl">
<CollapsibleHeader
title="Notes"
translucent
expandedHeight={124}
expandedAccessory={
<SearchInput
glass
value={query}
onChangeText={setQuery}
placeholder="Search notes"
containerClassName="gap-0"
/>
}
right={
<Glass interactive curvature="edge" className="h-9 w-9 items-center justify-center rounded-full">
<Icon name="plus" size="sm" color="foreground" />
</Glass>
}
className="h-96 w-full bg-transparent"
contentClassName="gap-2 px-4 pb-6"
>
{NOTES.map((n) => (
<Glass interactive key={n.title} curvature="edge" className="rounded-xl p-3.5">
<Text variant="small" className="font-semibold">
{n.title}
</Text>
<Text variant="muted" numberOfLines={1}>
{n.body}
</Text>
</Glass>
))}
<Text variant="muted" className="py-2 text-center text-xs">
Scroll — the title collapses into the nav row
</Text>
</CollapsibleHeader>
</Glass>
</View>
);
}
← Previous Collapsible Next → Combobox