|
|
1 сар өмнө | |
|---|---|---|
| .. | ||
| README.md | 1 сар өмнө | |
| design-tokens-converter | 1 сар өмнө | |
| design-tokens-converter.mjs | 1 сар өмнө | |
| package.json | 1 сар өмнө | |
This script converts Figma design tokens from the design-tokens.json format into usable CSS variables and JavaScript objects for Tailwind integration.
{@primitives.$color.$sand.100}design-tokens.json and place it in the label-studio/web/ directory (workspace root)Run the conversion script using NX:
nx design-tokens ui
This will generate:
libs/ui/src/tokens/tokens.scss - Contains CSS variables for light and dark themeslibs/ui/src/tokens/tokens.js - Contains JavaScript object for Tailwind integrationImport the SCSS file in your main stylesheet:
@import 'libs/ui/src/tokens/tokens.scss';
Update your Tailwind configuration to import the design tokens:
// tailwind.config.js
const designTokens = require('./libs/ui/src/tokens/tokens.js');
module.exports = {
// ...
theme: {
extend: {
colors: {
// ...your existing colors
...designTokens.colors,
},
spacing: designTokens.spacing,
fontSize: designTokens.typography.fontSize,
lineHeight: designTokens.typography.lineHeight,
letterSpacing: designTokens.typography.letterSpacing,
fontFamily: designTokens.typography.fontFamily,
fontWeight: designTokens.typography.fontWeight,
borderRadius: designTokens.cornerRadius,
},
},
};
/* Colors */
.my-element {
color: var(--color-primary-content);
background-color: var(--color-neutral-surface);
}
/* Spacing */
.padded {
padding: var(--spacing-base);
margin: var(--spacing-wide);
}
/* Typography */
.heading {
font-family: var(--font-family-sans);
font-size: var(--font-size-24);
line-height: var(--line-height-32);
font-weight: var(--font-weight-bold);
}
/* Corner Radius */
.rounded {
border-radius: var(--corner-radius-medium);
}
<!-- Colors -->
<div class="text-primary-content bg-neutral-surface">
Styled with color tokens
</div>
<!-- Spacing -->
<div class="p-base my-large">
Styled with spacing tokens
</div>
<!-- Typography -->
<h1 class="font-sans text-24 leading-32 font-bold">
Styled with typography tokens
</h1>
<!-- Corner Radius -->
<div class="rounded-medium">
Styled with corner radius tokens
</div>
The CSS variables support dark mode with the data-color-scheme="dark" attribute:
<body data-color-scheme="dark">
<!-- Dark theme will be applied -->
</body>
When you get updated design tokens from Figma:
design-tokens.json file in the workspace rootnx design-tokens ui