0.6.6 • Published 11 days ago

prettier-plugin-classnames v0.6.6

Weekly downloads
-
License
MIT
Repository
github
Last release
11 days ago

prettier-plugin-classnames

A Prettier plugin that wraps verbose class name based on the printWidth option.

A use case for this plugin.

Installation

For Prettier v2:

npm install -D prettier@^2 prettier-plugin-classnames

For Prettier v3:^1

npm install -D prettier prettier-plugin-classnames

^1: If your version of prettier-plugin-classnames is less than 0.4.0, you will also need to install @prettier/sync.

Configuration

JSON example:

{
  "plugins": ["prettier-plugin-classnames"]
}

JS example (CommonJS module):

module.exports = {
  plugins: ['prettier-plugin-classnames'],
  customAttributes: ['myClassProp'],
  customFunctions: ['clsx'],
};

JS example (ES module):

export default {
  plugins: ['prettier-plugin-classnames'],
  endingPosition: 'absolute',
};

Options

Custom Attributes

List of attributes that enclosing class names. Language-specific attribute names for writing class names, and className attribute are always supported, even if no options are specified.

DefaultCLI OverrideAPI Override
[]--custom-attributes <string>customAttributes: ["<string>"]

Custom Functions

List of functions that enclosing class names. The classNames function is always supported, even if no options are specified.

DefaultCLI OverrideAPI Override
[]--custom-functions <string>customFunctions: ["<string>"]

Ending Position

First available in v0.5.0.

This is the criterion for ending the class name on each line when replacing the original class name with a multi-line class name.

  • relative example:

    --------------------------------------------------| printWidth=50
    export function Callout({ children }) {
      return (
        <div
                    |--------------------------------------------------|
          className="bg-gray-100/50 border border-zinc-400/30
           |--------------------------------------------------|
            dark:bg-neutral-900/50 dark:border-neutral-500/30
            px-4 py-4 rounded-xl"
        >
          {children}
        </div>
      );
    }
  • absolute example:

    --------------------------------------------------| printWidth=50
    export function Callout({ children }) {
      return (
        <div
          className="bg-gray-100/50 border
    border-zinc-400/30 dark:bg-neutral-900/50
    dark:border-neutral-500/30 px-4 py-4 rounded-xl"
        >
          {children}
        </div>
      );
    }
  • absolute-with-indent (first available in v0.6.0) example:

    --------------------------------------------------| printWidth=50
    export function Callout({ children }) {
      return (
        <div
          className="bg-gray-100/50 border
            border-zinc-400/30 dark:bg-neutral-900/50
            dark:border-neutral-500/30 px-4 py-4
            rounded-xl"
        >
          {children}
        </div>
      );
    }
DefaultCLI OverrideAPI Override
"relative"--ending-position <relative\|absolute\|absolute-with-indent>endingPosition: "<relative\|absolute\|absolute-with-indent>"

Version correlation with sibling plugins

Starting with 0.6.0, when there is a minor release on one side, I plan to reflect that change on the other side as well if possible.

Version correlation.

Compatibility with other Prettier plugins

If more than one Prettier plugin can handle the text you want to format, Prettier will only use the last of those plugins.

In this case, you can configure it as follows by adding prettier-plugin-merge to apply those plugins sequentially.

JSON example:

{
  "plugins": [
    "prettier-plugin-tailwindcss",
    "prettier-plugin-classnames",
    "prettier-plugin-merge"
  ]
}
0.6.6

11 days ago

0.6.5

1 month ago

0.6.4

1 month ago

0.6.3

2 months ago

0.6.2

2 months ago

0.6.1

3 months ago

0.6.0

3 months ago

0.5.2

3 months ago

0.5.0

3 months ago

0.5.1

3 months ago

0.4.0

4 months ago

0.3.2

4 months ago

0.3.0

6 months ago

0.2.3

6 months ago

0.3.1

6 months ago

0.2.2

7 months ago

0.2.1

7 months ago

0.2.0

8 months ago

0.1.2

8 months ago

0.1.1

9 months ago

0.1.0

9 months ago