-
Notifications
You must be signed in to change notification settings - Fork 171
/
button.js
81 lines (78 loc) · 1.88 KB
/
button.js
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
import React from 'react'
import { Box, Button, Text } from 'theme-ui'
import ReactTooltip from '../../react-tooltip'
import Icon from '@hackclub/icons'
export default function Buttons({
children,
icon,
id,
content,
link,
primary,
overrideColor,
zIndex,
...props
}) {
let fontWeight = primary ? '700' : '400'
return (
<Box
as="button"
sx={{ background: 'transparent', border: 'none', color: 'white', zIndex: zIndex ||0 }}
py={1}
>
<Button
data-place="right"
data-for={id}
data-effect="solid"
data-tip
sx={{
background: primary || overrideColor || 'rgb(255, 255, 255, 0.3)',
borderRadius: '100px',
border: 'none',
display: 'flex',
alignItems: 'center',
color: 'inherit',
px: '3',
py: primary ? '12px' : 2,
width: 'fit-content',
textTransform: 'none',
fontWeight: '400',
fontSize: primary ? ['18px', '20px', '22px'] : [1, '16px', '18px'],
backdropFilter: 'blur(2px)',
fontWeight: fontWeight,
zIndex: 999,
}}
as="a"
href={link || '/'}
target="_blank"
rel="noreferrer"
{...props}
>
<Icon
glyph={icon || 'plus-fill'}
sx={{ color: 'inherit', marginRight: 2 }}
size={24}
mr={2}
/>
<Text sx={{ fontFamily: 'Phantom Sans', textAlign: 'left' }}>
{children}
</Text>
</Button>
<ReactTooltip
id={id}
delayShow={150}
delayHide={100}
delayUpdate={500}
clickable={true}
getContent={() => {
return null
}}
className="custom-tooltip-radius custom-arrow-radius"
arrowRadius="2"
tooltipRadius="10"
>
{content}
</ReactTooltip>
</Box>
)
}