API
Tailwind CSS theme values as static tokens for Plumeria.
@plumeria/wind provides Tailwind CSS design values as static tokens. The values are compiled into your styles at build time, so the package adds nothing to your bundle.
import * as css from ' @plumeria/core ' ;
import * as t from ' @plumeria/wind ' ;
const styles = css . create ({
button : {
paddingInline : t . spacing [ 4 ],
fontSize : t . text . sm ,
color : t . slate [ 50 ],
backgroundColor : t . blue [ 600 ],
borderRadius : t . radius . md ,
},
});
The namespace name is up to you, and named imports work the same way.
Animations pair a keyframes export with its timing.
import * as css from ' @plumeria/core ' ;
import * as t from ' @plumeria/wind ' ;
const styles = css . create ({
spinner : {
animation : `${ t . spin } ${ t . animate . spin }` ,
},
});
50 100 200 300 400 500 600 700 800 900 950 red orange amber yellow lime green emerald teal cyan sky blue indigo violet purple fuchsia pink rose slate gray zinc neutral stone mauve olive mist taupe
t.font.sans-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji't.font.serifui-serif, Georgia, Cambria, 'Times New Roman', Times, serift.font.monoui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace
t.text.xs0.75remt.text.sm0.875remt.text.base1remt.text.lg1.125remt.text.xl1.25remt.text['2xl']1.5remt.text['3xl']1.875remt.text['4xl']2.25remt.text['5xl']3remt.text['6xl']3.75remt.text['7xl']4.5remt.text['8xl']6remt.text['9xl']8rem
t.textLineHeight.xscalc(1 / 0.75)t.textLineHeight.smcalc(1.25 / 0.875)t.textLineHeight.basecalc(1.5 / 1)t.textLineHeight.lgcalc(1.75 / 1.125)t.textLineHeight.xlcalc(1.75 / 1.25)t.textLineHeight['2xl']calc(2 / 1.5)t.textLineHeight['3xl']calc(2.25 / 1.875)t.textLineHeight['4xl']calc(2.5 / 2.25)t.textLineHeight['5xl']1t.textLineHeight['6xl']1t.textLineHeight['7xl']1t.textLineHeight['8xl']1t.textLineHeight['9xl']1
t.fontWeight.thin100t.fontWeight.extralight200t.fontWeight.light300t.fontWeight.normal400t.fontWeight.medium500t.fontWeight.semibold600t.fontWeight.bold700t.fontWeight.extrabold800t.fontWeight.black900
t.tracking.tighter-0.05emt.tracking.tight-0.025emt.tracking.normal0emt.tracking.wide0.025emt.tracking.wider0.05emt.tracking.widest0.1em
t.leading.tight1.25t.leading.snug1.375t.leading.normal1.5t.leading.relaxed1.625t.leading.loose2
t.spacing[0]0t.spacing[1]0.25remt.spacing[2]0.5remt.spacing[3]0.75remt.spacing[4]1remt.spacing[5]1.25remt.spacing[6]1.5remt.spacing[7]1.75remt.spacing[8]2remt.spacing[9]2.25remt.spacing[10]2.5remt.spacing[11]2.75remt.spacing[12]3remt.spacing[14]3.5remt.spacing[16]4remt.spacing[20]5remt.spacing[24]6remt.spacing[28]7remt.spacing[32]8remt.spacing[36]9remt.spacing[40]10remt.spacing[44]11remt.spacing[48]12remt.spacing[52]13remt.spacing[56]14remt.spacing[60]15remt.spacing[64]16remt.spacing[72]18remt.spacing[80]20remt.spacing[96]24remt.spacing.px1pxt.spacing['0.5']0.125remt.spacing['1.5']0.375remt.spacing['2.5']0.625remt.spacing['3.5']0.875rem
t.radius.xs0.125remt.radius.sm0.25remt.radius.md0.375remt.radius.lg0.5remt.radius.xl0.75remt.radius['2xl']1remt.radius['3xl']1.5remt.radius['4xl']2rem
t.shadow['2xs']0 1px rgb(0 0 0 / 0.05)t.shadow.xs0 1px 2px 0 rgb(0 0 0 / 0.05)t.shadow.sm0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)t.shadow.md0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)t.shadow.lg0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)t.shadow.xl0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)t.shadow['2xl']0 25px 50px -12px rgb(0 0 0 / 0.25)
t.insetShadow['2xs']inset 0 1px rgb(0 0 0 / 0.05)t.insetShadow.xsinset 0 1px 1px rgb(0 0 0 / 0.05)t.insetShadow.sminset 0 2px 4px rgb(0 0 0 / 0.05)
t.dropShadow.xs0 1px 1px rgb(0 0 0 / 0.05)t.dropShadow.sm0 1px 2px rgb(0 0 0 / 0.15)t.dropShadow.md0 3px 3px rgb(0 0 0 / 0.12)t.dropShadow.lg0 4px 4px rgb(0 0 0 / 0.15)t.dropShadow.xl0 9px 7px rgb(0 0 0 / 0.1)t.dropShadow['2xl']0 25px 25px rgb(0 0 0 / 0.15)
t.textShadow['2xs']0px 1px 0px rgb(0 0 0 / 0.15)t.textShadow.xs0px 1px 1px rgb(0 0 0 / 0.2)t.textShadow.sm0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075)t.textShadow.md0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1)t.textShadow.lg0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1)
t.blur.xs4pxt.blur.sm8pxt.blur.md12pxt.blur.lg16pxt.blur.xl24pxt.blur['2xl']40pxt.blur['3xl']64px
t.breakpoint.sm40remt.breakpoint.md48remt.breakpoint.lg64remt.breakpoint.xl80remt.breakpoint['2xl']96rem
t.container['3xs']16remt.container['2xs']18remt.container.xs20remt.container.sm24remt.container.md28remt.container.lg32remt.container.xl36remt.container['2xl']42remt.container['3xl']48remt.container['4xl']56remt.container['5xl']64remt.container['6xl']72remt.container['7xl']80rem
t.perspective.dramatic100pxt.perspective.near300pxt.perspective.normal500pxt.perspective.midrange800pxt.perspective.distant1200px
t.ease.incubic-bezier(0.4, 0, 1, 1)t.ease.outcubic-bezier(0, 0, 0.2, 1)t.ease['in-out']cubic-bezier(0.4, 0, 0.2, 1)
t.transition.duration150mst.transition.timingFunctioncubic-bezier(0.4, 0, 0.2, 1)
t.animate.spin1s linear infinitet.animate.ping1s cubic-bezier(0, 0, 0.2, 1) infinitet.animate.pulse2s cubic-bezier(0.4, 0, 0.6, 1) infinitet.animate.bounce1s infinite
Keyframes: spin, ping, pulse, bounce.
t.color.black#000t.color.white#fff
The theme values are taken from Tailwind CSS v4.3.3 and distributed under its MIT license.
Edit on GitHub