Skip to content

Overview

The design system ships as a single, self-contained design-system/ folder that you place in the part of your project that is served as static assets. It contains the sources — tokens, fonts, component styles, scripts and icons. It intentionally does not ship a pre-compiled stylesheet; you build that yourself (see below).

  • Directorydesign-system/
    • Directorystyle/
      • Directorybase/ the importable main.css + tokens, fonts & component styles
      • Directoryfonts/ Geist, Geist Mono, Noto Naskh Arabic
    • Directoryjs/
      • _defaults.js global config every component reads
      • runtime.js inline icons (window._icons) — not needed for JSP (see below)
      • theme.js format.js shell.js table.js … components
    • Directoryassets/
      • Directoryicons/ Tabler icon set (SVG)
      • Directorypreline/ preline.js — generated, copied from the preline package
      • Directorysection-icons/ control chrome (select / date)

You don’t link a stylesheet from inside design-system/. Instead, your project owns its own stylesheet and pulls the design system in:

your-project.css
/* your own project styles… */
/* …and, when you want the design system, import its main entry: */
@import '.../design-system/style/base/main.css';
@source '../pages'; /* scan YOUR markup for classes */

Then compile that file with Tailwind. This way your project and the design system share one build, and you can add your own utilities and overrides alongside it.

  • Consuming the design system = import main.css into your stylesheet and build it.
  • Developing the design system = edit the sources under base/ and rebuild.

Both paths use the identical design system — the JSP path only adds server-side conveniences (includes, an asset-version cache-buster, the Gradle build task).