Styling

Components use CSS styles + FlexBox layout.

Layout Styles

property type supported?
width number | percentage ✅
height number | percentage ✅
top number | percentage ✅
left number | percentage ✅
right number | percentage ✅
bottom number | percentage ✅
minWidth number | percentage ✅
maxWidth number | percentage ✅
minHeight number | percentage ✅
maxHeight number | percentage ✅
margin number | percentage ✅
marginVertical number | percentage ✅
marginHorizontal number | percentage ✅
marginTop number | percentage ✅
marginBottom number | percentage ✅
marginLeft number | percentage ✅
marginRight number | percentage ✅
padding number | percentage ✅
paddingVertical number | percentage ✅
paddingHorizontal number | percentage ✅
paddingTop number | percentage ✅
paddingBottom number | percentage ✅
paddingLeft number | percentage ✅
paddingRight number | percentage ✅
borderWidth number | percentage ✅
borderTopWidth number | percentage ✅
borderRightWidth number | percentage ✅
borderBottomWidth number | percentage ✅
borderLeftWidth number | percentage ✅
position absolute | relative ✅
flexDirection row | row-reverse | column | column-reverse ✅
flexWrap wrap | nowrap ✅
justifyContent flex-start | flex-end | center | space-between | space-around ✅
alignItems flex-start | flex-end | center | stretch ✅
alignSelf auto | flex-start | flex-end | center | stretch ✅
overflow visible | hidden | scroll ✅
flex number ✅
flexGrow number ✅
flexShrink number ✅
flexBasis number ✅
aspectRatio number ⛔️
zIndex number ✅
backfaceVisibility visible | hidden ⛔️
backgroundColor Color ✅
borderColor Color ✅
borderTopColor Color ✅
borderRightColor Color ✅
borderBottomColor Color ✅
borderLeftColor Color ✅
borderRadius number | percentage ✅
borderTopLeftRadius number | percentage ✅
borderTopRightRadius number | percentage ✅
borderBottomLeftRadius number | percentage ✅
borderBottomRightRadius number | percentage ✅
borderStyle solid | dotted | dashed ✅
borderWidth number | percentage ✅
borderTopWidth number | percentage ✅
borderRightWidth number | percentage ✅
borderBottomWidth number | percentage ✅
borderLeftWidth number | percentage ✅
opacity number ✅

Shadow Styles

property type supported?
shadowColor Color ✅
shadowOffset { width: number, height: number } ✅
shadowOpacity number ✅
shadowRadius number | percentage ✅

Type Styles

property type supported?
color Color ✅
fontFamily string ✅
fontSize number ✅
fontStyle normal | italic ✅
fontWeight string | number ✅
textDecorationLine none | underline | double | line-through ✅
textShadowOffset { width: number, height: number } ✅
textShadowRadius number ✅
textShadowColor Color ✅
textTransform none | uppercase | lowercase ✅
letterSpacing number ✅
lineHeight number ✅
textAlign auto | left | right | center | justify ✅
writingDirection auto | ltr | rtl ⛔️
opacity number ✅
percentage points | 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.

property type supported?
shadowSpread number ✅
shadowInner boolean ✅

Examples

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

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:

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>;