Crimson#8B0000
Olive#708238
Sand#D2B48C
Khaki#B5A27F
Slate Gray#7F7F7F
Palette direction

Crimson Olive Sand Color Palette

This palette uses a harmonious triadic combination of a deep Crimson, a muted Olive green, and a warm Sand to create a distinctive and balanced brand identity with clear visual hierarchy and high contrast for user interfaces.

AnalogousFashion Beautycrimsonolivesandtriadic
palette-preview.example
Fashion Beauty color direction

Crimson Olive Sand Color Palette

This palette uses a harmonious triadic combination of a deep Crimson, a muted Olive green, and a warm Sand to create a distinctive and balanced brand identity with clear visual hierarchy and high contrast for user interfaces.

Logo contrast guide

Logo color pairings

Each column shows a usable logo color on a palette background, with contrast checked for clarity.

Logo White #FFFFFF
on Crimson #8B0000

10.0:1 Excellent

Logo Charcoal #2F2F2F
on Sand #D2B48C

6.8:1 Strong

Logo Charcoal #2F2F2F
on White #FFFFFF

13.4:1 Excellent

Logo Charcoal #2F2F2F
on Khaki #B5A27F

5.4:1 Strong
Motion gradient

Gradient background

Built from the main brand color and one generated shade, so the effect feels modern without leaving the palette.

Business card

Printed materials without guessing.

A neutral card system with the logo color, contact text, and a restrained palette accent.

Avery Stone Palette designer avery@example.com colorfly.design
Mobile website

The palette has to survive the small screen.

A mobile landing page preview with logo, navigation, headline, CTA, content card, and chart color usage.

Fashion Beauty Crimson Olive Sand Color Palette

The main colors form a triadic harmony with warm Crimson and Sand balanced by a muted Olive, providing energetic yet grounded visual balance and strong brand recognition.

Gradient type

Gradient on text

A cleaner way to use the brand color as a digital accent without turning the whole interface colorful.

Analytics system

Dashboards need more than one pretty color.

Numbers, pie charts, bars, stacked bars, and lines reveal whether the palette can support real product interfaces.

Revenue$84.2k+18.4%
Retention72%Stable
Signals8Analogous
Audience split
Monthly growth
Trend line

Color Roles and Usage Map

Assign existing palette colors to brand, typography, and interface roles.

Brand identity

LogoUsed for logo marks and core brand symbols.Crimson #8B0000
HeadlineUsed for main titles and key messages.Olive #708238
LinkUsed for links and interactive text.Crimson #8B0000

Buttons

Primary Button
Contrast10.01:1AA
BackgroundCrimson #8B0000
TextWhite #FFFFFF
Secondary Button
Contrast4.25:1Large text
BackgroundOlive #708238
TextWhite #FFFFFF
Outlined Button
Contrast10.01:1AA
BorderCrimson #8B0000
TextCrimson #8B0000

Interface

TextDefault readable body text.Charcoal #2F2F2F
Bg LightLight page or section background.White #FFFFFF
Bg DarkDark page or section background.Ivory #F4F1ED
IconSmall interface icons and marks.Khaki #B5A27F
BorderCards, inputs, and component borders.Khaki #B5A27F
DividerSubtle separators between content.Khaki #B5A27F
OutlineFocus rings and emphasis outlines.Khaki #B5A27F

Print Color Values

CMYK values are calculated from HEX by default. Adjust them only when preparing print materials.

Palette Colors

A compact view of the brand, support, and neutral colors that make up this system.

Main (Brand) Colors

The main colors form a triadic harmony with warm Crimson and Sand balanced by a muted Olive, providing energetic yet grounded visual balance and strong brand recognition.

PrimaryCrimson

RolesLogo, Link, Btn Primary Bg, Btn Outlined Border, Btn Outlined Text

Crimson delivers passion and energy, anchoring the brand with recognizable warmth and boldness.

HEX#8B0000
RGB139, 0, 0
HSL0, 100, 27
CMYK0, 100, 100, 45
SecondaryOlive

RolesBtn Secondary Bg, Headline

Olive adds an earthy, stable tone that harmonizes with Crimson, creating natural balance and a sophisticated edge.

HEX#708238
RGB112, 130, 56
HSL75, 40, 36
CMYK14, 0, 57, 49
TertiarySand

Sand introduces warmth and softness that complements both Crimson and Olive to add subtlety and cohesion.

HEX#D2B48C
RGB210, 180, 140
HSL34, 44, 69
CMYK0, 14, 33, 18

Support Colors

The support colors provide gentle accents in closely related warm earth tones and cooler subdued hues that highlight main colors without overpowering, enhancing usability and refinement.

