UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

377 lines (376 loc) 11.2 kB
/* * PaymentCard component styles * This file provides styling for the PaymentCard component, including general design tokens * and variations for different card types (e.g., default, pluss, gold, etc.). */ /* * Utilities */ /* * CSS Properties Sbanken * */ :root { --sb-font-family-default: 'Roboto', 'Helvetica', 'Arial', sans-serif; --sb-font-family-heading: 'MaisonNeueHeadings', 'Roboto', 'Helvetica', 'Arial', sans-serif; --sb-font-weight-default: normal; --sb-font-weight-basis: normal; --sb-font-weight-regular: normal; --sb-font-weight-medium: 500; --sb-font-weight-bold: 700; --sb-font-size-x-small: 0.75rem; --sb-font-size-small: 0.875rem; --sb-font-size-basis: 1rem; --sb-font-size-basis--em: 1em; --sb-font-size-lead: var(--font-size-medium); --sb-font-size-medium: 1.25rem; --sb-font-size-medium--plus: 1.625rem; --sb-font-size-large: 2rem; --sb-font-size-x-large: 2.375rem; --sb-font-size-xx-large: 3rem; --sb-line-height-x-small: 1.125rem; --sb-line-height-small: 1.25rem; --sb-line-height-basis: 1.5rem; --sb-line-height-basis--em: 1.5em; --sb-line-height-lead: 1.75rem; --sb-line-height-medium: 2rem; --sb-line-height-large: 2.375rem; --sb-line-height-x-large: 2.75rem; --sb-line-height-xx-large: 3.375rem; --sb-color-black: #000; --sb-color-text: #18172a; --sb-color-gray-dark-3: #3a3a4a; --sb-color-gray-dark-3-neutral: #3e3e4a; --sb-color-gray-dark-2: #4a4a5b; --sb-color-gray-dark-2-neutral: #656472; --sb-color-gray-dark: #666578; --sb-color-gray-dark-neutral: #9494a3; --sb-color-gray: #bbbbce; --sb-color-gray-neutral: #bdbdc6; --sb-color-gray-light: #d9d9e4; --sb-color-gray-light-2: #ebebf2; --sb-color-gray-light-3: #f9f9fd; --sb-color-purple: #1c1b4e; --sb-color-purple-alternative: #222163; --sb-color-green: #92eecd; --sb-color-white: #fff; --sb-color-red: #d8134b; --sb-color-magenta: #ff3c64; --sb-color-orange: #ff5b44; --sb-color-yellow-dark: #f7bf16; --sb-color-yellow: #ffef57; --sb-color-green-dark-3: #00785b; --sb-color-green-dark-2: #1e9f73; --sb-color-violet: #4e08bc; --sb-color-violet-light: #7129e2; --sb-color-blue-dark-2: #044ccc; --sb-color-blue-dark: #005cff; --sb-color-blue: #008eff; --sb-color-orange-light: #ff817b; --sb-color-orange-light-2: #ffd7d5; --sb-color-orange-light-3: #fff0ef; --sb-color-magenta-light: #ffb6d2; --sb-color-magenta-light-2: #ffdbe9; --sb-color-magenta-light-3: #fff5f9; --sb-color-yellow-light: #fff489; --sb-color-yellow-light-2: #fff9c4; --sb-color-yellow-light-3: #fffce5; --sb-color-green-dark: #64d7b4; --sb-color-green-light: #c8f6e5; --sb-color-green-light-2: #e5fff7; --sb-color-violet-light-2: #be99ff; --sb-color-violet-light-3: #e0d0ff; --sb-color-violet-light-4: #f1ebff; --sb-color-blue-light: #61b9ff; --sb-color-blue-light-2: #bfe3ff; --sb-color-blue-light-3: #ebf6ff; --sb-spacing-x-small: 0.5rem; --sb-spacing-small: 1rem; --sb-spacing-medium: 1.5rem; --sb-spacing-large: 2rem; --sb-spacing-x-large: 3rem; --sb-spacing-xx-large: 3.5rem; --sb-layout-small: 40em; --sb-layout-medium: 60em; --sb-layout-large: 72em; --sb-layout-x-large: 80em; --sb-layout-xx-large: 90em; --sb-shadow-small: 0 2px 4px rgba(38 35 66 / 12%); --sb-shadow-medium: 0 5px 20px rgba(38 35 66 / 10%); --sb-shadow-large: 0 5px 20px rgba(38 35 66 / 20%); --sb-shadow-hover: 0 20px 40px rgba(38 35 66 / 20%); --sb-easing-default: cubic-bezier(0.42, 0, 0, 1); --prose-max-width: 60ch; } .dnb-payment-card { /* * Define custom CSS variables used throughout the PaymentCard component. * These variables allow for reusable colors, border-radius, and overlay background transitions. */ --color-dark-cyan: #003b47; --dnb-payment-bg-default: var(--color-sea-green); --dnb-payment-bg-pluss: var(--color-ocean-green); --dnb-payment-bg-white: var(--color-white); --dnb-payment-bg-gold: #d8c583; --dnb-payment-bg-black-gold: #1f1b10; --dnb-payment-bg-black-grey: #1c1c1e; --dnb-payment-overlay-bg-dark: rgba(0 0 0 / 60%); --dnb-payment-overlay-bg-light: rgba(255 255 255 / 70%); --dnb-payment-border-radius: 12px; margin: 0; border-radius: var(--dnb-payment-border-radius); /* * Base styles for the card element including size, padding, color, and shadow. * This serves as the core design for all PaymentCard variations. */ } .dnb-payment-card__card { width: 100%; height: 100%; padding: 16px; border-radius: inherit; color: var(--color-white); box-shadow: var(--shadow-default); transition: all 225ms cubic-bezier(0, 0, 0.2, 1) 0ms; -webkit-user-select: none; user-select: none; } .dnb-payment-card__card__wrapper { position: relative; width: 343px; height: 216px; border-radius: inherit; border: 1px solid var(--color-black-8); } .dnb-payment-card__card__wrapper::after { content: ""; position: absolute; top: 0; width: 100%; height: 100%; border-radius: inherit; } .dnb-payment-card__card--blocked { opacity: 0.5; } .dnb-payment-card__card { /* * Design variations for different card types. * Each modifier represents a unique card style and contains * specific background and text color configurations. */ } .dnb-payment-card__card--design-default { background-color: var(--dnb-payment-bg-default); color: var(--color-white); } .dnb-payment-card__card--design-pluss { background-color: var(--dnb-payment-bg-pluss); color: var(--color-white); } .dnb-payment-card__card--design-ung, .dnb-payment-card__card--design-youth, .dnb-payment-card__card--design-my-first { background-color: var(--dnb-payment-bg-white); color: var(--color-black); } .dnb-payment-card__card--design-gold { background-color: var(--dnb-payment-bg-gold); color: var(--color-black); } .dnb-payment-card__card--design-saga { background-color: var(--dnb-payment-bg-black-gold); color: var(--color-white); } .dnb-payment-card__card--design-saga .provider--separator { color: var(--dnb-payment-bg-gold); } .dnb-payment-card__card--design-saga-platinum, .dnb-payment-card__card--design-private { background-color: var(--dnb-payment-bg-black-grey); color: var(--color-white); } .dnb-payment-card__card--design-black { background-color: var(--color-black); color: var(--color-white); } .dnb-payment-card__card--design-business-no-visa { background-color: var(--dnb-payment-bg-business-no-visa); color: var(--color-white); } .dnb-payment-card__card--design-business-with-visa { background-color: var(--dnb-payment-bg-business-with-visa); color: var(--color-white); } .dnb-payment-card__card--design-sbanken-mastercard { background-color: var(--sb-color-purple); color: var(--color-white); } .dnb-payment-card__card--design-sbanken-visa { background-color: var(--color-white); color: var(--sb-color-text); } .dnb-payment-card__card { /* * Primary container for card content (e.g., numbers, text, holder name). * Ensures content stretches to fit the card while preserving relative positioning. */ } .dnb-payment-card__card__content { display: flex; height: 100%; width: 100%; position: relative; } .dnb-spacing .dnb-payment-card__card .dnb-p { margin-bottom: 0 !important; } .dnb-payment-card__card__numbers.dnb-p { font-size: 1.375rem; line-height: 1.143rem; font-weight: var(--font-weight-regular); } .dnb-payment-card__card__type-text.dnb-p { font-size: 0.938rem; line-height: 1.188rem; padding-top: 6px; } .dnb-payment-card__card { /* Provider Icons Container * Flex container to house provider logos (e.g., Visa, Mastercard, BankAxept). * Includes a visual separator if two providers are present. */ } .dnb-payment-card__card__providers { display: flex; align-items: center; column-gap: 1rem; } .dnb-payment-card__card__providers .provider--separator { width: 1px; height: 26px; background-color: currentcolor; transform: scale(0.5, 1); } .dnb-payment-card__card__top__left { position: absolute; top: 0; left: 0; display: flex; align-items: center; } .dnb-payment-card__card__top { /* * Normal mode: Card Type Text (Credit / Debit) * Compact mode: Provider Icons */ } .dnb-payment-card__card__top__right { position: absolute; top: 0; right: 0; } .dnb-payment-card__card__bottom { /* * Normal mode: Card Number * Compact mode: Hidden */ } .dnb-payment-card__card__bottom__left { position: absolute; bottom: 0; left: 0; } .dnb-payment-card__card__bottom { /* * Normal mode: Provider Icons * Compact mode: Hidden */ } .dnb-payment-card__card__bottom__right { position: absolute; bottom: 0; right: 0; } .dnb-payment-card { /* * Overlay styling used for additional content or status displayed over the card element. * It centers the content and adapts the overlay design * based on the card's background theme (light or dark). */ } .dnb-payment-card__overlay svg { width: 2rem; height: 2rem; shape-rendering: geometricprecision; } .dnb-payment-card__overlay svg.icon--fill path { fill: currentcolor; } .dnb-payment-card__overlay svg.icon--stroke path { stroke: currentcolor; } .dnb-payment-card__overlay { position: absolute; top: 0; width: 100%; height: 100%; border-radius: inherit; display: flex; justify-content: center; align-items: center; } .dnb-payment-card__overlay__content { min-width: 6rem; height: 6rem; padding: 1rem; display: flex; flex-direction: column; align-items: center; gap: 0.667rem; border-radius: inherit; font-size: var(--font-size-basis); line-height: var(--line-height-small); } .dnb-payment-card__overlay__content--light { background-color: var(--dnb-payment-overlay-bg-dark); color: var(--color-white); } .dnb-payment-card__overlay__content--dark { background-color: var(--dnb-payment-overlay-bg-light); color: var(--color-black); } .dnb-payment-card { /* Compact mode styling for PaymentCard component * This defines the styles and visual appearance of the card in its compact variant. * The compact variant is designed to be more concise, with reduced height and adjusted layouts. */ } .dnb-payment-card--compact .dnb-payment-card__card { height: 62px; border-radius: var(--dnb-payment-border-radius) var(--dnb-payment-border-radius) 0 0; } .dnb-payment-card--compact .dnb-payment-card__card__wrapper { height: auto; } .dnb-payment-card--compact .dnb-payment-card__card__providers { margin-top: 5px; height: 1.375rem; } .dnb-payment-card--compact .dnb-payment-card__card__providers div, .dnb-payment-card--compact .dnb-payment-card__card__providers svg { height: 100%; width: auto; } .dnb-payment-card--compact .dnb-payment-card__card__providers--multiple { margin-top: 7px; height: 1rem; column-gap: 0.5rem; } .dnb-payment-card--compact .dnb-payment-card__card__providers--multiple div, .dnb-payment-card--compact .dnb-payment-card__card__providers--multiple svg { vertical-align: top; } .dnb-payment-card--compact .dnb-payment-card__card__providers--multiple .provider--separator { width: 1px; } .dnb-payment-card--compact .dnb-payment-card__overlay__content { display: none; }