-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
Avatar.story.tsx
124 lines (115 loc) · 2.91 KB
/
Avatar.story.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import React from 'react';
import { MantineProvider } from '@mantine/styles';
import { Tooltip } from '../Tooltip';
import { Center } from '../Center';
import { Group } from '../Group';
import { Stack } from '../Stack';
import { Box } from '../Box';
import { Text } from '../Text';
import { Avatar } from './Avatar';
import { AVATAR_VARIANTS } from './Avatar.styles';
export default { title: 'Avatar' };
export function CustomComponent() {
return (
<div style={{ padding: 40 }}>
<Avatar component="a" href="https://mantine.dev">
AN
</Avatar>
<Avatar component="button" type="button">
BU
</Avatar>
</div>
);
}
export function AvatarGroup() {
return (
<div style={{ padding: 40 }}>
<Avatar.Group>
<Tooltip label="Hello">
<Avatar radius="xl" color="blue">
AN
</Avatar>
</Tooltip>
<Tooltip label="Hello">
<Avatar radius="xl" color="red">
BU
</Avatar>
</Tooltip>
<Avatar radius="xl">+3</Avatar>
</Avatar.Group>
</div>
);
}
export function Variants() {
return (
<div style={{ padding: '40px' }}>
<Stack>
<Group>
{AVATAR_VARIANTS.map((variant) => (
<Avatar key={variant} variant={variant} color="blue" radius="md">
ZH
</Avatar>
))}
</Group>
<Group>
{AVATAR_VARIANTS.map((variant) => (
<Avatar key={variant} variant={variant} color="blue" radius="xl" />
))}
</Group>
<Group>
{AVATAR_VARIANTS.map((variant) => (
<Avatar
key={variant}
variant={variant}
color="blue"
radius="xl"
src="https://avatars.githubusercontent.com/u/10353856?s=460&u=88394dfd67727327c1f7670a1764dc38a8a24831&v=4"
/>
))}
</Group>
</Stack>
</div>
);
}
export function Gradient() {
return (
<div style={{ padding: '40px' }}>
<Group>
<Box>
<Text>MantineProvider</Text>
<MantineProvider
theme={{
defaultGradient: {
from: 'red.2',
to: 'orange.8',
deg: 45,
},
}}
>
<Center>
<Avatar variant="gradient" radius="md">
ZH
</Avatar>
</Center>
</MantineProvider>
</Box>
<Box>
<Text>Default</Text>
<Center>
<Avatar variant="gradient" radius="md">
ZH
</Avatar>
</Center>
</Box>
<Box>
<Text>Specific</Text>
<Center>
<Avatar variant="gradient" gradient={{ from: 'orange', to: 'red' }} radius="md">
ZH
</Avatar>
</Center>
</Box>
</Group>
</div>
);
}