Porsche Design System Search Navigate to GitHub repository of Porsche Design System Open sidebar Introduction
Styles#
Styles are the foundational layer of our design language and define basics like colors in different themes, typography
and other effects that can be applied to objects; or to define the structure and appearance with layout grid and
spacings.
You should only use the styles whenever you have to build a custom component or pattern that is not yet available in the
components library or for foundational layout objects like typography, surfaces and boxes.
The styles are available as JavaScript and SCSS version and available in the Figma library.
Border
Drop Shadow
Focus
Frosted Glass
Gradient
Grid
Media Query
Motion
Spacing
Theme
Typography
JS
When working with JavaScript styles, the way you import them depends on the library or tool you're using.
For most css-in-js libraries (e.g., JSS
, styled-components
...):
import { … } from '@porsche-design-system/components-{js|angular|react|vue}/styles';
.
For vanilla-extract
:
import { … } from '@porsche-design-system/components-{js|angular|react|vue}/styles/vanilla-extract';
.
Make sure to use "moduleResolution": "bundler"
in the compilerOptions
of your tsconfig.json
to ensure the correct
resolution of the styles.
SCSS
SCSS styles can be imported by: @use '@porsche-design-system/components-{js|angular|react|vue}/styles' as *
; Global settingsTheme ThemeMore information Changes the theme of the application and any Porsche Design System component. It's possible to choose between forced theme light and dark . It's also possible to use auto , which applies light or dark theme depending on the operating system settings automatically. // TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
Light// TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
Dark// TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
Auto (sync with operating system)DirectionMore information The dir
global attribute in HTML changes the direction of text and other content within an element. It's most often used on the <html>
tag to set the entire page's direction, which is crucial for supporting languages that are written from right to left (RTL), such as Arabic and Hebrew. For example, using <html dir="rtl">
makes the entire page display from right to left, adjusting the layout and text flow accordingly. // TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
LTR (left-to-right)// TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
RTL (right-to-left)Text ZoomMore information To ensure accessibility and comply with WCAG 2.2 AA standards , it is mandatory for web content to support text resizing up to at least 200% without loss of content or functionality. Using relative units like rem
is a best practice for achieving this, as they allow the text to scale uniformly based on the user's browser settings. // TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
100%// TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
130%// TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
150%// TODO: get rid of ARIA sprouting and use `elementInternals` API when AXE-CORE supports it: https://github.com/dequelabs/axe-core/issues/4259
200%