You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import {
createStyles,
Title,
SimpleGrid,
Text,
Button,
ThemeIcon,
Grid,
Col,
rem,
Container,
} from '@mantine/core';
import { IconReceiptOff, IconFlame, IconCircleDotted, IconFileCode } from '@tabler/icons-react';
const useStyles = createStyles((theme) => ({
wrapper: {
padding: `calc(${theme.spacing.xl} * 2) ${theme.spacing.xl}`,
minHeight: '58vh',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
overflowX: 'hidden'
},
title: {
fontFamily: `Greycliff CF, ${theme.fontFamily}`,
fontSize: rem(36),
fontWeight: 900,
lineHeight: 1.1,
marginBottom: theme.spacing.md,
color: theme.colorScheme === 'dark' ? theme.white : theme.black,
},
}));
const features = [
{
icon: IconReceiptOff,
title: 'Открывает',
description: 'All packages are published under MIT license, you can use Mantine in any project',
},
{
icon: IconFileCode,
title: 'Сохраняет',
description: 'Build type safe applications, all components and hooks export types',
},
{
icon: IconCircleDotted,
title: 'Объединяет',
description:
'With new :focus-visible selector focus ring will appear only when user navigates with keyboard',
},
{
icon: IconFlame,
title: 'Помогает',
description:
'Customize colors, spacing, shadows, fonts and many other settings with global theme object',
},
];
export function Landing() {
const { classes } = useStyles();
const items = features.map((feature) => (
<div key={feature.title}>
<ThemeIcon
size={44}
radius="md"
variant="gradient"
gradient={{ deg: 133, from: 'blue', to: 'cyan' }}
>
<feature.icon size={rem(26)} stroke={1.5} />
</ThemeIcon>
<Text fz="lg" mt="sm" fw={500}>
{feature.title}
</Text>
<Text c="dimmed" fz="sm">
{feature.description}
</Text>
</div>
));
return (
<Container size={'xl'} className={classes.wrapper}>
<Grid gutter={80}>
<Col span={12} md={5}>
<Title className={classes.title} order={2}>
Литкарта
</Title>
<Text c="dimmed">
Пространство для русской литературы
</Text>
<Button
variant='outline'
size="lg"
radius="md"
mt="xl"
mr={'md'}
>
Подробнее
</Button>
<Button
component='a'
href="/"
variant="gradient"
gradient={{ deg: 133, from: 'blue', to: 'cyan' }}
size="lg"
radius="md"
mt="xl"
>
К карте
</Button>
</Col>
<Col span={12} md={7}>
<SimpleGrid cols={2} spacing={30} breakpoints={[{ maxWidth: 'md', cols: 1 }]}>
{items}
</SimpleGrid>
</Col>
</Grid>
</Container>
);
}