@vaadin/vaadin-lumo-styles
Version:
Lumo is a design system foundation for modern web applications, used by Vaadin components
103 lines (87 loc) • 2.88 kB
CSS
/**
* @license
* Copyright (c) 2017 - 2026 Vaadin Ltd.
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
*/
@media lumo_components_custom-field {
:host {
display: inline-flex;
--lumo-text-field-size: var(--lumo-size-m);
color: var(--lumo-body-text-color);
font-size: var(--lumo-font-size-m);
/* align with text-field height + vertical paddings */
line-height: calc(var(--lumo-text-field-size) + 2 * var(--lumo-space-xs));
font-family: var(--lumo-font-family);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-tap-highlight-color: transparent;
padding: 0;
}
:host::before {
content: '\2003';
width: 0;
/* Size and position this element on the same vertical position as the input-field element
to make vertical align for the host element work as expected */
margin-top: var(--lumo-space-xs);
height: var(--lumo-text-field-size);
box-sizing: border-box;
display: inline-flex;
align-items: center;
}
:host([hidden]) {
display: none ;
}
.vaadin-custom-field-container {
width: 100%;
display: flex;
flex-direction: column;
}
.inputs-wrapper {
flex: none;
}
/* align with text-field label */
:host([has-label]) [part='label'] {
padding-bottom: calc(0.5em - var(--lumo-space-xs));
}
:host(:not([has-label])) [part='label'],
:host(:not([has-label]))::before {
display: none;
}
/* align with text-field error message */
:host([has-error-message]) [part='error-message']::before {
height: calc(0.4em - var(--lumo-space-xs));
}
:host([focused]:not([readonly]):not([disabled])) [part='label'] {
color: var(--lumo-primary-text-color);
}
:host(:hover:not([readonly]):not([disabled]):not([focused])) [part='label'],
:host(:hover:not([readonly]):not([disabled]):not([focused])) [part='helper-text'] {
color: var(--lumo-body-text-color);
}
/* Touch device adjustment */
@media (pointer: coarse) {
:host(:hover:not([readonly]):not([disabled]):not([focused])) [part='label'] {
color: var(--lumo-secondary-text-color);
}
}
/* Disabled */
:host([disabled]) [part='label'] {
color: var(--lumo-disabled-text-color);
-webkit-text-fill-color: var(--lumo-disabled-text-color);
}
/* Small theme */
:host([theme~='small']) {
font-size: var(--lumo-font-size-s);
--lumo-text-field-size: var(--lumo-size-s);
}
:host([theme~='small'][has-label]) [part='label'] {
font-size: var(--lumo-font-size-xs);
}
:host([theme~='small'][has-label]) [part='error-message'] {
font-size: var(--lumo-font-size-xxs);
}
/* When custom-field is used with components without outer margin */
:host([theme~='whitespace'][has-label]) [part='label'] {
padding-bottom: 0.5em;
}
}