-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtailwind-grid-plugin.js
42 lines (40 loc) · 1.04 KB
/
tailwind-grid-plugin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// https://github.com/tailwindcss/plugin-examples/blob/master/plugins/css-grid/index.js
// http://korywakefield.com/iota/
const _ = require('lodash');
module.exports = ({ grids = _.range(1, 13), gaps = {}, variants = ['responsive'] }) => {
return ({ e, addUtilities }) => {
addUtilities(
[
{ '.grid': { display: 'grid' } },
{ '.grid-dense': { gridAutoFlow: 'dense' } },
..._.map(gaps, (size, name) => ({
[`.grid-gap-${e(name)}`]: { gridGap: size }
})),
...grids.map(columns => ({
[`.grid-columns-${columns}`]: {
gridTemplateColumns: `repeat(${columns}, 1fr)`
}
})),
..._.range(1, _.max(grids) + 1).map(span => ({
[`.col-span-${span}`]: {
gridColumnStart: `span ${span}`
}
})),
..._.range(1, _.max(grids) + 2).map(line => ({
[`.col-start-${line}`]: {
gridColumnStart: `${line}`
},
[`.col-end-${line}`]: {
gridColumnEnd: `${line}`
}
})),
{
'.grid-justify-center': {
justifyItems: 'center'
}
}
],
variants
);
};
};