Back to React Sketchapp

Styling

docs/guides/styling.md

3.2.25.7 KB
Original Source

Styling

Components use CSS styles + FlexBox layout.

Layout Styles

propertytypesupported?
widthnumber | percentage
heightnumber | percentage
topnumber | percentage
leftnumber | percentage
rightnumber | percentage
bottomnumber | percentage
minWidthnumber | percentage
maxWidthnumber | percentage
minHeightnumber | percentage
maxHeightnumber | percentage
marginnumber | percentage
marginVerticalnumber | percentage
marginHorizontalnumber | percentage
marginTopnumber | percentage
marginBottomnumber | percentage
marginLeftnumber | percentage
marginRightnumber | percentage
paddingnumber | percentage
paddingVerticalnumber | percentage
paddingHorizontalnumber | percentage
paddingTopnumber | percentage
paddingBottomnumber | percentage
paddingLeftnumber | percentage
paddingRightnumber | percentage
borderWidthnumber | percentage
borderTopWidthnumber | percentage
borderRightWidthnumber | percentage
borderBottomWidthnumber | percentage
borderLeftWidthnumber | percentage
positionabsolute | relative
flexDirectionrow | row-reverse | column | column-reverse
flexWrapwrap | nowrap
justifyContentflex-start | flex-end | center | space-between | space-around
alignItemsflex-start | flex-end | center | stretch
alignSelfauto | flex-start | flex-end | center | stretch
overflowvisible | hidden | scroll
flexnumber
flexGrownumber
flexShrinknumber
flexBasisnumber
aspectRationumber⛔️
zIndexnumber
backfaceVisibilityvisible | hidden⛔️
backgroundColorColor
borderColorColor
borderTopColorColor
borderRightColorColor
borderBottomColorColor
borderLeftColorColor
borderRadiusnumber | percentage
borderTopLeftRadiusnumber | percentage
borderTopRightRadiusnumber | percentage
borderBottomLeftRadiusnumber | percentage
borderBottomRightRadiusnumber | percentage
borderStylesolid | dotted | dashed
borderWidthnumber | percentage
borderTopWidthnumber | percentage
borderRightWidthnumber | percentage
borderBottomWidthnumber | percentage
borderLeftWidthnumber | percentage
opacitynumber

Shadow Styles

propertytypesupported?
shadowColorColor
shadowOffset{ width: number, height: number }
shadowOpacitynumber
shadowRadiusnumber | percentage

Type Styles

propertytypesupported?
colorColor
fontFamilystring
fontSizenumber
fontStylenormal | italic
fontWeightstring | number
textDecorationLinenone | underline | double | line-through
textShadowOffset{ width: number, height: number }
textShadowRadiusnumber
textShadowColorColor
textTransformnone | uppercase | lowercase
letterSpacingnumber
lineHeightnumber
textAlignauto | left | right | center | justify
writingDirectionauto | ltr | rtl⛔️
opacitynumber
percentagepoints | percentages

Styles Specific To react-sketchapp

Some properties are Sketch specific and won't work cross-platform but give you a better control over your components.

propertytypesupported?
shadowSpreadnumber
shadowInnerboolean

Examples

Styles can be passed to components as plain objects, or via StyleSheet.

js
import { View, StyleSheet } from 'react-sketchapp';

// inline props
<View
  style={{
    backgroundColor: 'hotPink',
    width: 300,
  }}
/>

// plain JS object
const style = {
  backgroundColor: 'hotPink',
  width: 300,
}

<View style={style} />

// StyleSheet
const styles = StyleSheet.create({
  foo: {
    backgroundColor: 'hotPink',
    width: 300,
  }
})

<View style={styles.foo} />
<View style={[styles.foo, styles.bar]} />

You can use variables in your styles just like a standard React application:

javascript
const colors = {
  Haus: '#F3F4F4',
  Night: '#333',
  Sur: '#96DBE4',
  Peach: '#EFADA0',
  Pear: '#93DAAB',
};

<View>
  {Object.keys(colors).map(name => (
    <View
      key={name}
      style={{
        flex: 1,
        backgroundColor: colors[name],
      }}
    />
  ))}
</View>;