Khaki

RolesIcon, Border, Divider, Outline

Khaki offers a muted, warm accent that complements Sand while balancing the vibrancy of Crimson and Olive.

HEX#B5A27F
RGB181, 162, 127
HSL39, 27, 60
CMYK0, 10, 30, 29
Slate Gray

Slate Gray provides a cool neutral accent supporting Olive and grounding the overall palette with understated contrast.

HEX#7F7F7F
RGB127, 127, 127
HSL0, 0, 50
CMYK0, 0, 0, 50

Neutral Colors

Utility colors for backgrounds, text, borders, and balance.

White

RolesBg Light, Btn Primary Text, Btn Secondary Text

HEX#FFFFFF
RGB255, 255, 255
HSL0, 0, 100
CMYK0, 0, 0, 0
Ivory

RolesBg Dark

HEX#F4F1ED
RGB244, 241, 237
HSL34, 24, 94
CMYK0, 1, 3, 4
Charcoal

RolesText

HEX#2F2F2F
RGB47, 47, 47
HSL0, 0, 18
CMYK0, 0, 0, 82

Export and Handoff

Copy palette values, role tokens, animated gradient snippets, and structured handoff data for websites, design systems, and client work.

Export logo in seconds

Click to copy and go to Logo Export on myLogo.review to export your logo files in seconds.

Use when: you want to send this palette into myLogo.review.
COLORFLY_PALETTE_V2
{
    "format": "colorfly_palette_v2",
    "source": "colorfly.design",
    "colors": [
        {
            "name": "Crimson",
            "hex": "#8B0000",
            "role": "main",
            "cmyk": {
                "c": 0,
                "m": 100,
                "y": 100,
                "k": 45,
                "source": "colorfly"
            }
        },
        {
            "name": "Olive",
            "hex": "#708238",
            "role": "main",
            "cmyk": {
                "c": 14,
                "m": 0,
                "y": 57,
                "k": 49,
                "source": "colorfly"
            }
        },
        {
            "name": "Sand",
            "hex": "#D2B48C",
            "role": "main",
            "cmyk": {
                "c": 0,
                "m": 14,
                "y": 33,
                "k": 18,
                "source": "colorfly"
            }
        },
        {
            "name": "Khaki",
            "hex": "#B5A27F",
            "role": "support",
            "cmyk": {
                "c": 0,
                "m": 10,
                "y": 30,
                "k": 29,
                "source": "colorfly"
            }
        },
        {
            "name": "Slate Gray",
            "hex": "#7F7F7F",
            "role": "support",
            "cmyk": {
                "c": 0,
                "m": 0,
                "y": 0,
                "k": 50,
                "source": "colorfly"
            }
        },
        {
            "name": "White",
            "hex": "#FFFFFF",
            "role": "neutral",
            "cmyk": {
                "c": 0,
                "m": 0,
                "y": 0,
                "k": 0,
                "source": "colorfly"
            }
        },
        {
            "name": "Ivory",
            "hex": "#F4F1ED",
            "role": "neutral",
            "cmyk": {
                "c": 0,
                "m": 1,
                "y": 3,
                "k": 4,
                "source": "colorfly"
            }
        },
        {
            "name": "Charcoal",
            "hex": "#2F2F2F",
            "role": "neutral",
            "cmyk": {
                "c": 0,
                "m": 0,
                "y": 0,
                "k": 82,
                "source": "colorfly"
            }
        }
    ]
}
END_COLORFLY_PALETTE

Color tokens

Use these in CSS when you want every raw palette color available by name. Best for websites, landing pages, and design system variables.

Use when: you need the actual colors.
:root {
  --color-crimson: #8B0000;
  --color-olive: #708238;
  --color-sand: #D2B48C;
  --color-khaki: #B5A27F;
  --color-slate-gray: #7F7F7F;
  --color-white: #FFFFFF;
  --color-ivory: #F4F1ED;
  --color-charcoal: #2F2F2F;
}

Role tokens

Use these in CSS when colors are assigned to practical jobs like text, buttons, borders, links, and backgrounds.

Use when: you need UI roles, not just swatches.
:root {
  --role-logo: #8B0000;
  --role-link: #8B0000;
  --role-btn-primary-bg: #8B0000;
  --role-btn-outlined-border: #8B0000;
  --role-btn-outlined-text: #8B0000;
  --role-btn-secondary-bg: #708238;
  --role-headline: #708238;
  --role-icon: #B5A27F;
  --role-border: #B5A27F;
  --role-divider: #B5A27F;
  --role-outline: #B5A27F;
  --role-bg-light: #FFFFFF;
  --role-btn-primary-text: #FFFFFF;
  --role-btn-secondary-text: #FFFFFF;
  --role-bg-dark: #F4F1ED;
  --role-text: #2F2F2F;
}

