feat(WEB-304): remaning UI from design system primitives

This commit is contained in:
Simon Emanuelsson
2024-06-07 10:36:23 +02:00
parent 6737970f54
commit 7c4b8401e9
228 changed files with 3516 additions and 3237 deletions

View File

@@ -4,8 +4,11 @@ import { serverClient } from "@/lib/trpc/server"
import Header from "@/components/MyPages/Blocks/Header"
import Button from "@/components/TempDesignSystem/Button"
import CardGrid from "@/components/TempDesignSystem/CardGrid"
import Chip from "@/components/TempDesignSystem/Chip"
import Grids from "@/components/TempDesignSystem/Grids"
import Link from "@/components/TempDesignSystem/Link"
import BiroScript from "@/components/TempDesignSystem/Text/BiroScript"
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
import { getIntl } from "@/i18n"
import styles from "./next.module.css"
@@ -22,35 +25,34 @@ export default async function NextLevelBenefitsBlock({
return (
<section className={styles.container}>
<Header title={title} subtitle={subtitle} link={link} />
<CardGrid variant="twoColumnGrid">
<Grids.Stackable>
{perks.map((perk) => (
<article key={perk.id} className={styles.card}>
<div className={styles.cardInner}>
{/*TODO: These label buttons will be rebuilt as "Chip" (Badge?) components according to design.*/}
<Button
type="button"
size="small"
className={styles.chip}
disabled
<Chip>
<Lock height={16} />
{formatMessage({ id: "Level up to unlock" })}
</Chip>
<div>
<BiroScript
className={styles.level}
color="primaryLightOnSurfaceAccent"
textAlign="center"
type="two"
>
<Lock height={16} />
Level up to unlock
</Button>
<div className={styles.mainContentContainer}>
<span className={styles.level}>As our {nextLevel}</span>{" "}
<p className={styles.cardSubtitle}>{perk.explanation}</p>
</div>
{formatMessage({ id: "As our" })} {nextLevel}
</BiroScript>{" "}
<Subtitle color="pale" textAlign="center">
{perk.explanation}
</Subtitle>
</div>
</article>
))}
</CardGrid>
<div className={styles.buttonContainer}>
<Button asChild intent="primary">
<Link href="#">
{formatMessage({ id: "Explore all levels and benefits" })}
</Link>
</Button>
</div>
</Grids.Stackable>
<Button asChild intent="primary">
<Link className={styles.link} href="#">
{formatMessage({ id: "Explore all levels and benefits" })}
</Link>
</Button>
</section>
)
}

View File

@@ -1,104 +1,23 @@
.container {
display: grid;
gap: 1.5rem;
}
.cardContainer {
display: grid;
gap: 0.4rem;
}
.title {
font-weight: 600;
}
.subtitle {
margin: 0;
font-size: 2rem;
gap: var(--Spacing-x7);
}
.card {
text-decoration: none;
display: flex;
flex-direction: column;
flex: 1 0 0;
align-self: stretch;
border-radius: var(--Corner-radius-Medium);
align-items: center;
background-color: var(--Scandic-Brand-Burgundy);
text-align: center;
}
.cardInner {
border-radius: var(--Corner-radius-Small);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: var(--Spacing-x3) var(--Spacing-x3) var(--Spacing-x7);
gap: var(--Spacing-x2);
align-self: stretch;
}
.mainContentContainer {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: var(--Spacing-x1);
align-self: stretch;
}
/* TODO: Remove once we have the "Chip" (badge?) component. */
.chip {
background-color: var(--Scandic-Red-90) !important;
color: var(--Scandic-Peach-50) !important;
padding: var(--Spacing-x-half) var(--Spacing-x1) !important;
font-size: 12px !important;
height: 22px !important;
padding: var(--Spacing-x3) var(--Spacing-x3) var(--Spacing-x7);
}
.level {
text-align: center;
font-family: var(--typography-Script-2-fontFamily);
font-size: var(--typography-Script-2-Mobile-fontSize);
font-weight: var(--typography-Script-2-fontWeight);
line-height: var(--typography-Script-2-lineHeight);
letter-spacing: 0.4px;
color: var(--Scandic-Peach-50);
transform: rotate(-2deg);
}
.cardSubtitle {
color: var(--Scandic-Brand-Pale-Peach);
font-family: var(--typography-Title-5-fontFamily);
font-size: var(--typography-Title-5-Mobile-fontSize);
font-weight: 500;
line-height: var(--typography-Title-5-lineHeight);
/* TODO: I presume the actual text-transform value should be: var(--typography-Title-5-textCase);
* - verify why we return "upper" and not uppercase.
* */
margin: 0;
text-transform: uppercase;
text-wrap: balance;
}
.buttonContainer {
display: flex;
justify-content: center;
}
@media screen and (min-width: 950px) {
.cardContainer {
grid-template-columns: 1fr 1fr 1fr;
}
.level {
font-size: var(--typography-Script-2-Desktop-fontSize);
letter-spacing: 0.48px;
}
.cardSubtitle {
font-size: var(--typography-Title-5-fontSize);
}
.level {
font-size: var(--typography-Script-2-fontSize);
}
}
.link {
justify-self: center;
}