PlatformColor
Functions to access native colors on the target platform by supplying the native color’s corresponding value.
PlatformColor.ios
PlatformColor.ios is used to get color information from iOS UI Element Colors
(and related UIKit colors).
ios: array<Ios.t> => Color.t
Pass one or more fallbacks; the first supported value wins:
PlatformColor.ios([#label, #black])
PlatformColor.android
PlatformColor.android is used to get color information from Android colors or
attributes.
android: array<Android.t> => Color.t
Colors use the full resource form (e.g. #"@android:color/primary_text_dark").
Attributes use forms like #"?android:attr/colorPrimary".
You may mix colors and attributes. The first value is treated as default and the rest as fallbacks:
PlatformColor.android([
#"@android:color/primary_text_dark",
#"?android:attr/colorPrimary",
])
See also:
PlatformColor.unsafe
Depending on platform & OS version (and for Android you can have user-defined attrs for colors), this function is used for getting platform colors from strings.
unsafe: array<string> => Color.t
This can be any Android resource query, for example: "?attr/colorPrimary" or
"?android:attr/colorPrimary", even resources defined within your Android app.
The first value will be treated as default and the rest as fallbacks.
PlatformColor.unsafe(["?attr/colorPrimary", "?android:attr/colorPrimary"])
Example
open ReactNative
open Style
let styles = StyleSheet.create({
"container": s({
color: switch Platform.os {
| os if os == Platform.android =>
PlatformColor.android([
#"@android:color/primary_text_dark",
#"?android:attr/colorPrimary",
])
| os if os == Platform.ios => PlatformColor.ios([#label])
| _ => "black"
},
}),
})