-
-
Notifications
You must be signed in to change notification settings - Fork 772
/
Copy pathdeployment-options-section.tsx
166 lines (152 loc) · 4.07 KB
/
deployment-options-section.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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
import { Link } from "gatsby";
import React, { FC } from "react";
import styled from "styled-components";
import { ContentSection, IconContainer } from "@/components/misc";
import { Icon } from "@/components/sprites";
import { THEME_COLORS } from "@/style";
import { Box, Boxes } from "./box-elements";
// Icons
import ArrowRightIconSvg from "@/images/icons/arrow-right.svg";
import BuildingIconSvg from "@/images/icons/building.svg";
import CloudIconSvg from "@/images/icons/cloud.svg";
import ServerIconSvg from "@/images/icons/server.svg";
export const DeploymentOptionsSection: FC = () => (
<ContentSection
title="Deploy Your Way"
text="
Choose the deployment option that best fits your needs. Whether you prefer
the convenience of our cloud infrastructure, the exclusivity of a
dedicated server, or the autonomy of self-hosting on your own
infrastructure, our platform integrates seamlessly into your preferred
environment.
"
noBackground
>
<Boxes>
<OptionBox>
<Title>
Shared
<IconContainer $size={20}>
<Icon {...CloudIconSvg} />
</IconContainer>
</Title>
<Text>
Utilize our cloud infrastructure with shared clusters for a quick,
simple, and cost-effective solution. Get started quickly without the
hassle of managing hardware.
</Text>
<LinkTextButton to="/pricing">
Compare
<IconContainer $size={16}>
<Icon {...ArrowRightIconSvg} />
</IconContainer>
</LinkTextButton>
</OptionBox>
<OptionBox>
<Title>
Dedicated
<IconContainer $size={20}>
<Icon {...ServerIconSvg} />
</IconContainer>
</Title>
<Text>
Opt for a fully managed dedicated server with no complexity. Enjoy the
benefits of your own instance with dedicated performance tailored to
your needs.
</Text>
<LinkTextButton to="/pricing">
Compare
<IconContainer $size={16}>
<Icon {...ArrowRightIconSvg} />
</IconContainer>
</LinkTextButton>
</OptionBox>
<OptionBox>
<Title>
On-premise
<IconContainer $size={20}>
<Icon {...BuildingIconSvg} />
</IconContainer>
</Title>
<Text>
Host on your own infrastructure for complete control. This option
offers no volume limits and full data ownership, perfect for meeting
stringent security and compliance requirements.
</Text>
<LinkTextButton to="/pricing">
Compare
<IconContainer $size={16}>
<Icon {...ArrowRightIconSvg} />
</IconContainer>
</LinkTextButton>
</OptionBox>
</Boxes>
</ContentSection>
);
const OptionBox = styled(Box)`
flex-direction: column;
padding: 40px;
background-color: initial;
background-image: linear-gradient(
to right bottom,
#379dc83d,
#2b80ad3d,
#2263903d,
#1a48743d,
#112f573d
);
:nth-child(2) {
background-image: linear-gradient(
to right bottom,
#37c8ab3d,
#2baa933d,
#218d7c3d,
#1872653d,
#11574e3d
);
}
:nth-child(3) {
background-image: linear-gradient(
to right bottom,
#ab7bb03d,
#9162953d,
#784a7c3d,
#6033633d,
#481d4b3d
);
}
`;
const Title = styled.h4`
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 24px;
& > ${IconContainer} {
margin-left: 24px;
& > svg {
fill: ${THEME_COLORS.heading};
}
}
`;
const Text = styled.p.attrs({
className: "text-2",
})`
margin-bottom: 36px;
`;
export const LinkTextButton = styled(Link).attrs({
className: "text-2",
})`
display: flex;
flex-direction: row;
align-items: center;
& > ${IconContainer} {
margin-left: 10px;
& > svg {
fill: ${THEME_COLORS.link};
transition: fill 0.2s ease-in-out;
}
}
&:hover > ${IconContainer} > svg {
fill: ${THEME_COLORS.linkHover};
}
`;