Skip to content

Instantly share code, notes, and snippets.

@leMaur
Last active September 5, 2019 07:18
Show Gist options
  • Save leMaur/c64b53db1beed7497877faa516f6d999 to your computer and use it in GitHub Desktop.
Save leMaur/c64b53db1beed7497877faa516f6d999 to your computer and use it in GitHub Desktop.
Basic Grid box
const _ = require('lodash')
module.exports = function ({addBase, addUtilities, e, theme, variants}) {
const gridGaps = theme('gridGap', {})
const gridTemplates = theme('gridTemplate', {})
const gridGapVariants = variants('gridGap', [])
const gridTemplateVariants = variants('gridTemplate', [])
const gapUtilities = _.map(gridGaps, (size, name) => ({
[`.grid-gap-${e(name)}`]: {gridGap: `${size}`},
[`.grid-gap-col-${e(name)}`]: {gridColumnGap: `${size}`},
[`.grid-gap-row-${e(name)}`]: {gridRowGap: `${size}`},
}))
const templateUtilities = _.map(gridTemplates, (times, name) => ({
[`.grid-template-col-${e(name)}`]: {gridTemplateColumns: `repeat(${times},1fr)`},
[`.grid-template-row-${e(name)}`]: {gridTemplateRows: `repeat(${times},1fr)`},
}))
addUtilities(
_.merge(gapUtilities, templateUtilities),
_.merge(gridGapVariants, gridTemplateVariants),
)
addBase({
'.grid': {display: 'grid'},
'.inline-grid': {display: 'inline-grid'},
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment