docs/guides/styling.md
Components use CSS styles + FlexBox layout.
| 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 | ✅ |
| property | type | supported? |
|---|---|---|
shadowColor | Color | ✅ |
shadowOffset | { width: number, height: number } | ✅ |
shadowOpacity | number | ✅ |
shadowRadius | number | percentage | ✅ |
| 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 | ✅ |
react-sketchappSome 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 | ✅ |
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>;