// @flow import variable from "./../variables/platform"; 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.btnPrimaryBg }, "NativeBase.Icon": { color: variables.btnPrimaryBg }, "NativeBase.IconNB": { color: variables.btnPrimaryBg } }; const successCommon = { "NativeBase.Text": { color: variables.btnSuccessBg }, "NativeBase.Icon": { color: variables.btnSuccessBg }, "NativeBase.IconNB": { color: variables.btnSuccessBg } }; const infoCommon = { "NativeBase.Text": { color: variables.btnInfoBg }, "NativeBase.Icon": { color: variables.btnInfoBg }, "NativeBase.IconNB": { color: variables.btnInfoBg } }; const warningCommon = { "NativeBase.Text": { color: variables.btnWarningBg }, "NativeBase.Icon": { color: variables.btnWarningBg }, "NativeBase.IconNB": { color: variables.btnWarningBg } }; const dangerCommon = { "NativeBase.Text": { color: variables.btnDangerBg }, "NativeBase.Icon": { color: variables.btnDangerBg }, "NativeBase.IconNB": { color: variables.btnDangerBg } }; const buttonTheme = { ".disabled": { ".transparent": { backgroundColor: null, "NativeBase.Text": { color: variables.btnDisabledBg }, "NativeBase.Icon": { color: variables.btnDisabledBg }, "NativeBase.IconNB": { color: variables.btnDisabledBg } }, "NativeBase.Icon": { color: variables.brandLight }, "NativeBase.IconNB": { color: variables.brandLight }, backgroundColor: variables.btnDisabledBg }, ".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.btnPrimaryBg, borderWidth: variables.borderWidth * 2 }, ".success": { ...successCommon, backgroundColor: "transparent", borderColor: variables.btnSuccessBg, borderWidth: variables.borderWidth * 2 }, ".info": { ...infoCommon, backgroundColor: "transparent", borderColor: variables.btnInfoBg, borderWidth: variables.borderWidth * 2 }, ".warning": { ...warningCommon, backgroundColor: "transparent", borderColor: variables.btnWarningBg, borderWidth: variables.borderWidth * 2 }, ".danger": { ...dangerCommon, backgroundColor: "transparent", borderColor: variables.btnDangerBg, borderWidth: variables.borderWidth * 2 }, ".disabled": { backgroundColor: null, borderColor: variables.btnDisabledBg, borderWidth: variables.borderWidth * 2, "NativeBase.Text": { color: variables.btnDisabledBg } }, ...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: null }, ".bordered": { ...lightCommon }, ...darkCommon, backgroundColor: variables.brandLight }, ".primary": { ".bordered": { ...primaryCommon }, backgroundColor: variables.btnPrimaryBg }, ".success": { ".bordered": { ...successCommon }, backgroundColor: variables.btnSuccessBg }, ".info": { ".bordered": { ...infoCommon }, backgroundColor: variables.btnInfoBg }, ".warning": { ".bordered": { ...warningCommon }, backgroundColor: variables.btnWarningBg }, ".danger": { ".bordered": { ...dangerCommon }, backgroundColor: variables.btnDangerBg }, ".block": { justifyContent: "center", alignSelf: "stretch" }, ".full": { justifyContent: "center", alignSelf: "stretch", borderRadius: 0 }, ".rounded": { // paddingHorizontal: variables.buttonPadding + 20, borderRadius: variables.borderRadiusLarge }, ".transparent": { backgroundColor: "transparent", elevation: 0, shadowColor: null, shadowOffset: null, shadowRadius: null, shadowOpacity: null, ...primaryCommon, ".dark": { ...darkCommon, backgroundColor: null }, ".danger": { ...dangerCommon, backgroundColor: null }, ".warning": { ...warningCommon, backgroundColor: null }, ".info": { ...infoCommon, backgroundColor: null }, ".primary": { ...primaryCommon, backgroundColor: null }, ".success": { ...successCommon, backgroundColor: null }, ".light": { ...lightCommon, backgroundColor: null }, ".disabled": { backgroundColor: "transparent", borderColor: variables.btnDisabledBg, borderWidth: variables.borderWidth * 2, "NativeBase.Text": { color: variables.btnDisabledBg }, "NativeBase.Icon": { color: variables.btnDisabledBg }, "NativeBase.IconNB": { color: variables.btnDisabledBg } } }, ".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.btnFontFamily, marginLeft: 0, marginRight: 0, color: variables.inverseTextColor, fontSize: variables.btnTextSize, paddingHorizontal: 16, backgroundColor: "transparent" // childPosition: 1 }, "NativeBase.Icon": { color: variables.inverseTextColor, fontSize: 24, marginHorizontal: 16, paddingTop: platform === "ios" ? 2 : undefined }, "NativeBase.IconNB": { color: variables.inverseTextColor, fontSize: 24, marginHorizontal: 16, paddingTop: 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, // paddingHorizontal: variables.buttonPadding + 10, backgroundColor: variables.btnPrimaryBg, borderRadius: variables.borderRadiusBase, borderColor: variables.btnPrimaryBg, borderWidth: null, height: 45, alignSelf: "flex-start", flexDirection: "row", elevation: 2, shadowColor: platformStyle === "material" ? variables.brandDark : undefined, shadowOffset: platformStyle === "material" ? { width: 0, height: 2 } : undefined, shadowOpacity: platformStyle === "material" ? 0.2 : undefined, shadowRadius: platformStyle === "material" ? 1.2 : undefined, alignItems: "center", justifyContent: "space-between" }; return buttonTheme; };