Skip to main content
Plugin pages use Tailwind CSS and DaisyUI as the common styling vocabulary. Tailwind CSS provides utility classes, while DaisyUI provides component styles and semantic component variants. Tailwind CSS is the recommended styling layer for plugin pages. DaisyUI is available when a plugin needs its component classes. Neither library is a requirement for a plugin that has its own frontend build pipeline. The requirement is that the page follows the shared theme scheme described below.

Shared style resources

The application currently publishes these frontend resources: The Tailwind and DaisyUI resources provide a quick way to start a plugin frontend. A plugin may instead compile its own CSS and JavaScript. Such a frontend only needs to remain compatible with /assets/css/scheme.css and the theme states it defines.

Theme scheme

The shared theme scheme is available at /assets/css/scheme.css. It defines variables for body.light and body.dark. The variables are the visual contract between the application and plugin pages.
Plugins should use the semantic variables rather than fixed colors.

Theme switching

The selected theme is shared through browser storage under the key arupa.theme. The value is light or dark; the effective default is light. Storage carries the application-wide choice, while each plugin page reflects that choice through its own body.light or body.dark state. Changing the stored value is the application-wide theme switch. Plugin pages must follow the change so that all visible pages use the same theme. The web-sdk plugin provides a convenience API for reading, writing, and observing this storage value, but the storage convention is independent of the SDK.