@hakuna-matata-ui/styled-system
Version:
Style function for css-in-js building component libraries
175 lines (172 loc) • 6.3 kB
text/typescript
import * as CSS from "csstype"
import { Config } from "../utils/prop-config"
import { t, Token } from "../utils"
export const grid: Config = {
gridGap: t.space("gridGap"),
gridColumnGap: t.space("gridColumnGap"),
gridRowGap: t.space("gridRowGap"),
gridColumn: true,
gridRow: true,
gridAutoFlow: true,
gridAutoColumns: true,
gridColumnStart: true,
gridColumnEnd: true,
gridRowStart: true,
gridRowEnd: true,
gridAutoRows: true,
gridTemplate: true,
gridTemplateColumns: true,
gridTemplateRows: true,
gridTemplateAreas: true,
gridArea: true,
}
export interface GridProps {
/**
* The CSS `grid-gap` property.
*
* It defines the gaps (gutters) between rows and columns
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-gap)
*/
gridGap?: Token<CSS.Property.GridGap | number, "space">
/**
* The CSS `grid-column-gap` property.
*
* It defines the size of the gap (gutter) between an element's columns.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap)
*/
gridColumnGap?: Token<CSS.Property.GridColumnGap | number, "space">
/**
* The CSS `grid-row-gap` property.
*
* It defines the size of the gap (gutter) between an element's grid rows.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap)
*/
gridRowGap?: Token<CSS.Property.GridRowGap | number, "space">
/**
* The CSS `grid-column` property.
*
* It specifies a grid item’s start position within the grid column by
* contributing a line, a span, or nothing (automatic) to its grid placement
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start)
*/
gridColumnStart?: Token<CSS.Property.GridColumnStart>
/**
* The CSS `grid-row-start` property
*
* It specifies a grid item’s start position within the grid row by
* contributing a line, a span, or nothing (automatic) to its grid placement,
* thereby specifying the `inline-start` edge of its grid area.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start)
*/
gridRowStart?: Token<CSS.Property.GridRowStart>
/**
* The CSS `grid-row-end` property
*
* It specifies a grid item’s end position within the grid row by
* contributing a line, a span, or nothing (automatic) to its grid placement,
* thereby specifying the `inline-end` edge of its grid area.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end)
*/
gridRowEnd?: Token<CSS.Property.GridRowEnd>
/**
* The CSS `grid-template` property.
*
* It is a shorthand property for defining grid columns, rows, and areas.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template)
*/
gridTemplate?: Token<CSS.Property.GridTemplate>
/**
* The CSS `grid-column` property
*
* It specifies a grid item’s end position within the grid column by
* contributing a line, a span, or nothing (automatic) to its grid placement,
* thereby specifying the block-end edge of its grid area.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end)
*/
gridColumnEnd?: Token<CSS.Property.GridColumnEnd>
/**
* The CSS `grid-column` property.
*
* It specifies a grid item's size and location within a grid column
* by contributing a line, a span, or nothing (automatic) to its grid placement,
* thereby specifying the `inline-start` and `inline-end` edge of its grid area.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column)
*/
gridColumn?: Token<CSS.Property.GridColumn>
/**
* The CSS `grid-row` property
*
* It specifies a grid item’s size and location within the grid row
* by contributing a line, a span, or nothing (automatic) to its grid placement,
* thereby specifying the `inline-start` and `inline-end` edge of its grid area.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row)
*/
gridRow?: Token<CSS.Property.GridRow>
/**
* The CSS `grid-auto-flow` property
*
* It controls how the auto-placement algorithm works,
* specifying exactly how auto-placed items get flowed into the grid.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow)
*/
gridAutoFlow?: Token<CSS.Property.GridAutoFlow>
/**
* The CSS `grid-auto-columns` property.
*
* It specifies the size of an implicitly-created grid column track or pattern of tracks.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns)
*/
gridAutoColumns?: Token<CSS.Property.GridAutoColumns>
/**
* The CSS `grid-auto-rows` property.
*
* It specifies the size of an implicitly-created grid row track or pattern of tracks.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows)
*/
gridAutoRows?: Token<CSS.Property.GridAutoRows>
/**
* The CSS `grid-template-columns` property
*
* It defines the line names and track sizing functions of the grid columns.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns)
*/
gridTemplateColumns?: Token<CSS.Property.GridTemplateColumns>
/**
* The CSS `grid-template-rows` property.
*
* It defines the line names and track sizing functions of the grid rows.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows)
*/
gridTemplateRows?: Token<CSS.Property.GridTemplateRows>
/**
* The CSS `grid-template-areas` property.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas)
*/
gridTemplateAreas?: Token<CSS.Property.GridTemplateAreas>
/**
* The CSS `grid-areas` property.
*
* It specifies a grid item’s size and location within a grid by
* contributing a line, a span, or nothing (automatic)
* to its grid placement, thereby specifying the edges of its grid area.
*
* @see [Mozilla Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area)
*/
gridArea?: Token<CSS.Property.GridArea>
}