Skip to content

Commit c7c0ac1

Browse files
authored
Website redesign for launch and coming soon
2 parents fd2dbad + 652c7fa commit c7c0ac1

File tree

48 files changed

+1218
-500
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1218
-500
lines changed
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
import { ReactNode } from "react";
2+
import { Box, BoxProps, Button, Flex, Text } from "@chakra-ui/react";
3+
import { useToggle } from "usehooks-ts";
4+
import { IoChevronDown, IoChevronUp } from "react-icons/io5";
5+
import { FancyArrowUpRight } from "@/lib/ui";
6+
import { defineMessages, useIntl } from "react-intl";
7+
8+
const messages = defineMessages({
9+
bridge: {
10+
id: "BridgeDropdown.bridge",
11+
defaultMessage: "Bridge",
12+
},
13+
comingSoon: {
14+
id: "BridgeDropdown.comingSoon",
15+
defaultMessage: "Coming soon!",
16+
},
17+
bridgeOut: {
18+
id: "BridgeDropdown.bridgeOut",
19+
defaultMessage: "Bridge out",
20+
},
21+
bridgeIn: {
22+
id: "BridgeDropdown.bridgeIn",
23+
defaultMessage: "Bridge in",
24+
},
25+
});
26+
27+
export function BridgeDropdown() {
28+
return (
29+
<Box position="relative">
30+
<ButtonContents hidden />
31+
<ButtonContents
32+
disabled
33+
position="absolute"
34+
top={0}
35+
left={0}
36+
zIndex={1}
37+
/>
38+
</Box>
39+
);
40+
}
41+
42+
function ButtonContents({
43+
hidden,
44+
children,
45+
disabled,
46+
...rest
47+
}: BoxProps & {
48+
hidden?: boolean;
49+
children?: ReactNode;
50+
disabled?: boolean;
51+
}) {
52+
const { formatMessage } = useIntl();
53+
const [isOpen, toggleIsOpen] = useToggle(false);
54+
return (
55+
<Box
56+
aria-hidden={hidden}
57+
bg={hidden ? "pink" : "white"}
58+
as="button"
59+
border="1.5px solid"
60+
boxShadow="2px 3px 0px black"
61+
borderRadius={28}
62+
onClick={toggleIsOpen}
63+
w="100%"
64+
disabled={disabled}
65+
_disabled={{
66+
cursor: "not-allowed",
67+
bg: "#F3F3F4",
68+
}}
69+
{...rest}
70+
>
71+
<Flex
72+
flexDir="column"
73+
px={10}
74+
h={14}
75+
alignItems="center"
76+
gap={disabled ? 0 : 2}
77+
justifyContent="center"
78+
>
79+
{disabled ? (
80+
<>
81+
<Text lineHeight="1.2" fontSize="sm" color="#686868">
82+
{formatMessage(messages.bridge)}
83+
</Text>
84+
<Text whiteSpace="nowrap" fontSize="xs" color="#686868">
85+
{formatMessage(messages.comingSoon)}
86+
</Text>
87+
</>
88+
) : (
89+
<>
90+
<Text fontSize="xl">Bridge</Text>
91+
{isOpen ? <IoChevronUp size={20} /> : <IoChevronDown size={20} />}
92+
</>
93+
)}
94+
</Flex>
95+
{!hidden && isOpen && (
96+
<>
97+
<BridgeLink direction="in" />
98+
<BridgeLink direction="out" />
99+
</>
100+
)}
101+
</Box>
102+
);
103+
}
104+
105+
function BridgeLink({ direction }: { direction: "out" | "in" }) {
106+
const { formatMessage } = useIntl();
107+
return (
108+
<Flex
109+
as="a"
110+
h="64px"
111+
alignItems="center"
112+
borderTop="1px solid black"
113+
px={5}
114+
justifyContent="space-between"
115+
href={
116+
direction === "out"
117+
? "https://bridge.ironfish.network/"
118+
: "https://app.chainport.io/?from=ETHEREUM&to=IRONFISH"
119+
}
120+
target="_blank"
121+
rel="noreferrer"
122+
_hover={{
123+
textDecoration: "underline",
124+
}}
125+
>
126+
<Text>
127+
{direction === "out"
128+
? formatMessage(messages.bridgeOut)
129+
: formatMessage(messages.bridgeIn)}
130+
</Text>
131+
<Box
132+
transform={
133+
direction === "out" ? "scale(0.9)" : "scale(0.9) rotate(180deg)"
134+
}
135+
>
136+
<FancyArrowUpRight />
137+
</Box>
138+
</Flex>
139+
);
140+
}

