Skip to main content

Design Tokens

CheerKeeper's design system tokens ensure consistency across admin dashboard and mobile app.

Colors

Primary Colors

TokenHexUsage
Primary Dark#2D1E58Headers, buttons, footer
Primary Purple#6811CBLinks, accents, CTAs
Primary Light#9B7BC7Hover states, secondary accents

Mobile App Colors

TokenHexUsage
Primary Purple#6B4E9EPrimary actions
Deep Purple#3D2963Headers, emphasis
Light Purple#9B7BC7Backgrounds, highlights

Accent Colors

TokenHexUsage
Orange#F5A623Warnings, highlights
Blue#4A90D9Info, links
Coral#E85A5AErrors, destructive

Neutrals

TokenHexUsage
White#FFFFFFBackgrounds, text on dark
Light Gray#F5F5F5Page backgrounds
Medium Gray#424242Secondary text
Dark Gray#4A4A4APrimary text

Semantic Colors

TokenHexUsage
Success#4CAF50Success states
Error#E85A5AError states
Warning#F5A623Warning states

Typography

Font Family

Montserrat is the primary font across all platforms.

font-family: 'Montserrat', system-ui, -apple-system, sans-serif;

Font Weights

WeightValueUsage
Light300Subtle text
Regular400Body text
Medium500Emphasis
Semibold600Headings, buttons
Bold700Strong emphasis

Font Sizes (Mobile)

TokenSizeUsage
xs10pxCaptions, labels
sm12pxSecondary text
md14pxBody text
lg16pxEmphasis
xl18pxSubheadings
xxl20pxSection headers
xxxl24pxPage titles
title32pxHero text

Spacing

Scale (Mobile)

TokenSizeUsage
xs4pxTight spacing
sm8pxComponent padding
md12pxStandard spacing
lg16pxSection spacing
xl24pxLarge gaps
xxl32pxPage margins

Border Radius

TokenSizeUsage
sm4pxSmall elements
md8pxButtons, inputs
lg12pxCards
xl16pxModals
full9999pxPills, avatars

Admin Default: 0.625rem (10px)

Shadows

Admin Dashboard

/* Card shadow */
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);

/* Card hover */
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);

/* Modal */
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);

Z-Index Scale

LayerValueUsage
Base0Default content
Dropdown10Dropdowns, tooltips
Sticky20Sticky headers
Modal30Modal overlays
Toast40Notifications

Breakpoints

NameWidthUsage
sm640pxMobile landscape
md768pxTablet
lg1024pxDesktop
xl1280pxLarge desktop
2xl1536pxWide screens

CSS Variables (Admin)

:root {
/* Colors */
--ck-primary-dark: #2D1E58;
--ck-primary-purple: #6811CB;
--ck-primary-light: #9B7BC7;

/* Typography */
--ifm-font-family-base: 'Montserrat', system-ui, sans-serif;

/* Spacing */
--ifm-global-radius: 0.625rem;
}

React Native Constants

// cheerkeeper-app/src/utils/constants.ts

export const colors = {
primaryPurple: '#6B4E9E',
deepPurple: '#3D2963',
lightPurple: '#9B7BC7',
orange: '#F5A623',
blue: '#4A90D9',
coral: '#E85A5A',
white: '#FFFFFF',
lightGray: '#F5F5F5',
mediumGray: '#424242',
darkGray: '#4A4A4A',
success: '#4CAF50',
error: '#E85A5A',
warning: '#F5A623',
};

export const spacing = {
xs: 4,
sm: 8,
md: 12,
lg: 16,
xl: 24,
xxl: 32,
};

export const borderRadius = {
sm: 4,
md: 8,
lg: 12,
xl: 16,
full: 9999,
};

Usage Examples

Admin Button

<button className="bg-[#6811CB] hover:bg-[#2D1E58] text-white rounded-[0.625rem] px-4 py-2 font-semibold">
Save Changes
</button>

Mobile Card

<View style={{
backgroundColor: colors.white,
borderRadius: borderRadius.lg,
padding: spacing.lg,
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 4,
}}>
{/* content */}
</View>