Theme Overview
The Multinaire Design theme system provides a consistent way to style your application across all platforms.
Theme Structure
A theme consists of three main parts:
{
"colors": { /* Light and dark color schemes */ },
"texts": { /* Typography definitions */ },
"variables": { /* Spacing, sizing, and other tokens */ }
}
Colors
Define semantic colors for both light and dark modes:
- Primary: App brand color
- Secondary: Multinaire brand color
- Background/Base: Surface colors for screens and cards
- Neutral: Text and icon colors
- Semantic: Success, warning, error states
Typography
Six text categories with three weight variants each:
- Display: Brand text, decorative headers
- Heading: Page titles, section headers
- Subheading: Card headers, secondary titles
- Title: List items, button labels
- Body: Content text, paragraphs
- Caption: Helper text, timestamps
Variables
Design tokens for consistent spacing:
- Height: Component heights (buttons, inputs)
- Radius: Border radius values
- Padding: Internal spacing
- Stroke: Border widths
- Gap: Spacing between elements
Accessing Theme Values
import { useMultinaireTheme } from '@multinaire/multinaire-design';
function MyComponent() {
const { colors, fonts, variables, themeMode, changeThemeMode } =
useMultinaireTheme();
return (
<View
style={{
backgroundColor: colors.background,
padding: variables.padding.medium,
borderRadius: variables.radius.medium,
}}
>
<Text style={[fonts.body.regular, { color: colors.onBackground }]}>
Hello World
</Text>
</View>
);
}
Theme Mode
The design system supports three theme modes:
'system': Follows device settings (default)'light': Always light mode'dark': Always dark mode
const { themeMode, changeThemeMode } = useMultinaireTheme();
// Switch to dark mode
changeThemeMode('dark');
// Follow system
changeThemeMode('system');
Creating Your Theme
Use the Theme Builder for visual theme creation, or create a JSON file manually following the theme setup guide.