Skip to content

Usage: Templated

The templated mode uses CSS modules with hashed class names, ideal for bundled applications.

Setup

import "@paramanu/buttons-js/css"

Using CSS Modules

import { btnModuleClasses } from "@paramanu/buttons-js"
import classMap from "@paramanu/buttons-js/modules/button/map"
const className = btnModuleClasses(classMap, {
variant: "primary",
size: "md",
})
// Returns hashed class names like "pm_a1b2_pm-btn pm_c3d4_pm-btn--primary ..."

Using Human-Readable Classes

You can also use the readable class builder in any template:

import { btnClasses } from "@paramanu/buttons-js"
const className = btnClasses({ variant: "primary", size: "md" })
// "pm-btn pm-btn--primary pm-btn--md"

Example with a Template Engine

<!-- EJS / Handlebars / Nunjucks -->
<button class="<%= btnClasses({ variant: 'primary', size: 'md' }) %>">Click me</button>