Skip to content
PluginStats

prettier-plugin-blade-conventions weekly downloads statistics

By dfossey · npm · Prettier plugins

Opinionated Blade layout rules layered on prettier-plugin-blade.

View on npm Fresh · Oct 17, 2026

prettier-plugin-blade-conventions has 7 recorded weekly downloads on npm.

It ranks #1978 of 2,256 tracked npm listings by weekly downloads.

Over the past 7 days it changed by -66.7%.

PluginStats has 543 daily observations since Apr 23, 2025; the latest is from Oct 17, 2026.

Weekly downloads
7
Official API · Oct 17, 2026
7-day growth
-66.7%
-14 weekly downloads
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
#1978
Among tracked npm listings

About prettier-plugin-blade-conventions

prettier-plugin-blade-conventions

Opinionated Blade layout, layered on prettier-plugin-blade.

Prettier reasons about width alone. This adds attribute ordering, attribute-count thresholds, and respect for the line breaks you wrote yourself.

Install

Options

Declared Prettier options, so they go in your Prettier config, alongside those of prettier-plugin-blade.

| Option | Default | Effect |

| bladeCompactWidth | 90 | Width under which a borderline tag still fits on one line | | bladeExpandFrom | 3 | Attribute count from which a tag is treated as heavy | | bladeAttributeHead | [] | Attribute names always printed first, in list order | | bladeAttributeTail | [] | Attribute names always printed last, in list order | | bladePreserveElements | [] | Tags whose content must not be touched at all |

Prettier's own printWidth and tabWidth apply as usual, and every option of prettier-plugin-blade stays available.

Three of its defaults are changed here, both overridable:

• bladeInlineIntentElements drops p, which otherwise keeps a long paragraph on a single line whatever printWidth says. • bladeDirectiveArgSpacing is none. PSR-12 spaces a control keyword from its condition and leaves a call tight, so @foreach ($a as $b) but @include('partials.head'). The upstream override list already holds exactly the directives named after a PHP statement, and is left alone. • bladePhpFormatting is off. Echoes and @php blocks are out of reach anyway, but directive arguments are not, and safe rewrites them as soon as @prettier/plugin-php is installed.

Layout

With the defaults:

The three counts follow bladeExpandFrom, so setting it to 2 shifts them to 3 / 2 / 1. Widths include the indent and are measured on the opening tag alone.

Spreading something out is always honoured: a tag or a body you broke across lines stays that way, whatever its width. Keeping something on one line is honoured within limits — it holds while the line fits bladeCompactWidth and the tag carries fewer than bladeExpandFrom attributes, past which the thresholds win. Two identical tags each keep their own form.

An attribute value you spread over several lines stays spread, whatever its width:

Prettier flattens such a value as soon as the result fits, and flattens a class even when the tag stays open. Same asymmetry as everywhere else here: nothing is spread for you, and nothing you spread is closed back up. Width never enters into it, so a value you wrote on one line stays there however long it grows. Values inside a , , or are left alone, since there the lines are the content.

A blank line you opened or closed a body with is kept:

Prettier reads both as leading and trailing whitespace of the body and drops them; a blank line between two siblings it already keeps. A run of several collapses to one, and blank lines inside a , , or are left where they are. Nothing is restored after the fact: a blank line an earlier run removed is gone, the rule only keeps the ones still in the file.

Attribute order

Attributes form three blocks, in this order: valued, boolean, then any bare {{ $attributes }} bag. The first two are sorted the same way, the bag keeps its relative order.

bladeAttributeHead names come first in list order, bladeAttributeTail names last in list order, everything else alphabetically in between. Alphabetical is the baseline: with no lists at all, everything is still sorted that way.

A pattern is a literal name or a glob, where * stands for any run of characters, empty included, anywhere in the pattern: data-*, *-class and my-*-class all work. Everything else is read literally, so the dot in wire:model.live is a dot.

