Theme
Setup
You can control you theme by theme props in ThemeProvider
import {
CurrentTheme,
defaultSpaces,
getShadows,TFontWeight,
ThemeProvider
} from '@lad-tech/mobydick-core';
import {Navigation} from '@/pages/Navigation';
import {themeColors} from '@/shared/lib/theme';
import { Platform } from 'react-native';
export const fontResolver = (weight: TFontWeight) => {
const map = {
[TFontWeight.Bold]: Platform.select({
android: 'Inter_700Bold',
ios: 'Inter-Bold',
}),
[TFontWeight.SemiBold]: Platform.select({
android: 'Inter_600SemiBold',
ios: 'Inter-SemiBold',
}),
[TFontWeight.Medium]: Platform.select({
android: 'Inter_500Medium',
ios: 'Inter-Medium',
}),
[TFontWeight.Regular]: Platform.select({
android: 'Inter_400Regular',
ios: 'Inter-Regular',
}),
};
return map[weight];
};
function App() {
return (
<ThemeProvider
theme={{
currentTheme: CurrentTheme.light,
colors: themeColors,
spaces: {
...defaultSpaces,
},
shadows: getShadows({
spaces: defaultSpaces,
currentTheme: CurrentTheme.light,
}),
customFontResolver: fontResolver
}}>
<Navigation />
</ThemeProvider>
);
}
export default App
Props
RequiredcurrentTheme
| TYPE |
|---|
| string |
Name one of theme
Requiredcolors
| TYPE |
|---|
| colors |
All possible colors group by theme
Requiredspaces
| TYPE |
|---|
| space |
All possible spaces
Requiredshadows
| TYPE |
|---|
| shadow |
Map for shadow
customFontResolver
| TYPE |
|---|
| (weigth: string) => string) |
Custom function for font resolve. (If your app need use another font instead of Inter)