311 lines
8.2 KiB
JavaScript
311 lines
8.2 KiB
JavaScript
// @flow
|
|
|
|
import color from 'color';
|
|
import { Platform, Dimensions, PixelRatio } from 'react-native';
|
|
|
|
export const PLATFORM = {
|
|
ANDROID: 'android',
|
|
IOS: 'ios',
|
|
MATERIAL: 'material',
|
|
WEB: 'web'
|
|
};
|
|
|
|
const deviceHeight = Dimensions.get('window').height;
|
|
const deviceWidth = Dimensions.get('window').width;
|
|
const platform = Platform.OS;
|
|
const platformStyle = undefined;
|
|
const isIphoneX =
|
|
platform === PLATFORM.IOS &&
|
|
(deviceHeight === 812 ||
|
|
deviceWidth === 812 ||
|
|
deviceHeight === 896 ||
|
|
deviceWidth === 896);
|
|
|
|
export default {
|
|
platformStyle,
|
|
platform,
|
|
|
|
// Accordion
|
|
headerStyle: '#edebed',
|
|
iconStyle: '#000',
|
|
contentStyle: '#f5f4f5',
|
|
expandedIconStyle: '#000',
|
|
accordionBorderColor: '#d3d3d3',
|
|
|
|
// ActionSheet
|
|
elevation: 4,
|
|
containerTouchableBackgroundColor: 'rgba(0,0,0,0.4)',
|
|
innerTouchableBackgroundColor: '#fff',
|
|
listItemHeight: 50,
|
|
listItemBorderColor: 'transparent',
|
|
marginHorizontal: -15,
|
|
marginLeft: 14,
|
|
marginTop: 15,
|
|
minHeight: 56,
|
|
padding: 15,
|
|
touchableTextColor: '#757575',
|
|
|
|
// Android
|
|
androidRipple: true,
|
|
androidRippleColor: 'rgba(256, 256, 256, 0.3)',
|
|
androidRippleColorDark: 'rgba(0, 0, 0, 0.15)',
|
|
buttonUppercaseAndroidText: true,
|
|
|
|
// Badge
|
|
badgeBg: '#ED1727',
|
|
badgeColor: '#fff',
|
|
badgePadding: platform === PLATFORM.IOS ? 3 : 0,
|
|
|
|
// Button
|
|
buttonFontFamily: platform === PLATFORM.IOS ? 'System' : 'Roboto_medium',
|
|
buttonDisabledBg: '#b5b5b5',
|
|
buttonPadding: 6,
|
|
get buttonPrimaryBg() {
|
|
return this.brandPrimary;
|
|
},
|
|
get buttonPrimaryColor() {
|
|
return this.inverseTextColor;
|
|
},
|
|
get buttonInfoBg() {
|
|
return this.brandInfo;
|
|
},
|
|
get buttonInfoColor() {
|
|
return this.inverseTextColor;
|
|
},
|
|
get buttonSuccessBg() {
|
|
return this.brandSuccess;
|
|
},
|
|
get buttonSuccessColor() {
|
|
return this.inverseTextColor;
|
|
},
|
|
get buttonDangerBg() {
|
|
return this.brandDanger;
|
|
},
|
|
get buttonDangerColor() {
|
|
return this.inverseTextColor;
|
|
},
|
|
get buttonWarningBg() {
|
|
return this.brandWarning;
|
|
},
|
|
get buttonWarningColor() {
|
|
return this.inverseTextColor;
|
|
},
|
|
get buttonTextSize() {
|
|
return platform === PLATFORM.IOS
|
|
? this.fontSizeBase * 1.1
|
|
: this.fontSizeBase - 1;
|
|
},
|
|
get buttonTextSizeLarge() {
|
|
return this.fontSizeBase * 1.5;
|
|
},
|
|
get buttonTextSizeSmall() {
|
|
return this.fontSizeBase * 0.8;
|
|
},
|
|
get borderRadiusLarge() {
|
|
return this.fontSizeBase * 3.8;
|
|
},
|
|
get iconSizeLarge() {
|
|
return this.iconFontSize * 1.5;
|
|
},
|
|
get iconSizeSmall() {
|
|
return this.iconFontSize * 0.6;
|
|
},
|
|
|
|
// Card
|
|
cardDefaultBg: '#fff',
|
|
cardBorderColor: '#ccc',
|
|
cardBorderRadius: 2,
|
|
cardItemPadding: platform === PLATFORM.IOS ? 10 : 12,
|
|
|
|
// CheckBox
|
|
CheckboxRadius: platform === PLATFORM.IOS ? 13 : 0,
|
|
CheckboxBorderWidth: platform === PLATFORM.IOS ? 1 : 2,
|
|
CheckboxPaddingLeft: platform === PLATFORM.IOS ? 4 : 2,
|
|
CheckboxPaddingBottom: platform === PLATFORM.IOS ? 0 : 5,
|
|
CheckboxIconSize: platform === PLATFORM.IOS ? 21 : 16,
|
|
CheckboxIconMarginTop: platform === PLATFORM.IOS ? undefined : 1,
|
|
CheckboxFontSize: platform === PLATFORM.IOS ? 23 / 0.9 : 17,
|
|
checkboxBgColor: '#039BE5',
|
|
checkboxSize: 20,
|
|
checkboxTickColor: '#fff',
|
|
|
|
// Color
|
|
brandPrimary: platform === PLATFORM.IOS ? '#007aff' : '#3F51B5',
|
|
brandInfo: '#62B1F6',
|
|
brandSuccess: '#5cb85c',
|
|
brandDanger: '#d9534f',
|
|
brandWarning: '#f0ad4e',
|
|
brandDark: '#000',
|
|
brandLight: '#f4f4f4',
|
|
|
|
// Container
|
|
containerBgColor: '#fff',
|
|
|
|
// Date Picker
|
|
datePickerTextColor: '#000',
|
|
datePickerBg: 'transparent',
|
|
|
|
// FAB
|
|
fabWidth: 56,
|
|
|
|
// Font
|
|
DefaultFontSize: 16,
|
|
fontFamily: platform === PLATFORM.IOS ? 'System' : 'Roboto',
|
|
fontSizeBase: 15,
|
|
get fontSizeH1() {
|
|
return this.fontSizeBase * 1.8;
|
|
},
|
|
get fontSizeH2() {
|
|
return this.fontSizeBase * 1.6;
|
|
},
|
|
get fontSizeH3() {
|
|
return this.fontSizeBase * 1.4;
|
|
},
|
|
|
|
// Footer
|
|
footerHeight: 55,
|
|
footerDefaultBg: platform === PLATFORM.IOS ? '#F8F8F8' : '#3F51B5',
|
|
footerPaddingBottom: 0,
|
|
|
|
// FooterTab
|
|
tabBarTextColor: platform === PLATFORM.IOS ? '#737373' : '#bfc6ea',
|
|
tabBarTextSize: platform === PLATFORM.IOS ? 14 : 11,
|
|
activeTab: platform === PLATFORM.IOS ? '#007aff' : '#fff',
|
|
sTabBarActiveTextColor: '#007aff',
|
|
tabBarActiveTextColor: platform === PLATFORM.IOS ? '#2874F0' : '#fff',
|
|
tabActiveBgColor: platform === PLATFORM.IOS ? '#cde1f9' : '#3F51B5',
|
|
|
|
// Header
|
|
toolbarBtnColor: platform === PLATFORM.IOS ? '#007aff' : '#fff',
|
|
toolbarDefaultBg: platform === PLATFORM.IOS ? '#F8F8F8' : '#3F51B5',
|
|
toolbarHeight: platform === PLATFORM.IOS ? 64 : 56,
|
|
toolbarSearchIconSize: platform === PLATFORM.IOS ? 20 : 23,
|
|
toolbarInputColor: platform === PLATFORM.IOS ? '#CECDD2' : '#fff',
|
|
searchBarHeight: platform === PLATFORM.IOS ? 30 : 40,
|
|
searchBarInputHeight: platform === PLATFORM.IOS ? 30 : 50,
|
|
toolbarBtnTextColor: platform === PLATFORM.IOS ? '#007aff' : '#fff',
|
|
iosStatusbar: 'dark-content',
|
|
toolbarDefaultBorder: platform === PLATFORM.IOS ? '#a7a6ab' : '#3F51B5',
|
|
get statusBarColor() {
|
|
return color(this.toolbarDefaultBg)
|
|
.darken(0.2)
|
|
.hex();
|
|
},
|
|
get darkenHeader() {
|
|
return color(this.tabBgColor)
|
|
.darken(0.03)
|
|
.hex();
|
|
},
|
|
|
|
// Icon
|
|
iconFamily: 'Ionicons',
|
|
iconFontSize: platform === PLATFORM.IOS ? 30 : 28,
|
|
iconHeaderSize: platform === PLATFORM.IOS ? 33 : 24,
|
|
|
|
// InputGroup
|
|
inputFontSize: 17,
|
|
inputBorderColor: '#D9D5DC',
|
|
inputSuccessBorderColor: '#2b8339',
|
|
inputErrorBorderColor: '#ed2f2f',
|
|
inputHeightBase: 50,
|
|
get inputColor() {
|
|
return this.textColor;
|
|
},
|
|
get inputColorPlaceholder() {
|
|
return '#575757';
|
|
},
|
|
|
|
// Line Height
|
|
buttonLineHeight: 19,
|
|
lineHeightH1: 32,
|
|
lineHeightH2: 27,
|
|
lineHeightH3: 22,
|
|
lineHeight: platform === PLATFORM.IOS ? 20 : 24,
|
|
|
|
// List
|
|
listBg: 'transparent',
|
|
listBorderColor: '#c9c9c9',
|
|
listDividerBg: '#f4f4f4',
|
|
listBtnUnderlayColor: '#DDD',
|
|
listItemPadding: platform === PLATFORM.IOS ? 10 : 12,
|
|
listNoteColor: '#808080',
|
|
listNoteSize: 13,
|
|
listItemSelected: platform === PLATFORM.IOS ? '#007aff' : '#3F51B5',
|
|
|
|
// Progress Bar
|
|
defaultProgressColor: '#E4202D',
|
|
inverseProgressColor: '#1A191B',
|
|
|
|
// Radio Button
|
|
radioBtnSize: platform === PLATFORM.IOS ? 25 : 23,
|
|
radioSelectedColorAndroid: '#3F51B5',
|
|
radioBtnLineHeight: platform === PLATFORM.IOS ? 29 : 24,
|
|
get radioColor() {
|
|
return this.brandPrimary;
|
|
},
|
|
|
|
// Segment
|
|
segmentBackgroundColor: platform === PLATFORM.IOS ? '#F8F8F8' : '#3F51B5',
|
|
segmentActiveBackgroundColor: platform === PLATFORM.IOS ? '#007aff' : '#fff',
|
|
segmentTextColor: platform === PLATFORM.IOS ? '#007aff' : '#fff',
|
|
segmentActiveTextColor: platform === PLATFORM.IOS ? '#fff' : '#3F51B5',
|
|
segmentBorderColor: platform === PLATFORM.IOS ? '#007aff' : '#fff',
|
|
segmentBorderColorMain: platform === PLATFORM.IOS ? '#a7a6ab' : '#3F51B5',
|
|
|
|
// Spinner
|
|
defaultSpinnerColor: '#45D56E',
|
|
inverseSpinnerColor: '#1A191B',
|
|
|
|
// Tab
|
|
tabDefaultBg: platform === PLATFORM.IOS ? '#F8F8F8' : '#3F51B5',
|
|
topTabBarTextColor: platform === PLATFORM.IOS ? '#6b6b6b' : '#b3c7f9',
|
|
topTabBarActiveTextColor: platform === PLATFORM.IOS ? '#007aff' : '#fff',
|
|
topTabBarBorderColor: platform === PLATFORM.IOS ? '#a7a6ab' : '#fff',
|
|
topTabBarActiveBorderColor: platform === PLATFORM.IOS ? '#007aff' : '#fff',
|
|
|
|
// Tabs
|
|
tabBgColor: '#F8F8F8',
|
|
tabFontSize: 15,
|
|
|
|
// Text
|
|
textColor: '#000',
|
|
inverseTextColor: '#fff',
|
|
noteFontSize: 14,
|
|
get defaultTextColor() {
|
|
return this.textColor;
|
|
},
|
|
|
|
// Title
|
|
titleFontfamily: platform === PLATFORM.IOS ? 'System' : 'Roboto_medium',
|
|
titleFontSize: platform === PLATFORM.IOS ? 17 : 19,
|
|
subTitleFontSize: platform === PLATFORM.IOS ? 11 : 14,
|
|
subtitleColor: platform === PLATFORM.IOS ? '#000' : '#fff',
|
|
titleFontColor: platform === PLATFORM.IOS ? '#000' : '#fff',
|
|
|
|
// Other
|
|
borderRadiusBase: platform === PLATFORM.IOS ? 5 : 2,
|
|
borderWidth: 1 / PixelRatio.getPixelSizeForLayoutSize(1),
|
|
contentPadding: 10,
|
|
dropdownLinkColor: '#414142',
|
|
inputLineHeight: 24,
|
|
deviceWidth,
|
|
deviceHeight,
|
|
isIphoneX,
|
|
inputGroupRoundedBorderRadius: 30,
|
|
|
|
// iPhoneX SafeArea
|
|
Inset: {
|
|
portrait: {
|
|
topInset: 24,
|
|
leftInset: 0,
|
|
rightInset: 0,
|
|
bottomInset: 34
|
|
},
|
|
landscape: {
|
|
topInset: 0,
|
|
leftInset: 44,
|
|
rightInset: 44,
|
|
bottomInset: 21
|
|
}
|
|
}
|
|
};
|