JSON

Use this structured palette data in apps, generators, plugins, or tools that need to read the palette programmatically.

Use when: a developer or app needs data.
{
    "crimson": "#8B0000",
    "olive": "#708238",
    "sand": "#D2B48C",
    "khaki": "#B5A27F",
    "slate-gray": "#7F7F7F",
    "white": "#FFFFFF",
    "ivory": "#F4F1ED",
    "charcoal": "#2F2F2F"
}

Moving gradient background

Copy the animated radial gradient background from the visualizer, with this palette already applied.

Use when: you want the hero gradient effect.
<div class="colorfly-moving-gradient-bg">
  <span class="colorfly-gradient-spark" aria-hidden="true"></span>
  <div>
    <small>Motion gradient</small>
    <h2>Gradient background</h2>
    <p>A moving brand gradient built from your palette.</p>
  </div>
</div>

<style>
.colorfly-moving-gradient-bg {
  --gradient-anchor: #8B0000;
  --gradient-partner: #BF7373;
  --gradient-accent: #B5A27F;
  --gradient-text: #FFFFFF;
  position: relative;
  display: grid;
  place-items: center;
  min-height: 340px;
  overflow: hidden;
  padding: 42px;
  color: var(--gradient-text);
  border-radius: 28px;
  background:
    radial-gradient(circle at 20% 82%, color-mix(in srgb, var(--gradient-accent) 48%, transparent) 0 14%, transparent 42%),
    radial-gradient(circle at 84% 18%, color-mix(in srgb, var(--gradient-partner) 52%, transparent) 0 16%, transparent 46%),
    linear-gradient(135deg, var(--gradient-anchor), color-mix(in srgb, var(--gradient-anchor) 72%, black 18%), var(--gradient-partner), var(--gradient-anchor));
  background-size: 160% 160%, 180% 180%, 240% 240%;
  animation: colorfly-gradient-bg 10.5s cubic-bezier(.72, 0, .22, 1) infinite;
}
.colorfly-moving-gradient-bg > div {
  position: relative;
  z-index: 1;
  max-width: 640px;
  text-align: center;
}
.colorfly-moving-gradient-bg::before,
.colorfly-moving-gradient-bg::after,
.colorfly-gradient-spark {
  content: "";
  position: absolute;
  z-index: 0;
  aspect-ratio: 1;
  border-radius: 50%;
  pointer-events: none;
  mix-blend-mode: screen;
}
.colorfly-moving-gradient-bg::before {
  left: -10%;
  top: -18%;
  width: min(520px, 72%);
  background:
    radial-gradient(circle, color-mix(in srgb, var(--gradient-partner) 88%, white 8%) 0%, transparent 66%),
    radial-gradient(circle at 68% 32%, color-mix(in srgb, var(--gradient-accent) 58%, white 10%) 0%, transparent 38%);
  opacity: .86;
  animation: colorfly-gradient-orb-one 11s cubic-bezier(.65, 0, .22, 1) infinite;
}
.colorfly-moving-gradient-bg::after {
  right: -12%;
  bottom: -24%;
  width: min(620px, 82%);
  background:
    radial-gradient(circle, color-mix(in srgb, var(--gradient-accent) 86%, white 6%) 0%, transparent 68%),
    radial-gradient(circle at 28% 72%, color-mix(in srgb, var(--gradient-partner) 62%, white 8%) 0%, transparent 42%);
  opacity: .78;
  animation: colorfly-gradient-orb-two 12.8s cubic-bezier(.56, 0, .25, 1) infinite;
}
.colorfly-gradient-spark {
  left: 42%;
  top: 44%;
  width: min(360px, 54%);
  background: radial-gradient(circle, color-mix(in srgb, var(--gradient-anchor) 64%, white 12%) 0%, transparent 62%);
  opacity: .46;
  animation: colorfly-gradient-spark 9.2s cubic-bezier(.62, 0, .2, 1) infinite;
}
@keyframes colorfly-gradient-bg {
  0%, 100% { background-position: 0% 46%, 100% 24%, 0% 50%; }
  18% { background-position: 44% 88%, 58% 12%, 34% 22%; }
  39% { background-position: 86% 38%, 18% 74%, 86% 64%; }
  63% { background-position: 26% 16%, 84% 92%, 42% 100%; }
  82% { background-position: 68% 68%, 32% 30%, 100% 34%; }
}
@keyframes colorfly-gradient-orb-one {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  22% { transform: translate3d(78%, 22%, 0) scale(1.12); }
  47% { transform: translate3d(44%, 86%, 0) scale(.92); }
  72% { transform: translate3d(112%, 56%, 0) scale(1.2); }
}
@keyframes colorfly-gradient-orb-two {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1.08); }
  19% { transform: translate3d(-48%, -18%, 0) scale(.9); }
  53% { transform: translate3d(-92%, -62%, 0) scale(1.14); }
  79% { transform: translate3d(-22%, -86%, 0) scale(.98); }
}
@keyframes colorfly-gradient-spark {
  0%, 100% { transform: translate3d(-12%, -8%, 0) scale(.84); }
  28% { transform: translate3d(52%, -34%, 0) scale(1.08); }
  58% { transform: translate3d(-44%, 38%, 0) scale(.96); }
  84% { transform: translate3d(20%, 28%, 0) scale(1.18); }
}
</style>

