src/app/(proper_react)/(redesign)/(public)/LandingViewRedesign/components/Hero.module.scss (137 lines of code) (raw):

@use "../../../../../tokens"; .hero { background: linear-gradient(270deg, #9948fc 6.7%, #4b179f 67.9%); overflow: hidden; position: relative; @media screen and (min-width: tokens.$screen-sm) { border-radius: tokens.$border-radius-xl; } } .heroContent { align-items: center; color: tokens.$color-white; display: flex; flex-direction: column; position: relative; gap: tokens.$layout-md; padding: tokens.$layout-xs; z-index: 1; @media screen and (min-width: tokens.$screen-sm) { padding: tokens.$layout-sm; } } .heroBackground { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); min-height: 100%; min-width: 100%; z-index: 0; } .heroTitle { align-items: center; display: flex; gap: tokens.$spacing-md; flex-direction: column; max-width: tokens.$content-md; text-align: center; @media screen and (min-width: tokens.$screen-md) { padding: 0 tokens.$layout-md; } h2 { font: tokens.$text-title-sm; font-family: var(--font-inter); font-weight: 400; line-height: 1.25em; } p { font: tokens.$text-body-lg; } } .heroCta { width: 100%; form { align-items: stretch; display: flex; flex-direction: column; gap: tokens.$spacing-md; label { color: tokens.$color-purple-05; } } @media screen and (min-width: tokens.$screen-md) { max-width: tokens.$content-md; padding: 0 tokens.$layout-md; form { align-items: flex-end; flex-direction: row; button { flex: 0 0 auto; } } } // Override the background color in oder to increase // the contrast against the background. form > button { /* stylelint-disable-next-line declaration-no-important */ background-color: tokens.$color-purple-90 !important; &:hover { /* stylelint-disable-next-line declaration-no-important */ background-color: tokens.$color-purple-80 !important; } } } .heroBanner { background: rgba(tokens.$color-white, 0.05); border-radius: tokens.$border-radius-xl; display: flex; justify-content: center; padding: tokens.$spacing-md; width: 100%; @media screen and (min-width: tokens.$screen-md) { padding: tokens.$spacing-xl; } &List { display: flex; gap: tokens.$spacing-lg; flex-direction: column; padding: 0; max-width: tokens.$content-xl; @media screen and (min-width: tokens.$screen-md) { flex-direction: row; } @media screen and (min-width: tokens.$screen-md) { gap: tokens.$spacing-xl; } } &Item { display: flex; flex-direction: column; gap: tokens.$spacing-md; position: relative; padding-left: tokens.$layout-md; strong { font: tokens.$text-body-lg; @media screen and (min-width: tokens.$screen-sm) { font: tokens.$text-body-xl; } } @media screen and (max-width: calc(tokens.$screen-lg - 1px)) { // Add a bit more space: The next spacing step is too much. padding-left: calc(tokens.$layout-sm + tokens.$spacing-sm); span { @include tokens.visually-hidden; } } svg { fill: tokens.$color-purple-30; padding: tokens.$spacing-xs; position: absolute; left: 0; top: 0; transform: translateY(-10%); height: 32px; width: 32px; @media screen and (min-width: tokens.$screen-lg) { height: 40px; width: 40px; } } } }