Package Exports
- tailwindcss-fluid-spacing
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tailwindcss-fluid-spacing) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
tailwindcss-fluid-spacing
A Tailwind CSS plugin that provides fluid-responsive spacings across viewport widths.
Installation
Install the plugin from npm:
npm install -D tailwindcss-fluid-spacing
or
yarn add -D tailwindcss-fluid-spacing
Then add the plugin to your tailwind.config.js
file:
// tailwind.config.js
module.exports = {
theme: {
// ...
},
plugins: [
require('tailwindcss-fluid-spacing'),
// ...
],
}
Usage
Basic
Fluid-spacing is inherited by the padding
, margin
, width
, height
, maxHeight
, gap
, inset
, space
and translate
core plugins. Insert vw-
before {size}
to each utilities.
Examples:
<div class="p-vw-8">...</div> <!-- padding: 2.5vw; -->
<div class="mx-vw-16">...</div> <!-- margin-left: 5vw; margin-right: 5vw; -->
<div class="-mt-vw-16">...</div> <!-- margin-top: -5vw; -->
<div class="w-vw-64">...</div> <!-- width: 20vw; -->
<div class="h-vw-32">...</div> <!-- height: 10vw; -->
<div class="gap-vw-10">...</div> <!-- gap: 3.125vw; -->
<div class="top-vw-24">...</div> <!-- top: 7.5vw; -->
<div class="inset-vw-4">...</div> <!-- top: 1.25vw; right: 1.25vw; bottom: 1.25vw; left: 1.25vw; -->
<div class="translate-y-vw-12">...</div> <!-- --tw-translate-y: 3.75vw; transform: var(--tw-transform); -->
Responsive
To control the fluid-spacing at a specific breakpoint, add a {screen}:
prefix to any existing utility. For example, adding the class md:p-vw-8
to an element would apply the p-vw-8
utility at medium screen sizes and above.
<div class="md:p-vw-8">...</div>
To provide a minimum or a maximum value, add a -{min|max}@{screen}
suffix to any existing utility; to privide both minmun and maximum values, add a -min@{screen}-max@{screen}
suffix. For example, the class mt-vw-16-min@sm
would provide the 5vw
value with the minmum value 2rem (32px)
which equals 5vw
at the small screen.
<div class="mt-vw-16-min@sm">...</div> <!-- margin-top: max(5vw, 2rem); -->
<div class="mt-vw-16-max@xl">...</div> <!-- margin-top: min(5vw, 4rem); -->
<div class="mt-vw-16-min@sm-max@xl">...</div> <!-- margin-top: clamp( 2rem, 5vw, 4rem ); -->
The -{min|max}@{screen}
and -min@{screnn}-max@{screen}
suffixes are also available for any breakpoint.
<div class="my-10 sm:my-vw-20-max@xl">...</div>
Default fluid-spacing
Size | Value | 320px | sm: 640px | md: 768px | lg: 1024px | xl: 1280px | 2xl: 1536px |
---|---|---|---|---|---|---|---|
1 | 0.3125vw |
1px |
2px |
2.4px |
3.2px |
4px |
4.8px |
1.5 | 0.46875vw |
1.5px |
3px |
3.6px |
4.8px |
6px |
7.2px |
2 | 0.625vw |
2px |
4px |
4.8px |
6.4px |
8px |
9.6px |
2.5 | 0.78125vw |
2.5px |
5px |
6px |
8px |
10px |
12px |
3 | 0.9375vw |
3px |
6px |
7.2px |
9.6px |
12px |
14.4px |
3.5 | 1.09375vw |
3.5px |
7px |
8.4px |
11.2px |
14px |
16.8px |
4 | 1.25vw |
4px |
8px |
9.6px |
12.8px |
16px |
19.2px |
5 | 1.5625vw |
5px |
10px |
12px |
16px |
20px |
24px |
6 | 1.875vw |
6px |
12px |
14.4px |
19.2px |
24px |
28.8px |
7 | 2.1875vw |
7px |
14px |
16.8px |
22.4px |
28px |
33.6px |
8 | 2.5vw |
8px |
16px |
19.2px |
25.6px |
32px |
38.4px |
9 | 2.8125vw |
9px |
18px |
21.6px |
28.8px |
36px |
43.2px |
10 | 3.125vw |
10px |
20px |
24px |
32px |
40px |
48px |
11 | 3.4375vw |
11px |
22px |
26.4px |
35.2px |
44px |
52.8px |
12 | 3.75vw |
12px |
24px |
28.8px |
38.4px |
48px |
57.6px |
14 | 4.375vw |
14px |
28px |
33.6px |
44.8px |
56px |
67.2px |
16 | 5vw |
16px |
32px |
38.4px |
51.2px |
64px |
76.8px |
20 | 6.25vw |
20px |
40px |
48px |
64px |
80px |
96px |
24 | 7.5vw |
24px |
48px |
57.6px |
76.8px |
96px |
115.2px |
28 | 8.75vw |
28px |
56px |
67.2px |
89.6px |
112px |
134.4px |
32 | 10vw |
32px |
64px |
76.8px |
102.4px |
128px |
153.6px |
36 | 11.25vw |
36px |
72px |
86.4px |
115.2px |
144px |
172.8px |
40 | 12.5vw |
40px |
80px |
96px |
128px |
160px |
192px |
44 | 13.75vw |
44px |
88px |
105.6px |
140.8px |
176px |
211.2px |
48 | 15vw |
48px |
96px |
115.2px |
153.6px |
192px |
230.4px |
52 | 16.25vw |
52px |
104px |
124.8px |
166.4px |
208px |
249.6px |
56 | 17.5vw |
56px |
112px |
134.4px |
179.2px |
224px |
268.8px |
60 | 18.75vw |
60px |
120px |
144px |
192px |
240px |
288px |
64 | 20vw |
64px |
128px |
153.6px |
204.8px |
256px |
307.2px |
72 | 22.5vw |
72px |
144px |
172.8px |
230.4px |
288px |
345.6px |
80 | 25vw |
80px |
160px |
192px |
256px |
320px |
384px |
96 | 30vw |
96px |
192px |
230.4px |
307.2px |
384px |
460.8px |
Configuration options
You can invoke the plugin passing along options when registering it in plugins
configuration.
Customize the default setting
Use the sizes
key to customize the default setting.
// tailwind.config.js
module.exports = {
theme: {
// ...
},
plugins: [
require('tailwindcss-fluid-spacing')({
sizes: [16, 20, 24],
}),
// ...
],
}
This will only use 16
, 20
and 24
as the {size}
to generate classes like p-vw-16
, m-vw-20
, w-vw-24
, etc.
Extend the default setting
To extend the default setting, put the sizes
key in extend
section.
// tailwind.config.js
module.exports = {
theme: {
// ...
},
plugins: [
require('tailwindcss-fluid-spacing')({
extend: {
sizes: [68, 76],
},
}),
// ...
],
}
This will generate classes like p-vw-68
and m-vw-76
in addition to all of the default fluid-spacing utilities.
License
MIT