useVariables()
The useVariables() hook is used to access the Theme Variables. A practical use of the useVariables()
hook can be accessing & using the theme variable values to define styles inside the StyleSheet.create()
API.
Type definition
function useVariables<TVariable extends string>(names: TVariable[]): (string | number)[];
TVariable
Variable type definition defined in the theme.
Argument
names
The variables, values of which need to be returned. E.g. 'Color.Primary'
, Padding
, 'Border.Radius'
etc.
Return value
An array of values. Value in the array can either be of type string
or number
.
Usage
import React, { useRef } from 'react';
import { SafeAreaView, StyleSheet, Text, View } from 'react-native';
import Stylers from '../../stylo/stylers';
const UsageUseVariablesShowCase = () => {
const [padding, paddingLarge, margin, marginLarge, borderColor, borderRadius, fontColor, fontSize, screenColor, colorAlpha10]
= Stylers.useVariables(['Padding', 'Padding.Large', 'Margin', 'Margin.Large', 'Border.Color', 'Border.Radius', 'Font.Color', 'Font.Size', 'Screen.BackgroundColor', 'Color.Alpha10']);
const styles = useRef(
StyleSheet.create({
screen: { flex: 1, backgroundColor: screenColor.toString(), padding: Number(paddingLarge) },
screenHeader: { paddingVertical: Number(paddingLarge) },
screenBody: { padding: Number(padding) },
text: { color: fontColor.toString(), fontSize: Number(fontSize) },
h1: { fontWeight: '500', fontSize: 48, marginBottom: Number(marginLarge) },
h2: { fontWeight: '600', fontSize: 32, marginBottom: Number(marginLarge) },
paragraph: { marginBottom: Number(margin) },
card: { padding: Number(padding), borderWidth: 1, borderColor: borderColor.toString(), borderRadius: Number(borderRadius), backgroundColor: colorAlpha10.toString() },
}),
).current;
return (
<View style={styles.screen}>
<SafeAreaView />
<View style={styles.screenHeader}>
<Text style={[styles.text, styles.h1]}>Usage</Text>
</View>
<Text style={[styles.text, styles.h2]}>useVariables()</Text>
<View style={styles.card}>
<Text style={[styles.text, styles.paragraph]}>
Variables are the core configuration values which are used to define
the themes. Like, colors, paddings, margins etc.
</Text>
<Text style={styles.text}>
The useVariables() hook is used to access the Theme Variables. A
practical use of the useVariables() hook can be accessing & using the
theme variable values to define styles inside the StyleSheet.create()
API.
</Text>
</View>
</View>
);
};
export default UsageUseVariablesShowCase;