UNPKG

prettier-plugin-twin.macro

Version:

A Prettier plugin for sorting Tailwind CSS classes on twin.macro

69 lines (48 loc) 1.71 kB
# Prettier for twin.macro Sort your [Tailwind](https://tailwindcss.com) and [twin.macro](https://github.com/ben-rogerson/twin.macro) classes based on recommended class order of Tailwind using [Prettier](https://prettier.io/). ## Features - Format inline Tailwind CSS classes - Format twin.macro template literals inside all style-components - Support JavaScript, Flow, Typescript and JSX - Ascend parent directories from current directory to find tailwind.config.js - Groupify classes with bracket group - Add !important to bracket groups ## How to install Install `prettier-plugin-twin.macro` as a dev-dependency: ```bash npm i --save-dev prettier-plugin-twin.macro prettier ``` or ```bash yarn add -D prettier-plugin-twin.macro prettier ``` ## How to use Create a prettier.config.js file in the root directory and add the plugin. ```js module.exports = { plugins: [require("prettier-plugin-twin.macro")], }; ``` Then format your code using Prettier CLI. ``` prettier --write ./src/index.js ``` ## Examples Short CSS and arbitrary classes should have their position preserved ```js <div tw="display[block] inline inline1 [display:block]" /> // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ <div tw="inline1 inline display[block] [display:block]" /> ``` Groupify classes based on their variant with bracket group ```js <div tw="sm:bg-red-100 sm:[display:inline] sm:hover:w-10 sm:hover:mt-4 sm:hover:before:p-4" /> // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ <div tw="sm:(bg-red-100 [display:inline] hover:(mt-4 w-10 before:p-4))" /> ``` Add !important sign to bracket groups ```js <div tw="!display[block] !inline" /> // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ <div tw="(inline display[block])!" /> ```