Moving gradient text

Copy the animated gradient text treatment from the visualizer, generated from the main and support colors.

Use when: you want gradient headline text.
<div class="colorfly-gradient-text-card">
  <small>Gradient type</small>
  <h2>Gradient on text</h2>
  <p>A moving text gradient built from your palette.</p>
</div>

<style>
.colorfly-gradient-text-card {
  --gradient-text-a: #8B0000;
  --gradient-text-b: #BF7373;
  --gradient-text-c: #B5A27F;
  position: relative;
  display: grid;
  place-items: center;
  min-height: 310px;
  overflow: hidden;
  padding: 42px;
  text-align: center;
  border-radius: 28px;
  background:
    radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--gradient-text-a) 8%, transparent), transparent 28%),
    linear-gradient(135deg, #fff, #fbfbfd);
}
.colorfly-gradient-text-card::before,
.colorfly-gradient-text-card::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  filter: blur(2px);
}
.colorfly-gradient-text-card::before {
  left: 9%;
  top: 15%;
  width: min(330px, 48%);
  aspect-ratio: 1;
  background: radial-gradient(circle, color-mix(in srgb, var(--gradient-text-a) 20%, transparent) 0%, transparent 68%);
  animation: colorfly-gradient-text-glow-one 8s cubic-bezier(.62, 0, .2, 1) infinite;
}
.colorfly-gradient-text-card::after {
  right: 7%;
  bottom: 6%;
  width: min(360px, 52%);
  aspect-ratio: 1;
  background: radial-gradient(circle, color-mix(in srgb, var(--gradient-text-c) 18%, transparent) 0%, transparent 70%);
  animation: colorfly-gradient-text-glow-two 9.5s cubic-bezier(.56, 0, .25, 1) infinite;
}
.colorfly-gradient-text-card small,
.colorfly-gradient-text-card p {
  position: relative;
  z-index: 1;
  color: #65616d;
}
.colorfly-gradient-text-card h2 {
  position: relative;
  z-index: 1;
  margin: 10px 0 12px;
  color: transparent;
  font-size: clamp(42px, 8vw, 96px);
  line-height: .92;
  background:
    radial-gradient(circle at 18% 50%, var(--gradient-text-b) 0 12%, transparent 38%),
    radial-gradient(circle at 82% 44%, var(--gradient-text-c) 0 14%, transparent 40%),
    linear-gradient(100deg, var(--gradient-text-a), var(--gradient-text-b), var(--gradient-text-c), var(--gradient-text-a));
  background-size: 220% 220%, 240% 240%, 280% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  animation: colorfly-gradient-text-shift 6.2s cubic-bezier(.68, 0, .22, 1) infinite;
}
@keyframes colorfly-gradient-text-shift {
  0%, 100% { background-position: 8% 52%, 92% 42%, 0% 50%; }
  27% { background-position: 78% 18%, 28% 82%, 42% 50%; }
  61% { background-position: 36% 92%, 86% 24%, 100% 50%; }
  84% { background-position: 92% 48%, 18% 40%, 58% 50%; }
}
@keyframes colorfly-gradient-text-glow-one {
  0%, 100% { transform: translate3d(0, 0, 0) scale(.92); }
  42% { transform: translate3d(80%, 32%, 0) scale(1.12); }
  72% { transform: translate3d(28%, 86%, 0) scale(.98); }
}
@keyframes colorfly-gradient-text-glow-two {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  36% { transform: translate3d(-62%, -18%, 0) scale(.9); }
  76% { transform: translate3d(-36%, -78%, 0) scale(1.12); }
}
</style>
Press Space to load new palette