Align content pages with landing grid

This commit is contained in:
rosetta
2026-07-30 17:00:15 -07:00
parent 650d73830f
commit b902298ad6
4 changed files with 64 additions and 49 deletions

View File

@@ -1,12 +1,10 @@
.page { .page {
min-height: 100vh; min-height: 100vh;
background: background: light-dark(var(--mantine-color-white), var(--mantine-color-dark-8));
radial-gradient(circle at 50% 0%, light-dark(rgba(34, 139, 230, 0.12), rgba(34, 139, 230, 0.16)), transparent 34rem),
light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-8));
} }
.shell { .shell {
padding-top: var(--mantine-spacing-lg); padding-top: var(--mantine-spacing-md);
padding-bottom: calc(var(--mantine-spacing-xl) * 2); padding-bottom: calc(var(--mantine-spacing-xl) * 2);
} }
@@ -29,13 +27,13 @@
} }
.main { .main {
width: min(100%, 820px); width: 100%;
margin: 0 auto; padding-top: 96px;
padding-top: 76px;
} }
.intro { .intro {
padding: 0 var(--mantine-spacing-md) calc(var(--mantine-spacing-xl) * 1.5); max-width: 900px;
padding-bottom: 64px;
} }
.title { .title {
@@ -49,17 +47,15 @@
} }
.document { .document {
padding: 44px 48px 52px; padding-bottom: 72px;
background: light-dark(rgba(255, 255, 255, 0.9), rgba(20, 21, 23, 0.9));
border-color: light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-5));
backdrop-filter: blur(12px);
} }
.lead { .lead {
max-width: 780px;
margin: 0; margin: 0;
color: light-dark(var(--mantine-color-gray-8), var(--mantine-color-dark-0)); color: light-dark(var(--mantine-color-gray-8), var(--mantine-color-dark-0));
font-size: var(--mantine-font-size-lg); font-size: 20px;
line-height: 1.65; line-height: 1.6;
} }
.text, .text,
@@ -88,20 +84,27 @@
} }
.section { .section {
margin-top: 42px; display: grid;
padding-top: 36px; grid-template-columns: minmax(220px, 0.42fr) minmax(0, 1fr);
gap: 52px;
margin-top: 56px;
padding-top: 48px;
border-top: 1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-5)); border-top: 1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-5));
} }
.sectionTitle { .sectionTitle {
margin: 0 0 var(--mantine-spacing-md); margin: 0;
color: light-dark(var(--mantine-color-dark-9), var(--mantine-color-white)); color: light-dark(var(--mantine-color-dark-9), var(--mantine-color-white));
font-family: Outfit, var(--mantine-font-family); font-family: Outfit, var(--mantine-font-family);
font-size: clamp(22px, 3vw, 28px); font-size: clamp(26px, 3vw, 34px);
font-weight: 500; font-weight: 500;
line-height: 1.25; line-height: 1.25;
} }
.sectionContent {
min-width: 0;
}
.document a { .document a {
color: light-dark(var(--mantine-color-blue-7), var(--mantine-color-blue-3)); color: light-dark(var(--mantine-color-blue-7), var(--mantine-color-blue-3));
text-underline-offset: 3px; text-underline-offset: 3px;
@@ -122,18 +125,24 @@
} }
.footer { .footer {
margin-top: 72px;
padding-top: var(--mantine-spacing-lg); padding-top: var(--mantine-spacing-lg);
border-top: 1px solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-5)); border-top: 1px solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-5));
} }
@media (max-width: 48em) { @media (max-width: 48em) {
.main { .main {
padding-top: 52px; padding-top: 72px;
} }
.document { .intro {
padding: 32px 24px 40px; padding-bottom: 48px;
}
.section {
grid-template-columns: 1fr;
gap: var(--mantine-spacing-md);
margin-top: 44px;
padding-top: 36px;
} }
} }
@@ -147,15 +156,6 @@
flex-direction: column; flex-direction: column;
} }
.intro {
padding-inline: 0;
}
.document {
margin-inline: calc(var(--mantine-spacing-xs) * -1);
padding-inline: 20px;
}
.footer { .footer {
align-items: flex-start; align-items: flex-start;
flex-direction: column; flex-direction: column;

View File

@@ -45,7 +45,7 @@ export function LegalPage({
return ( return (
<Box className={classes.page}> <Box className={classes.page}>
<Container size="lg" className={classes.shell}> <Container className={classes.shell}>
<Group component="header" justify="space-between" className={classes.header}> <Group component="header" justify="space-between" className={classes.header}>
<Anchor <Anchor
component={Link} component={Link}
@@ -91,15 +91,9 @@ export function LegalPage({
)} )}
</Box> </Box>
<Paper <Box component="article" className={classes.document}>
component="article"
radius="lg"
withBorder
shadow="sm"
className={classes.document}
>
{children} {children}
</Paper> </Box>
</Box> </Box>
<Group component="footer" justify="space-between" className={classes.footer}> <Group component="footer" justify="space-between" className={classes.footer}>
@@ -132,7 +126,7 @@ export function LegalSection({ title, children }: LegalSectionProps) {
<Title order={2} className={classes.sectionTitle}> <Title order={2} className={classes.sectionTitle}>
{title} {title}
</Title> </Title>
{children} <Box className={classes.sectionContent}>{children}</Box>
</Box> </Box>
); );
} }

View File

@@ -1,8 +1,13 @@
.lead { .lead {
max-width: 680px; max-width: 780px;
color: light-dark(var(--mantine-color-gray-8), var(--mantine-color-dark-0)); color: light-dark(var(--mantine-color-gray-8), var(--mantine-color-dark-0));
font-size: var(--mantine-font-size-lg); font-size: 20px;
line-height: 1.65; line-height: 1.6;
}
.primaryAction {
height: 54px;
padding-inline: 38px;
} }
.topic { .topic {
@@ -21,8 +26,11 @@
} }
.section { .section {
display: grid;
grid-template-columns: minmax(220px, 0.42fr) minmax(0, 1fr);
gap: 52px;
scroll-margin-top: var(--mantine-spacing-xl); scroll-margin-top: var(--mantine-spacing-xl);
padding-top: var(--mantine-spacing-xl); padding-top: 48px;
border-top: 1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-5)); border-top: 1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-5));
} }
@@ -34,7 +42,7 @@
} }
.sectionTitle { .sectionTitle {
font-size: clamp(24px, 3vw, 30px); font-size: clamp(26px, 3vw, 34px);
} }
.contact { .contact {
@@ -51,6 +59,16 @@
} }
@media (max-width: 48em) { @media (max-width: 48em) {
.primaryAction {
padding-inline: 18px;
}
.section {
grid-template-columns: 1fr;
gap: var(--mantine-spacing-lg);
padding-top: 36px;
}
.contact :global(.mantine-Group-root) { .contact :global(.mantine-Group-root) {
align-items: flex-start; align-items: flex-start;
flex-direction: column; flex-direction: column;

View File

@@ -1,6 +1,7 @@
import { import {
Accordion, Accordion,
Anchor, Anchor,
Box,
Button, Button,
Card, Card,
Group, Group,
@@ -125,7 +126,7 @@ interface SupportSectionProps {
function SupportSection({ id, title, description, items }: SupportSectionProps) { function SupportSection({ id, title, description, items }: SupportSectionProps) {
return ( return (
<Stack component="section" id={id} gap="lg" className={classes.section}> <Box component="section" id={id} className={classes.section}>
<div> <div>
<Title order={2} className={classes.sectionTitle}> <Title order={2} className={classes.sectionTitle}>
{title} {title}
@@ -146,7 +147,7 @@ function SupportSection({ id, title, description, items }: SupportSectionProps)
</Accordion.Item> </Accordion.Item>
))} ))}
</Accordion> </Accordion>
</Stack> </Box>
); );
} }
@@ -174,8 +175,10 @@ export function SupportPage() {
component="a" component="a"
href="mailto:admin@rosetta.im?subject=Rosetta%20Support%20Request" href="mailto:admin@rosetta.im?subject=Rosetta%20Support%20Request"
leftSection={<IconMail size={18} />} leftSection={<IconMail size={18} />}
variant="default"
mt="xl" mt="xl"
size="md" size="xl"
className={classes.primaryAction}
> >
Email Rosetta Support Email Rosetta Support
</Button> </Button>