# Bubble Preset
> This preset is inspired by [Aurélien Salomon](https://dribbble.com/aureliensalomon) works on [Dribbble](https://dribbble.com/shots/5925052-Google-Bottom-Bar-Navigation-Pattern-Mobile-UX-Design).
## Interfaces
### BubbleTabBarConfig
> no preset config
### BubbleTabBarItemConfig
| name | description | required | type | default |
| ---------------- | ------------------------------------------------------------ | -------- | ------------------- | ------- |
| `labelStyle` | This will apply to the tab bar item label. | NO | TextStyle | |
| `icon` | Icon configurations. | YES | object | |
| `├component` | Icon component, this could be a function or class component. | YES | [`ReactNode`](#L46) | |
| `├activeColor` | Icon active color. | YES | string | |
| `└inactiveColor` | Icon inactive color. | YES | string | |
| `background` | Tab bar item background configurations. | YES | object | |
| `├activeColor` | Background active color. | YES | string | |
| `└inactiveColor` | Background inactive color. | YES | string | |
TypeScript Interface
```ts
export interface BubbleTabBarItemConfig {
/**
* Tab bar item label style.
* @type {TextStyle}
* @default
* {
* color: '#000',
* fontSize: 14,
* fontWeight: '600'
* }
*/
labelStyle: TextStyle;
/**
* Tab bar item icon config.
*/
icon: {
/**
* Tab bar item icon component, this could be a function or class component.
* @type {React.FC | React.ComponentClass}
*/
component:
| React.FC
| React.ComponentClass
| React.ReactNode;
/**
* Icon active color.
* @type {string}
*/
activeColor: string;
/**
* Icon inactive color.
* @type {string}
*/
inactiveColor: string;
};
background: {
/**
* Tab bar item background active color.
* @type {string}
*/
activeColor: string;
/**
* Tab bar item background inactive color.
* @type {string}
*/
inactiveColor: string;
};
}
```
### BubbleTabBarIconProps
| name | description | required | type | default |
| --------------- | ---------------------------------- | -------- | ------------------------------ | ------- |
| `animatedFocus` | Tab bar item animated focus value. | YES | `Animated.Node` |
| `color` | Tab bar item animated icon color. | YES | `Animated.Node` | |
| `size` | Tab bar item icon size. | YES | number | |
TypeScript Interface
```ts
export interface MaterialTabBarIconProps {
/**
* Tab bar item animated focus value.
* @type {Animated.Node}
*/
animatedFocus: Animated.Node;
/**
* Tab bar item animated icon color.
* @type {Animated.Node}
*/
color: Animated.Node;
/**
* Tab bar item icon size.
* @type {number}
*/
size: number;
}
```