UNPKG

@vaadin/vaadin-material-styles

Version:

Vaadin Material is a complete theme for Vaadin components, inspired by Google’s Material Design guidelines.

112 lines (94 loc) 2.28 kB
/** * @license * Copyright (c) 2022 - 2025 Vaadin Ltd. * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ */ import '../color.js'; import { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js'; const loader = css` [part~='loader'] { height: 2px; background: var(--material-background-color) linear-gradient( 90deg, transparent 0%, transparent 20%, var(--material-primary-color) 20%, var(--material-primary-color) 40%, transparent 40%, transparent 60%, var(--material-primary-color) 60%, var(--material-primary-color) 80%, transparent 80%, transparent 100% ) 0 0 / 400% 100% repeat-x; opacity: 0; } :host(:not([loading])) [part~='loader'] { display: none; } :host([loading]) [part='loader'] { animation: 3s linear infinite material-loader-progress, 0.3s 0.1s both material-loader-fade-in; } [part='loader']::before { content: ''; display: block; height: 100%; opacity: 0.16; background: var(--material-primary-color); } @keyframes material-loader-fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes material-loader-progress { 0% { background-position: 0 0; background-size: 300% 100%; } 33% { background-position: -100% 0; background-size: 400% 100%; } 67% { background-position: -200% 0; background-size: 250% 100%; } 100% { background-position: -300% 0; background-size: 300% 100%; } } /* RTL specific styles */ @keyframes material-loader-progress-rtl { 0% { background-position: 100% 0; background-size: 300% 100%; } 33% { background-position: 200% 0; background-size: 400% 100%; } 67% { background-position: 300% 0; background-size: 250% 100%; } 100% { background-position: 400% 0; background-size: 300% 100%; } } :host([loading][dir='rtl']) [part='loader'] { animation: 3s linear infinite material-loader-progress-rtl, 0.3s 0.1s both material-loader-fade-in; } `; export { loader };