Lihatlah Tema Shoutem untuk React Native.
Inilah yang Anda dapatkan dengan Tema Shoutem:
Gaya global di mana gaya tertentu secara otomatis diterapkan ke komponen dengan nama gayanya:
const theme = {
'my.app.ComponentStyleName': {
backgroundColor: 'navy',
},
};
Mengaktifkan gaya khusus komponen tertentu dengan styleName
(seperti kelas CSS):
const theme = {
'my.app.ComponentStyleName': {
'.rounded': {
borderRadius: 20,
},
backgroundColor: 'navy',
},
};
// Implementation - will apply borderRadius to Component
<Component styleName="rounded"/>
Pewarisan gaya otomatis:
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>
Gaya bersarang untuk komponen yang disusun:
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>
);
}
Untuk membuatnya bekerja, Anda perlu menggunakan StyleProvider
, komponen pembungkus yang menyediakan gaya ke semua komponen lain melalui konteks. Mirip dengan Redux StoreProvider
.
Anda juga perlu menghubungkan komponen Anda ke gaya connectStyle
sehingga Anda selalu menggunakan komponen yang terhubung. Mirip dengan Redux connect
.
export const styledComponent = connectStyle('my.app.ComponentStyleName',
{ ...defaultStyleIfAny })(Component);
Anda dapat melihat contoh dalam dokumentasi.
Satu hal terakhir, kami juga telah menyediakan sekumpulan komponen di UI ToolKit kami yang sudah terhubung ke gaya, jadi Anda bisa mengimpornya dan gaya dalam gaya / tema global Anda.