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-spacingor
yarn add -D tailwindcss-fluid-spacingThen 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