Skip to content

Color Palette

LawnGuru's color system is designed to create a fresh, natural, and trustworthy brand experience.

🎨 Brand Colors

Primary Green (Grass Theme)

The signature LawnGuru green represents growth, nature, and vitality. Multiple shades available for different use cases.

grass-50#F0FFEA
grass-100#E4FFDB
grass-200#BAFFA3
grass-300#8DFC72
grass-400#5DF53F
grass-600#00A31B
grass-700 (PRIMARY)#008934
grass-800#056535
grass-900#024B33
grass-950#003028
css
/* Primary Green Scale - from lightest to darkest */
--grass-50: #F0FFEA;  /* Lightest green - subtle backgrounds */
--grass-100: #E4FFDB; /* Very light green - hover states */
--grass-200: #BAFFA3; /* Light green - light accents */
--grass-300: #8DFC72; /* Medium-light green - soft highlights */
--grass-400: #5DF53F; /* Medium green - interactive elements */
--grass-600: #00A31B; /* Medium-dark green - primary CTAs */
--grass-700: #008934; /* Dark green - PRIMARY BRAND COLOR */
--grass-800: #056535; /* Very dark green - hover states */
--grass-900: #024B33; /* Darker green - active states */
--grass-950: #003028; /* Darkest green - emphasis */

Usage:

  • Primary CTAs and buttons (--grass-600)
  • Active states (--grass-700)
  • Links and interactive elements (--grass-600)
  • Brand moments and highlights
  • Hover states (darker shades)
  • Backgrounds (lighter shades: 50-100)

🎨 Semantic Colors

The LawnGuru design system includes a complete set of semantic colors for conveying meaning and status.

Success (Green)

success-light#E4FFDB
success-base#008934
success-dark#024B33
css
--success-light: #E4FFDB;  /* Light success green - backgrounds */
--success-base: #008934;   /* Base success green - primary */
--success-dark: #024B33;   /* Dark success green - emphasis */

Usage: Confirmation messages, successful actions, positive status, completed states

Error / Critical (Red)

error-light#FDEDEF
error-base#E5132E
error-dark#790C1B
css
--error-light: #FDEDEF;  /* Light error red - backgrounds */
--error-base: #E5132E;   /* Base error red - primary */
--error-dark: #790C1B;   /* Dark error red - emphasis */

Usage: Error messages, destructive actions, alerts, validation errors, critical warnings

Warning (Yellow)

warning-light#FDF6DB
warning-base#FFCC00
warning-dark#6D4607
css
--warning-light: #FDF6DB;  /* Light warning yellow - backgrounds */
--warning-base: #FFCC00;   /* Base warning yellow - primary */
--warning-dark: #6D4607;   /* Dark warning yellow - emphasis */

Usage: Warnings, caution states, pending actions, important notices

Info / Interactive (Blue)

info-light#E0F3FE
info-base#0B65E3
info-dark#0A1D56
css
--info-light: #E0F3FE;  /* Light info blue - backgrounds */
--info-base: #0B65E3;   /* Base info blue - primary */
--info-dark: #0A1D56;   /* Dark info blue - emphasis */

Usage: Informational messages, tips, neutral notifications, help text, interactive elements

Accent (Pink/Magenta)

accent-base#DD086C
accent-alt#F6539F
css
--accent-base: #DD086C;  /* Base accent - from Figma */
--accent-alt: #F6539F;   /* Alternative accent - grass-dark theme */

Usage: Special highlights, featured content, promotional elements, call-outs

⚫⚪ Neutral Colors

Gray Scale

A comprehensive gray scale from light to dark for text, borders, backgrounds, and UI elements.

neutral-00#FFFFFF
neutral-50#F6F6F6
neutral-100#F1F1F1
neutral-900#2A2A2A
neutral-950#0B0B0B
neutral-1000#000000
css
/* Neutral Scale - from lightest to darkest */
--neutral-00: #FFFFFF;   /* Pure white - page backgrounds */
--neutral-50: #F6F6F6;   /* Lightest gray - subtle backgrounds */
--neutral-100: #F1F1F1;  /* Very light gray - cards, hover states */
--neutral-900: #2A2A2A;  /* Dark gray - secondary text */
--neutral-950: #0B0B0B;  /* Darkest gray - primary text, headings */
--neutral-1000: #000000; /* Pure black - maximum contrast */

