UNPKG

@daikin-oss/dds-tokens

Version:

Design token definitions for DDS

187 lines (130 loc) 4.61 kB
# dds-tokens This package provides design tokens for the Daikin Design System (DDS) in multiple formats: - **JS/TypeScript**: ESM and CommonJS modules with TypeScript declarations - **CSS**: CSS custom properties (CSS variables) - **SCSS**: Sass mixins for flexible integration - **Tailwind CSS v4**: Theme files for Tailwind CSS integration - **JSON**: Token metadata for tooling and integrations **Available themes:** - Brands: `Daikin` and `AAF` - Color schemes: `Light` and `Dark` mode for each brand For the complete list of output files, check the `build` folder after installation. ## Usage Install package: ```sh npm install @daikin-oss/dds-tokens ``` ### Import CSS ```js import "@daikin-oss/dds-tokens/css/daikin/Dark/variables.css"; ``` or ```css @import url("@daikin-oss/dds-tokens/css/daikin/Dark/variables.css"); ``` This imports all design tokens as CSS custom properties under the `:root` selector. ### Import SCSS mixins SCSS mixins require the SCSS compiler, but they provide flexibility in terms of where CSS variables are deployed. Import all themes: ```scss @use "pkg:@daikin-oss/dds-tokens/scss/mixins" as dds-tokens; :root { @include dds-tokens.daikin-Light-variables; } :root[data-theme="aaf"] { @include dds-tokens.aaf-Light-variables; } @media (prefers-color-scheme: dark) { :root { @include dds-tokens.daikin-Dark-variables; } :root[data-theme="aaf"] { @include dds-tokens.aaf-Dark-variables; } } ``` Import individual themes: ```scss @use "pkg:@daikin-oss/dds-tokens/scss/daikin/Light/mixins" as daikin-Light; @use "pkg:@daikin-oss/dds-tokens/scss/daikin/Dark/mixins" as daikin-Dark; :root { @include daikin-Light.variables; } :root.dark { @include daikin-Dark.variables; } ``` ### Tailwind CSS v4 Integration This package provides Tailwind CSS v4 theme files that map DDS tokens to Tailwind CSS variables. #### Common theme file (theme-agnostic) The `tailwind4.css` file provides a theme-agnostic mapping that works with any DDS theme: ```css @import "@daikin-oss/dds-tokens/tailwind4.css"; ``` This file uses `@theme inline` and references DDS CSS variables without fallback values. You must load a DDS theme CSS file separately to provide the actual token values. Example: ```css @import "@daikin-oss/dds-tokens/css/daikin/Light/variables.css"; @import "@daikin-oss/dds-tokens/tailwind4.css"; ``` #### Theme-specific files You can also use theme-specific Tailwind CSS files that include fallback values: ```css @import "@daikin-oss/dds-tokens/css/daikin/Light/tailwind4.css"; ``` Available files: - `css/daikin/Light/tailwind4.css` - `css/daikin/Dark/tailwind4.css` - `css/aaf/Light/tailwind4.css` - `css/aaf/Dark/tailwind4.css` These files use `@theme` (not inline) with fallback values, allowing them to work standalone without requiring a separate DDS theme CSS file. #### Variable mapping DDS tokens are mapped to Tailwind CSS variables based on their token type: - `color``--color-dds-*` - `spacing``--spacing-dds-*` - `borderRadius``--radius-dds-*` - `borderWidth``--border-width-dds-*` - `fontSize``--font-size-dds-*` - `fontWeight``--font-weight-dds-*` - `fontFamily``--font-family-dds-*` - `lineHeight``--line-height-dds-*` Example output: ```css /* Common file (build/tailwind4.css) */ @theme inline { --color-dds-color-blue-10: var(--dds-color-blue-10); --spacing-dds-space-100: var(--dds-space-100); /* ... */ } /* Theme-specific file (build/css/daikin/Light/tailwind4.css) */ @theme { --color-dds-color-blue-10: var(--dds-color-blue-10, #ddf3fc); --spacing-dds-space-100: var(--dds-space-100, 4px); /* ... */ } ``` ### Import JS variables ```js // ESM import { colorBlue10 } from "@daikin-oss/dds-tokens/js/daikin/Light/variables.js"; // CommonJS const { colorBlue10, } = require("@daikin-oss/dds-tokens/js/daikin/Light/variables.js"); ``` ### Use JSON files JSON files under `json/` provide token metadata including types and values. These are primarily for internal use and tooling integrations. Available files: - `json/daikin/Light/tokens.json` - `json/daikin/Dark/tokens.json` - `json/aaf/Light/tokens.json` - `json/aaf/Dark/tokens.json` File structure: `{ "<token name>": ["<token value>", "<style-dictionary token type>", "<tokens-studio token type>" | null] }` Example: ```json { "color-blue-10": ["#ddf3fc", "color", null], "space-100": ["4px", "dimension", "spacing"] } ``` Additionally, the source theme JSON files (located in `themes/`) are published in the same path within the package for advanced use cases.