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>