Ocean Blue#004C99
Teal#00A6A6
Sand#D4CBB4
Slate Blue#35607D
Muted Olive#7E8B7C
Palette direction

Ocean Teal Sand Color Palette

This palette blends cool blues and subdued earth tones inspired by the logo's colors, creating a modern and approachable identity with strong contrasts for digital accessibility.

Split ComplementaryEducationbluetealsandeducation
palette-preview.example
Education color direction

Ocean Teal Sand Color Palette

This palette blends cool blues and subdued earth tones inspired by the logo's colors, creating a modern and approachable identity with strong contrasts for digital accessibility.

Logo contrast guide

Logo color pairings

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

Logo Charcoal #1A1A1A
on Sand #D4CBB4

10.8:1 Excellent

Logo Pure White #FFFFFF
on Ocean Blue #004C99

8.4:1 Excellent

Logo Charcoal #1A1A1A
on Teal #00A6A6

5.8:1 Strong

Logo Charcoal #1A1A1A
on Pure White #FFFFFF

17.4:1 Excellent
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.

Education Ocean Teal Sand Color Palette

The main colors harmonize a vibrant ocean blue with a contrasting teal and grounded sand tone, ensuring brand recognition and visual interest.

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
Signals8Split Complementary
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.Ocean Blue #004C99
HeadlineUsed for main titles and key messages.Sand #D4CBB4
LinkUsed for links and interactive text.Ocean Blue #004C99

Buttons

Primary Button
Contrast8.42:1AA
BackgroundOcean Blue #004C99
TextPure White #FFFFFF
Secondary Button
Contrast5.81:1AA
BackgroundTeal #00A6A6
TextCharcoal #1A1A1A
Outlined Button
Contrast3.00:1Low
BorderTeal #00A6A6
TextTeal #00A6A6

Interface

TextDefault readable body text.Charcoal #1A1A1A
Bg LightLight page or section background.Pure White #FFFFFF
Bg DarkDark page or section background.Off White #F7F7F7
IconSmall interface icons and marks.Slate Blue #35607D
BorderCards, inputs, and component borders.Slate Blue #35607D
DividerSubtle separators between content.Slate Blue #35607D
OutlineFocus rings and emphasis outlines.Slate Blue #35607D

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 harmonize a vibrant ocean blue with a contrasting teal and grounded sand tone, ensuring brand recognition and visual interest.

PrimaryOcean Blue

RolesLogo, Link, Btn Primary Bg

Ocean Blue conveys professionalism and trust, forming the visual anchor for the brand.

HEX#004C99
RGB0, 76, 153
HSL210, 100, 30
CMYK100, 50, 0, 40
SecondaryTeal

RolesBtn Secondary Bg, Btn Outlined Border, Btn Outlined Text

Teal adds a refreshing, balanced vibrancy that complements the dominant blue for interactive elements.

HEX#00A6A6
RGB0, 166, 166
HSL180, 100, 33
CMYK100, 0, 0, 35
TertiarySand

RolesHeadline

Sand provides an organic warmth that softens and balances the cooler main colors.

HEX#D4CBB4
RGB212, 203, 180
HSL43, 27, 77
CMYK0, 4, 15, 17

Support Colors

Support colors offer subtle complementary accents derived from deeper blues and muted olives, reinforcing the main palette without overpowering it.

Slate Blue

RolesIcon, Border, Divider, Outline

Slate Blue extends the blue family with a softer tone for borders and icons.

HEX#35607D
RGB53, 96, 125
HSL204, 40, 35
CMYK58, 23, 0, 51
Muted Olive

Muted Olive introduces an earthiness that harmonizes with Sand while supporting teal accents.

HEX#7E8B7C
RGB126, 139, 124
HSL112, 6, 52
CMYK9, 0, 11, 45

Neutral Colors

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

Pure White

RolesBg Light, Btn Primary Text

