@porsche-design-system/components-react
Version:
Porsche Design System is a component library designed to help developers create the best experience for software or services distributed by Dr. Ing. h.c. F. Porsche AG.
1,040 lines (970 loc) • 37.5 kB
CSS
@theme {
--breakpoint-*: initial;
--color-*: initial;
--radius-*: initial;
--shadow-*: initial;
--text-*: initial;
--color-black: #000;
--color-white: #fff;
--color-focus: var(--_color-focus-dynamic, light-dark(#1a44ea, #1a44ea));
--color-canvas: var(
--_color-canvas-dynamic,
light-dark(#fff, hsl(225 66.7% 1.2%))
);
--color-surface: var(
--_color-surface-dynamic,
light-dark(hsl(240 10% 95%), hsl(240 2% 10%))
);
--color-frosted: var(
--_color-frosted-dynamic,
light-dark(hsl(240 5% 70% / 0.148), hsl(240 2% 43% / 0.228))
);
--color-frosted-soft: var(
--_color-frosted-soft-dynamic,
light-dark(hsl(234 9.8% 60% / 0.06), hsl(240 3.7% 26.5% / 0.154))
);
--color-frosted-strong: var(
--_color-frosted-strong-dynamic,
light-dark(hsl(236 6.5% 42% / 0.236), hsl(240 1.5% 61.8% / 0.302))
);
--color-backdrop: var(
--_color-backdrop-dynamic,
light-dark(hsl(240 5.3% 14.9% / 0.5), hsl(240 5.3% 14.9% / 0.5))
);
--color-contrast-lower: var(
--_color-contrast-lower-dynamic,
light-dark(hsl(234 6% 32.9% / 0.324), hsl(240 1.5% 61.8% / 0.302))
);
--color-contrast-low: var(
--_color-contrast-low-dynamic,
light-dark(hsl(240 5.3% 14.9% / 0.5), hsl(240 12.5% 96.9% / 0.45))
);
--color-contrast-medium: var(
--_color-contrast-medium-dynamic,
light-dark(hsl(240 6.1% 7% / 0.6), hsl(240 12.5% 96.9% / 0.56))
);
--color-contrast-high: var(
--_color-contrast-high-dynamic,
light-dark(hsl(240 7.1% 11% / 0.7), hsl(240 12.5% 96.9% / 0.67))
);
--color-contrast-higher: var(
--_color-contrast-higher-dynamic,
light-dark(hsl(240 8.7% 9% / 0.8), hsl(240 12.5% 96.9% / 0.78))
);
--color-primary: var(
--_color-primary-dynamic,
light-dark(hsl(225 66.7% 1.2%), hsl(225 100% 99%))
);
--color-success: var(
--_color-success-dynamic,
light-dark(hsl(115 77.5% 27.8%), hsl(157 84.9% 41.6%))
);
--color-success-low: var(
--_color-success-low-dynamic,
light-dark(hsl(115 77.5% 27.8% / 0.18), hsl(157 84.9% 41.6% / 0.18))
);
--color-success-medium: var(
--_color-success-medium-dynamic,
light-dark(hsl(115 77.5% 27.8% / 0.6), hsl(157 84.9% 41.6% / 0.6))
);
--color-success-frosted: var(
--_color-success-frosted-dynamic,
light-dark(hsl(109 100% 90% / 0.55), hsl(157 79% 20% / 0.66))
);
--color-success-frosted-soft: var(
--_color-success-frosted-soft-dynamic,
light-dark(hsl(109 80% 95% / 0.55), hsl(157 59% 15% / 0.66))
);
--color-warning: var(
--_color-warning-dynamic,
light-dark(hsl(28 97.7% 34.1%), hsl(28 90.2% 56.1%))
);
--color-warning-low: var(
--_color-warning-low-dynamic,
light-dark(hsl(28 97.7% 34.1% / 0.18), hsl(28 90.2% 56.1% / 0.18))
);
--color-warning-medium: var(
--_color-warning-medium-dynamic,
light-dark(hsl(28 97.7% 34.1% / 0.6), hsl(28 90.2% 56.1% / 0.6))
);
--color-warning-frosted: var(
--_color-warning-frosted-dynamic,
light-dark(hsl(40 100% 90% / 0.55), hsl(52 79% 20% / 0.66))
);
--color-warning-frosted-soft: var(
--_color-warning-frosted-soft-dynamic,
light-dark(hsl(40 80% 95% / 0.55), hsl(52 59% 15% / 0.66))
);
--color-error: var(
--_color-error-dynamic,
light-dark(hsl(357 78% 41%), hsl(0 96.9% 62%))
);
--color-error-low: var(
--_color-error-low-dynamic,
light-dark(hsl(357 78% 41% / 0.18), hsl(0 96.9% 62% / 0.18))
);
--color-error-medium: var(
--_color-error-medium-dynamic,
light-dark(hsl(357 78% 41% / 0.6), hsl(0 96.9% 62% / 0.6))
);
--color-error-frosted: var(
--_color-error-frosted-dynamic,
light-dark(hsl(0 100% 90% / 0.55), hsl(0 79% 20% / 0.66))
);
--color-error-frosted-soft: var(
--_color-error-frosted-soft-dynamic,
light-dark(hsl(0 80% 95% / 0.55), hsl(0 59% 15% / 0.66))
);
--color-info: var(
--_color-info-dynamic,
light-dark(hsl(228 83.2% 51%), hsl(210 100% 54.5%))
);
--color-info-low: var(
--_color-info-low-dynamic,
light-dark(hsl(228 83.2% 51% / 0.18), hsl(210 100% 54.5% / 0.18))
);
--color-info-medium: var(
--_color-info-medium-dynamic,
light-dark(hsl(228 83.2% 51% / 0.6), hsl(210 100% 54.5% / 0.6))
);
--color-info-frosted: var(
--_color-info-frosted-dynamic,
light-dark(hsl(211 100% 90% / 0.55), hsl(210 79% 20% / 0.66))
);
--color-info-frosted-soft: var(
--_color-info-frosted-soft-dynamic,
light-dark(hsl(211 80% 95% / 0.55), hsl(210 59% 15% / 0.66))
);
/* This variable might be prefixed by Tailwind (e.g., --tw-font-porsche-next). By pointing it to our dynamic variable, we create a stable link. */
--font-porsche-next: var(--_font-porsche-next-dynamic);
--font-sans: --theme(--font-porsche-next);
--font-weight-normal: 400;
--font-weight-semibold: 600;
--font-weight-bold: 700;
--leading-normal: calc(6px + 2.125ex);
--text-2xs: 0.75rem;
--text-xs: 0.875rem;
--text-sm: 1rem;
--text-md: clamp(1.13rem, 0.21vw + 1.08rem, 1.33rem);
--text-lg: clamp(1.27rem, 0.51vw + 1.16rem, 1.78rem);
--text-xl: clamp(1.42rem, 0.94vw + 1.23rem, 2.37rem);
--text-2xl: clamp(1.6rem, 1.56vw + 1.29rem, 3.16rem);
--text-3xl: clamp(1.8rem, 2.41vw + 1.32rem, 4.21rem);
--text-4xl: clamp(2.03rem, 3.58vw + 1.31rem, 5.61rem);
--text-5xl: clamp(2.28rem, 5.2vw + 1.24rem, 7.48rem);
--text-base: 1rem;
--text-base--line-height: calc(6px + 2.125ex);
--text-2xs--line-height: calc(6px + 2.125ex);
--text-xs--line-height: calc(6px + 2.125ex);
--text-sm--line-height: calc(6px + 2.125ex);
--text-md--line-height: calc(6px + 2.125ex);
--text-lg--line-height: calc(6px + 2.125ex);
--text-xl--line-height: calc(6px + 2.125ex);
--text-2xl--line-height: calc(6px + 2.125ex);
--text-3xl--line-height: calc(6px + 2.125ex);
--text-4xl--line-height: calc(6px + 2.125ex);
--text-5xl--line-height: calc(6px + 2.125ex);
--breakpoint-xs: 480px;
--breakpoint-sm: 760px;
--breakpoint-md: 1000px;
--breakpoint-lg: 1300px;
--breakpoint-xl: 1760px;
--breakpoint-2xl: 1920px;
--spacing-fluid-xs: clamp(4px, 0.25vw + 3px, 8px);
--spacing-fluid-sm: clamp(8px, 0.5vw + 6px, 16px);
--spacing-fluid-md: clamp(16px, 1.25vw + 12px, 36px);
--spacing-fluid-lg: clamp(32px, 2.75vw + 23px, 76px);
--spacing-fluid-xl: clamp(48px, 3vw + 38px, 96px);
--spacing-fluid-2xl: clamp(80px, 7.5vw + 56px, 200px);
--spacing-static-2xs: 1px;
--spacing-static-xs: 4px;
--spacing-static-sm: 8px;
--spacing-static-md: 16px;
--spacing-static-lg: 32px;
--spacing-static-xl: 48px;
--spacing-static-2xl: 80px;
--radius-xs: 2px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--radius-xl: 12px;
--radius-2xl: 16px;
--radius-3xl: 24px;
--radius-4xl: 32px;
--radius-full: calc(infinity * 1px);
--default-border-width: 1px;
/* alias (deprecated) */
--border-width-regular: 2px;
/* alias (deprecated) */
--border-width-thin: 1px;
--blur-frosted: 32px;
--shadow-sm: 0px 3px 8px rgba(0, 0, 0, 0.16);
--shadow-md: 0px 4px 16px rgba(0, 0, 0, 0.16);
--shadow-lg: 0px 8px 40px rgba(0, 0, 0, 0.16);
--default-outline-width: 2px;
--transition-duration-sm: 0.25s;
--transition-duration-md: 0.4s;
--transition-duration-lg: 0.6s;
--transition-duration-xl: 1.2s;
--ease-in-out: cubic-bezier(0.25, 0.1, 0.25, 1);
--ease-in: cubic-bezier(0, 0, 0.2, 1);
--ease-out: cubic-bezier(0.4, 0, 0.5, 1);
--default-transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
--default-transition-duration: 0.25s;
/* alias (deprecated) */
--shadow-low: --theme(--shadow-sm);
/* alias (deprecated) */
--shadow-medium: --theme(--shadow-md);
/* alias (deprecated) */
--shadow-high: --theme(--shadow-lg);
/* alias (deprecated) */
--transition-duration-short: --theme(--transition-duration-sm);
/* alias (deprecated) */
--transition-duration-moderate: --theme(--transition-duration-md);
/* alias (deprecated) */
--transition-duration-long: --theme(--transition-duration-lg);
/* alias (deprecated) */
--transition-duration-very-long: --theme(--transition-duration-xl);
--animate-skeleton: skeleton --theme(--transition-duration-xl)
--theme(--ease-in-out) infinite;
@keyframes skeleton {
from {
background-position-x: 100%;
}
to {
background-position-x: -100%;
}
}
}
@layer base {
/*
Tailwind v4 won't add a prefix to variables defined outside the @theme block.
We override the "Bridge Variable". Since the Tailwind theme variable
points here, the font will update even if the utility class is prefixed.
*/
:root,
:host {
--_font-porsche-next-dynamic:
"Porsche Next", "Arial Narrow", Arial, "Heiti SC", SimHei, sans-serif;
}
/* Simplified Chinese */
:lang(zh-Hans),
:lang(zh-CN),
:lang(zh-SG) {
--_font-porsche-next-dynamic:
"Porsche Next", "PingFang SC", "Microsoft YaHei", "Noto Sans SC",
"Arial Narrow", Arial, sans-serif;
}
/* Traditional Chinese */
:lang(zh-Hant),
:lang(zh-TW),
:lang(zh-HK),
:lang(zh-MO) {
--_font-porsche-next-dynamic:
"Porsche Next", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC",
"Arial Narrow", Arial, sans-serif;
}
/* Japanese */
:lang(ja) {
--_font-porsche-next-dynamic:
"Porsche Next", "Hiragino Sans", "Yu Gothic", "Noto Sans JP",
"Arial Narrow", Arial, sans-serif;
}
/* Korean */
:lang(ko) {
--_font-porsche-next-dynamic:
"Porsche Next", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR",
"Arial Narrow", Arial, sans-serif;
}
}
@layer base {
/*
Fallback for browsers without light-dark() support.
The :root rule provides defaults; the @utility scheme-* blocks below
handle per-scheme overrides via class selectors. Defining them as utilities
(instead of plain class selectors) ensures Tailwind applies its configured
prefix (e.g. tw:scheme-dark).
*/
@supports not (color: light-dark(white, black)) {
:root,
:host {
--_color-focus-dynamic: #1a44ea;
--_color-canvas-dynamic: #fff;
--_color-surface-dynamic: hsl(240 10% 95%);
--_color-frosted-dynamic: hsl(240 5% 70% / 0.148);
--_color-frosted-soft-dynamic: hsl(234 9.8% 60% / 0.06);
--_color-frosted-strong-dynamic: hsl(236 6.5% 42% / 0.236);
--_color-backdrop-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-lower-dynamic: hsl(234 6% 32.9% / 0.324);
--_color-contrast-low-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-medium-dynamic: hsl(240 6.1% 7% / 0.6);
--_color-contrast-high-dynamic: hsl(240 7.1% 11% / 0.7);
--_color-contrast-higher-dynamic: hsl(240 8.7% 9% / 0.8);
--_color-primary-dynamic: hsl(225 66.7% 1.2%);
--_color-success-dynamic: hsl(115 77.5% 27.8%);
--_color-success-low-dynamic: hsl(115 77.5% 27.8% / 0.18);
--_color-success-medium-dynamic: hsl(115 77.5% 27.8% / 0.6);
--_color-success-frosted-dynamic: hsl(109 100% 90% / 0.55);
--_color-success-frosted-soft-dynamic: hsl(109 80% 95% / 0.55);
--_color-warning-dynamic: hsl(28 97.7% 34.1%);
--_color-warning-low-dynamic: hsl(28 97.7% 34.1% / 0.18);
--_color-warning-medium-dynamic: hsl(28 97.7% 34.1% / 0.6);
--_color-warning-frosted-dynamic: hsl(40 100% 90% / 0.55);
--_color-warning-frosted-soft-dynamic: hsl(40 80% 95% / 0.55);
--_color-error-dynamic: hsl(357 78% 41%);
--_color-error-low-dynamic: hsl(357 78% 41% / 0.18);
--_color-error-medium-dynamic: hsl(357 78% 41% / 0.6);
--_color-error-frosted-dynamic: hsl(0 100% 90% / 0.55);
--_color-error-frosted-soft-dynamic: hsl(0 80% 95% / 0.55);
--_color-info-dynamic: hsl(228 83.2% 51%);
--_color-info-low-dynamic: hsl(228 83.2% 51% / 0.18);
--_color-info-medium-dynamic: hsl(228 83.2% 51% / 0.6);
--_color-info-frosted-dynamic: hsl(211 100% 90% / 0.55);
--_color-info-frosted-soft-dynamic: hsl(211 80% 95% / 0.55);
}
}
}
@utility scheme-light {
@supports not (color: light-dark(white, black)) {
--_color-focus-dynamic: #1a44ea;
--_color-canvas-dynamic: #fff;
--_color-surface-dynamic: hsl(240 10% 95%);
--_color-frosted-dynamic: hsl(240 5% 70% / 0.148);
--_color-frosted-soft-dynamic: hsl(234 9.8% 60% / 0.06);
--_color-frosted-strong-dynamic: hsl(236 6.5% 42% / 0.236);
--_color-backdrop-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-lower-dynamic: hsl(234 6% 32.9% / 0.324);
--_color-contrast-low-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-medium-dynamic: hsl(240 6.1% 7% / 0.6);
--_color-contrast-high-dynamic: hsl(240 7.1% 11% / 0.7);
--_color-contrast-higher-dynamic: hsl(240 8.7% 9% / 0.8);
--_color-primary-dynamic: hsl(225 66.7% 1.2%);
--_color-success-dynamic: hsl(115 77.5% 27.8%);
--_color-success-low-dynamic: hsl(115 77.5% 27.8% / 0.18);
--_color-success-medium-dynamic: hsl(115 77.5% 27.8% / 0.6);
--_color-success-frosted-dynamic: hsl(109 100% 90% / 0.55);
--_color-success-frosted-soft-dynamic: hsl(109 80% 95% / 0.55);
--_color-warning-dynamic: hsl(28 97.7% 34.1%);
--_color-warning-low-dynamic: hsl(28 97.7% 34.1% / 0.18);
--_color-warning-medium-dynamic: hsl(28 97.7% 34.1% / 0.6);
--_color-warning-frosted-dynamic: hsl(40 100% 90% / 0.55);
--_color-warning-frosted-soft-dynamic: hsl(40 80% 95% / 0.55);
--_color-error-dynamic: hsl(357 78% 41%);
--_color-error-low-dynamic: hsl(357 78% 41% / 0.18);
--_color-error-medium-dynamic: hsl(357 78% 41% / 0.6);
--_color-error-frosted-dynamic: hsl(0 100% 90% / 0.55);
--_color-error-frosted-soft-dynamic: hsl(0 80% 95% / 0.55);
--_color-info-dynamic: hsl(228 83.2% 51%);
--_color-info-low-dynamic: hsl(228 83.2% 51% / 0.18);
--_color-info-medium-dynamic: hsl(228 83.2% 51% / 0.6);
--_color-info-frosted-dynamic: hsl(211 100% 90% / 0.55);
--_color-info-frosted-soft-dynamic: hsl(211 80% 95% / 0.55);
}
}
@utility scheme-only-light {
@supports not (color: light-dark(white, black)) {
--_color-focus-dynamic: #1a44ea;
--_color-canvas-dynamic: #fff;
--_color-surface-dynamic: hsl(240 10% 95%);
--_color-frosted-dynamic: hsl(240 5% 70% / 0.148);
--_color-frosted-soft-dynamic: hsl(234 9.8% 60% / 0.06);
--_color-frosted-strong-dynamic: hsl(236 6.5% 42% / 0.236);
--_color-backdrop-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-lower-dynamic: hsl(234 6% 32.9% / 0.324);
--_color-contrast-low-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-medium-dynamic: hsl(240 6.1% 7% / 0.6);
--_color-contrast-high-dynamic: hsl(240 7.1% 11% / 0.7);
--_color-contrast-higher-dynamic: hsl(240 8.7% 9% / 0.8);
--_color-primary-dynamic: hsl(225 66.7% 1.2%);
--_color-success-dynamic: hsl(115 77.5% 27.8%);
--_color-success-low-dynamic: hsl(115 77.5% 27.8% / 0.18);
--_color-success-medium-dynamic: hsl(115 77.5% 27.8% / 0.6);
--_color-success-frosted-dynamic: hsl(109 100% 90% / 0.55);
--_color-success-frosted-soft-dynamic: hsl(109 80% 95% / 0.55);
--_color-warning-dynamic: hsl(28 97.7% 34.1%);
--_color-warning-low-dynamic: hsl(28 97.7% 34.1% / 0.18);
--_color-warning-medium-dynamic: hsl(28 97.7% 34.1% / 0.6);
--_color-warning-frosted-dynamic: hsl(40 100% 90% / 0.55);
--_color-warning-frosted-soft-dynamic: hsl(40 80% 95% / 0.55);
--_color-error-dynamic: hsl(357 78% 41%);
--_color-error-low-dynamic: hsl(357 78% 41% / 0.18);
--_color-error-medium-dynamic: hsl(357 78% 41% / 0.6);
--_color-error-frosted-dynamic: hsl(0 100% 90% / 0.55);
--_color-error-frosted-soft-dynamic: hsl(0 80% 95% / 0.55);
--_color-info-dynamic: hsl(228 83.2% 51%);
--_color-info-low-dynamic: hsl(228 83.2% 51% / 0.18);
--_color-info-medium-dynamic: hsl(228 83.2% 51% / 0.6);
--_color-info-frosted-dynamic: hsl(211 100% 90% / 0.55);
--_color-info-frosted-soft-dynamic: hsl(211 80% 95% / 0.55);
}
}
@utility scheme-normal {
@supports not (color: light-dark(white, black)) {
--_color-focus-dynamic: #1a44ea;
--_color-canvas-dynamic: #fff;
--_color-surface-dynamic: hsl(240 10% 95%);
--_color-frosted-dynamic: hsl(240 5% 70% / 0.148);
--_color-frosted-soft-dynamic: hsl(234 9.8% 60% / 0.06);
--_color-frosted-strong-dynamic: hsl(236 6.5% 42% / 0.236);
--_color-backdrop-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-lower-dynamic: hsl(234 6% 32.9% / 0.324);
--_color-contrast-low-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-medium-dynamic: hsl(240 6.1% 7% / 0.6);
--_color-contrast-high-dynamic: hsl(240 7.1% 11% / 0.7);
--_color-contrast-higher-dynamic: hsl(240 8.7% 9% / 0.8);
--_color-primary-dynamic: hsl(225 66.7% 1.2%);
--_color-success-dynamic: hsl(115 77.5% 27.8%);
--_color-success-low-dynamic: hsl(115 77.5% 27.8% / 0.18);
--_color-success-medium-dynamic: hsl(115 77.5% 27.8% / 0.6);
--_color-success-frosted-dynamic: hsl(109 100% 90% / 0.55);
--_color-success-frosted-soft-dynamic: hsl(109 80% 95% / 0.55);
--_color-warning-dynamic: hsl(28 97.7% 34.1%);
--_color-warning-low-dynamic: hsl(28 97.7% 34.1% / 0.18);
--_color-warning-medium-dynamic: hsl(28 97.7% 34.1% / 0.6);
--_color-warning-frosted-dynamic: hsl(40 100% 90% / 0.55);
--_color-warning-frosted-soft-dynamic: hsl(40 80% 95% / 0.55);
--_color-error-dynamic: hsl(357 78% 41%);
--_color-error-low-dynamic: hsl(357 78% 41% / 0.18);
--_color-error-medium-dynamic: hsl(357 78% 41% / 0.6);
--_color-error-frosted-dynamic: hsl(0 100% 90% / 0.55);
--_color-error-frosted-soft-dynamic: hsl(0 80% 95% / 0.55);
--_color-info-dynamic: hsl(228 83.2% 51%);
--_color-info-low-dynamic: hsl(228 83.2% 51% / 0.18);
--_color-info-medium-dynamic: hsl(228 83.2% 51% / 0.6);
--_color-info-frosted-dynamic: hsl(211 100% 90% / 0.55);
--_color-info-frosted-soft-dynamic: hsl(211 80% 95% / 0.55);
}
}
@utility scheme-dark {
@supports not (color: light-dark(white, black)) {
--_color-focus-dynamic: #1a44ea;
--_color-canvas-dynamic: hsl(225 66.7% 1.2%);
--_color-surface-dynamic: hsl(240 2% 10%);
--_color-frosted-dynamic: hsl(240 2% 43% / 0.228);
--_color-frosted-soft-dynamic: hsl(240 3.7% 26.5% / 0.154);
--_color-frosted-strong-dynamic: hsl(240 1.5% 61.8% / 0.302);
--_color-backdrop-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-lower-dynamic: hsl(240 1.5% 61.8% / 0.302);
--_color-contrast-low-dynamic: hsl(240 12.5% 96.9% / 0.45);
--_color-contrast-medium-dynamic: hsl(240 12.5% 96.9% / 0.56);
--_color-contrast-high-dynamic: hsl(240 12.5% 96.9% / 0.67);
--_color-contrast-higher-dynamic: hsl(240 12.5% 96.9% / 0.78);
--_color-primary-dynamic: hsl(225 100% 99%);
--_color-success-dynamic: hsl(157 84.9% 41.6%);
--_color-success-low-dynamic: hsl(157 84.9% 41.6% / 0.18);
--_color-success-medium-dynamic: hsl(157 84.9% 41.6% / 0.6);
--_color-success-frosted-dynamic: hsl(157 79% 20% / 0.66);
--_color-success-frosted-soft-dynamic: hsl(157 59% 15% / 0.66);
--_color-warning-dynamic: hsl(28 90.2% 56.1%);
--_color-warning-low-dynamic: hsl(28 90.2% 56.1% / 0.18);
--_color-warning-medium-dynamic: hsl(28 90.2% 56.1% / 0.6);
--_color-warning-frosted-dynamic: hsl(52 79% 20% / 0.66);
--_color-warning-frosted-soft-dynamic: hsl(52 59% 15% / 0.66);
--_color-error-dynamic: hsl(0 96.9% 62%);
--_color-error-low-dynamic: hsl(0 96.9% 62% / 0.18);
--_color-error-medium-dynamic: hsl(0 96.9% 62% / 0.6);
--_color-error-frosted-dynamic: hsl(0 79% 20% / 0.66);
--_color-error-frosted-soft-dynamic: hsl(0 59% 15% / 0.66);
--_color-info-dynamic: hsl(210 100% 54.5%);
--_color-info-low-dynamic: hsl(210 100% 54.5% / 0.18);
--_color-info-medium-dynamic: hsl(210 100% 54.5% / 0.6);
--_color-info-frosted-dynamic: hsl(210 79% 20% / 0.66);
--_color-info-frosted-soft-dynamic: hsl(210 59% 15% / 0.66);
}
}
@utility scheme-only-dark {
@supports not (color: light-dark(white, black)) {
--_color-focus-dynamic: #1a44ea;
--_color-canvas-dynamic: hsl(225 66.7% 1.2%);
--_color-surface-dynamic: hsl(240 2% 10%);
--_color-frosted-dynamic: hsl(240 2% 43% / 0.228);
--_color-frosted-soft-dynamic: hsl(240 3.7% 26.5% / 0.154);
--_color-frosted-strong-dynamic: hsl(240 1.5% 61.8% / 0.302);
--_color-backdrop-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-lower-dynamic: hsl(240 1.5% 61.8% / 0.302);
--_color-contrast-low-dynamic: hsl(240 12.5% 96.9% / 0.45);
--_color-contrast-medium-dynamic: hsl(240 12.5% 96.9% / 0.56);
--_color-contrast-high-dynamic: hsl(240 12.5% 96.9% / 0.67);
--_color-contrast-higher-dynamic: hsl(240 12.5% 96.9% / 0.78);
--_color-primary-dynamic: hsl(225 100% 99%);
--_color-success-dynamic: hsl(157 84.9% 41.6%);
--_color-success-low-dynamic: hsl(157 84.9% 41.6% / 0.18);
--_color-success-medium-dynamic: hsl(157 84.9% 41.6% / 0.6);
--_color-success-frosted-dynamic: hsl(157 79% 20% / 0.66);
--_color-success-frosted-soft-dynamic: hsl(157 59% 15% / 0.66);
--_color-warning-dynamic: hsl(28 90.2% 56.1%);
--_color-warning-low-dynamic: hsl(28 90.2% 56.1% / 0.18);
--_color-warning-medium-dynamic: hsl(28 90.2% 56.1% / 0.6);
--_color-warning-frosted-dynamic: hsl(52 79% 20% / 0.66);
--_color-warning-frosted-soft-dynamic: hsl(52 59% 15% / 0.66);
--_color-error-dynamic: hsl(0 96.9% 62%);
--_color-error-low-dynamic: hsl(0 96.9% 62% / 0.18);
--_color-error-medium-dynamic: hsl(0 96.9% 62% / 0.6);
--_color-error-frosted-dynamic: hsl(0 79% 20% / 0.66);
--_color-error-frosted-soft-dynamic: hsl(0 59% 15% / 0.66);
--_color-info-dynamic: hsl(210 100% 54.5%);
--_color-info-low-dynamic: hsl(210 100% 54.5% / 0.18);
--_color-info-medium-dynamic: hsl(210 100% 54.5% / 0.6);
--_color-info-frosted-dynamic: hsl(210 79% 20% / 0.66);
--_color-info-frosted-soft-dynamic: hsl(210 59% 15% / 0.66);
}
}
@utility scheme-light-dark {
@supports not (color: light-dark(white, black)) {
--_color-focus-dynamic: #1a44ea;
--_color-canvas-dynamic: #fff;
--_color-surface-dynamic: hsl(240 10% 95%);
--_color-frosted-dynamic: hsl(240 5% 70% / 0.148);
--_color-frosted-soft-dynamic: hsl(234 9.8% 60% / 0.06);
--_color-frosted-strong-dynamic: hsl(236 6.5% 42% / 0.236);
--_color-backdrop-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-lower-dynamic: hsl(234 6% 32.9% / 0.324);
--_color-contrast-low-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-medium-dynamic: hsl(240 6.1% 7% / 0.6);
--_color-contrast-high-dynamic: hsl(240 7.1% 11% / 0.7);
--_color-contrast-higher-dynamic: hsl(240 8.7% 9% / 0.8);
--_color-primary-dynamic: hsl(225 66.7% 1.2%);
--_color-success-dynamic: hsl(115 77.5% 27.8%);
--_color-success-low-dynamic: hsl(115 77.5% 27.8% / 0.18);
--_color-success-medium-dynamic: hsl(115 77.5% 27.8% / 0.6);
--_color-success-frosted-dynamic: hsl(109 100% 90% / 0.55);
--_color-success-frosted-soft-dynamic: hsl(109 80% 95% / 0.55);
--_color-warning-dynamic: hsl(28 97.7% 34.1%);
--_color-warning-low-dynamic: hsl(28 97.7% 34.1% / 0.18);
--_color-warning-medium-dynamic: hsl(28 97.7% 34.1% / 0.6);
--_color-warning-frosted-dynamic: hsl(40 100% 90% / 0.55);
--_color-warning-frosted-soft-dynamic: hsl(40 80% 95% / 0.55);
--_color-error-dynamic: hsl(357 78% 41%);
--_color-error-low-dynamic: hsl(357 78% 41% / 0.18);
--_color-error-medium-dynamic: hsl(357 78% 41% / 0.6);
--_color-error-frosted-dynamic: hsl(0 100% 90% / 0.55);
--_color-error-frosted-soft-dynamic: hsl(0 80% 95% / 0.55);
--_color-info-dynamic: hsl(228 83.2% 51%);
--_color-info-low-dynamic: hsl(228 83.2% 51% / 0.18);
--_color-info-medium-dynamic: hsl(228 83.2% 51% / 0.6);
--_color-info-frosted-dynamic: hsl(211 100% 90% / 0.55);
--_color-info-frosted-soft-dynamic: hsl(211 80% 95% / 0.55);
@media (prefers-color-scheme: dark) {
--_color-focus-dynamic: #1a44ea;
--_color-canvas-dynamic: hsl(225 66.7% 1.2%);
--_color-surface-dynamic: hsl(240 2% 10%);
--_color-frosted-dynamic: hsl(240 2% 43% / 0.228);
--_color-frosted-soft-dynamic: hsl(240 3.7% 26.5% / 0.154);
--_color-frosted-strong-dynamic: hsl(240 1.5% 61.8% / 0.302);
--_color-backdrop-dynamic: hsl(240 5.3% 14.9% / 0.5);
--_color-contrast-lower-dynamic: hsl(240 1.5% 61.8% / 0.302);
--_color-contrast-low-dynamic: hsl(240 12.5% 96.9% / 0.45);
--_color-contrast-medium-dynamic: hsl(240 12.5% 96.9% / 0.56);
--_color-contrast-high-dynamic: hsl(240 12.5% 96.9% / 0.67);
--_color-contrast-higher-dynamic: hsl(240 12.5% 96.9% / 0.78);
--_color-primary-dynamic: hsl(225 100% 99%);
--_color-success-dynamic: hsl(157 84.9% 41.6%);
--_color-success-low-dynamic: hsl(157 84.9% 41.6% / 0.18);
--_color-success-medium-dynamic: hsl(157 84.9% 41.6% / 0.6);
--_color-success-frosted-dynamic: hsl(157 79% 20% / 0.66);
--_color-success-frosted-soft-dynamic: hsl(157 59% 15% / 0.66);
--_color-warning-dynamic: hsl(28 90.2% 56.1%);
--_color-warning-low-dynamic: hsl(28 90.2% 56.1% / 0.18);
--_color-warning-medium-dynamic: hsl(28 90.2% 56.1% / 0.6);
--_color-warning-frosted-dynamic: hsl(52 79% 20% / 0.66);
--_color-warning-frosted-soft-dynamic: hsl(52 59% 15% / 0.66);
--_color-error-dynamic: hsl(0 96.9% 62%);
--_color-error-low-dynamic: hsl(0 96.9% 62% / 0.18);
--_color-error-medium-dynamic: hsl(0 96.9% 62% / 0.6);
--_color-error-frosted-dynamic: hsl(0 79% 20% / 0.66);
--_color-error-frosted-soft-dynamic: hsl(0 59% 15% / 0.66);
--_color-info-dynamic: hsl(210 100% 54.5%);
--_color-info-low-dynamic: hsl(210 100% 54.5% / 0.18);
--_color-info-medium-dynamic: hsl(210 100% 54.5% / 0.6);
--_color-info-frosted-dynamic: hsl(210 79% 20% / 0.66);
--_color-info-frosted-soft-dynamic: hsl(210 59% 15% / 0.66);
}
}
}
/* Gradient */
@utility bg-fade-to-t {
background-image: linear-gradient(
to top,
hsla(0, 0%, 0%, 0.8) 0%,
hsla(0, 0%, 0%, 0.8) 8.1%,
hsla(0, 0%, 0%, 0.8) 15.5%,
hsla(0, 0%, 0%, 0.8) 22.5%,
hsla(0, 0%, 0%, 0.78) 29%,
hsla(0, 0%, 0%, 0.73) 35.3%,
hsla(0, 0%, 0%, 0.67) 41.2%,
hsla(0, 0%, 0%, 0.6) 47.1%,
hsla(0, 0%, 0%, 0.52) 52.9%,
hsla(0, 0%, 0%, 0.44) 58.8%,
hsla(0, 0%, 0%, 0.33) 64.7%,
hsla(0, 0%, 0%, 0.22) 71%,
hsla(0, 0%, 0%, 0.12) 77.5%,
hsla(0, 0%, 0%, 0.05) 84.5%,
hsla(0, 0%, 0%, 0.011) 91.9%,
hsla(0, 0%, 0%, 0) 100%
);
}
@utility bg-fade-to-r {
background-image: linear-gradient(
to right,
hsla(0, 0%, 0%, 0.8) 0%,
hsla(0, 0%, 0%, 0.8) 8.1%,
hsla(0, 0%, 0%, 0.8) 15.5%,
hsla(0, 0%, 0%, 0.8) 22.5%,
hsla(0, 0%, 0%, 0.78) 29%,
hsla(0, 0%, 0%, 0.73) 35.3%,
hsla(0, 0%, 0%, 0.67) 41.2%,
hsla(0, 0%, 0%, 0.6) 47.1%,
hsla(0, 0%, 0%, 0.52) 52.9%,
hsla(0, 0%, 0%, 0.44) 58.8%,
hsla(0, 0%, 0%, 0.33) 64.7%,
hsla(0, 0%, 0%, 0.22) 71%,
hsla(0, 0%, 0%, 0.12) 77.5%,
hsla(0, 0%, 0%, 0.05) 84.5%,
hsla(0, 0%, 0%, 0.011) 91.9%,
hsla(0, 0%, 0%, 0) 100%
);
}
@utility bg-fade-to-b {
background-image: linear-gradient(
to bottom,
hsla(0, 0%, 0%, 0.8) 0%,
hsla(0, 0%, 0%, 0.8) 8.1%,
hsla(0, 0%, 0%, 0.8) 15.5%,
hsla(0, 0%, 0%, 0.8) 22.5%,
hsla(0, 0%, 0%, 0.78) 29%,
hsla(0, 0%, 0%, 0.73) 35.3%,
hsla(0, 0%, 0%, 0.67) 41.2%,
hsla(0, 0%, 0%, 0.6) 47.1%,
hsla(0, 0%, 0%, 0.52) 52.9%,
hsla(0, 0%, 0%, 0.44) 58.8%,
hsla(0, 0%, 0%, 0.33) 64.7%,
hsla(0, 0%, 0%, 0.22) 71%,
hsla(0, 0%, 0%, 0.12) 77.5%,
hsla(0, 0%, 0%, 0.05) 84.5%,
hsla(0, 0%, 0%, 0.011) 91.9%,
hsla(0, 0%, 0%, 0) 100%
);
}
@utility bg-fade-to-l {
background-image: linear-gradient(
to left,
hsla(0, 0%, 0%, 0.8) 0%,
hsla(0, 0%, 0%, 0.8) 8.1%,
hsla(0, 0%, 0%, 0.8) 15.5%,
hsla(0, 0%, 0%, 0.8) 22.5%,
hsla(0, 0%, 0%, 0.78) 29%,
hsla(0, 0%, 0%, 0.73) 35.3%,
hsla(0, 0%, 0%, 0.67) 41.2%,
hsla(0, 0%, 0%, 0.6) 47.1%,
hsla(0, 0%, 0%, 0.52) 52.9%,
hsla(0, 0%, 0%, 0.44) 58.8%,
hsla(0, 0%, 0%, 0.33) 64.7%,
hsla(0, 0%, 0%, 0.22) 71%,
hsla(0, 0%, 0%, 0.12) 77.5%,
hsla(0, 0%, 0%, 0.05) 84.5%,
hsla(0, 0%, 0%, 0.011) 91.9%,
hsla(0, 0%, 0%, 0) 100%
);
}
/* Grid */
@utility grid-template {
--pds-internal-grid-safe-zone: max(22px, 10.625vw - 12px);
--_pds-grid-col: minmax(
0,
var(
--pds-internal-grid-outer-column,
calc(var(--pds-internal-grid-safe-zone) - --theme(--spacing-fluid-md))
)
);
display: grid;
grid-template-columns: [full-start] var(
--_pds-grid-col
) [wide-start extended-start basic-start narrow-start] repeat(
6,
minmax(0, 1fr)
) [narrow-end basic-end extended-end wide-end] var(
--_pds-grid-col
) [full-end];
gap: --theme(--spacing-fluid-md);
min-width: var(--pds-internal-grid-width-min, 320px);
max-width: var(--pds-internal-grid-width-max, 2560px);
box-sizing: content-box;
margin-inline: var(--pds-internal-grid-margin, 0);
padding-inline: calc(50% - var(--pds-internal-grid-margin, 0px) - 2560px / 2);
@media (width >= 760px) {
--pds-internal-grid-safe-zone: calc(5vw - 16px);
grid-template-columns: [full-start] var(
--_pds-grid-col
) [wide-start] minmax(0, 1fr) [extended-start] minmax(
0,
1fr
) [basic-start] repeat(2, minmax(0, 1fr)) [narrow-start] repeat(
8,
minmax(0, 1fr)
) [narrow-end] repeat(2, minmax(0, 1fr)) [basic-end] minmax(
0,
1fr
) [extended-end] minmax(0, 1fr) [wide-end] var(
--_pds-grid-col
) [full-end];
}
@media (width >= 1920px) {
--pds-internal-grid-safe-zone: min(50vw - 880px, 400px);
}
}
/* Grid: Area Narrow */
@utility col-narrow {
--_pds-grid-one-half: 3;
grid-column: narrow;
@media (width >= 760px) {
--_pds-grid-one-half: 4;
}
}
@utility col-start-narrow {
--_pds-grid-one-half: 3;
grid-column-start: narrow-start;
@media (width >= 760px) {
--_pds-grid-one-half: 4;
}
}
@utility col-end-narrow {
--_pds-grid-one-half: 3;
grid-column-end: narrow-end;
@media (width >= 760px) {
--_pds-grid-one-half: 4;
}
}
/* Grid: Area Basic */
@utility col-basic {
--_pds-grid-one-half: 3;
--_pds-grid-one-third: 2;
--_pds-grid-two-thirds: 4;
grid-column: basic;
@media (width >= 760px) {
--_pds-grid-one-half: 6;
--_pds-grid-one-third: 4;
--_pds-grid-two-thirds: 8;
}
}
@utility col-start-basic {
--_pds-grid-one-half: 3;
--_pds-grid-one-third: 2;
--_pds-grid-two-thirds: 4;
grid-column-start: basic-start;
@media (width >= 760px) {
--_pds-grid-one-half: 6;
--_pds-grid-one-third: 4;
--_pds-grid-two-thirds: 8;
}
}
@utility col-end-basic {
--_pds-grid-one-half: 3;
--_pds-grid-one-third: 2;
--_pds-grid-two-thirds: 4;
grid-column-end: basic-end;
@media (width >= 760px) {
--_pds-grid-one-half: 6;
--_pds-grid-one-third: 4;
--_pds-grid-two-thirds: 8;
}
}
/* Grid: Area Extended */
@utility col-extended {
--_pds-grid-one-half: 3;
grid-column: extended;
@media (width >= 760px) {
--_pds-grid-one-half: 7;
}
}
@utility col-start-extended {
--_pds-grid-one-half: 3;
grid-column-start: extended-start;
@media (width >= 760px) {
--_pds-grid-one-half: 7;
}
}
@utility col-end-extended {
--_pds-grid-one-half: 3;
grid-column-end: extended-end;
@media (width >= 760px) {
--_pds-grid-one-half: 7;
}
}
/* Grid: Area Wide */
@utility col-wide {
--_pds-grid-one-half: 3;
grid-column: wide;
@media (width >= 760px) {
--_pds-grid-one-half: 8;
}
}
@utility col-start-wide {
--_pds-grid-one-half: 3;
grid-column-start: wide-start;
@media (width >= 760px) {
--_pds-grid-one-half: 8;
}
}
@utility col-end-wide {
--_pds-grid-one-half: 3;
grid-column-end: wide-end;
@media (width >= 760px) {
--_pds-grid-one-half: 8;
}
}
/* Grid: Area Full */
@utility col-full {
grid-column: full;
}
@utility col-start-full {
grid-column-start: full-start;
}
@utility col-end-full {
grid-column-end: full-end;
}
/* Grid: Division */
@utility col-span-one-half {
grid-column: span var(--_pds-grid-one-half, 1) / span
var(--_pds-grid-one-half, 1);
}
@utility col-span-one-third {
grid-column: span var(--_pds-grid-one-third, 1) / span
var(--_pds-grid-one-third, 1);
}
@utility col-span-two-thirds {
grid-column: span var(--_pds-grid-two-thirds, 1) / span
var(--_pds-grid-two-thirds, 1);
}
/* Skeleton */
@utility skeleton {
animation: --theme(--animate-skeleton);
display: block;
border-radius: --theme(--radius-sm);
background-color: transparent;
background-image: linear-gradient(
to right,
--theme(--color-frosted) 0%,
--theme(--color-frosted-strong) 50%,
--theme(--color-frosted) 100%
);
background-position: 0 0;
background-size: 200% 100%;
}
/* Typography: Text */
@utility prose-text-2xs {
font: --theme(--font-weight-normal) --theme(--text-2xs) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-xs {
font: --theme(--font-weight-normal) --theme(--text-xs) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-sm {
font: --theme(--font-weight-normal) --theme(--text-sm) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-md {
font: --theme(--font-weight-normal) --theme(--text-md) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-lg {
font: --theme(--font-weight-normal) --theme(--text-lg) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-xl {
font: --theme(--font-weight-normal) --theme(--text-xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-2xl {
font: --theme(--font-weight-normal) --theme(--text-2xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-3xl {
font: --theme(--font-weight-normal) --theme(--text-3xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-4xl {
font: --theme(--font-weight-normal) --theme(--text-4xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-text-5xl {
font: --theme(--font-weight-normal) --theme(--text-5xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
/* Typography: Heading */
@utility prose-heading-2xs {
font: --theme(--font-weight-semibold) --theme(--text-2xs) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-xs {
font: --theme(--font-weight-semibold) --theme(--text-xs) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-sm {
font: --theme(--font-weight-semibold) --theme(--text-sm) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-md {
font: --theme(--font-weight-normal) --theme(--text-md) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-lg {
font: --theme(--font-weight-normal) --theme(--text-lg) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-xl {
font: --theme(--font-weight-normal) --theme(--text-xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-2xl {
font: --theme(--font-weight-normal) --theme(--text-2xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-3xl {
font: --theme(--font-weight-normal) --theme(--text-3xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-4xl {
font: --theme(--font-weight-normal) --theme(--text-4xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-heading-5xl {
font: --theme(--font-weight-normal) --theme(--text-5xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
/* Typography: Display */
@utility prose-display-sm {
font: --theme(--font-weight-normal) --theme(--text-3xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-display-md {
font: --theme(--font-weight-normal) --theme(--text-4xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}
@utility prose-display-lg {
font: --theme(--font-weight-normal) --theme(--text-5xl) /
--theme(--leading-normal) --theme(--font-porsche-next);
color: --theme(--color-primary);
}