Tailwind CSS
Midas theme-paket kan integreras med Tailwind CSS för att använda designsystemets tokens direkt i dina utility classes. Paketet exporterar CSS-variabler som kan användas både i Tailwind v4 och v3.
Tailwind v4 (rekommenderat)
Midas designsystemets tokens används med Tailwind v4 genom CSS-variabler och Tailwinds arbitrary values.
Installation
Installera Tailwind CSS v4:
npm install tailwindcss @tailwindcss/vite
Setup
VIKTIGT: Importera CSS-filerna i rätt ordning:
import '@midas-ds/theme/color-scheme.css' // Krävs för light/dark mode
import '@midas-ds/theme/variables.css'
import '@midas-ds/theme/fonts.css'
Importera Midas Tailwind-tema och Tailwind i din CSS-fil:
@import "tailwindcss";
@import "@midas-ds/theme/tailwind-theme.css";
Användning
Semantiska tokens (huvudsaklig användning):
Använd Midas semantiska tokens med arbitrary values:
<div className="bg-[var(--midas-background-base)] text-[var(--midas-text-primary)] p-[var(--midas-space-medium)]">
<div className="text-[length:var(--midas-typography-font-size-80)] mb-[var(--midas-space-small)]">
Stor text
</div>
<div className="text-[var(--midas-text-secondary)] mb-[var(--midas-space-small)]">
Mindre text med semantiska tokens
</div>
<div className="bg-[var(--midas-layer-01-base)] p-[var(--midas-space-small)] border-[var(--midas-border-color-primary)]">
Innehåll i en nested box
</div>
</div>
Färgpalett (fungerar direkt):
Tack vare tailwind-theme.css fungerar färger från Midas färgpalett direkt som Tailwind utilities:
<div className="bg-blue-100 text-gray-200 border-2 border-blue-130">
<div className="text-signal-red-100">Färgerna från paletten fungerar direkt</div>
</div>
Anpassa med @theme (valfritt)
Om du vill skapa egna kortare utility-namn kan du definiera ett @theme-block:
@import "@midas-ds/theme/tailwind-theme.css";
@theme {
/* Egna namn för tokens */
--color-primary: var(--midas-color-blue-100);
--color-bg: var(--midas-background-base);
--spacing-sm: var(--midas-space-small);
--spacing-md: var(--midas-space-medium);
}
<div className="bg-bg text-primary p-md">
Element med kortare namn
</div>
Tailwind v3
För projekt som använder Tailwind v3 kan du importera variablerna och använda dem via arbitrary values.
Importera variabler
Importera Midas CSS-variabler i din huvudsakliga CSS-fil:
@import "@midas-ds/theme/variables.css";
@tailwind base;
@tailwind components;
@tailwind utilities;
Användning med anpassade värden
Använd Tailwinds arbitrary values syntax med hakparenteser för att referera till Midas CSS-variabler:
<div className="bg-[var(--midas-background-base)] text-[var(--midas-text-primary)]">
<div className="text-[length:var(--midas-typography-font-size-80)]">Stor text</div>
<div className="mt-[var(--midas-space-medium)]">Text som använder Midas tokens</div>
</div>
Utöka Tailwind config (alternativ)
För att slippa använda anpassade värden kan du utöka Tailwinds konfiguration med Midas tokens:
/** @type {import('tailwindcss').Config} */
export default {
content: ['./src/**/*.{js,jsx,ts,tsx}'],
theme: {
extend: {
colors: {
'midas-blue': 'var(--midas-color-blue-100)',
'midas-primary': 'var(--midas-text-primary)',
'midas-bg-base': 'var(--midas-background-base)',
},
spacing: {
'midas-xsmall': 'var(--midas-space-xsmall)',
'midas-small': 'var(--midas-space-small)',
'midas-medium': 'var(--midas-space-medium)',
'midas-large': 'var(--midas-space-large)',
'midas-xlarge': 'var(--midas-space-xlarge)',
},
},
},
plugins: [],
}
<div className="bg-midas-bg-base text-midas-primary">
<div className="mt-midas-medium">Text med förkonfigurerade Tailwind classes</div>
</div>
Använd TypeScript/JavaScript tokens
Utöver CSS-variabler exporterar theme-paketet också tokens som TypeScript/JavaScript-objekt. Detta är användbart när du behöver tokens i din JavaScript-kod, till exempel för dynamisk styling eller beräkningar.
Importera tokens
import { variables } from '@midas-ds/theme'
Användning
export function Card() {
return (
<div
style={{
backgroundColor: variables.backgroundBase,
color: variables.textPrimary,
padding: variables.spaceMedium,
}}
>
<p>Kort med Midas styling</p>
</div>
)
}
Kombinera med Tailwind
Du kan även kombinera JavaScript tokens med Tailwind classes:
import { variables } from '@midas-ds/theme'
export function Alert() {
return (
<div
className="p-[var(--midas-space-small)]"
style={{
backgroundColor: variables.colorSignalRed10,
borderLeft: `4px solid ${variables.colorSignalRed100}`
}}
>
<div className="text-[color:var(--midas-color-signal-red-150)]">
Detta är en varning
</div>
</div>
)
}
Mörkt läge
Midas CSS-variabler stödjer automatiskt mörkt läge via light-dark() funktionen. För mer information
om hur mörkt läge fungerar, se Dark Mode dokumentationen.
// Denna komponent anpassar sig automatiskt till ljust/mörkt läge
// Tailwind v4
<div className="bg-(--midas-background-base) text-(--midas-text-primary)">
Text som ändrar färg baserat på färgschema
</div>
// Tailwind v3
<div className="bg-[var(--midas-background-base)] text-[var(--midas-text-primary)]">
Text som ändrar färg baserat på färgschema
</div>
Tillgängliga tokens
Midas theme-paketet innehåller tokens för:
- Färger -
--midas-color-*(blue, gray, signal-red, signal-green, etc.) - Semantiska färger -
--midas-background-*,--midas-text-*,--midas-icon-*,--midas-border-color-* - Spacing -
--midas-space-xsmall/small/medium/large/xlarge+ numeriska steg (t.ex.--midas-space-10) - Storlekar -
--midas-size-icon,--midas-size-control,--midas-size-option, etc. - Typografi -
--midas-typography-font-size-*,--midas-typography-line-height-*,--midas-typography-weight-* - Z-index -
--midas-z-index-base,--midas-z-index-modal,--midas-z-index-toast - Breakpoints -
--midas-window-sizes-sm/md/lg/xl(480px, 768px, 1024px, 1280px) - Transitions -
--midas-transition-duration-*,--midas-transition-timing-*
För en fullständig lista över tillgängliga tokens, se @midas-ds/theme på npm
eller utforska variables.css filen i paketet.