components/Company/Backers/Backers.tsx

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
1-
import {
2-
Box,
3-
Text,
4-
Container,
5-
ArrowButton,
6-
Flex,
7-
Grid,
8-
GridItem,
9-
} from "@/lib/ui";
1+
import { Box, Text, Container, Grid, GridItem } from "@/lib/ui";
102
import { defineMessages, useIntl } from "react-intl";
113
import Image from "next/image";
124
import ImgA16z from "./assets/backer-a16z.png";
@@ -38,7 +30,7 @@ export function Backers() {
3830
base: 4,
3931
}}
4032
>
41-
<Container mb={8} textAlign="center" w="100%" maxW="container.xl">
33+
<Container textAlign="center" w="100%" maxW="container.xl">
4234
<Text as="h2" textStyle="h3" maxW="20ch" mx="auto">
4335
{formatMessage(messages.heading)}
4436
</Text>

components/Footer/Footer.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,24 @@ export function Footer() {
199199
>
200200
|
201201
</Text>
202+
<Text
203+
as={Link}
204+
href="/media-kit"
205+
_hover={{
206+
textDecoration: "underline",
207+
}}
208+
>
209+
Media Kit
210+
</Text>
211+
<Text
212+
mx={2}
213+
display={{
214+
base: "none",
215+
md: "block",
216+
}}
217+
>
218+
|
219+
</Text>
202220
<Text>Copyright {new Date().getFullYear()} Iron Fish.</Text>
203221
</Flex>
204222
</Flex>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { Box, Text, useBreakpointValue } from "@/lib/ui";
2+
import Marquee from "react-fast-marquee";
3+
import Image from "next/image";
4+
import { defineMessages, useIntl } from "react-intl";
5+
import ImgA16z from "./assets/backer-a16z.png";
6+
import ImgElad from "./assets/backer-elad.png";
7+
import ImgSequoia from "./assets/backer-sequoia.png";
8+
import ImgElectric from "./assets/backer-electric.png";
9+
import ImgLinda from "./assets/backer-linda.png";
10+
import ImgDragonfly from "./assets/backer-dragonfly.png";
11+
12+
const messages = defineMessages({
13+
heading: {
14+
id: "Backers.heading",
15+
defaultMessage: "Founded by veterans and top investors",
16+
},
17+
});
18+
19+
export function Backers() {
20+
const { formatMessage } = useIntl();
21+
22+
const height = useBreakpointValue({
23+
base: 20,
24+
lg: 30,
25+
});
26+
27+
const margin = useBreakpointValue({
28+
base: 10,
29+
lg: 16,
30+
});
31+
32+
return (
33+
<Box mb={20}>
34+
<Text fontSize="md" textAlign="center" textTransform="uppercase" mb={8}>
35+
{formatMessage(messages.heading)}
36+
</Text>
37+
<Marquee autoFill>
38+
{[
39+
ImgLinda,
40+
ImgElad,
41+
ImgSequoia,
42+
ImgElectric,
43+
ImgA16z,
44+
ImgDragonfly,
45+
].map((img, i) => (
46+
<Box key={i} mx={margin} filter="grayscale(1)">
47+
<Image src={img} height={height} alt="" />
48+
</Box>
49+
))}
50+
</Marquee>
51+
</Box>
52+
);
53+
}
1.73 KB
Loading
3.96 KB
Loading
1.89 KB
Loading
4.08 KB
Loading
2.11 KB
Loading
2.77 KB
Loading

0 commit comments

Comments
 (0)