Skip to content
PluginStats

tailwind-container-break-out-v4 weekly downloads statistics

By furioursus · npm · Tailwind plugins

A TailwindCSS v4 (and v3) compatible plugin for breaking child elements out of a `.container`. Fork of tailwind-container-break-out, fixed for v4's stricter utility-selector rules.

View on npm Stale · Oct 17, 2026

tailwind-container-break-out-v4 has 3 recorded weekly downloads on npm, a decrease of 78.6% over the past 30 days, ranking #2122 of 2,313 tracked listings.

Weekly downloads
3
Official API · Oct 18, 2026
7-day growth
0.0%
0 weekly downloads
30-day growth
-78.6%
-11 weekly downloads
90-day growth
—
Insufficient history
Rank
#2122
Among tracked npm listings

About tailwind-container-break-out-v4

tailwind-container-break-out-v4

A Tailwind CSS v4-compatible fork of tailwind-container-break-out. Same utility classes, same math — fixed for v4's stricter plugin-selector validation. It also still works under Tailwind v3, so it's a safe drop-in replacement either way.

It gives you m{l|r|x}-break-out and p{l|r|x}-break-out utilities that let a child element visually escape the bounds of a centered .container, computed per breakpoint from your theme's screens/container.padding.

Why a fork

Upstream's src/tailwind-container-break-out.js registers its responsive rules as:

addComponents([
	{ ".mx-break-out": {/* base rule */} },
	{ "@media (min-width: 40rem)": { ".mx-break-out": {/* ... */} } },
]);

i.e. the @media at-rule is the top-level key. Tailwind v3 accepted this, but Tailwind v4's plugin compatibility layer validates that every top-level key passed to addComponents/addUtilities is a plain class selector, and rejects this shape with:

Error: `addUtilities({ '@media (min-width: 40rem)' : … })` defines an
invalid utility selector. Utilities must be a single class name and start
with a lowercase letter, eg. `.scrollbar-none`.

(This is upstream issue #8.)

The fix here nests the @media blocks inside each class declaration instead:

{
  '.mx-break-out': {
    /* base rule */
    '@media (min-width: 40rem)': { /* ... */ }
  }
}

That shape is valid CSS-in-JS under both Tailwind v3 and v4, so the plugin logic (screen/padding math) is otherwise unchanged from upstream.

The other change is how container padding is discovered. Tailwind v4 removed the container.padding / container.screens theme keys entirely when you configure your theme CSS-first (via @theme in your CSS instead of tailwind.config.js) — there's nothing for the plugin to read anymore in that setup. So this fork also accepts explicit screens/padding plugin options with the same shape Tailwind v3's theme.container.padding used, and only falls back to reading theme('container.screens') / theme('container.padding') when you don't pass one (which still works if you're loading a legacy tailwind.config.js via @config).

Install

npm i tailwind-container-break-out-v4

Peer dependency: tailwindcss v3 or v4.

Usage with Tailwind v4 (CSS-first config)

/* app.css */
@import "tailwindcss";
@plugin "tailwind-container-break-out-v4";

@theme {
	--breakpoint-sm: 40rem;
	--breakpoint-md: 48rem;
	--breakpoint-lg: 64rem;
	--breakpoint-xl: 80rem;
	--breakpoint-2xl: 96rem;
}

Because v4 has no container.padding theme key, pass your container's padding explicitly if you want the breakout math to account for it. The @plugin directive doesn't take inline arguments, so pass options through a tiny wrapper file:

// tailwind-container-break-out.config.js
module.exports = require("tailwind-container-break-out-v4")({
	padding: {
		DEFAULT: "1rem",
		sm: "2rem",
		lg: "4rem",
	},
	// screens: theme('screens') is used by default; pass `screens` here too
	// if you want to override which breakpoints get their own rule.
});
@plugin "./tailwind-container-break-out.config.js";

Without options, the utilities still work — they just don't shrink the breakout margin by your container's inner padding, they simply pull the element edge-to-edge with the viewport at each breakpoint.

