react-native-elements
Version:
React Native Elements & UI Toolkit
406 lines (297 loc) • 8.78 kB
Markdown
id: avatar
title: Avatar
Avatars are found all over ui design from lists to profile screens. They are
commonly used to represent a user and can contain photos, icons, or even text.
<div class="component-preview component-preview--grid">
<figure>
<img src="/react-native-elements/img/avatar/avatar--photo.jpg" alt="Standard Avatar" />
<figcaption>Standard</figcaption>
</figure>
<figure>
<img src="/react-native-elements/img/avatar/avatar--title.jpg" alt="Avatar with Title" />
<figcaption>Title</figcaption>
</figure>
<figure>
<img src="/react-native-elements/img/avatar/avatar--icon.jpg" alt="Avatar with Icon" />
<figcaption>Icon</figcaption>
</figure>
<figure>
<img src="/react-native-elements/img/avatar/avatar--edit.jpg" alt="Standard Avatar with edit button" />
<figcaption>Standard with edit button</figcaption>
</figure>
</div>
## Usage
```js
import { Avatar } from 'react-native-elements';
// Standard Avatar
<Avatar
rounded
source={{
uri:
'https://s3.amazonaws.com/uifaces/faces/twitter/ladylexy/128.jpg',
}}
/>
// Avatar with Title
<Avatar rounded title="MD" />
// Avatar with Icon
<Avatar rounded icon={{ name: 'home' }} />
// Standard Avatar with edit button
<Avatar
source={{
uri:
'https://s3.amazonaws.com/uifaces/faces/twitter/adhamdannaway/128.jpg',
}}
showEditButton
/>
```
#### Avatar with initials
<img src="/react-native-elements/img/avatar_with_initials.png" width="500" >
```js
import { Avatar } from "react-native-elements";
<Avatar
size="small"
rounded
title="MT"
onPress={() => console.log("Works!")}
activeOpacity={0.7}
/>
<Avatar
size="medium"
title="BP"
onPress={() => console.log("Works!")}
activeOpacity={0.7}
/>
<Avatar
size="large"
title="LW"
onPress={() => console.log("Works!")}
activeOpacity={0.7}
/>
<Avatar
size="xlarge"
rounded
title="CR"
onPress={() => console.log("Works!")}
activeOpacity={0.7}
/>
```
#### Avatar with icons
<img src="/react-native-elements/img/avatar_with_icons.png" width="500" >
```js
import { Avatar } from "react-native-elements";
<Avatar
rounded
icon={{name: 'user', type: 'font-awesome'}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
containerStyle={{flex: 2, marginLeft: 20, marginTop: 115}}
/>
<Avatar
size="small"
rounded
icon={{name: 'user', type: 'font-awesome'}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
containerStyle={{flex: 2, marginLeft: 20, marginTop: 115}}
/>
<Avatar
size="medium"
overlayContainerStyle={{backgroundColor: 'blue'}}
icon={{name: 'meetup', color: 'red', type: 'font-awesome'}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
containerStyle={{flex: 3, marginTop: 100}}
/>
<Avatar
size="large"
icon={{name: 'rocket', color: 'orange', type: 'font-awesome'}}
overlayContainerStyle={{backgroundColor: 'white'}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
containerStyle={{flex: 4, marginTop: 75}}
/>
<Avatar
size="xlarge"
rounded
icon={{name: 'home', type: 'font-awesome'}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
containerStyle={{flex: 5, marginRight: 60}}
/>
<Avatar
size={200}
rounded
icon={{name: 'user', type: 'font-awesome'}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
containerStyle={{flex: 2, marginLeft: 20, marginTop: 115}}
/>
```
#### Avatar with title placeholder
<img src="/react-native-elements/img/avatar_with_title_placeholder.gif" width="500" >
```js
import { ListItem } from 'react-native-elements';
<ListItem
leftAvatar={{
title: name[0],
source: { uri: avatar_url },
showEditButton: true,
}}
title={name}
subtitle={role}
chevron
/>;
```
## Props
- [`activeOpacity`](#activeopacity)
- [`avatarStyle`](#avatarstyle)
- [`containerStyle`](#containerstyle)
- [`editButton`](#editbutton)
- [`icon`](#icon)
- [`iconStyle`](#iconstyle)
- [`imageProps`](#imageprops)
- [`onEditPress`](#oneditpress)
- [`onLongPress`](#onlongpress)
- [`onPress`](#onpress)
- [`overlayContainerStyle`](#overlaycontainerstyle)
- [`placeholderStyle`](#placeholderstyle)
- [`rounded`](#rounded)
- [`size`](#size)
- [`showEditButton`](#showeditbutton)
- [`source`](#source)
- [`title`](#title)
- [`titleStyle`](#titlestyle)
- [`renderPlaceholderContent`](#renderplaceholdercontent)
- [`Component`](#Component)
- [`ImageComponent`](#imagecomponent)
## Reference
### `activeOpacity`
Opacity when pressed
| Type | Default |
| :----: | :-----: |
| number | 0.2 |
### `avatarStyle`
Style for avatar image
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
### `containerStyle`
Styling for outer container
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
### `editButton`
Icon props to be user for edit button
| Type | Default |
| :-----------------------------------------------------------------: | :---------------------------------------------------------------------------: |
| {[...Icon props](/react-native-elements/docs/icon.html#icon-props)} | { name: 'mode-edit', type: 'material', color: '#fff', underlayColor: '#000' } |
### `icon`
Displays an icon as the main content of the Avatar. **Cannot be used alongside
title**. When used with the `source` prop it will be used as the placeholder.
| Type | Default |
| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----: |
| object {name: string, color: string, size: number, type: string (default is material, or choose from [supported icon sets](icon.md#available-icon-sets)), iconStyle: object(style)} | none |
### `iconStyle`
Extra styling for icon component (optional)
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
### `imageProps`
Optional properties to pass to the avatar e.g "resizeMode"
| Type | Default |
| :----------------------: | :-----: |
| object (imageProperties) | none |
### `onEditPress`
Callback function when pressing on the edit button
| Type | Default |
| :------: | :-----: |
| function | none |
### `onLongPress`
Callback function when long pressing component
| Type | Default |
| :------: | :-----: |
| function | none |
### `onPress`
Callback function when pressing component
| Type | Default |
| :------: | :-----: |
| function | none |
### `overlayContainerStyle`
Style for the view outside image or icon
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
### `placeholderStyle`
Adds style to the placeholder wrapper
| Type | Default |
| :------------: | :------------------------------: |
| object (style) | `{ backgroundColor: '#BDBDBD' }` |
### `rounded`
Makes the avatar circular
| Type | Default |
| :-----: | :-----: |
| boolean | false |
### `size`
Size of the avatar
| Type | Default |
| :----------------------------------------------------: | :-----: |
| string(`small`, `medium`, `large`, `xlarge`) or number | `small` |
### `showEditButton`
Shows an edit button over the avatar (optional)
| Type | Default |
| :-----: | :-----: |
| boolean | false |
### `source`
Image source
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
### `title`
Renders title in the placeholder
| Type | Default |
| :----: | :-----: |
| string | none |
### `titleStyle`
Style for the title
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
### `renderPlaceholderContent`
Custom placeholder element (by default, it's the title)
| Type | Default |
| :------------------------: | :-----: |
| React component or element | none |
### `Component`
Component for enclosing element (eg: TouchableHighlight, View, etc)
| Type | Default |
| :------: | :----------------: |
| function | TouchableHighlight |
### `ImageComponent`
Custom ImageComponent for Avatar
| Type | Default |
| :------------------------: | :-----: |
| React component or element | Image |