postcss-elm-tailwind
tailwind + elm = :rocket:
See the demo and repo.
view : Model -> Html Msg
view model =
Html.div [ TW.h_screen, TW.w_screen, TW.flex, TW.justify_center, TW.items_center, TW.bg_gray_200 ]
[ Html.div []
[ Html.button
[ E.onClick Decrement
, TW.px_2
, TW.px_4
, TW.text_white
, TW.bg_blue_500
, TW.w_full
]
[ Html.text "-" ]
, Html.div
[ TW.text_2xl
, TW.text_center
, TW.my_4
]
[ Html.text (String.fromInt model) ]
, Html.button
[ E.onClick Increment
, TW.px_2
, TW.px_4
, TW.text_white
, TW.bg_blue_500
, TW.w_full
]
[ Html.text "+" ]
]
]
Installation
yarn add postcss-elm-tailwind --dev
# OR
npm i -D postcss-elm-tailwind
Usage
No config
module.exports = {
plugins: [
require("tailwindcss"),
require("postcss-elm-tailwind")()
]
};
With config
module.exports = {
plugins: [
require("tailwindcss"),
require("postcss-elm-tailwind")({
prefix: "tw-",
elmFile: "src/Tailwind.elm",
elmModule: "Tailwind",
nameStyle: "snake"
})
]
};
See the demo for a full example.
Other things to note
In order to get a small build, you'll need to build Tailwind twice - once
without purgecss to build TW.elm
with all the classes and once with purgecss
so that all the unused classes are removed from your production CSS.
See how this is implemented in the demo.