styled system

system

Você pode aplicar todas as propriedades de estilo de uma só vez com a função system.

Utilizando a função system será aplicada todas as propriedades de estilo de uma única vez, ou seja, todas as propriedades de estilo que estão disponíveis.

como utilizar

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

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

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

// ...

<MyComponent
  bgColor="primary.base"
  mt="stack.medium"
  mb="stack.medium"
  opacity="base"
  padding="stretchedInset.1xlarge"
  textAlign="center"
/>;

utilização com typescript

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

Você deve importar a função system e o tipo SystemProps:

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

const MyComponent = styled.div<SystemProps>`
  ${system}
`;

// ...

<MyComponent
  bgColor="primary.base"
  mt="stack.medium"
  mb="stack.medium"
  opacity="base"
  padding="stretchedInset.1xlarge"
  textAlign="center"
/>;

tabela de propriedades do system

PropriedadeDescriçãoTipoExemplo
backgroundColorCor de fundoBackgroundColorPropsbackgroundColor="primary.base"
bgCor de fundoBackgroundColorPropsbg="primary.base"
bgColorCor de fundoBackgroundColorPropsbgColor="primary.base"
borderBordaBorderPropsborder="1px solid"
borderTopBorda superiorBorderTopPropsborderTop="1px solid"
borderRightBorda direitaBorderRightPropsborderRight="1px solid"
borderBottomBorda inferiorBorderBottomPropsborderBottom="1px solid"
borderLeftBorda esquerdaBorderLeftPropsborderLeft="1px solid"
borderRadiusRaio da bordaBorderRadiusPropsborderRadius="small"
bRadiusRaio da bordaBorderRadiusPropsbRadius="small"
borderTopLeftRadiusRaio da borda superior esquerdaBorderTopLeftRadiusPropsborderTopLeftRadius="small"
borderTopRightRadiusRaio da borda superior direitaBorderTopRightRadiusPropsborderTopRightRadius="small"
borderBottomLeftRadiusRaio da borda inferior esquerdaBorderBottomLeftRadiusPropsborderBottomLeftRadius="small"
borderBottomRightRadiusRaio da borda inferior direitaBorderBottomRightRadiusPropsborderBottomRightRadius="small"
borderColorCor da bordaBorderColorPropsborderColor="primary.base"
borderTopColorCor da borda superiorBorderTopColorPropsborderTopColor="primary.base"
borderRightColorCor da borda direitaBorderRightColorPropsborderRightColor="primary.base"
borderBottomColorCor da borda inferiorBorderBottomColorPropsborderBottomColor="primary.base"
borderLeftColorCor da borda esquerdaBorderLeftColorPropsborderLeftColor="primary.base"
alignContentAlinhamento do conteúdoAlignContentPropsalignContent="center"
alignItemsAlinhamento dos itensAlignItemsPropsalignItems="center"
alignSelfAlinhamento do próprio elementoAlignSelfPropsalignSelf="center"
flexFlexFlexPropsflex="1"
flexBasisBase do flexFlexBasisPropsflexBasis="1"
flexDirectionDireção do flexFlexDirectionPropsflexDirection="row"
flexFlowFluxo do flexFlexFlowPropsflexFlow="row nowrap"
flexGrowCrescimento do flexFlexGrowPropsflexGrow="1"
flexShrinkDiminuição do flexFlexShrinkPropsflexShrink="1"
flexWrapQuebra do flexFlexWrapPropsflexWrap="nowrap"
gapEspaçamento entre os itensGapPropsgap="inline.medium"
justifyContentJustificação do conteúdoJustifyContentPropsjustifyContent="center"
justifySelfJustificação do próprio elementoJustifySelfPropsjustifySelf="center"
orderOrdem do flexOrderPropsorder="1"
displayExibiçãoDisplayPropsdisplay="flex"
positionPosiçãoPositionPropsposition="absolute"
topEspaçamento superiorTopPropstop="10px"
rightEspaçamento direitoRightPropsright="10px"
bottomEspaçamento inferiorBottomPropsbottom="10px"
leftEspaçamento esquerdoLeftPropsleft="10px"
zIndexÍndice zZIndexPropszIndex="1"
opacityOpacidadeOpacityPropsopacity="base"
overflowOverflowOverflowPropsoverflow="hidden"
overflowsOverflowOverflowsPropsoverflow="hidden", overflowX="hidden", overflowY="hidden"
overflowXOverflow horizontalOverflowXPropsoverflowX="hidden"
overflowYOverflow verticalOverflowYPropsoverflowY="hidden"
boxShadowSombraShadowPropsboxShadow="diffuse"
elevationElevaçãoShadowPropselevation="diffuse"
marginsTodas as propriedades de margemMarginsPropsmt="stack.medium", mb="stack.medium", ml="inline.medium"
marginMargemMarginPropsmargin="stretchedInset.1xlarge"
mMargemMarginPropsm="stretchedInset.1xlarge"
marginTopMargem superiorMarginTopPropsmarginTop="stack.medium"
mtMargem superiorMarginTopPropsmt="stack.medium"
marginRightMargem direitoMarginRightPropsmarginRight="inline.medium"
mrMargem direitoMarginRightPropsmr="inline.medium"
marginBottomMargem inferiorMarginBottomPropsmarginBottom="stack.medium"
mbMargem inferiorMarginBottomPropsmb="stack.medium"
marginLeftMargem esquerdoMarginLeftPropsmarginLeft="inline.medium"
mlMargem esquerdoMarginLeftPropsml="inline.medium"
marginHorizontalMargem horizontalMarginHorizontalPropsmarginHorizontal="inline.medium"
mxMargem horizontalMarginHorizontalPropsmx="inline.medium"
marginVerticalMargem verticalMarginVerticalPropsmarginVertical="stack.medium"
myMargem verticalMarginVerticalPropsmy="stack.medium"
paddingsTodas as propriedades de preenchimentoPaddingsProps`pt="stack.medium", pb="stack.medium", pl="inline.medium"
paddingPreenchimentoPaddingPropspadding="stretchedInset.1xlarge"
pPreenchimentoPaddingPropsp="stretchedInset.1xlarge"
paddingTopPreenchimento superiorPaddingTopPropspaddingTop="stack.medium"
ptPreenchimento superiorPaddingTopPropspt="stack.medium"
paddingRightPreenchimento direitoPaddingRightPropspaddingRight="inline.medium"
prPreenchimento direitoPaddingRightPropspr="inline.medium"
paddingBottomPreenchimento inferiorPaddingBottomPropspaddingBottom="stack.medium"
pbPreenchimento inferiorPaddingBottomPropspb="stack.medium"
paddingLeftPreenchimento esquerdoPaddingLeftPropspaddingLeft="inline.medium"
plPreenchimento esquerdoPaddingLeftPropspl="inline.medium"
paddingHorizontalPreenchimento horizontalPaddingHorizontalPropspaddingHorizontal="inline.medium"
pxPreenchimento horizontalPaddingHorizontalPropspx="inline.medium"
paddingVerticalPreenchimento verticalPaddingVerticalPropspaddingVertical="stack.medium"
pyPreenchimento verticalPaddingVerticalPropspy="stack.medium"
widthsTodas as propriedades de larguraWidthsPropswidth="100%", maxWidth="100px", minWidth="50px"
widthLarguraWidthPropswidth="100%"
wLarguraWidthPropsw="100%"
heightsTodas as propriedades de alturaHeightsPropsheight="100%", maxHeight="100px", minHeight="50px"
heightAlturaHeightPropsheight="100%"
hAlturaHeightPropsh="100%"
minWidthLargura mínimaMinWidthPropsminWidth="100%"
minWLargura mínimaMinWidthPropsminW="100%"
maxWidthLargura máximaMaxWidthPropsmaxWidth="100%"
maxWLargura máximaMaxWidthPropsmaxW="100%"
minHeightAltura mínimaMinHeightPropsminHeight="100%"
minHAltura mínimaMinHeightPropsminH="100%"
maxHeightAltura máximaMaxHeightPropsmaxHeight="100%"
maxHAltura máximaMaxHeightPropsmaxH="100%"
colorCorColorPropscolor="primary.base"
cCorColorPropsc="primary.base"
fontFamilyFamília da fonteFontFamilyPropsfontFamily="brand"
fontSizeTamanho da fonteFontSizePropsfontSize="large"
fontWeightPeso da fonteFontWeightPropsfontWeight="bold"
letterSpacingEspaçamento entre as letrasLetterSpacingPropsletterSpacing="loose"
lineHeightAltura da linhaLineHeightPropslineHeight="small"
textAlignAlinhamento do textoTextAlignPropstextAlign="center"
textTransformTransformação do textoTextTransformPropstextTransform="uppercase"