Usage with Tailwind v3 (tailwind.config.js)

// tailwind.config.js
module.exports = {
	theme: {
		container: {
			center: true,
			padding: {
				DEFAULT: "1rem",
				sm: "2rem",
				lg: "4rem",
			},
		},
	},
	plugins: [require("tailwind-container-break-out-v4")],
};

This reads theme.container.padding/theme.container.screens automatically, same as upstream.

Utilities

ClassEffect
.mx-break-outBreak out of the container on both sides
.ml-break-outBreak out on the left only
.mr-break-outBreak out on the right only
.px-break-outBreak out on both sides, keeping inner content aligned to the container
.pl-break-outBreak out on the left, keeping inner content aligned
.pr-break-outBreak out on the right, keeping inner content aligned
<div class="container">
	<!-- Extends full-bleed, e.g. for a background or image -->
	<div class="mx-break-out">
		<img src="banner.jpg" />
	</div>

	<!-- Extends full-bleed but keeps its own content aligned to the container -->
	<div class="px-break-out bg-slate-100">
		<p>Still lines up with the rest of the page.</p>
	</div>
</div>

As with upstream, these utilities don't account for any extra margin/padding you've added elsewhere in your markup — they assume the breakout element is a direct (or effectively direct) child of .container.

Scrollbar width

Same as upstream: the plugin reads a --twcb-scrollbar-width CSS variable (default 0px) to compensate for the vertical scrollbar eating into 100vw. Pair this with set-scrollbar-width, or set it yourself:

:root {
	--twcb-scrollbar-width: 15px;
}

Plugin options

Passed to require('tailwind-container-break-out-v4')(options):…

Description from the npm listing.

  • tailwindcss
  • tailwindcss-plugin
  • tailwind
  • container
  • break-out
  • margins
  • pull
  • full-bleed

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

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

Adoption over time

tailwind-container-break-out-v4 weekly downloads on npm, last 90 days: 5 weekly downloads as of Oct 18, 2026.tailwind-container-break-out-v4Weekly downloads on npm · Last 90 days5downloads / week020406080100120140160180Jul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
tailwind-container-break-out-v4 weekly downloads on npm, last 90 days: 5 weekly downloads as of Oct 18, 2026.

7/30/90-day growth

tailwind-container-break-out-v4 weekly downloads growth on npm: +25.0% over 7 days, -61.5% over 30 days, 90-day growth unavailable.tailwind-container-break-out-v4Weekly downloads growth on npm5downloads / week now7-day growth+1 weekly downloads+25.0%30-day growth-8 weekly downloads-61.5%90-day growth+5 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
tailwind-container-break-out-v4 weekly downloads growth on npm: +25.0% over 7 days, -61.5% over 30 days, 90-day growth unavailable.

Ranking history

tailwind-container-break-out-v4 npm ranking history: currently #2122 (by weekly downloads).tailwind-container-break-out-v4npm ranking · by weekly downloads · Last 90 days#2122current rank#2114#2116#2118#2120#2122#2124Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 18, 2026 – Oct 19, 2026 · 2 observations · Updated Oct 17, 2026pluginstats.com
tailwind-container-break-out-v4 npm ranking history: currently #2122 (by weekly downloads).

Listing placement

All npm2,256 listings · 113 pages · 1,129 shown · page 107, #3 (overall #2,123)
All npm: every listing in weekly downloads order

Listing placement

Tailwind plugins252 listings · 13 pages · page 11, #17 (overall #217)
Tailwind plugins: every listing in weekly downloads order

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 linear 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 (122)
Recent weekly downloads observations for tailwind-container-break-out-v4
Date (UTC)Weekly downloadsChange vs. previous
5+2
30
30
30
30
30
3-1
4+1
3-1
4-1
5-1
60
6-3
9—

Similar npm Tailwind plugins plugins

All 20 tailwind-container-break-out-v4 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/tailwind-container-break-out-v4. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.