UNPKG

unocss-preset-grid-areas

Version:
38 lines (33 loc) 1.69 kB
import type { Preset } from "unocss" export interface GridOptions { gridTemplateAreas: { [key: string]: string[]; }; } export function presetGridAreas(options: GridOptions): Preset { const gridTemplateAreas = (name) => options?.gridTemplateAreas?.[name] ? options?.gridTemplateAreas?.[name].map((row) => (`"${row}"`)).join('\n') : '' return { name: "unocss-preset-grid-areas", rules: [ ['grid-areas-none', { 'grid-template-areas': 'none' }], ['grid-areas-inherit', { 'grid-template-areas': 'inherit' }], ['grid-areas-initial', { 'grid-template-areas': 'initial' }], ['grid-areas-revert', { 'grid-template-areas': 'revert' }], ['grid-areas-revert-layer', { 'grid-template-areas': 'revert-layer' }], ['grid-areas-unset', { 'grid-template-areas': 'unset' }], ['grid-in-auto', { 'grid-area': 'auto' }], ['grid-in-inherit', { 'grid-area': 'inherit' }], ['grid-in-initial', { 'grid-area': 'initial' }], ['grid-in-revert', { 'grid-area': 'revert' }], ['grid-in-revert-layer', { 'grid-area': 'revert-layer' }], ['grid-in-unset', { 'grid-area': 'unset' }], [/^grid-in-(.+)$/, ([_, name]) => ({ 'grid-area': `${name}` })], [/^row-start-(.+)$/, ([_, name]) => ({ 'grid-row-start': `${name}-start` })], [/^row-end-(.+)$/, ([_, name]) => ({ 'grid-row-end': `${name}-end` })], [/^col-start-(.+)$/, ([_, name]) => ({ 'grid-column-start': `${name}-start` })], [/^col-end-(.+)$/, ([_, name]) => ({ 'grid-column-end': `${name}-end` })], [/^grid-areas-(.*)$/, ([_, name]) => ({ 'grid-template-areas': gridTemplateAreas(name) })], ], } } export default presetGridAreas