CraftReactNativeCraftReactNative

Colors

Learn about the color token system used throughout CraftReactNative components and templates.

View theme source

The color system in CraftReactNative is built on a foundation of semantic color tokens that adapt to your chosen theme variant and mode. This ensures consistent styling across your application while maintaining accessibility standards.

Color palette

The base color palette includes a comprehensive set of colors organized into categories:

Neutral (Slate)

slate10
slate50
slate100
slate200
slate300
slate400
slate500
slate600
slate700
slate800
slate900
slate950
slate990

Neutral (Stone)

stone10
stone50
stone100
stone200
stone300
stone400
stone500
stone600
stone700
stone800
stone900
stone950
stone990

Teal

brightTeal100
brightTeal200
brightTeal300
brightTeal400
darkTeal500
darkTeal600
darkTeal700
darkTeal800
darkTeal900
darkTeal950

Orange

brightOrange100
brightOrange200
brightOrange300
brightOrange400
darkOrange500
darkOrange600
darkOrange700
darkOrange800
darkOrange900
darkOrange950

Semantic

negative50
negative100
negative200
negative400
negative500
negative900
negative950
positive50
positive100
positive200
positive400
positive500
positive900
positive950
blue300
blue700

Non-semantic

purple600
maroon600
steel600
forest600
sunshine200

Color tokens

The theme system uses semantic color tokens that adapt to the current theme variant and mode. Instead of using raw color values, components reference semantic tokens like interactivePrimary, contentPrimary, or backgroundScreen. This abstraction allows the entire app to switch themes seamlessly while maintaining proper contrast and accessibility.

Token categories

Background

backgroundScreen
Light Teal
slate100
#e0e0e6
Dark Teal
slate990
#121217
Light Orange
stone100
#ebe8e4
Dark Orange
stone990
#191715
backgroundScreenSecondary
Light Teal
slate10
#fcfcff
Dark Teal
slate950
#202029
Light Orange
stone10
#fdfcfa
Dark Orange
stone950
#282623
backgroundElevated
Light Teal
slate10
#fcfcff
Dark Teal
slate950
#202029
Light Orange
stone10
#fdfcfa
Dark Orange
stone950
#282623
backgroundNeutral
Light Teal
custom
#20202915
Dark Teal
custom
#d0d0d815
Light Orange
custom
#28262315
Dark Orange
custom
#dcd8d215
backgroundOverlay
Light Teal
custom
#20202980
Dark Teal
custom
#e0e0e680
Light Orange
custom
#28262380
Dark Orange
custom
#ebe8e480

Interactive - Primary

interactivePrimary
Light Teal
brightTeal200
#9de2e2
Dark Teal
brightTeal300
#6ED1D1
Light Orange
brightOrange200
#efc685
Dark Orange
brightOrange300
#e8b05f
interactivePrimaryPress
Light Teal
brightTeal300
#6ED1D1
Dark Teal
brightTeal200
#9de2e2
Light Orange
brightOrange300
#e8b05f
Dark Orange
brightOrange200
#efc685
interactivePrimaryContent
Light Teal
darkTeal900
#072829
Dark Teal
darkTeal900
#072829
Light Orange
darkOrange900
#3f240e
Dark Orange
darkOrange900
#3f240e
interactivePrimaryContentPress
Light Teal
darkTeal950
#031a1d
Dark Teal
darkTeal800
#09414f
Light Orange
darkOrange950
#241407
Dark Orange
darkOrange800
#5d3715

Interactive - Secondary

interactiveSecondary
Light Teal
brightTeal100
#c1f2f2
Dark Teal
darkTeal800
#09414f
Light Orange
brightOrange100
#f4d9ad
Dark Orange
darkOrange800
#5d3715
interactiveSecondaryPress
Light Teal
brightTeal200
#9de2e2
Dark Teal
darkTeal600
#157183
Light Orange
brightOrange200
#efc685
Dark Orange
darkOrange600
#9a652e
interactiveSecondaryContent
Light Teal
darkTeal800
#09414f
Dark Teal
brightTeal300
#6ED1D1
Light Orange
darkOrange800
#5d3715
Dark Orange
brightOrange300
#e8b05f
interactiveSecondaryContentPress
Light Teal
darkTeal900
#072829
Dark Teal
brightTeal100
#c1f2f2
Light Orange
darkOrange900
#3f240e
Dark Orange
brightOrange100
#f4d9ad

Interactive - Neutral

interactiveNeutral
Light Teal
slate100
#e0e0e6
Dark Teal
slate900
#353545
Light Orange
stone100
#ebe8e4
Dark Orange
stone900
#3e3b36
interactiveNeutralPress
Light Teal
slate200
#d0d0d8
Dark Teal
slate800
#4a4a5b
Light Orange
stone200
#dcd8d2
Dark Orange
stone800
#54504a
interactiveNeutralContent
Light Teal
slate900
#353545
Dark Teal
slate100
#e0e0e6
Light Orange
stone900
#3e3b36
Dark Orange
stone100
#ebe8e4
interactiveNeutralContentPress
Light Teal
slate990
#121217
Dark Teal
slate50
#f9f9fb
Light Orange
stone990
#191715
Dark Orange
stone50
#faf9f7

Interactive - Reversed

