diff --git a/src/webapp/app/page.tsx b/src/webapp/app/page.tsx index 91a48aec..b811d1b6 100644 --- a/src/webapp/app/page.tsx +++ b/src/webapp/app/page.tsx @@ -11,9 +11,8 @@ import { Center, Group, Badge, - Grid, - GridCol, } from '@mantine/core'; +import Link from 'next/link'; import BG from '@/assets/semble-bg.webp'; import DarkBG from '@/assets/semble-bg-dark.png'; import CurateIcon from '@/assets/icons/curate-icon.svg'; @@ -24,15 +23,18 @@ import SembleLogo from '@/assets/semble-logo.svg'; import AnimatedTitle from '@/components/landing/animatedTitle/AnimatedTitle'; import IosShortcutButton from '@/components/landing/iosShortcutButton/IosShortcutButton'; import RecentActivity from '@/components/landing/recentActivity/RecentActivity'; +import RecentActivitySkeleton from '@/components/landing/recentActivity/Skeleton.RecentActivity'; import Footer from '@/components/landing/footer/Footer'; -import { Fragment } from 'react'; +import { Fragment, Suspense } from 'react'; import AuthButtons from '@/components/landing/authButtons/AuthButtons'; +import { IoArrowForward } from 'react-icons/io5'; +import { RiArrowRightUpLine } from 'react-icons/ri'; export default async function Page() { const fadeStyle = { inset: 0, - WebkitMaskImage: 'linear-gradient(to top, transparent 0%, black 35%)', - maskImage: 'linear-gradient(to top, transparent 0%, black 35%)', + WebkitMaskImage: 'linear-gradient(to bottom, transparent 10%, black 35%)', + maskImage: 'linear-gradient(to bottom, transparent 10%, black 35%)', zIndex: 0, }; @@ -70,18 +72,30 @@ function Content() { - Semble logo - Alpha + Semble logo + Alpha + @@ -91,31 +105,58 @@ function Content() {
- - - - - + + + + + + {/* light mode subtitle */} + + Follow your peers' research trails. Surface and discover + new connections. Built on ATProto so you own your data. + - {/* light mode subtitle */} - - Follow your peers’ research trails. Surface and discover new - connections. Built on ATProto so you own your data. - + {/* dark mode subtitle */} + + Follow your peers' research trails. Surface and discover + new connections. Built on ATProto so you own your data. + - {/* dark mode subtitle */} - - Follow your peers’ research trails. Surface and discover new - connections. Built on ATProto so you own your data. - + + - - - - + + }> - - + + { const interval = setInterval(() => { @@ -33,14 +33,14 @@ export default function AnimatedTitle() { }, []); return ( - + <Title order={1} fw={700} fz="2.6rem" ta={'center'}> A social knowledge network for{' '} <Box component="span" style={{ display: 'inline-block', minWidth: '250px', - textAlign: 'left', + textAlign: 'center', }} > <Transition @@ -51,12 +51,12 @@ export default function AnimatedTitle() { > {(styles) => ( <Text - fw={600} - fz="2.7rem" + fw={700} + fz="2.6rem" style={{ ...styles, }} - c={'grape'} + ta={'center'} span > {words[index]} diff --git a/src/webapp/components/landing/footer/Footer.tsx b/src/webapp/components/landing/footer/Footer.tsx index f8d95af5..db5f01a4 100644 --- a/src/webapp/components/landing/footer/Footer.tsx +++ b/src/webapp/components/landing/footer/Footer.tsx @@ -77,17 +77,6 @@ export default function Footer() { > Follow our blog for updates </Button> - <Button - component="a" - href="https://docs.cosmik.network/semble" - target="_blank" - variant="light" - color="dark.1" - fw={600} - rightSection={<RiArrowRightUpLine />} - > - Semble Docs - </Button> </Group> <Stack align="center" gap="0"> <Text c="dark.1" fw={600} ta="center"> diff --git a/src/webapp/components/landing/recentActivity/Skeleton.RecentActivity.tsx b/src/webapp/components/landing/recentActivity/Skeleton.RecentActivity.tsx new file mode 100644 index 00000000..5830466d --- /dev/null +++ b/src/webapp/components/landing/recentActivity/Skeleton.RecentActivity.tsx @@ -0,0 +1,20 @@ +import { Card, Group, Skeleton, Stack } from '@mantine/core'; +import ActivityCardSkeleton from '../activityCard/Skeleton.ActivityCard'; + +export default function RecentActivitySkeleton() { + return ( + <Card withBorder component="article" p="xs" radius="lg"> + <Stack gap="md"> + <Group gap="xs" justify="space-between"> + <Skeleton w={220} h={28} /> + <Skeleton w={110} h={36} radius="xl" /> + </Group> + <Stack gap="xl"> + <ActivityCardSkeleton /> + <ActivityCardSkeleton /> + <ActivityCardSkeleton /> + </Stack> + </Stack> + </Card> + ); +}