date-pickerpackage.theme.lumo.vaadin-date-picker-overlay-content-styles.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vaadin-webcomponents Show documentation
Show all versions of vaadin-webcomponents Show documentation
Mvnpm composite: Vaadin webcomponents
The newest version!
import '@vaadin/vaadin-lumo-styles/color.js';
import '@vaadin/vaadin-lumo-styles/sizing.js';
import '@vaadin/vaadin-lumo-styles/spacing.js';
import '@vaadin/vaadin-lumo-styles/style.js';
import '@vaadin/vaadin-lumo-styles/typography.js';
import '@vaadin/button/theme/lumo/vaadin-button-styles.js';
import './vaadin-date-picker-year-styles.js';
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
registerStyles(
'vaadin-date-picker-overlay-content',
css`
:host {
position: relative;
/* Background for the year scroller, placed here as we are using a mask image on the actual years part */
background-image: linear-gradient(var(--lumo-shade-5pct), var(--lumo-shade-5pct));
background-size: 57px 100%;
background-position: top right;
background-repeat: no-repeat;
cursor: default;
}
::slotted([slot='months']) {
/* Month calendar height:
header height + margin-bottom
+ weekdays height + margin-bottom
+ date cell heights
+ small margin between month calendars
*/
/* prettier-ignore */
--vaadin-infinite-scroller-item-height:
calc(
var(--lumo-font-size-l) + var(--lumo-space-m)
+ var(--lumo-font-size-xs) + var(--lumo-space-s)
+ var(--lumo-size-m) * 6
+ var(--lumo-space-s)
);
--vaadin-infinite-scroller-buffer-offset: 10%;
-webkit-mask-image: linear-gradient(transparent, #000 10%, #000 85%, transparent);
mask-image: linear-gradient(transparent, #000 10%, #000 85%, transparent);
position: relative;
margin-right: 57px;
}
::slotted([slot='years']) {
/* TODO get rid of fixed magic number */
--vaadin-infinite-scroller-buffer-width: 97px;
width: 57px;
height: auto;
top: 0;
bottom: 0;
font-size: var(--lumo-font-size-s);
box-shadow: inset 2px 0 4px 0 var(--lumo-shade-5pct);
-webkit-mask-image: linear-gradient(transparent, #000 35%, #000 65%, transparent);
mask-image: linear-gradient(transparent, #000 35%, #000 65%, transparent);
cursor: var(--lumo-clickable-cursor);
}
::slotted([slot='years']:hover) {
--_lumo-date-picker-year-opacity: 1;
}
/* TODO unsupported selector */
#scrollers {
position: static;
display: block;
}
/* TODO fix this in vaadin-date-picker that it adapts to the width of the year scroller */
:host([desktop]) ::slotted([slot='months']) {
right: auto;
}
/* Year scroller position indicator */
::slotted([slot='years'])::before {
border: none;
width: 1em;
height: 1em;
background-color: var(--lumo-base-color);
background-image: linear-gradient(var(--lumo-tint-5pct), var(--lumo-tint-5pct));
transform: translate(-75%, -50%) rotate(45deg);
border-top-right-radius: var(--lumo-border-radius-s);
box-shadow: 2px -2px 6px 0 var(--lumo-shade-5pct);
z-index: 1;
}
[part='toolbar'] {
padding: var(--lumo-space-s);
border-bottom-left-radius: var(--lumo-border-radius-l);
margin-right: 57px;
}
[part='toolbar'] ::slotted(vaadin-button) {
margin: 0;
}
/* Narrow viewport mode (fullscreen) */
:host([fullscreen]) [part='toolbar'] {
order: -1;
background-color: var(--lumo-base-color);
}
:host([fullscreen]) [part='overlay-header'] {
order: -2;
height: var(--lumo-size-m);
padding: var(--lumo-space-s);
position: absolute;
left: 0;
right: 0;
justify-content: center;
}
:host([fullscreen]) [part='toggle-button'],
:host([fullscreen]) [part='clear-button'],
[part='overlay-header'] [part='label'] {
display: none;
}
/* Very narrow screen (year scroller initially hidden) */
[part='years-toggle-button'] {
display: flex;
align-items: center;
height: var(--lumo-size-s);
padding: 0 0.5em;
border-radius: var(--lumo-border-radius-m);
z-index: 3;
color: var(--lumo-primary-text-color);
font-weight: 500;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
:host([years-visible]) [part='years-toggle-button'] {
background-color: var(--lumo-primary-color);
color: var(--lumo-primary-contrast-color);
}
/* TODO magic number (same as used for media-query in vaadin-date-picker-overlay-content) */
@media screen and (max-width: 374px) {
:host {
background-image: none;
}
[part='toolbar'],
::slotted([slot='months']) {
margin-right: 0;
}
/* TODO make date-picker adapt to the width of the years part */
::slotted([slot='years']) {
--vaadin-infinite-scroller-buffer-width: 90px;
width: 50px;
background-color: var(--lumo-shade-5pct);
}
:host([years-visible]) ::slotted([slot='months']) {
padding-left: 50px;
}
}
`,
{ moduleId: 'lumo-date-picker-overlay-content' },
);