A name matching several patterns takes the one pinning the most characters, then the one with fewer wildcards, then the one listed first. So a literal beats a glob covering it, data-test-* beats data-*, and my-*-class beats *-class. That decides which entry a name belongs to; where that entry sits is your list order, and names sharing an entry break ties alphabetically.

A leading : or @ is ignored on both sides, so class covers class, :class and @class([...]) alike. Only the leading one — wire:key still matches on its own.

A tag whose attributes hold a Blade comment is left untouched.

textarea, pre and the other elements whose content is read verbatim keep their body glued to the brackets. Their attributes still get ordered and spread; only the content is left alone, since indenting it would change the value of the field.

Escape hatches

bladePreserveElements: ["x-code"] does the same permanently, for a component whose content is whitespace-significant — one wrapping a , typically. Prettier cannot know that on its own and will collapse the content.

A @word starting a text run is read as a directive. Escape it as @@word.

Limits

A tag carrying a Blade control directive as an attribute is left untouched entirely, neither reordered nor relaid out. That is the price of never lifting an attribute out of its branch.

A tag opened in one directive branch and closed in another may comes out with broken indentation. Wrap the two unbalanced blocks in {{-- prettier-ignore-start --}} / {{-- prettier-ignore-end --}}; what sits between them still gets formatted.

Some constructs are deliberately left out of the analysis rather than reformatted on a guess: @php blocks and the heredocs inside them, {{ }} and {!! !!} echoes, and any tag the rules cannot take apart with certainty. Skipping them costs formatting, never correctness.

Nothing here changes the rendered DOM. A file whose formatting would is reported and left untouched.

Description from the npm listing.

  • prettier
  • prettier-plugin
  • blade
  • laravel

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

prettier-plugin-blade-conventions weekly downloads on npm, last 90 days: 7 weekly downloads as of Oct 17, 2026.prettier-plugin-blade-conventionsWeekly downloads on npm · Last 90 days7downloads / week0100200300400500Jul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 21, 2026 – Oct 17, 2026 · 89 observations · Updated Oc…pluginstats.com
prettier-plugin-blade-conventions weekly downloads on npm, last 90 days: 7 weekly downloads as of Oct 17, 2026.
PNG SVG

7/30/90-day growth

prettier-plugin-blade-conventions weekly downloads growth on npm: -66.7% over 7 days, 30-day growth unavailable, 90-day growth unavailable.prettier-plugin-blade-conventionsWeekly downloads growth on npm7downloads / week now7-day growth-14 weekly downloads-66.7%30-day growth+7 weekly downloadsInsufficient history90-day growth+7 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
prettier-plugin-blade-conventions weekly downloads growth on npm: -66.7% over 7 days, 30-day growth unavailable, 90-day growth unavailable.
PNG SVG

Ranking history

prettier-plugin-blade-conventions npm ranking history: currently #1978 (by weekly downloads).prettier-plugin-blade-conventionsnpm ranking · by weekly downloads · Last 90 days#1978current rank#600#800#1000#1200#1400#1600#1800#2000Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 17, 2026 – Oct 19, 2026 · 3 observations · Updated Oct 17, 2026pluginstats.com
prettier-plugin-blade-conventions npm ranking history: currently #1978 (by weekly downloads).
PNG SVG

Listing placement

All npm2,256 listings · 113 pages · 1,129 shown · page 99, #19 (overall #1,979)
All npm: every listing in weekly downloads order
PNG SVG

Listing placement

Prettier plugins244 listings · 13 pages · page 6, #12 (overall #112)
Prettier plugins: every listing in weekly downloads order
PNG SVG

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (543)
Recent weekly downloads observations for prettier-plugin-blade-conventions
Date (UTC)Weekly downloadsChange vs. previous
70
7-2
90
9-6
150
15-6
210
21-4
25-12
37-6
43-16
59-133
192-26
218—

Similar npm Prettier plugins plugins

All 20 prettier-plugin-blade-conventions alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/prettier-plugin-blade-conventions. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.