@deboxsoft/react-native-elements
Version:
React Native Elements & UI Toolkit
349 lines (258 loc) • 7.38 kB
Markdown
---
id: avatar
title: Avatar
---
Avatars are found all over ui design from lists to profile screens. They are
usually used to represent a user and can contain photos, icons, or even text.
<img src="/react-native-elements/img/avatar_all.png" width="500" >
<img src="/react-native-elements/img/avatar_with_images.png" width="500" >
```js
import { Avatar } from "react-native-elements";
<Avatar
size="small"
rounded
source={{uri: "https://s3.amazonaws.com/uifaces/faces/twitter/ladylexy/128.jpg"}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
/>
<Avatar
size="medium"
source={{uri: "https://s3.amazonaws.com/uifaces/faces/twitter/kfriedson/128.jpg"}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
/>
<Avatar
size="large"
source={{uri: "https://s3.amazonaws.com/uifaces/faces/twitter/brynn/128.jpg"}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
/>
<Avatar
size="xlarge"
rounded
source={{uri: "https://s3.amazonaws.com/uifaces/faces/twitter/adhamdannaway/128.jpg"}}
onPress={() => console.log("Works!")}
activeOpacity={0.7}
/>
```
#### 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 } }}
title={name}
subtitle={role}
chevron
/>;
```
### Props
* [`activeOpacity`](#activeopacity)
* [`avatarStyle`](#avatarstyle)
* [`Component`](#Component)
* [`containerStyle`](#containerstyle)
* [`icon`](#icon)
* [`iconStyle`](#iconstyle)
* [`imageProps`](#imageprops)
* [`onLongPress`](#onlongpress)
* [`onPress`](#onpress)
* [`overlayContainerStyle`](#overlaycontainerstyle)
* [`rounded`](#rounded)
* [`source`](#source)
* [`size`](#size)
* [`title`](#title)
* [`titleStyle`](#titlestyle)
* [`placeholderStyle`](#placeholderstyle)
* [`renderPlaceholderContent`](#renderplaceholdercontent)
* [`ImageComponent`](#imagecomponent)
---
# Reference
### `activeOpacity`
Opacity when pressed
| Type | Default |
| :----: | :-----: |
| number | 0.2 |
---
### `avatarStyle`
Style for avatar image
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
---
### `Component`
Component for enclosing element (eg: TouchableHighlight, View, etc)
| Type | Default |
| :------: | :----------------: |
| function | TouchableHighlight |
---
### `containerStyle`
Styling for outer container
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
---
### `icon`
| 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 |
---
### `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 |
---
### `rounded`
Makes the avatar circular
| Type | Default |
| :-----: | :-----: |
| boolean | false |
---
### `source`
Image source
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
---
### `size`
Size of the avatar
| Type | Default |
| :----------------------------------------------------: | :-----: |
| string(`small`, `medium`, `large`, `xlarge`) or number | `small` |
---
### `title`
Renders title in the placeholder
| Type | Default |
| :----: | :-----: |
| string | none |
---
### `titleStyle`
Style for the title
| Type | Default |
| :------------: | :-----: |
| object (style) | none |
---
### `placeholderStyle`
Adds style to the placeholder wrapper
| Type | Default |
| :------------: | :------------------------------: |
| object (style) | `{ backgroundColor: '#BDBDBD' }` |
---
### `renderPlaceholderContent`
Custom placeholder element (by default, it's the title)
| Type | Default |
| :------------------------: | :-----: |
| React component or element | none |
---
### `ImageComponent`
Custom ImageComponent for Avatar
| Type | Default |
| :------------------------: | :-----: |
| React component or element | Image |