UNPKG

@telekom/scale-components

Version:

Scale is the digital design system for Telekom products and experiences.

436 lines (374 loc) 14 kB
/** * @license * Scale https://github.com/telekom/scale * * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ /* TODO clean up CSS variables, some are not used, new ones might be needed (fonts mostly, but also sizes/spacing) */ duet-date-picker { --duet-color-primary: var(--telekom-color-primary-standard); --duet-color-text: var(--telekom-color-text-and-icon-standard); --duet-color-overlay: var(--telekom-color-background-surface); --duet-font: var(--telekom-typography-font-family-sans); --duet-font-normal: var(--telekom-typography-font-weight-regular); --duet-font-bold: var(--telekom-typography-font-weight-medium); --duet-color-placeholder: var(--telekom-color-ui-regular); --duet-radius: var(--telekom-radius-standard); --duet-radius-toggle-focus: 6px; --duet-color-text-active: var(--telekom-color-text-and-icon-white-standard); --duet-color-button: var(--telekom-color-background-surface); --duet-color-surface: var(--telekom-color-background-surface); --duet-z-index: 600; --duet-z-index-toggle: 2; --spacing-x: var(--telekom-spacing-composition-space-05); --spacing-heading: 0 0 var(--telekom-spacing-composition-space-06) 0; --font-size-heading: var(--telekom-typography-font-size-body); --radius-day: var(--telekom-radius-standard); --font-size-day: var(--telekom-typography-font-size-body); --font-size-table-header: var(--telekom-typography-font-size-caption); --font-weight-table-header: var(--telekom-typography-font-weight-extra-bold); --focus-outline: var(--telekom-line-weight-highlight) solid var(--telekom-color-functional-focus-standard); --z-index-label: 10; } duet-date-picker .duet-date__input { border: var(--telekom-line-weight-standard) solid var(--telekom-color-ui-border-standard); background-color: var(--telekom-color-ui-state-fill-standard); padding: 1.125rem calc(2rem - var(--telekom-spacing-composition-space-01)) 0.25rem calc(var(--spacing-x) - var(--telekom-spacing-composition-space-01)); height: var(--telekom-spacing-composition-space-13); font: var(--telekom-text-style-body); } duet-date-picker .duet-date__input:hover { border: var(--telekom-spacing-composition-space-01) solid var(--telekom-color-ui-border-hovered); background-color: var(--telekom-color-ui-state-fill-hovered); } duet-date-picker .duet-date__input:focus { border: var(--telekom-line-weight-standard) solid var(--telekom-color-ui-border-pressed); outline: var(--focus-outline); box-shadow: none; outline-offset: 1px; } duet-date-picker .duet-date__toggle { border-radius: 0 var(--duet-radius-toggle-focus) var(--duet-radius-toggle-focus) 0; background: transparent; z-index: var(--duet-z-index-toggle); box-shadow: inset 1px 0 0 var(--telekom-color-ui-faint); width: var(--telekom-spacing-composition-space-13); } duet-date-picker .duet-date__toggle:focus { outline: var(--focus-outline); outline-offset: 2px; box-shadow: none; } .scale-date-picker:not(.scale-date-picker--disabled) duet-date-picker .duet-date__toggle:hover { background-color: var(--telekom-color-ui-state-fill-hovered); } .scale-date-picker:not(.scale-date-picker--disabled) duet-date-picker .duet-date__toggle:active { background-color: var(--telekom-color-ui-state-fill-pressed); } duet-date-picker .duet-date__toggle:hover scale-icon-content-calendar { color: var(--telekom-color-text-and-icon-standard); } duet-date-picker .duet-date__toggle:active scale-icon-content-calendar { color: var(--telekom-color-text-and-icon-standard); } @media screen and (forced-colors: active), (-ms-high-contrast: active) { duet-date-picker .duet-date__toggle scale-icon-content-calendar, duet-date-picker .duet-date__header .duet-date__select-label, duet-date-picker .duet-date__header .duet-date__nav svg { color: var(--telekom-color-text-and-icon-inverted-standard); } duet-date-picker .duet-date__day[aria-pressed='true'] { border: 1px solid transparent; } duet-date-picker .duet-date__day.is-today::before { border: 2px solid transparent; } } .scale-date-picker { position: relative; } .scale-date-picker .date-picker__helper-text { font-weight: var(--telekom-typography-font-weight-bold); transition: all var(--telekom-motion-duration-transition) var(--telekom-motion-easing-standard); padding-left: var(--telekom-spacing-composition-space-05); font-size: var(--telekom-typography-font-size-small); line-height: var(--telekom-typography-line-spacing-standard); color: var(--telekom-color-text-and-icon-functional-informational); } .scale-date-picker .date-picker__label { top: 0; left: 0; color: var(--telekom-color-text-and-icon-additional); display: flex; z-index: var(--z-index-label); position: absolute; transition: all var(--telekom-motion-duration-transition) var(--telekom-motion-easing-standard); pointer-events: none; font: var(--telekom-text-style-ui); transform: translate(var(--telekom-spacing-composition-space-05), 0.875rem); } duet-date-picker .duet-date__input::placeholder { visibility: hidden; color: transparent; transition: all var(--telekom-motion-duration-transition) var(--telekom-motion-easing-standard); } duet-date-picker .duet-date__header { margin-top: var(--telekom-spacing-composition-space-04); margin-bottom: var(--telekom-spacing-composition-space-04); font: var(--telekom-text-style-ui); } duet-date-picker .duet-date__select { height: var(--telekom-spacing-composition-space-10); } duet-date-picker .duet-date__prev, duet-date-picker .duet-date__next { width: var(--telekom-spacing-composition-space-10); height: var(--telekom-spacing-composition-space-10); } duet-date-picker .duet-date__day { width: var(--telekom-spacing-composition-space-13); height: var(--telekom-spacing-composition-space-13); } .scale-date-picker.scale-date-picker--focus .date-picker__label, .scale-date-picker.animated .date-picker__label { color: var(--telekom-color-text-and-icon-additional); transition: all var(--telekom-motion-duration-transition) var(--telekom-motion-easing-standard); font: var(--telekom-text-style-small-bold); transform: translate( 0.75rem, calc(0.25rem + var(--telekom-spacing-composition-space-01)) ); } .scale-date-picker.animated .duet-date__input::placeholder, duet-date-picker .duet-date__input:focus::placeholder { visibility: initial; color: var(--telekom-color-text-and-icon-standard); transition: all var(--telekom-motion-duration-transition) var(--telekom-motion-easing-standard); } duet-date-picker .duet-date__table { margin-top: var(--telekom-spacing-composition-space-04); } /* Error state */ .scale-date-picker--status-error duet-date-picker .duet-date__input { margin-top: -1px; margin-bottom: -1px; border: var(--telekom-line-weight-highlight) solid var(--telekom-color-functional-danger-standard); } .scale-date-picker--status-error duet-date-picker .duet-date__input:hover { border: var(--telekom-line-weight-highlight) solid var(--telekom-color-functional-danger-hovered); } .scale-date-picker--status-error duet-date-picker .duet-date__input:focus { outline: var(--focus-outline); outline-offset: 1px; box-shadow: none; } .scale-date-picker--status-error .duet-date__toggle { width: 47px; } /* Disabled */ .scale-date-picker.scale-date-picker--disabled input, .scale-date-picker.scale-date-picker--disabled .duet-date__toggle { cursor: not-allowed; } .scale-date-picker.scale-date-picker--disabled input, .scale-date-picker.scale-date-picker--disabled input:hover { color: var(--telekom-color-text-and-icon-disabled); border-color: var(--telekom-color-ui-border-disabled); background: none; } .scale-date-picker.scale-date-picker--disabled .duet-date__toggle { color: var(--telekom-color-text-and-icon-disabled); box-shadow: inset 1px 0 0 var(--telekom-color-ui-border-disabled); } .scale-date-picker.scale-date-picker--disabled .duet-date__toggle:hover, .scale-date-picker.scale-date-picker--disabled .duet-date__toggle:hover scale-icon-content-calendar { color: var(--telekom-color-text-and-icon-disabled); } .scale-date-picker.scale-date-picker--disabled .date-picker__label { color: var(--telekom-color-text-and-icon-disabled); } /* Popover layout */ .scale-date-picker__popup-heading { text-align: center; padding: var(--spacing-heading); font-size: var(--font-size-heading); /* FIXME this is overwriting the font-size rule above thus the variable is not doing anything */ font: var(--telekom-text-style-heading-6); /* FIXME remove !important (fix Storybook?) */ color: var(--telekom-color-text-and-icon-standard) !important; } duet-date-picker .duet-date__dialog-content { border: none; box-shadow: var(--telekom-shadow-raised-standard); max-width: 324px; padding: var(--telekom-spacing-composition-space-06) var(--telekom-spacing-composition-space-04) var(--telekom-spacing-composition-space-04) var(--telekom-spacing-composition-space-04); margin-top: var(--telekom-spacing-composition-space-03); } duet-date-picker .duet-date__cell { padding: 0; } duet-date-picker .duet-date__mobile { margin-left: 0; padding: var(--telekom-spacing-composition-space-03) 0 var(--telekom-spacing-composition-space-05) 0; } duet-date-picker .duet-date__select { margin-top: 0; } duet-date-picker .duet-date__select:nth-of-type(1) { margin-right: var(--telekom-spacing-composition-space-04); } duet-date-picker .duet-date__select-label { font: var(--telekom-text-style-ui); } duet-date-picker .duet-date__select-label svg { width: 16px; height: 16px; margin-left: var(--telekom-spacing-composition-space-04); } duet-date-picker .duet-date__select select:focus + .duet-date__select-label { outline: var(--focus-outline); } duet-date-picker .duet-date__select select:hover + .duet-date__select-label { background: var(--telekom-color-primary-hovered); color: var(--telekom-color-text-and-icon-white-standard); } duet-date-picker .duet-date__select select:active + .duet-date__select-label { box-shadow: none; background: var(--telekom-color-primary-pressed); color: var(--telekom-color-text-and-icon-white-standard); } duet-date-picker .duet-date__prev, duet-date-picker .duet-date__next { border-radius: var(--duet-radius); margin-left: var(--telekom-spacing-composition-space-02); } duet-date-picker .duet-date__prev:hover, duet-date-picker .duet-date__next:hover { background: var(--telekom-color-primary-hovered); color: var(--telekom-color-text-and-icon-white-standard); } duet-date-picker .duet-date__prev:active, duet-date-picker .duet-date__next:active { background: var(--telekom-color-primary-pressed); color: var(--telekom-color-text-and-icon-white-standard); } duet-date-picker .duet-date__prev:focus, duet-date-picker .duet-date__next:focus { outline: var(--focus-outline); } duet-date-picker .duet-date__close { border-radius: var(--duet-radius); } duet-date-picker .duet-date__close:focus { outline: var(--focus-outline); } duet-date-picker .duet-date__table-header { height: var(--telekom-spacing-composition-space-14); padding: 0; font-size: var(--font-size-table-header); font-weight: var(--font-weight-table-header); } duet-date-picker .duet-date__day { padding: 0; border-radius: var(--radius-day); font-size: var(--font-size-day); color: var(--telekom-color-text-and-icon-standard); } duet-date-picker .duet-date__day.is-today { box-shadow: none; } duet-date-picker .duet-date__day.is-disabled { opacity: 1; color: var(--telekom-color-text-and-icon-disabled); pointer-events: none; } duet-date-picker .duet-date__day.is-today::before { content: ''; display: inline-block; width: var(--telekom-spacing-composition-space-03); height: var(--telekom-spacing-composition-space-03); border-radius: var(--telekom-radius-standard); background-color: var(--telekom-color-primary-standard); opacity: 1; left: var(--telekom-spacing-composition-space-07); top: var(--telekom-spacing-composition-space-10); } duet-date-picker [aria-selected='true'] .duet-date__day.is-today::before, duet-date-picker .duet-date__day.is-today:hover::before { /* FIXME */ background-color: var(--telekom-color-background-surface); } duet-date-picker .duet-date__day.is-today.is-disabled::before { /* FIXME ?? */ background-color: var(--telekom-radius-standard); } duet-date-picker .duet-date__day:focus { background: var(--telekom-color-background-surface); color: var(--telekom-color-text-and-icon-standard); outline: var(--focus-outline); box-shadow: none; } duet-date-picker .duet-date__day:hover { background: var(--telekom-color-primary-hovered); color: var(--telekom-color-text-and-icon-white-standard); } duet-date-picker .duet-date__day:active { box-shadow: none; background: var(--telekom-color-primary-pressed); color: var(--telekom-color-text-and-icon-white-standard); } duet-date-picker .duet-date__day:hover::before { border-radius: var(--duet-radius); opacity: 1; background: transparent; color: var(--telekom-color-text-and-icon-white-standard); } duet-date-picker .scale-date-picker__popup-heading { padding: var(--telekom-spacing-composition-space-04); } scale-date-picker .has-helper-text scale-helper-text { display: block; margin-top: var(--telekom-spacing-composition-space-03); } @media (max-width: 35.9375em) and (orientation: landscape) { duet-date-picker .duet-date__dialog-content { zoom: 70%; } } @media (max-width: 35.9375em) { duet-date-picker .scale-date-picker__popup-heading { display: none; } duet-date-picker .duet-date__dialog-content { max-width: none; } }