@vaadin/icon
Version:
Web component for creating SVG icons
69 lines (58 loc) • 1.66 kB
JavaScript
/**
* @license
* Copyright (c) 2017 - 2026 Vaadin Ltd.
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
*/
import { css } from 'lit';
export const iconStyles = css`
:host {
display: inline-flex;
justify-content: center ;
align-items: center ;
font-size: inherit ;
box-sizing: border-box;
width: var(--vaadin-icon-size, 1lh);
height: var(--vaadin-icon-size, 1lh);
flex: none;
fill: var(--vaadin-icon-color, currentColor);
container-type: size;
}
:host::after,
:host::before {
line-height: 1;
font-size: var(--vaadin-icon-visual-size, 100cqh);
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
-moz-osx-font-smoothing: grayscale;
}
:host([hidden]) {
display: none ;
}
svg {
display: block;
width: var(--vaadin-icon-visual-size, 100%);
height: var(--vaadin-icon-visual-size, 100%);
/* prevent overflowing icon from clipping, see https://github.com/vaadin/flow-components/issues/5872 */
overflow: visible;
@container style(--vaadin-icon-stroke-width) {
stroke-width: var(--vaadin-icon-stroke-width);
}
}
:host(:is([icon-class], [font-icon-content])) svg {
display: none;
}
:host([font-icon-content])::before {
content: attr(font-icon-content);
}
.baseline {
order: -1;
}
.baseline::before {
content: '\\2003' / '';
display: inline-block;
width: 0;
}
:host(:is([icon-class], [font-family])) .baseline {
font-family: var(--vaadin-icon-baseline-font-family, inherit);
}
`;