styled system

spacings

Confira as propriedades de estilos destinadas aos espaçamentos dos componentes.

como utilizar

Nós temos diversas propriedades disponíveis em relação aos espaçamentos:

import {
  margin,
  marginTop,
  marginRight,
  marginBottom,
  marginLeft,
  marginHorizontal,
  marginVertical,
  margins,
  padding,
  paddingTop,
  paddingRight,
  paddingBottom,
  paddingLeft,
  paddingHorizontal,
  paddingVertical,
  paddings,
  width,
  maxWidth,
  minWidth,
  widths,
  height,
  maxHeight,
  minHeight,
  heights,
} from '@olist/styled-system';

Você pode importar somente a desejada ou pode utilizar a função spacings que encapsula todas em uma só.

// isso é o equivalente que importar todas as funções acima
import { spacings } from '@olist/styled-system';

Para utilizar basta aplicar a função desejada em seu "styled-component":

import styled from 'styled-components';
import { paddingBottom } from '@olist/styled-system';

const MyComponent = styled.div`
  ${paddingBottom}
`;

// ...

<MyComponent paddingBottom="stack.small" />
<MyComponent pb="stack.small" />

Você também pode utilizar qualquer valor válido para as propriedades, não há restrição para utilizar somente os valores do tema:

import styled from 'styled-components';
import { paddingBottom } from '@olist/styled-system';

const MyComponent = styled.div`
  ${paddingBottom}
`;

// ...

<MyComponent paddingBottom="10px" />;
<MyComponent pb={10} />;

Essa lógica é aplicada para qualquer função exportada pelo @olist/styled-system.

utilização com typescript

Para utilizar as funções de spacings com typescript é necessário importar o tipo correspondente a função utilizada do pacote @olist/styled-system:

Supondo que você está utilizando a função paddingBottom você deve importar o tipo PaddingBottomProps:

import styled from 'styled-components';
import { paddingBottom, type PaddingBottomProps } from '@olist/styled-system';

const MyComponent = styled.div<PaddingBottomProps>`
  ${paddingBottom}
`;

// ...

<MyComponent paddingBottom="stack.small" />;

utilizando todas as propriedades de uma só vez

Você pode utilizar a função spacings para aplicar todas as propriedades de uma só vez, basta importar a função spacings e o seu tipo SpacingsProps:

import styled from 'styled-components';
import { spacings, type SpacingsProps } from '@olist/styled-system';

const MyComponent = styled.div<SpacingsProps>`
  ${spacings}
`;

// ...

<MyComponent
  margin="inset.small"
  paddingHorizontal="inline.small"
  height={48}
/>;

Você também pode utilizar as funções margins, paddings, widths e heights que são funções agregadoras que encapsulam algumas propriedades de espaçamento exemplificadas na tabela abaixo:

funçãopropriedades
marginsmargin, marginTop, marginRight, marginBottom, marginLeft, marginHorizontal, marginVertical
paddingspadding, paddingTop, paddingRight, paddingBottom, paddingLeft, paddingHorizontal, paddingVertical
widthswidth, maxWidth, minWidth
heightsheight, maxHeight, minHeight

utilizando a função spacings você terá disponível as seguintes propriedades para utilizar em seu componente:

propriedadealiasestype
marginmMarginProps
marginTopmtMarginTopProps
marginRightmrMarginRightProps
marginBottommbMarginBottomProps
marginLeftmlMarginLeftProps
marginHorizontalmxMarginHorizontalProps
marginVerticalmyMarginVerticalProps
margins-MarginsProps
paddingpPaddingProps
paddingTopptPaddingTopProps
paddingRightprPaddingRightProps
paddingBottompbPaddingBottomProps
paddingLeftplPaddingLeftProps
paddingHorizontalpxPaddingHorizontalProps
paddingVerticalpyPaddingVerticalProps
paddings-PaddingsProps
widthwWidthProps
maxWidthmaxWMaxWidthProps
minWidthminWMinWidthProps
widths-WidthsProps
heighthHeightProps
maxHeightmaxHMaxHeightProps
minHeightminHMinHeightProps
heights-HeightsProps