Styling views and layouts with CSS

How to add CSS styles to views and components in Hilla applications.

CSS theme folder

You can style components that extend View and Layout by placing CSS files in the frontend/themes/<app-name>/ folder and importing them in styles.css using import(). Styles defined in the theme directory are available across the application. You can also import styles from node_modules, like line-awesome in the following example:

@import "line-awesome/dist/line-awesome/css/line-awesome.min.css";

@import "./main-layout.css";
@import "./views/example-view.css";

Using CSS variables

Hilla uses the Vaadin Design System as a base for component and application themes. The design system defines CSS variables that can be used to achieve a consistent look and feel across the application. The variables are documented in the Design System documentation:

You can use the variables in place of hard-coded units using var().

.card {
  border: 1px solid var(--lumo-contrast-30pct);
  border-radius: var(--lumo-border-radius-s);
  box-shadow: var(--lumo-box-shadow-s);