HEX#FFFFFF
RGB255, 255, 255
HSL0, 0, 100
CMYK0, 0, 0, 0
Off White

RolesBg Dark

HEX#F7F7F7
RGB247, 247, 247
HSL0, 0, 97
CMYK0, 0, 0, 3
Charcoal

RolesText, Btn Secondary Text

HEX#1A1A1A
RGB26, 26, 26
HSL0, 0, 10
CMYK0, 0, 0, 90

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": "Ocean Blue",
            "hex": "#004C99",
            "role": "main",
            "cmyk": {
                "c": 100,
                "m": 50,
                "y": 0,
                "k": 40,
                "source": "colorfly"
            }
        },
        {
            "name": "Teal",
            "hex": "#00A6A6",
            "role": "main",
            "cmyk": {
                "c": 100,
                "m": 0,
                "y": 0,
                "k": 35,
                "source": "colorfly"
            }
        },
        {
            "name": "Sand",
            "hex": "#D4CBB4",
            "role": "main",
            "cmyk": {
                "c": 0,
                "m": 4,
                "y": 15,
                "k": 17,
                "source": "colorfly"
            }
        },
        {
            "name": "Slate Blue",
            "hex": "#35607D",
            "role": "support",
            "cmyk": {
                "c": 58,
                "m": 23,
                "y": 0,
                "k": 51,
                "source": "colorfly"
            }
        },
        {
            "name": "Muted Olive",
            "hex": "#7E8B7C",
            "role": "support",
            "cmyk": {
                "c": 9,
                "m": 0,
                "y": 11,
                "k": 45,
                "source": "colorfly"
            }
        },
        {
            "name": "Pure White",
            "hex": "#FFFFFF",
            "role": "neutral",
            "cmyk": {
                "c": 0,
                "m": 0,
                "y": 0,
                "k": 0,
                "source": "colorfly"
            }
        },
        {
            "name": "Off White",
            "hex": "#F7F7F7",
            "role": "neutral",
            "cmyk": {
                "c": 0,
                "m": 0,
                "y": 0,
                "k": 3,
                "source": "colorfly"
            }
        },
        {
            "name": "Charcoal",
            "hex": "#1A1A1A",
            "role": "neutral",
            "cmyk": {
                "c": 0,
                "m": 0,
                "y": 0,
                "k": 90,
                "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-ocean-blue: #004C99;
  --color-teal: #00A6A6;
  --color-sand: #D4CBB4;
  --color-slate-blue: #35607D;
  --color-muted-olive: #7E8B7C;
  --color-pure-white: #FFFFFF;
  --color-off-white: #F7F7F7;
  --color-charcoal: #1A1A1A;
}

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: #004C99;
  --role-link: #004C99;
  --role-btn-primary-bg: #004C99;
  --role-btn-secondary-bg: #00A6A6;
  --role-btn-outlined-border: #00A6A6;
  --role-btn-outlined-text: #00A6A6;
  --role-headline: #D4CBB4;
  --role-icon: #35607D;
  --role-border: #35607D;
  --role-divider: #35607D;
  --role-outline: #35607D;
  --role-bg-light: #FFFFFF;
  --role-btn-primary-text: #FFFFFF;
  --role-bg-dark: #F7F7F7;
  --role-text: #1A1A1A;
  --role-btn-secondary-text: #1A1A1A;
}

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.
{
    "ocean-blue": "#004C99",
    "teal": "#00A6A6",
    "sand": "#D4CBB4",
    "slate-blue": "#35607D",
    "muted-olive": "#7E8B7C",
    "pure-white": "#FFFFFF",
    "off-white": "#F7F7F7",
    "charcoal": "#1A1A1A"
}

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: #004C99;
  --gradient-partner: #739DC7;
  --gradient-accent: #35607D;
  --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: #004C99;
  --gradient-text-b: #739DC7;
  --gradient-text-c: #35607D;
  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