What kind of change is this?
A new component
The problem
Summary
I'd like to request the addition of a Floating Action Button (FAB) component to PanelUI.
FABs are a common UI pattern for highlighting the primary action on a screen, and having a built-in implementation would make it easier to build apps without relying on external libraries.
Proposed Component
Component Name: FloatingActionButton (FAB)
Core Features
1. Icon Only
Support the standard circular FAB with an icon.
<FAB icon={Plus} onPress={...} />
2. Icon + Text (Extended FAB)
Support an extended variant with both an icon and a label.
<FAB
icon={Plus}
label="Create"
onPress={...}
/>
3. Positioning
Allow positioning at the bottom of the screen with configurable horizontal alignment:
- Right (default)
- Center
- Left
Example:
<FAB position="right" />
<FAB position="center" />
<FAB position="left" />
Additional Features (Nice to Have)
It would also be great if the component supported features commonly found in other UI libraries, such as:
- Expandable child actions (Speed Dial / FAB Group)
- Multiple action buttons
- Open/close animations
- Backdrop/scrim when expanded
- Custom placement offsets
- Custom size (small, medium, large)
- Elevation/shadow variants
- Theme-aware styling
- Custom icons and animations
Why This Would Be Useful
Floating Action Buttons are widely used in mobile applications to expose the primary screen action (e.g. Create, Add, Compose, Scan). Since PanelUI is a component library, having a built-in FAB component would provide a consistent API and reduce the need for third-party implementations.
A flexible implementation with support for both simple and expandable FABs would cover most common use cases while fitting naturally into the existing PanelUI component ecosystem.
What you have in mind
<>
{/* Your screen content */}
{/* Standard FAB */}
<FAB
icon={Plus}
onPress={() => console.log("Create")}
/>
{/* Extended FAB */}
<FAB
icon={Pencil}
label="Compose"
position="left"
onPress={() => console.log("Compose")}
/>
{/* Speed Dial / Multiple Actions */}
<FAB
icon={Plus}
position="right"
actions={[
{
icon: Camera,
label: "Camera",
onPress: () => console.log("Camera"),
},
{
icon: Pencil,
label: "Note",
onPress: () => console.log("Note"),
},
{
icon: Trash2,
label: "Delete",
destructive: true,
onPress: () => console.log("Delete"),
},
]}
/>
</>
What you are doing instead today
I have used View with absolute positioning and Button to create a FAB like hovering Button.
My current implementation:
<View className="absolute bottom-6 right-0">
<Button className="rounded-full shadow-lg flex-row items-center px-4 py-3" onPress={() => console.log('Add Rule clicked')}>
<PlusIcon size={20} className="text-primary-foreground" />
<Typography type='small' className="text-primary-foreground">Add Rule</Typography>
</Button>
</View>
References
Reference Components:
Before submitting
Would you be willing to work on this?
I could help test it
What kind of change is this?
A new component
The problem
Summary
I'd like to request the addition of a Floating Action Button (FAB) component to PanelUI.
FABs are a common UI pattern for highlighting the primary action on a screen, and having a built-in implementation would make it easier to build apps without relying on external libraries.
Proposed Component
Component Name:
FloatingActionButton(FAB)Core Features
1. Icon Only
Support the standard circular FAB with an icon.
2. Icon + Text (Extended FAB)
Support an extended variant with both an icon and a label.
3. Positioning
Allow positioning at the bottom of the screen with configurable horizontal alignment:
Example:
Additional Features (Nice to Have)
It would also be great if the component supported features commonly found in other UI libraries, such as:
Why This Would Be Useful
Floating Action Buttons are widely used in mobile applications to expose the primary screen action (e.g. Create, Add, Compose, Scan). Since PanelUI is a component library, having a built-in FAB component would provide a consistent API and reduce the need for third-party implementations.
A flexible implementation with support for both simple and expandable FABs would cover most common use cases while fitting naturally into the existing PanelUI component ecosystem.
What you have in mind
What you are doing instead today
I have used View with absolute positioning and Button to create a FAB like hovering Button.
My current implementation:
References
Reference Components:
Before submitting
Would you be willing to work on this?
I could help test it