// @flow import variable from './../variables/platform'; import { PLATFORM } from './../variables/commonColor'; export default (variables /* : * */ = variable) => { const platformStyle = variables.platformStyle; const platform = variables.platform; const darkCommon = { 'NativeBase.Text': { color: variables.brandDark }, 'NativeBase.Icon': { color: variables.brandDark }, 'NativeBase.IconNB': { color: variables.brandDark } }; const lightCommon = { 'NativeBase.Text': { color: variables.brandLight }, 'NativeBase.Icon': { color: variables.brandLight }, 'NativeBase.IconNB': { color: variables.brandLight } }; const primaryCommon = { 'NativeBase.Text': { color: variables.buttonPrimaryBg }, 'NativeBase.Icon': { color: variables.buttonPrimaryBg }, 'NativeBase.IconNB': { color: variables.buttonPrimaryBg } }; const successCommon = { 'NativeBase.Text': { color: variables.buttonSuccessBg }, 'NativeBase.Icon': { color: variables.buttonSuccessBg }, 'NativeBase.IconNB': { color: variables.buttonSuccessBg } }; const infoCommon = { 'NativeBase.Text': { color: variables.buttonInfoBg }, 'NativeBase.Icon': { color: variables.buttonInfoBg }, 'NativeBase.IconNB': { color: variables.buttonInfoBg } }; const warningCommon = { 'NativeBase.Text': { color: variables.buttonWarningBg }, 'NativeBase.Icon': { color: variables.buttonWarningBg }, 'NativeBase.IconNB': { color: variables.buttonWarningBg } }; const dangerCommon = { 'NativeBase.Text': { color: variables.buttonDangerBg }, 'NativeBase.Icon': { color: variables.buttonDangerBg }, 'NativeBase.IconNB': { color: variables.buttonDangerBg } }; const buttonTheme = { '.disabled': { '.transparent': { backgroundColor: 'transparent', 'NativeBase.Text': { color: variables.buttonDisabledBg }, 'NativeBase.Icon': { color: variables.buttonDisabledBg }, 'NativeBase.IconNB': { color: variables.buttonDisabledBg } }, 'NativeBase.Icon': { color: variables.brandLight }, 'NativeBase.IconNB': { color: variables.brandLight }, backgroundColor: variables.buttonDisabledBg }, '.bordered': { '.dark': { ...darkCommon, backgroundColor: 'transparent', borderColor: variables.brandDark, borderWidth: variables.borderWidth * 2 }, '.light': { ...lightCommon, backgroundColor: 'transparent', borderColor: variables.brandLight, borderWidth: variables.borderWidth * 2 }, '.primary': { ...primaryCommon, backgroundColor: 'transparent', borderColor: variables.buttonPrimaryBg, borderWidth: variables.borderWidth * 2 }, '.success': { ...successCommon, backgroundColor: 'transparent', borderColor: variables.buttonSuccessBg, borderWidth: variables.borderWidth * 2 }, '.info': { ...infoCommon, backgroundColor: 'transparent', borderColor: variables.buttonInfoBg, borderWidth: variables.borderWidth * 2 }, '.warning': { ...warningCommon, backgroundColor: 'transparent', borderColor: variables.buttonWarningBg, borderWidth: variables.borderWidth * 2 }, '.danger': { ...dangerCommon, backgroundColor: 'transparent', borderColor: variables.buttonDangerBg, borderWidth: variables.borderWidth * 2 }, '.disabled': { backgroundColor: 'transparent', borderColor: variables.buttonDisabledBg, borderWidth: variables.borderWidth * 2, 'NativeBase.Text': { color: variables.buttonDisabledBg } }, ...primaryCommon, borderWidth: variables.borderWidth * 2, elevation: null, shadowColor: null, shadowOffset: null, shadowOpacity: null, shadowRadius: null, backgroundColor: 'transparent' }, '.dark': { '.bordered': { ...darkCommon }, backgroundColor: variables.brandDark }, '.light': { '.transparent': { ...lightCommon, backgroundColor: 'transparent' }, '.bordered': { ...lightCommon }, ...darkCommon, backgroundColor: variables.brandLight }, '.primary': { '.bordered': { ...primaryCommon }, backgroundColor: variables.buttonPrimaryBg }, '.success': { '.bordered': { ...successCommon }, backgroundColor: variables.buttonSuccessBg }, '.info': { '.bordered': { ...infoCommon }, backgroundColor: variables.buttonInfoBg }, '.warning': { '.bordered': { ...warningCommon }, backgroundColor: variables.buttonWarningBg }, '.danger': { '.bordered': { ...dangerCommon }, backgroundColor: variables.buttonDangerBg }, '.block': { justifyContent: 'center', alignSelf: 'stretch' }, '.full': { justifyContent: 'center', alignSelf: 'stretch', borderRadius: 0 }, '.rounded': { borderRadius: variables.borderRadiusLarge }, '.transparent': { backgroundColor: 'transparent', elevation: 0, shadowColor: null, shadowOffset: null, shadowRadius: null, shadowOpacity: null, ...primaryCommon, '.dark': { ...darkCommon, }, '.danger': { ...dangerCommon, }, '.warning': { ...warningCommon, }, '.info': { ...infoCommon, }, '.primary': { ...primaryCommon, }, '.success': { ...successCommon, }, '.light': { ...lightCommon, }, '.disabled': { backgroundColor: 'transparent', borderColor: variables.buttonDisabledBg, borderWidth: variables.borderWidth * 2, 'NativeBase.Text': { color: variables.buttonDisabledBg }, 'NativeBase.Icon': { color: variables.buttonDisabledBg }, 'NativeBase.IconNB': { color: variables.buttonDisabledBg } } }, '.small': { height: 30, 'NativeBase.Text': { fontSize: 14 }, 'NativeBase.Icon': { fontSize: 20, paddingTop: 0 }, 'NativeBase.IconNB': { fontSize: 20, paddingTop: 0 } }, '.large': { height: 60, 'NativeBase.Text': { fontSize: 22 } }, '.capitalize': {}, '.vertical': { flexDirection: 'column', height: null }, 'NativeBase.Text': { fontFamily: variables.buttonFontFamily, marginLeft: 0, marginRight: 0, color: variables.buttonTextColor, fontSize: variables.buttonTextSize, paddingHorizontal: 16, backgroundColor: 'transparent' }, 'NativeBase.Icon': { color: variables.buttonTextColor, fontSize: 24, marginHorizontal: 16, paddingTop: platform === PLATFORM.IOS ? 2 : undefined }, 'NativeBase.IconNB': { color: variables.buttonTextColor, fontSize: 24, marginHorizontal: 16, paddingTop: platform === PLATFORM.IOS ? 2 : undefined }, '.iconLeft': { 'NativeBase.Text': { marginLeft: 0 }, 'NativeBase.IconNB': { marginRight: 0, marginLeft: 16 }, 'NativeBase.Icon': { marginRight: 0, marginLeft: 16 } }, '.iconRight': { 'NativeBase.Text': { marginRight: 0 }, 'NativeBase.IconNB': { marginLeft: 0, marginRight: 16 }, 'NativeBase.Icon': { marginLeft: 0, marginRight: 16 } }, '.picker': { 'NativeBase.Text': { '.note': { fontSize: 16, lineHeight: null } } }, paddingVertical: variables.buttonPadding, backgroundColor: variables.buttonPrimaryBg, borderRadius: variables.borderRadiusBase, borderColor: variables.buttonPrimaryBg, borderWidth: null, height: 45, flexDirection: 'row', elevation: 2, shadowColor: platformStyle === PLATFORM.MATERIAL ? variables.brandDark : undefined, shadowOffset: platformStyle === PLATFORM.MATERIAL ? { width: 0, height: 2 } : undefined, shadowOpacity: platformStyle === PLATFORM.MATERIAL ? 0.2 : undefined, shadowRadius: platformStyle === PLATFORM.MATERIAL ? 1.2 : undefined, alignItems: 'center', justifyContent: 'space-between' }; return buttonTheme; };