feat(WEB-304): remaning UI from design system primitives
This commit is contained in:
@@ -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>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user