Scalar Themes
Scalar Themes provides a library of themes for all Scalar products and components. It also contains the base set of Scalar CSS variables and an associated Tailwind preset which leverages those variables.
To see a list of available themes, see the presets
export.
CSS Layers
The themes package uses two CSS Layers to apply the theme styles
scalar-base
: A copy of the core Scalar CSS variables and default themescalar-theme
: Optionally overrides scalar-base
with theme styles
Any styles added outside of these layers will override all the styles in the layers which allows you to extend or customize a theme.
Scoping
Because many Scalar applications are embedded into other websites the reset is scoped to the scalar-app
class. This means you need to add this class to the root element of your application where you want the theme to apply. If you are using the themes in a standalone application, you can just add this class to the body
element.
<body class="scalar-app">
</body>
Installation
pnpm i @scalar/themes
Usage via CSS Import (Basic)
To import the basic theme styles into your project, you can just import style.css
which imports the reset, scrollbars, and a copy of the base Scalar CSS variables and default theme.
import '@scalar/themes/styles.css'
To add a theme, you can import the theme from the presets directory.
import '@scalar/themes/presets/alternate.css'
Usage via JavaScript
To use the themes package via JavaScript, you can use the getThemeStyles
function from the package. The function will generate CSS style string which you can then add to the head of your document.
import { getThemeStyles } from '@scalar/themes'
const styles = getThemeStyles('alternate', { layer: 'scalar-theme' })
document.head.insertAdjacentHTML('beforeend', `<style>${styles}</style>`)
The function allows you to pass in a theme ID and an optional options object to configure the layer (default: scalar-theme
) and whether to include the default fonts (default: true
).
Usage via Tailwind
To use the themes package with Tailwind, you first need to inject the import the styles either via CSS or JavaScript (see above). You can also import them alongside your global Tailwind styles.
@import '@scalar/themes/style.css';
@tailwind components;
@tailwind utilities;
@tailwind variants;
Then you can use the tailwind preset in your tailwind.config.js
to expose the theme colors and variables.
import scalarPreset from '@scalar/themes/tailwind'
import { type Config } from 'tailwindcss'
export default {
presets: [scalarPreset],
theme: {
extend: {
},
},
} satisfies Config