diff --git a/frontend/vite-template-master/.stylelintrc.json b/frontend/vite-template-master/.stylelintrc.json
index 4ea6506..af4ebc1 100644
--- a/frontend/vite-template-master/.stylelintrc.json
+++ b/frontend/vite-template-master/.stylelintrc.json
@@ -23,6 +23,21 @@
{
"ignorePseudoClasses": ["global"]
}
- ]
+ ],
+ "color-named": "never",
+ "color-no-hex": true,
+ "function-disallowed-list": [
+ "rgb",
+ "rgba",
+ "hsl",
+ "hsla"
+ ],
+ "declaration-property-value-disallowed-list": {
+ "color": ["/^#/", "/^rgb/", "/^hsl/"],
+ "background-color": ["/^#/", "/^rgb/", "/^hsl/"],
+ "border-color": ["/^#/", "/^rgb/", "/^hsl/"],
+ "fill": ["/^#/", "/^rgb/", "/^hsl/"],
+ "stroke": ["/^#/", "/^rgb/", "/^hsl/"]
+ }
}
}
diff --git a/frontend/vite-template-master/color-inventory.md b/frontend/vite-template-master/color-inventory.md
new file mode 100644
index 0000000..ea6f8a1
--- /dev/null
+++ b/frontend/vite-template-master/color-inventory.md
@@ -0,0 +1,78 @@
+# Current Color Usage Inventory
+
+## Mantine Color Variables Used
+
+### Basic Colors
+- White: `var(--mantine-color-white)`
+- Black: `var(--mantine-color-black)`
+- Body: `var(--mantine-color-body)`
+
+### Blue Shades
+- Blue-0: `var(--mantine-color-blue-0)`
+- Blue-1: `var(--mantine-color-blue-1)`
+- Blue-4: `var(--mantine-color-blue-4)`
+- Blue-6: `var(--mantine-color-blue-6)`
+- Blue-7: `var(--mantine-color-blue-7)`
+- Blue-filled: `var(--mantine-color-blue-filled)`
+
+### Gray Shades
+- Gray-0: `var(--mantine-color-gray-0)`
+- Gray-3: `var(--mantine-color-gray-3)`
+- Gray-4: `var(--mantine-color-gray-4)`
+- Gray-5: `var(--mantine-color-gray-5)`
+- Gray-7: `var(--mantine-color-gray-7)`
+
+### Dark Shades
+- Dark-0: `var(--mantine-color-dark-0)`
+- Dark-4: `var(--mantine-color-dark-4)`
+- Dark-6: `var(--mantine-color-dark-6)`
+- Dark-8: `var(--mantine-color-dark-8)`
+
+## Color Usage By Component
+
+### HeroTitle
+- Background: `light-dark(var(--mantine-color-white), var(--mantine-color-dark-8))`
+- Text: `light-dark(var(--mantine-color-black), var(--mantine-color-white))`
+
+### Welcome
+- Text: `light-dark(var(--mantine-color-black), var(--mantine-color-white))`
+
+### HeaderSimple
+- Background: `var(--mantine-color-body)`
+- Border: `light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4))`
+- Text: `light-dark(var(--mantine-color-gray-7), var(--mantine-color-dark-0))`
+- Menu Background: `light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6))`
+- Active Item Background: `var(--mantine-color-blue-filled)`
+- Active Item Text: `var(--mantine-color-white)`
+
+### ContactIcons
+- Icon Color: `var(--mantine-color-white)`
+- Icon Hover Color: `var(--mantine-color-blue-0)`
+- Text Color: `var(--mantine-color-white)`
+
+### Contact
+- Background: `light-dark(var(--mantine-color-white), var(--mantine-color-dark-8))`
+
+### ContactUs
+- Gradient: `linear-gradient(to bottom right, var(--mantine-color-blue-4) 0%, var(--mantine-color-blue-7) 100%)`
+- Title Color: `var(--mantine-color-white)`
+- Subtitle Color: `var(--mantine-color-blue-0)`
+- Form Background: `var(--mantine-color-white)`
+- Form Button Text: `var(--mantine-color-white)`
+- Form Button Hover: `var(--mantine-color-blue-1)`
+- Input Background: `var(--mantine-color-white)`
+- Input Border: `var(--mantine-color-gray-4)`
+- Input Text: `var(--mantine-color-black)`
+- Input Placeholder: `var(--mantine-color-gray-5)`
+- Submit Button Background: `var(--mantine-color-blue-6)`
+
+## Issues Identified
+- Inconsistent use of blue shades across components
+- Mix of direct color variables and light-dark functions
+- No centralized theme definition with brand colors
+- No semantic color naming (e.g., primary, secondary, etc.)
+
+## Next Steps
+- Define a comprehensive color palette in theme.ts
+- Create semantic color tokens
+- Standardize light/dark mode transitions
\ No newline at end of file
diff --git a/frontend/vite-template-master/color-migration-guide.md b/frontend/vite-template-master/color-migration-guide.md
new file mode 100644
index 0000000..d8a8d7e
--- /dev/null
+++ b/frontend/vite-template-master/color-migration-guide.md
@@ -0,0 +1,182 @@
+# Color System Migration Guide
+
+This guide will help you migrate your components to use our new standardized color system.
+
+## Why Migrate?
+
+- **Consistency**: Ensure all UI elements have consistent colors
+- **Maintainability**: Easier to update the design system
+- **Accessibility**: Better contrast and readability
+- **Dark Mode**: Simplified light/dark mode support
+
+## Migration Steps
+
+### 1. Identify Current Color Usage
+
+First, identify all hardcoded colors or direct Mantine color variables in your component:
+
+```css
+/* Before */
+.element {
+ color: #333;
+ background-color: var(--mantine-color-blue-6);
+ border: 1px solid var(--mantine-color-gray-3);
+}
+```
+
+### 2. Replace with Theme Color Tokens
+
+Replace hardcoded colors and direct Mantine variables with our standardized tokens:
+
+```css
+/* After */
+.element {
+ color: var(--mantine-color-brand-gray-7);
+ background-color: var(--mantine-color-brand-primary-6);
+ border: 1px solid var(--mantine-color-brand-gray-3);
+}
+```
+
+### 3. Use Semantic Color Tokens Where Available
+
+For common UI elements, use semantic tokens:
+
+```css
+/* Before */
+.header {
+ background-color: var(--mantine-color-body);
+ border-bottom: 1px solid var(--mantine-color-gray-3);
+}
+
+/* After */
+.header {
+ background-color: var(--mantine-other-headerBgColor);
+ border-bottom: 1px solid var(--mantine-other-headerBorderColor);
+}
+```
+
+### 4. Use Light/Dark Mode Consistently
+
+For elements that need different colors in light/dark mode:
+
+```css
+/* Before */
+.text {
+ color: light-dark(var(--mantine-color-gray-7), var(--mantine-color-dark-0));
+}
+
+/* After */
+.text {
+ color: light-dark(var(--mantine-color-brand-gray-7), var(--mantine-color-brand-gray-0));
+}
+```
+
+### 5. Update Inline Styles in Components
+
+For inline styles in components:
+
+```tsx
+// Before
+
+
+// After
+
+
+// Or better, use Mantine props
+
+```
+
+## Mapping Old Colors to New Colors
+
+Use this reference to map old color values to our new color system:
+
+| Old Color | New Color |
+|-----------|-----------|
+| `var(--mantine-color-blue-0)` | `var(--mantine-color-brand-primary-0)` |
+| `var(--mantine-color-blue-1)` | `var(--mantine-color-brand-primary-1)` |
+| `var(--mantine-color-blue-4)` | `var(--mantine-color-brand-primary-4)` |
+| `var(--mantine-color-blue-6)` | `var(--mantine-color-brand-primary-6)` |
+| `var(--mantine-color-blue-7)` | `var(--mantine-color-brand-primary-7)` |
+| `var(--mantine-color-blue-filled)` | `var(--mantine-other-navigationActiveColor)` |
+| `var(--mantine-color-gray-0)` | `var(--mantine-color-brand-gray-0)` |
+| `var(--mantine-color-gray-3)` | `var(--mantine-color-brand-gray-3)` |
+| `var(--mantine-color-gray-4)` | `var(--mantine-color-brand-gray-4)` |
+| `var(--mantine-color-gray-5)` | `var(--mantine-color-brand-gray-5)` |
+| `var(--mantine-color-gray-7)` | `var(--mantine-color-brand-gray-7)` |
+| `var(--mantine-color-dark-0)` | `var(--mantine-color-brand-gray-0)` |
+| `var(--mantine-color-dark-4)` | `var(--mantine-color-brand-gray-4)` |
+| `var(--mantine-color-dark-6)` | `var(--mantine-color-brand-gray-6)` |
+| `var(--mantine-color-dark-8)` | `var(--mantine-color-brand-gray-8)` |
+
+## Examples
+
+### Header Component Example
+
+```css
+/* Before */
+.header {
+ background-color: var(--mantine-color-body);
+ border-bottom: 1px solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4));
+}
+
+.link {
+ color: light-dark(var(--mantine-color-gray-7), var(--mantine-color-dark-0));
+}
+
+.link:hover {
+ background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6));
+}
+
+.active {
+ background-color: var(--mantine-color-blue-filled);
+ color: var(--mantine-color-white);
+}
+
+/* After */
+.header {
+ background-color: var(--mantine-other-headerBgColor);
+ border-bottom: 1px solid var(--mantine-other-headerBorderColor);
+}
+
+.link {
+ color: light-dark(var(--mantine-color-brand-gray-7), var(--mantine-color-brand-gray-0));
+}
+
+.link:hover {
+ background-color: light-dark(var(--mantine-color-brand-gray-1), var(--mantine-color-brand-gray-8));
+}
+
+.active {
+ background-color: var(--mantine-other-navigationActiveColor);
+ color: var(--mantine-color-white);
+}
+```
+
+### Button Component Example
+
+```tsx
+// Before
+
+
+// After
+
+```
+
+## Testing Your Migration
+
+After migrating, run stylelint to ensure you're not using hardcoded colors:
+
+```bash
+yarn stylelint
+```
+
+## Need Help?
+
+Refer to the `color-tokens.md` file or the `ColorPalette` component in Storybook for a complete reference of our color system.
\ No newline at end of file
diff --git a/frontend/vite-template-master/color-tokens.md b/frontend/vite-template-master/color-tokens.md
new file mode 100644
index 0000000..01d0062
--- /dev/null
+++ b/frontend/vite-template-master/color-tokens.md
@@ -0,0 +1,182 @@
+# Color Tokens Documentation
+
+This document provides guidelines for using our standardized color system across the application.
+
+## Color Palette Structure
+
+Each color in our system has 10 shades, numbered from 0 to 9, where:
+- 0 is the lightest shade
+- 9 is the darkest shade
+- 5-6 are the base/primary shades
+
+## Brand Colors
+
+### Brand Primary (Blue)
+
+This is our main brand color, used for primary actions, links, and brand identity elements.
+
+| Token | Hex | Usage |
+|-------|-----|-------|
+| `var(--mantine-color-brand-primary-0)` | `#EAF4FF` | Background on hover states |
+| `var(--mantine-color-brand-primary-1)` | `#D5E9FF` | Background of informational elements |
+| `var(--mantine-color-brand-primary-2)` | `#B0D3FF` | Secondary backgrounds |
+| `var(--mantine-color-brand-primary-3)` | `#8BBDFF` | Borders, separators |
+| `var(--mantine-color-brand-primary-4)` | `#66A7FF` | Hover states for interactive elements |
+| `var(--mantine-color-brand-primary-5)` | `#4191FF` | Icons, secondary buttons |
+| `var(--mantine-color-brand-primary-6)` | `#1C7BFF` | **Primary buttons, links, focus states** |
+| `var(--mantine-color-brand-primary-7)` | `#0065F2` | Active/pressed states |
+| `var(--mantine-color-brand-primary-8)` | `#0055CC` | Tertiary text |
+| `var(--mantine-color-brand-primary-9)` | `#004099` | Text on light backgrounds |
+
+### Brand Secondary
+
+This complementary color is used for secondary UI elements and visual hierarchy.
+
+| Token | Hex | Usage |
+|-------|-----|-------|
+| `var(--mantine-color-brand-secondary-0)` | `#F0F4F9` | Alternative background |
+| `var(--mantine-color-brand-secondary-1)` | `#E1E9F4` | Secondary hover backgrounds |
+| `var(--mantine-color-brand-secondary-2)` | `#C3D4E9` | Disabled backgrounds |
+| `var(--mantine-color-brand-secondary-3)` | `#A5BFDE` | Borders, dividers |
+| `var(--mantine-color-brand-secondary-4)` | `#87AAD3` | Non-primary icons |
+| `var(--mantine-color-brand-secondary-5)` | `#6995C8` | Highlighted text |
+| `var(--mantine-color-brand-secondary-6)` | `#4B80BD` | **Secondary buttons, links** |
+| `var(--mantine-color-brand-secondary-7)` | `#2D6BB2` | Active/pressed states for secondary elements |
+| `var(--mantine-color-brand-secondary-8)` | `#1F5A99` | Secondary text on light backgrounds |
+| `var(--mantine-color-brand-secondary-9)` | `#114480` | Dark text on light backgrounds |
+
+### Brand Accent
+
+This color is used for accent elements, call-to-actions, and highlighting important UI elements.
+
+| Token | Hex | Usage |
+|-------|-----|-------|
+| `var(--mantine-color-brand-accent-0)` | `#FFF0EA` | Highlight backgrounds |
+| `var(--mantine-color-brand-accent-1)` | `#FFE1D5` | Notification backgrounds |
+| `var(--mantine-color-brand-accent-2)` | `#FFC3AD` | Secondary accent backgrounds |
+| `var(--mantine-color-brand-accent-3)` | `#FFA584` | Accent borders |
+| `var(--mantine-color-brand-accent-4)` | `#FF875B` | Accent hover states |
+| `var(--mantine-color-brand-accent-5)` | `#FF6932` | Secondary CTAs |
+| `var(--mantine-color-brand-accent-6)` | `#FF4A09` | **Primary CTAs, important actions** |
+| `var(--mantine-color-brand-accent-7)` | `#D93A00` | Active/pressed states for accent elements |
+| `var(--mantine-color-brand-accent-8)` | `#B02F00` | Dark accent text on light backgrounds |
+| `var(--mantine-color-brand-accent-9)` | `#882400` | Very dark accent, use sparingly |
+
+### Brand Gray
+
+This is our neutral color, used for text, backgrounds, borders, and non-emphasized UI elements.
+
+| Token | Hex | Usage |
+|-------|-----|-------|
+| `var(--mantine-color-brand-gray-0)` | `#F8F9FA` | Page backgrounds, light mode |
+| `var(--mantine-color-brand-gray-1)` | `#F1F3F5` | Card/element backgrounds |
+| `var(--mantine-color-brand-gray-2)` | `#E9ECEF` | Alternative backgrounds, hover states |
+| `var(--mantine-color-brand-gray-3)` | `#DEE2E6` | **Borders, dividers, separators** |
+| `var(--mantine-color-brand-gray-4)` | `#CED4DA` | Disabled elements, secondary borders |
+| `var(--mantine-color-brand-gray-5)` | `#ADB5BD` | **Placeholder text, disabled text** |
+| `var(--mantine-color-brand-gray-6)` | `#868E96` | **Secondary text** |
+| `var(--mantine-color-brand-gray-7)` | `#495057` | **Primary text** |
+| `var(--mantine-color-brand-gray-8)` | `#343A40` | Headings, emphasized text |
+| `var(--mantine-color-brand-gray-9)` | `#212529` | Extra dark text, header text |
+
+## Semantic Colors
+
+### Success
+
+Used for positive actions, success messages, and confirmations.
+
+| Token | Hex | Usage |
+|-------|-----|-------|
+| `var(--mantine-color-success-0)` | `#EAFAF1` | Success background |
+| `var(--mantine-color-success-1)` | `#D5F5E3` | Light success background |
+| `var(--mantine-color-success-2)` | `#ABEBC6` | Secondary success background |
+| `var(--mantine-color-success-3)` | `#82E0AA` | Success borders |
+| `var(--mantine-color-success-4)` | `#58D68D` | Success hover states |
+| `var(--mantine-color-success-5)` | `#2ECC71` | Secondary success elements |
+| `var(--mantine-color-success-6)` | `#27AE60` | **Primary success elements, icons** |
+| `var(--mantine-color-success-7)` | `#229954` | Active/pressed states |
+| `var(--mantine-color-success-8)` | `#1E8449` | Dark success text |
+| `var(--mantine-color-success-9)` | `#196F3D` | Very dark success, use sparingly |
+
+### Warning
+
+Used for warnings, alerts that need attention but aren't critical.
+
+| Token | Hex | Usage |
+|-------|-----|-------|
+| `var(--mantine-color-warning-0)` | `#FEF9E7` | Warning background |
+| `var(--mantine-color-warning-1)` | `#FCF3CF` | Light warning background |
+| `var(--mantine-color-warning-2)` | `#F9E79F` | Secondary warning background |
+| `var(--mantine-color-warning-3)` | `#F7DC6F` | Warning borders |
+| `var(--mantine-color-warning-4)` | `#F4D03F` | Warning hover states |
+| `var(--mantine-color-warning-5)` | `#F1C40F` | Secondary warning elements |
+| `var(--mantine-color-warning-6)` | `#D4AC0D` | **Primary warning elements, icons** |
+| `var(--mantine-color-warning-7)` | `#B7950B` | Active/pressed states |
+| `var(--mantine-color-warning-8)` | `#9A7D0A` | Dark warning text |
+| `var(--mantine-color-warning-9)` | `#7D6608` | Very dark warning, use sparingly |
+
+### Error
+
+Used for errors, destructive actions, and critical alerts.
+
+| Token | Hex | Usage |
+|-------|-----|-------|
+| `var(--mantine-color-error-0)` | `#FDEDEC` | Error background |
+| `var(--mantine-color-error-1)` | `#FADBD8` | Light error background |
+| `var(--mantine-color-error-2)` | `#F5B7B1` | Secondary error background |
+| `var(--mantine-color-error-3)` | `#F1948A` | Error borders |
+| `var(--mantine-color-error-4)` | `#EC7063` | Error hover states |
+| `var(--mantine-color-error-5)` | `#E74C3C` | Secondary error elements |
+| `var(--mantine-color-error-6)` | `#CB4335` | **Primary error elements, icons** |
+| `var(--mantine-color-error-7)` | `#B03A2E` | Active/pressed states |
+| `var(--mantine-color-error-8)` | `#943126` | Dark error text |
+| `var(--mantine-color-error-9)` | `#78281F` | Very dark error, use sparingly |
+
+## Semantic Tokens
+
+For common UI elements, use these semantic tokens:
+
+| Token | Maps to | Usage |
+|-------|--------|-------|
+| `var(--mantine-other-headerBgColor)` | `var(--mantine-color-body)` | Header background |
+| `var(--mantine-other-headerBorderColor)` | `var(--mantine-color-brand-gray-3)` | Header borders |
+| `var(--mantine-other-navigationActiveColor)` | `var(--mantine-color-brand-primary-6)` | Active navigation items |
+| `var(--mantine-other-navigationHoverColor)` | `var(--mantine-color-brand-primary-0)` | Hover state for navigation |
+| `var(--mantine-other-buttonPrimaryBg)` | `var(--mantine-color-brand-primary-6)` | Primary button background |
+| `var(--mantine-other-buttonSecondaryBg)` | `var(--mantine-color-brand-secondary-6)` | Secondary button background |
+| `var(--mantine-other-buttonAccentBg)` | `var(--mantine-color-brand-accent-6)` | Accent button background |
+
+## Usage in CSS
+
+### For direct CSS usage
+
+```css
+.my-element {
+ color: var(--mantine-color-brand-primary-6);
+ background-color: var(--mantine-color-brand-gray-0);
+ border: 1px solid var(--mantine-color-brand-gray-3);
+}
+```
+
+### For light/dark mode support
+
+```css
+.my-element {
+ color: light-dark(var(--mantine-color-brand-gray-7), var(--mantine-color-brand-gray-0));
+ background-color: light-dark(var(--mantine-color-brand-gray-0), var(--mantine-color-brand-gray-8));
+}
+```
+
+## Usage in Components (with Mantine)
+
+```tsx
+import { Button } from '@mantine/core';
+
+// Using theme colors
+
+
+
+
+// Using specific shade
+
+```
\ No newline at end of file
diff --git a/frontend/vite-template-master/src/components/ColorPalette/ColorPalette.story.tsx b/frontend/vite-template-master/src/components/ColorPalette/ColorPalette.story.tsx
new file mode 100644
index 0000000..bf231df
--- /dev/null
+++ b/frontend/vite-template-master/src/components/ColorPalette/ColorPalette.story.tsx
@@ -0,0 +1,16 @@
+import type { Meta, StoryObj } from '@storybook/react';
+import { ColorPalette } from './ColorPalette';
+
+const meta = {
+ title: 'Design System/ColorPalette',
+ component: ColorPalette,
+ tags: ['autodocs'],
+ parameters: {
+ layout: 'padded',
+ },
+} satisfies Meta;
+
+export default meta;
+type Story = StoryObj;
+
+export const Default: Story = {};
\ No newline at end of file
diff --git a/frontend/vite-template-master/src/components/ColorPalette/ColorPalette.tsx b/frontend/vite-template-master/src/components/ColorPalette/ColorPalette.tsx
new file mode 100644
index 0000000..2472dd9
--- /dev/null
+++ b/frontend/vite-template-master/src/components/ColorPalette/ColorPalette.tsx
@@ -0,0 +1,154 @@
+import { Box, Group, Stack, Text, Title, useMantineTheme } from '@mantine/core';
+
+interface ColorSwatchProps {
+ colorName: string;
+ shade: number;
+ hex: string;
+}
+
+function ColorSwatch({ colorName, shade, hex }: ColorSwatchProps) {
+ return (
+
+
+
+ {colorName}-{shade}
+
+
+ {hex}
+
+
+ );
+}
+
+interface ColorGroupProps {
+ title: string;
+ colorName: string;
+ description: string;
+ colors: readonly string[];
+}
+
+function ColorGroup({ title, colorName, description, colors }: ColorGroupProps) {
+ return (
+
+
+ {title}
+ {description}
+
+
+ {colors.map((color, index) => (
+
+ ))}
+
+
+ );
+}
+
+export function ColorPalette() {
+ const theme = useMantineTheme();
+
+ return (
+
+ Color Palette Documentation
+
+ This component showcases all colors defined in our theme system. Use these colors
+ consistently throughout the application for a cohesive design.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Semantic Color Usage
+ These are recommended usages for our color system:
+
+
+
+ Primary Buttons: brand-primary-6
+
+
+ Secondary Buttons: brand-secondary-6
+
+
+ Accent Buttons: brand-accent-6
+
+
+ Text on Light Backgrounds: brand-gray-7
+
+
+ Text on Dark Backgrounds: brand-gray-0
+
+
+ Borders & Dividers: brand-gray-3
+
+
+ Page Backgrounds: brand-gray-0
+
+
+ Success States: success-6
+
+
+ Warning States: warning-6
+
+
+ Error States: error-6
+
+
+
+
+ );
+}
diff --git a/frontend/vite-template-master/src/theme.ts b/frontend/vite-template-master/src/theme.ts
index bf4dee5..0d06835 100644
--- a/frontend/vite-template-master/src/theme.ts
+++ b/frontend/vite-template-master/src/theme.ts
@@ -1,5 +1,140 @@
-import { createTheme } from '@mantine/core';
+import { createTheme, rem } from '@mantine/core';
export const theme = createTheme({
- /** Put your mantine theme override here */
+ /** Color system for the application */
+ colors: {
+ // Primary brand color (blue shades from inventory with consistent gradation)
+ 'brand-primary': [
+ '#EAF4FF', // 0: Lightest shade
+ '#D5E9FF', // 1
+ '#B0D3FF', // 2
+ '#8BBDFF', // 3
+ '#66A7FF', // 4: Base blue shade
+ '#4191FF', // 5
+ '#1C7BFF', // 6
+ '#0065F2', // 7: Original blue-7 shade
+ '#0055CC', // 8
+ '#004099', // 9: Darkest shade
+ ],
+
+ // Secondary brand color - a complementary shade to the primary
+ 'brand-secondary': [
+ '#F0F4F9', // 0
+ '#E1E9F4', // 1
+ '#C3D4E9', // 2
+ '#A5BFDE', // 3
+ '#87AAD3', // 4
+ '#6995C8', // 5
+ '#4B80BD', // 6
+ '#2D6BB2', // 7
+ '#1F5A99', // 8
+ '#114480', // 9
+ ],
+
+ // Accent color for highlights, call to actions, important elements
+ 'brand-accent': [
+ '#FFF0EA', // 0
+ '#FFE1D5', // 1
+ '#FFC3AD', // 2
+ '#FFA584', // 3
+ '#FF875B', // 4
+ '#FF6932', // 5
+ '#FF4A09', // 6
+ '#D93A00', // 7
+ '#B02F00', // 8
+ '#882400', // 9
+ ],
+
+ // Standardized gray shades for consistency
+ 'brand-gray': [
+ '#F8F9FA', // 0
+ '#F1F3F5', // 1
+ '#E9ECEF', // 2
+ '#DEE2E6', // 3
+ '#CED4DA', // 4
+ '#ADB5BD', // 5
+ '#868E96', // 6
+ '#495057', // 7
+ '#343A40', // 8
+ '#212529', // 9
+ ],
+
+ // Semantic colors for state indications
+ success: [
+ '#EAFAF1', // 0
+ '#D5F5E3', // 1
+ '#ABEBC6', // 2
+ '#82E0AA', // 3
+ '#58D68D', // 4
+ '#2ECC71', // 5
+ '#27AE60', // 6
+ '#229954', // 7
+ '#1E8449', // 8
+ '#196F3D', // 9
+ ],
+
+ warning: [
+ '#FEF9E7', // 0
+ '#FCF3CF', // 1
+ '#F9E79F', // 2
+ '#F7DC6F', // 3
+ '#F4D03F', // 4
+ '#F1C40F', // 5
+ '#D4AC0D', // 6
+ '#B7950B', // 7
+ '#9A7D0A', // 8
+ '#7D6608', // 9
+ ],
+
+ error: [
+ '#FDEDEC', // 0
+ '#FADBD8', // 1
+ '#F5B7B1', // 2
+ '#F1948A', // 3
+ '#EC7063', // 4
+ '#E74C3C', // 5
+ '#CB4335', // 6
+ '#B03A2E', // 7
+ '#943126', // 8
+ '#78281F', // 9
+ ],
+ },
+
+ // Set the primary color to our brand-primary
+ primaryColor: 'brand-primary',
+
+ // Add consistent spacing values
+ spacing: {
+ xs: rem(4),
+ sm: rem(8),
+ md: rem(16),
+ lg: rem(24),
+ xl: rem(32),
+ '2xl': rem(40),
+ '3xl': rem(64),
+ },
+
+ // Add consistent border radius values
+ radius: {
+ xs: rem(2),
+ sm: rem(4),
+ md: rem(8),
+ lg: rem(16),
+ xl: rem(24),
+ },
+
+ // Other theme customizations
+ fontFamily:
+ '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',
+
+ // Add semantic tokens for common elements
+ other: {
+ headerBgColor: 'var(--mantine-color-body)',
+ headerBorderColor: 'var(--mantine-color-brand-gray-3)',
+ navigationActiveColor: 'var(--mantine-color-brand-primary-6)',
+ navigationHoverColor: 'var(--mantine-color-brand-primary-0)',
+ buttonPrimaryBg: 'var(--mantine-color-brand-primary-6)',
+ buttonSecondaryBg: 'var(--mantine-color-brand-secondary-6)',
+ buttonAccentBg: 'var(--mantine-color-brand-accent-6)',
+ },
});