Usage:

  • Text colors:
    • Primary text: --neutral-950 (#0B0B0B)
    • Secondary text: --neutral-900 (#2A2A2A)
  • Backgrounds:
    • Primary/Page: --neutral-00 (#FFFFFF)
    • Subtle/Secondary: --neutral-50 (#F6F6F6)
    • Cards/Tertiary: --neutral-100 (#F1F1F1)
  • Shadows and overlays: --neutral-950 or --neutral-1000 with opacity
  • Maximum contrast: --neutral-00 (white) and --neutral-1000 (black)

📋 Usage Guidelines

Do's ✅

  • Use primary green for main CTAs and brand moments
  • Maintain sufficient contrast ratios (WCAG AA minimum: 4.5:1)
  • Use semantic colors consistently for their intended purpose
  • Test colors in both light and dark modes

Don'ts ❌

  • Don't use red for anything other than errors or destructive actions
  • Don't override semantic color meanings
  • Don't use colors as the only way to convey information
  • Avoid using too many colors in a single interface

♿ Accessibility

All color combinations must meet WCAG 2.1 Level AA standards:

  • Normal text: Minimum 4.5:1 contrast ratio
  • Large text (18pt+): Minimum 3:1 contrast ratio
  • UI components: Minimum 3:1 contrast ratio

Color Blindness Considerations

  • Don't rely solely on color to convey information
  • Use patterns, icons, or labels in addition to color
  • Test designs with color blindness simulators

🔄 Color System Overview

Theme: theme-grass-light

The LawnGuru color system is built on a comprehensive token-based approach with:

  • Primary colors: Full green scale (grass-50 through grass-900)
  • Semantic colors: Success, Error, Warning, Info, Accent
  • Neutrals: Complete gray scale (gray-50 through gray-900)
  • Special: Black and White for maximum contrast

🎨 Complete Color Palette Reference

All Green Palette Colors

VariableHex CodeUsage
--green-50#F0FFEALightest tint
--green-100#E4FFDBSuccess backgrounds
--green-200#BAFFA3Light accents
--green-300#8DFC72Medium-light
--green-400#5DF53FInteractive states
--green-600#00A31BPrimary CTAs
--green-700#008934PRIMARY BRAND
--green-800#056535Dark states
--green-900#024B33Very dark
--green-950#003028Darkest

All Blue Palette Colors

VariableHex CodeUsage
--blue-100#E0F3FEInfo backgrounds
--blue-400#52B1FFLight interactive
--blue-500#2885FAMedium interactive
--blue-600#0B65E3Primary interactive
--blue-900#0A1D56Dark interactive
--blue-950#0C143BDarkest

All Red Palette Colors

VariableHex CodeUsage
--red-100#FDEDEFError backgrounds
--red-400#FF7789Light error
--red-600#E5132EPrimary error/critical
--red-900#790C1BDark error

All Yellow Palette Colors

VariableHex CodeUsage
--yellow-100#FDF6DBWarning backgrounds
--yellow-200#FFF1ADLight warning
--yellow-500#FFCC00Primary warning
--yellow-800#6D4607Dark warning
--yellow-900#4C3209Darkest warning

Additional Palette Colors

VariableHex CodeUsage
--platinum-100#EDF0EDAlternative light background
--platinum-900#2E3731Alternative dark
--silver-100#EDF1F1Alternative subtle background

Last Updated: Synced with Figma Color.json tokens (2026-03-25) Primary Brand Color: #008934 (grass-700) Note: The Next.js app uses #16a34a (Tailwind green-600 / oklch) as --primary in globals.css via shadcn/ui defaults. The Figma design system uses #008934 (grass-700). These should be reconciled.

🎯 Semantic Color Tokens

The design system uses semantic color tokens for consistent application of colors across different UI elements.

Content/Text Colors

TokenUsageGrass-LightNotes
color-content-primaryPrimary text#0B0B0B (neutral-950)Headings, body text
color-content-secondarySecondary text#0B0B0B @ 74%Subtext, less emphasis
color-content-tertiaryTertiary text#0B0B0B @ 60%Helper text, captions
color-content-placeholderPlaceholder text#0B0B0B @ 48%Form placeholders
color-content-disabledDisabled text#0B0B0B @ 36%Disabled states
color-content-brandBrand content#056535 (green-800)Brand moments
color-content-brand-onBrand on light#008934 (green-700)Primary brand text
color-content-brand-darkBrand dark#024B33 (green-900)Dark brand text
color-content-brand-loudBrand emphasis#003028 (green-950)Strong emphasis
color-content-interactiveInteractive text#0B65E3 (blue-600)Links, buttons
color-content-ascentAccent content#DD086CSpecial highlights
color-content-successSuccess text#056535 (green-800)Success messages
color-content-warningWarning text#6D4607 (yellow-800)Warning messages
color-content-criticalError text#E5132E (red-600)Error messages
color-content-inverted-primaryInverted primary#FFFFFF (neutral-00)Text on dark backgrounds
color-content-inverted-secondaryInverted secondary#FFFFFF @ 88%Secondary on dark

Border Colors

TokenGrass-LightUsage
color-border-10#0B0B0B @ 10%Subtle borders
color-border-15#0B0B0B @ 15%Light borders
color-border-20#0B0B0B @ 20%Default borders
color-border-30#0B0B0B @ 30%Medium borders
color-border-40#0B0B0B @ 40%Emphasized borders
color-border-50#0B0B0B @ 50%Strong borders
color-border-60#0B0B0B @ 60%Very strong borders
color-border-success#00A31B (green-600)Success indicators
color-border-warning#FFCC00 (yellow-500)Warning indicators
color-border-critical#E5132E (red-600)Error indicators
color-border-highlight#00A31B @ 74%Highlighted borders
color-border-inverted-10#FFFFFF @ 10%Subtle inverted
color-border-inverted-20#FFFFFF @ 20%Inverted borders

Interactive State Colors

TokenGrass-LightUsage
color-state-hover#000000 @ 10%Hover overlay
color-state-pressed#000000 @ 20%Pressed/active overlay
color-state-hover-inverted#FFFFFF @ 10%Inverted hover
color-state-pressed-inverted#FFFFFF @ 20%Inverted pressed

Shadow Colors

Shadow tokens with varying opacity for depth and elevation:

Neutral Shadows:

TokenBase ColorOpacity RangeUsage
color-shadow-neutral-*#0B0B0B7-15%Standard shadows for cards, modals

Brand Shadows:

TokenBase ColorOpacity RangeUsage
color-shadow-brand-*#003028 (green-950)8-16%Brand element shadows

Note: Shadow tokens have multiple levels (e.g., -center-07, -center-08, etc.) for different elevation depths.

Next Steps:

Built with 🌱 by the LawnGuru team