interactiveNeutralReversed
Light Teal
slate990
#121217
Dark Teal
slate10
#fcfcff
Light Orange
stone990
#191715
Dark Orange
stone10
#fdfcfa
interactiveNeutralReversedPress
Light Teal
slate900
#353545
Dark Teal
slate100
#e0e0e6
Light Orange
stone900
#3e3b36
Dark Orange
stone100
#ebe8e4
interactiveNeutralReversedContent
Light Teal
slate50
#f9f9fb
Dark Teal
slate900
#353545
Light Orange
stone50
#faf9f7
Dark Orange
stone900
#3e3b36
interactiveNeutralReversedContentPress
Light Teal
slate10
#fcfcff
Dark Teal
slate990
#121217
Light Orange
stone10
#fdfcfa
Dark Orange
stone990
#191715

Content

contentPrimary
Light Teal
slate990
#121217
Dark Teal
slate10
#fcfcff
Light Orange
stone990
#191715
Dark Orange
stone10
#fdfcfa
contentSecondary
Light Teal
slate900
#353545
Dark Teal
slate100
#e0e0e6
Light Orange
stone900
#3e3b36
Dark Orange
stone100
#ebe8e4
contentTertiary
Light Teal
slate700
#636375
Dark Teal
slate300
#c0c0c9
Light Orange
stone700
#6f6962
Dark Orange
stone300
#cdc7c0
contentAccent
Light Teal
darkTeal700
#105161
Dark Teal
brightTeal300
#6ED1D1
Light Orange
darkOrange700
#7a4a1d
Dark Orange
brightOrange300
#e8b05f
contentAccentSecondary
Light Teal
darkTeal500
#228c98
Dark Teal
brightTeal400
#48B8B8
Light Orange
darkOrange500
#b8824a
Dark Orange
brightOrange400
#df9940

Borders

borderNeutral
Light
custom
#20202910
Dark
custom
#fcfcff10
borderNeutralSecondary
Light
custom
#20202930
Dark
custom
#fcfcff30

Base Colors

baseLight
Light
slate10
#fcfcff
Dark
slate10
#fcfcff
baseDark
Light
slate990
#121217
Dark
slate990
#121217

Semantic

sentimentPositive
Light
positive400
#427b18
Dark
positive200
#c5e9a8
sentimentPositivePress
Light
positive500
#305911
Dark
positive500
#305911
sentimentNegative
Light
negative400
#b30000
Dark
negative200
#d09090
sentimentNegativePress
Light
negative500
#800000
Dark
negative100
#e6c1c1
sentimentSecondaryPositive
Light
positive50
#effae7
Dark
positive950
#070e03
sentimentSecondaryPositivePress
Light
positive100
#e2f6d3
Dark
positive900
#0f1b05
sentimentSecondaryNegative
Light
negative50
#ffe5e5
Dark
negative950
#1a0000
sentimentSecondaryNegativePress
Light
negative100
#e6c1c1
Dark
negative900
#330000
informativePrimary
Light
blue700
#1d4ed8
Dark
blue300
#6aa7f1

Non-semantic

white
Light
stone10
#fdfcfa
Dark
stone10
#fdfcfa
black
Light
stone900
#3e3b36
Dark
stone900
#3e3b36
purple
Light
purple600
#544171
Dark
purple600
#544171
maroon
Light
maroon600
#714148
Dark
maroon600
#714148
steel
Light
steel600
#415171
Dark
steel600
#415171
forest
Light
forest600
#456138
Dark
forest600
#456138
sunshine
Light
sunshine200
#f5be0a
Dark
sunshine200
#f5be0a
red
Light
negative500
#800000
Dark
negative500
#800000
green
Light
positive500
#305911
Dark
positive500
#305911
blue
Light
blue700
#1d4ed8
Dark
blue700
#1d4ed8

Using color tokens

When building your own components or customizing existing ones, always use semantic color tokens from the theme rather than hardcoded color values. This ensures your components will automatically adapt to theme changes and maintain accessibility standards.

import { StyleSheet } from 'react-native-unistyles';
import { View, Text } from 'react-native';
 
const MyComponent = () => {
  return (
    <View style={styles.container}>
      <Text style={styles.text}>Hello</Text>
    </View>
  );
};
 
const styles = StyleSheet.create(theme => ({
  container: {
    backgroundColor: theme.colors.backgroundScreen,
    padding: theme.spacing.medium,
  },
  text: {
    color: theme.colors.contentPrimary,
  },
}));

Note: The theme is automatically available inside StyleSheet.create functions. Styles update automatically when the theme changes without causing component re-renders.

Theme variants

CraftReactNative components & templates come with 2 theme variants:

  • Teal Theme: A calming blue-green color scheme
  • Orange Theme: A warm and energetic orange color scheme

Each theme variant includes both light and dark modes for optimal usability in different lighting conditions. All color tokens automatically adapt when switching between variants and modes.

Accessibility

All color combinations in the theme system are designed with WCAG (Web Content Accessibility Guidelines) in mind, aiming to ensure that text remains readable and interactive elements are clearly distinguishable across all theme variants and modes.

For information about other design tokens, see:

  • Typography - Text variants and typography system
  • Spacing - Spacing tokens for padding, margins, and gaps
  • Border Radius - Border radius tokens for rounded corners

On this page