|
| 1 | +/** |
| 2 | + * @license |
| 3 | + * Copyright (c) 2017 - 2025 Vaadin Ltd. |
| 4 | + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ |
| 5 | + */ |
| 6 | +import { css } from 'lit'; |
| 7 | +// TODO: add themable-mixin as a dependency to package.json |
| 8 | +import { addGlobalThemeStyles } from '@vaadin/vaadin-themable-mixin/register-styles.js'; |
| 9 | + |
| 10 | +addGlobalThemeStyles( |
| 11 | + 'vaadin-base', |
| 12 | + css` |
| 13 | + @layer vaadin.base { |
| 14 | + html { |
| 15 | + /* Background color */ |
| 16 | + --_vaadin-background: hsl(0 0 100); |
| 17 | +
|
| 18 | + /* Container colors */ |
| 19 | + --_vaadin-background-container: hsl(0 0 95); |
| 20 | + --_vaadin-background-container-strong: hsl(0 0 90); |
| 21 | +
|
| 22 | + /* Border colors */ |
| 23 | + --_vaadin-border-color: hsl(0 0 75); |
| 24 | + --_vaadin-border-color-strong: hsl(0 0 58); /* Above 3:1 contrast */ |
| 25 | +
|
| 26 | + /* Text colors */ |
| 27 | + --_vaadin-color-subtle: hsl(0 0 58); /* Above 3:1 contrast */ |
| 28 | + --_vaadin-color: hsl(0 0 44); /* Above 4.5:1 contrast */ |
| 29 | + --_vaadin-color-strong: hsl(0 0 12); /* Above 7:1 contrast */ |
| 30 | +
|
| 31 | + /* Padding */ |
| 32 | + --_vaadin-padding: 8px; |
| 33 | + --_vaadin-padding-container: 6px 8px; |
| 34 | +
|
| 35 | + /* Gap/spacing */ |
| 36 | + --_vaadin-gap-container-inline: 0.5em; |
| 37 | + --_vaadin-gap-container-block: 0.5em; |
| 38 | +
|
| 39 | + /* Border radius */ |
| 40 | + --_vaadin-radius-s: 3px; |
| 41 | + --_vaadin-radius-m: 6px; |
| 42 | + --_vaadin-radius-l: 12px; |
| 43 | + --_vaadin-radius-full: 999px; |
| 44 | +
|
| 45 | + /* Focus outline */ |
| 46 | + --vaadin-focus-ring-width: 2px; |
| 47 | + --vaadin-focus-ring-color: var(--_vaadin-color); |
| 48 | +
|
| 49 | + /* Icons, used as mask-image */ |
| 50 | + --_vaadin-icon-calendar: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5" /></svg>'); |
| 51 | + --_vaadin-icon-checkmark: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m4.5 12.75 6 6 9-13.5"/></svg>'); |
| 52 | + --_vaadin-icon-chevron-down: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5" /></svg>'); |
| 53 | + --_vaadin-icon-clock: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" /></svg>'); |
| 54 | + --_vaadin-icon-cross: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" /></svg>'); |
| 55 | + --_vaadin-icon-eye: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z" /><path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" /></svg>'); |
| 56 | + --_vaadin-icon-eye-slash: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88" /></svg>'); |
| 57 | + --_vaadin-icon-minus: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14" /></svg>'); |
| 58 | + --_vaadin-icon-plus: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" /></svg>'); |
| 59 | + --_vaadin-icon-warn: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" /></svg>'); |
| 60 | + } |
| 61 | +
|
| 62 | + @media (forced-colors: active) { |
| 63 | + html { |
| 64 | + --_vaadin-background: Canvas; |
| 65 | + --_vaadin-border-color: CanvasText; |
| 66 | + --_vaadin-border-color-strong: CanvasText; |
| 67 | + --_vaadin-color-subtle: CanvasText; |
| 68 | + --_vaadin-color: CanvasText; |
| 69 | + --_vaadin-color-strong: CanvasText; |
| 70 | + --vaadin-icon-color: CanvasText; |
| 71 | + --vaadin-focus-ring-color: Highlight; |
| 72 | + } |
| 73 | + } |
| 74 | + } |
| 75 | + `, |
| 76 | +); |
0 commit comments