UNPKG

@vaadin/vaadin-lumo-styles

Version:

Lumo is a design system foundation for modern web applications, used by Vaadin components

130 lines (107 loc) 2.88 kB
/** * @license * Copyright (c) 2017 - 2025 Vaadin Ltd. * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ */ import './version.js'; import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js'; import { addLumoGlobalStyles } from './global.js'; const font = css` :host { /* prettier-ignore */ --lumo-font-family: -apple-system, BlinkMacSystemFont, 'Roboto', 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; /* Font sizes */ --lumo-font-size-xxs: 0.75rem; --lumo-font-size-xs: 0.8125rem; --lumo-font-size-s: 0.875rem; --lumo-font-size-m: 1rem; --lumo-font-size-l: 1.125rem; --lumo-font-size-xl: 1.375rem; --lumo-font-size-xxl: 1.75rem; --lumo-font-size-xxxl: 2.5rem; /* Line heights */ --lumo-line-height-xs: 1.25; --lumo-line-height-s: 1.375; --lumo-line-height-m: 1.625; } `; const typography = css` body, :host { font-family: var(--lumo-font-family); font-size: var(--lumo-font-size-m); line-height: var(--lumo-line-height-m); -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } small, [theme~='font-size-s'] { font-size: var(--lumo-font-size-s); line-height: var(--lumo-line-height-s); } [theme~='font-size-xs'] { font-size: var(--lumo-font-size-xs); line-height: var(--lumo-line-height-xs); } :where(h1, h2, h3, h4, h5, h6) { font-weight: 600; line-height: var(--lumo-line-height-xs); margin-block: 0; } :where(h1) { font-size: var(--lumo-font-size-xxxl); } :where(h2) { font-size: var(--lumo-font-size-xxl); } :where(h3) { font-size: var(--lumo-font-size-xl); } :where(h4) { font-size: var(--lumo-font-size-l); } :where(h5) { font-size: var(--lumo-font-size-m); } :where(h6) { font-size: var(--lumo-font-size-xs); text-transform: uppercase; letter-spacing: 0.03em; } p, blockquote { margin-top: 0.5em; margin-bottom: 0.75em; } a { text-decoration: none; } a:where(:any-link):hover { text-decoration: underline; } hr { display: block; align-self: stretch; height: 1px; border: 0; padding: 0; margin: var(--lumo-space-s) calc(var(--lumo-border-radius-m) / 2); background-color: var(--lumo-contrast-10pct); } blockquote { border-left: 2px solid var(--lumo-contrast-30pct); } b, strong { font-weight: 600; } /* RTL specific styles */ blockquote[dir='rtl'] { border-left: none; border-right: 2px solid var(--lumo-contrast-30pct); } `; registerStyles('', typography, { moduleId: 'lumo-typography' }); addLumoGlobalStyles('typography-props', font); export { font, typography };