React Native için Shoutem Temalarına bir göz atın .
Shoutem Teması ile elde ettiğiniz şeyler:
Belirli stilin, stil adına göre bileşene otomatik olarak uygulandığı global stil:
const theme = {
'my.app.ComponentStyleName': {
backgroundColor: 'navy',
},
};
Belirli bileşene özgü stili styleName(CSS sınıfı gibi) ile etkinleştirmek :
const theme = {
'my.app.ComponentStyleName': {
'.rounded': {
borderRadius: 20,
},
backgroundColor: 'navy',
},
};
// Implementation - will apply borderRadius to Component
<Component styleName="rounded"/>
Otomatik stil mirası:
const theme = {
'my.app.ComponentStyleName': {
'my.app.ChildComponentStyleName': {
backgroundColor: 'red',
},
'.rounded': {
borderRadius: 20,
},
backgroundColor: 'navy',
},
};
// Implementation - will apply red background color to ChildComponent
<Component styleName="rounded">
<ChildComponent/>
</Component>
Oluşturulan bileşenler için iç içe stil:
const theme = {
'my.app.ComponentStyleName': {
containerView: {
paddingTop: 10,
},
innerView: {
backgroundColor: 'yellow',
},
},
};
// Of course do not forget to connect Component
function Component({ style }) {
return (
<View style={style.containerView}>
<View style={style.innerView}>
<Text>Warning with yellow background.</Text>
</View>
</View>
);
}
Çalışmasını sağlamak için StyleProvider, bağlam yoluyla diğer tüm bileşenlere stil sağlayan sarmalayıcı bileşenini kullanmanız gerekir . Redux'a benzer StoreProvider.
Ayrıca bileşeninizi stile bağlamanız gerekir, connectStyleböylece her zaman bağlı bileşen kullanırsınız. Redux'a benzer connect.
export const styledComponent = connectStyle('my.app.ComponentStyleName',
{ ...defaultStyleIfAny })(Component);
Belgelerde örnek görebilirsiniz.
Son bir şey de, UI ToolKit'imizde zaten stile bağlı olan bileşenler seti sağladık , böylece bunları ve stilinizi global stilinize / temanıza aktarabilirsiniz.