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";
color-scheme.cssinnehållercolor-scheme: light darksom krävs för att Midas semantiska färger medlight-dark()ska fungera korrekt vid tema-växling.tailwind-theme.cssinnehåller färgpaletten (blue-100, gray-200, etc.) som Tailwind utilities. Detta gör att färgerna fungerar direkt utan arbitrary values.
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-spacing-50)]">
<div className="text-[length:var(--midas-typography-font-size-80)] mb-[var(--midas-spacing-40)]">
Stor text
</div>
<div className="text-[var(--midas-text-secondary)] mb-[var(--midas-spacing-30)]">
Mindre text med semantiska tokens
</div>
<div className="bg-[var(--midas-layer-01-base)] p-[var(--midas-spacing-40)] 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>
- Semantiska tokens (background-base, text-primary, spacing-50, etc.): Använd
[var(--midas-*)] - Färgpalett (blue-100, gray-140, signal-red-100, etc.): Fungerar direkt som
bg-blue-100
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-spacing-30);
--spacing-md: var(--midas-spacing-50);
}
<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-spacing-50)]">Text som använder Midas tokens</div>
</div>
För de flesta utilities räcker det med bg-[var(--variable)]. Om Tailwind inte kan avgöra vilken
typ av värde det är (t.ex. om text- skulle kunna vara både font-size och color) kan du lägga till
en typbeskrivning: text-[color:var(--variable)] eller text-[length:var(--variable)].
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-20': 'var(--midas-spacing-20)',
'midas-30': 'var(--midas-spacing-30)',
'midas-50': 'var(--midas-spacing-50)',
'midas-70': 'var(--midas-spacing-70)',
'midas-100': 'var(--midas-spacing-100)',
},
},
},
plugins: [],
}
<div className="bg-midas-bg-base text-midas-primary">
<div className="mt-midas-50">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.spacing50,
}}
>
<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-spacing-40)]"
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-spacing-10till--midas-spacing-120(0.125rem till 6rem) - Storlekar -
--midas-size-10till--midas-size-150(0.125rem till 3rem) - 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.