В нашей документации мы рекомендуем использовать @ImportHtml в MainView для глобальных стилей в качестве модуля стиля html.
В модуле глобального стиля вы можете применить themable mixins , чтобы изменить стилизуемые теневые части и т. Д. Компонентов.
Если ваша цель не в теневом DOM, вы можете установить стили непосредственно в блоке пользовательских стилей, например,
Допустим, в вашем приложении есть Label и TextField
// If styles.html is in src/main/java/webapp/frontend/ path is not needed
@HtmlImport("styles.html")
public class MainLayout extends VerticalLayout implements RouterLayout {
...
Label label = new Label("Title");
label.addClassName("title-label");
add(label);
...
TextField limit = new TextField("Limit");
limit.addClassName("limit-field");
add(limit);
...
}
И в src / main / java / webapp / frontend / styles.html
<custom-style>
<style>
.title-label {
color: brown;
font-weight: bold;
}
...
</style>
</custom-style>
<dom-module theme-for="vaadin-text-field" id="limit-field">
<template>
<style>
:host(.limit-field) [part="value"]{
color:red
}
</style>
</template>
</dom-module>
И ваш текст "Заголовок" будет выделен коричневым жирным шрифтом, а значение в текстовом поле будет красным, но заголовок не изменится.
См. Также: Динамическое изменение шрифта, размера шрифта, цвета шрифта и т. Д. В веб-приложениях Vaadin Flow