Color
At the cornerstone of ActiveCampaign’s color palette is Camp’s AC Blue. We support AC Blue with a palette that guides our users toward action and provides meaningful insights along the way.
Applying color
Semantic tokens apply color in a consistent and meaningful way across the ActiveCampaign platform.
Design tokens
Semantic tokens for color represent small, repeatable design decisions. Instead of using raw hex values, we refer to a token that describes how and where it should be used. This makes it easy to make centralized changes and continue to modernize the ActiveCampaign interface at a broad scale.
How tokens are grouped
Camp color tokens are grouped by category, property, role, intensity, and state. The further into the structure you go, the more specific the groupings become.
Category
Category represents a broad color grouping, such as SemanticColors. Camp also ships PrimitiveColors, but SemanticColors should be used wherever possible.
Property
Properties are sub-divisions within the SemanticColors category that describe what the color should be applied to. The following properties can be applied to designs:
- Background
- Border
- Text
- Icon
Role
Foundational colors
Neutral midnight is used as the base of the ActiveCampaign platform. Neutral colors, denoted in our tokens as having a role of default or supportive, can be used with any property to create the base of ActiveCampaign’s UI.
eg. bg-default, bg-supportive, border-default, border-supportive, text-default, text-supportive, icon-decorative, icon-interactive
Functional colors
Functional colors communicate role with a specific meaning, including status, alerts, and actions that request attention.
eg. success, warning, danger, AI, upgrade, educational
Intensity
Emphasis denotes that a particular element should hold more weight, or emphasis, within the UI. emphasis backgrounds should always be paired with on-emphasis text or foreground.
The most common use cases for emphasis are Camp’s primary and destructive buttons. They utilize bright, bold background colors to grab the user’s attention.
State
State represents the current state of the element. An element may retain its property, role, and intensity with varying states.
Disabled
Tokens with the disabled state use opacity in addition to color token values to indicate that the element is not interactive.
Semantic color tokens
Install
To get started using Camp’s new SemanticColors tokens in development, you’ll need to begin by installing the @camp/tokens package:yarn add @camp/tokens
Consumers are able to access the corresponding hex values via the object and can apply them to their styles directly. To access the SemanticColors object, you’ll need to import it like so:
import { SemanticColors } from "@camp/tokens"
const StyledButton = styled('button')({
backgroundColor: SemanticColors['bg-success'],
...
})Background
bg-defaultbg-hoverbg-activebg-disabledbg-supportivebg-successbg-success-hoverbg-success-emphasisbg-warningbg-warning-hoverbg-dangerbg-danger-hoverbg-informationalbg-informational-hoverbg-educationalbg-educational-hoverbg-upgradebg-upgrade-hoverbg-ai-hoverbg-ai-activebg-primary-emphasisbg-primary-emphasis-hoverbg-primary-emphasis-activebg-primary-emphasis-disabledbg-primary-hoverbg-primary-activebg-default-emphasisbg-destructive-emphasisbg-destructive-emphasis-hoverbg-destructive-emphasis-activebg-destructive-hoverbg-destructive-activeText
text-defaulttext-supportivetext-successtext-on-emphasistext-disabledtext-primarytext-primary-on-emphasistext-destructivetext-destructive-on-emphasisBorder
border-ai-activeborder-defaultborder-default-activeborder-supportiveborder-focusborder-focus-highlightborder-informationalborder-upgradeborder-educationalborder-successborder-warningborder-dangerborder-disabledborder-primary-default-activeborder-primary-default-hoverborder-primary-emphasisborder-primary-emphasis-activeborder-primary-emphasis-hoverborder-primary-on-emphasisborder-destructive-default-activeborder-destructive-focusborder-destructive-default-hoverborder-destructive-emphasisborder-destructive-emphasis-hoverborder-destructive-emphasis-activeIcon
icon-decorativeicon-decorative-informationalicon-decorative-successicon-decorative-warningicon-decorative-dangericon-decorative-educationalicon-decorative-upgradeicon-decorative-on-emphasisicon-interactiveicon-interactive-primaryicon-interactive-destructiveicon-interactive-hovericon-interactive-on-emphasisPrimitive color tokens
Install
To use Camp’s new PrimitiveColors tokens in development, you’ll need to begin by installing the @camp/tokens package:yarn add @camp/tokens
Consumers are able to access the corresponding hex values via the object and can apply them to their styles directly. To access the PrimitiveColors object, you’ll need to import it like so:
import { PrimitiveColors } from "@camp/tokens"
const StyledButton = styled('button')({
color: PrimitiveColors['dusk']['1000'],
...
})Loading...
PrimitiveColors['ac-blue']['100']PrimitiveColors['ac-blue']['200']PrimitiveColors['ac-blue']['300']PrimitiveColors['ac-blue']['400']PrimitiveColors['ac-blue']['500']PrimitiveColors['ac-blue']['600']PrimitiveColors['ac-blue']['700']PrimitiveColors['ac-blue']['800']PrimitiveColors['ac-blue']['900']PrimitiveColors['ac-blue']['1000']Loading...
PrimitiveColors['dawn']['100']PrimitiveColors['dawn']['200']PrimitiveColors['dawn']['300']PrimitiveColors['dawn']['400']PrimitiveColors['dawn']['500']PrimitiveColors['dawn']['600']PrimitiveColors['dawn']['700']PrimitiveColors['dawn']['800']PrimitiveColors['dawn']['900']PrimitiveColors['dawn']['1000']Loading...
PrimitiveColors['dusk']['100']PrimitiveColors['dusk']['200']PrimitiveColors['dusk']['300']PrimitiveColors['dusk']['400']PrimitiveColors['dusk']['500']PrimitiveColors['dusk']['600']PrimitiveColors['dusk']['700']PrimitiveColors['dusk']['800']PrimitiveColors['dusk']['900']PrimitiveColors['dusk']['1000']Loading...
PrimitiveColors['violet']['100']PrimitiveColors['violet']['200']PrimitiveColors['violet']['300']PrimitiveColors['violet']['400']PrimitiveColors['violet']['500']PrimitiveColors['violet']['600']PrimitiveColors['violet']['700']PrimitiveColors['violet']['800']PrimitiveColors['violet']['900']PrimitiveColors['violet']['1000']Loading...
PrimitiveColors['magenta']['100']PrimitiveColors['magenta']['200']PrimitiveColors['magenta']['300']PrimitiveColors['magenta']['400']PrimitiveColors['magenta']['500']PrimitiveColors['magenta']['600']PrimitiveColors['magenta']['700']PrimitiveColors['magenta']['800']PrimitiveColors['magenta']['900']PrimitiveColors['magenta']['1000']Loading...
PrimitiveColors['maroon']['100']PrimitiveColors['maroon']['200']PrimitiveColors['maroon']['300']PrimitiveColors['maroon']['400']PrimitiveColors['maroon']['500']PrimitiveColors['maroon']['600']PrimitiveColors['maroon']['700']PrimitiveColors['maroon']['800']PrimitiveColors['maroon']['900']PrimitiveColors['maroon']['1000']Loading...
PrimitiveColors['midday']['100']PrimitiveColors['midday']['200']PrimitiveColors['midday']['300']PrimitiveColors['midday']['400']PrimitiveColors['midday']['500']PrimitiveColors['midday']['600']PrimitiveColors['midday']['700']PrimitiveColors['midday']['800']PrimitiveColors['midday']['900']PrimitiveColors['midday']['1000']Loading...
PrimitiveColors['midnight']['100']PrimitiveColors['midnight']['200']PrimitiveColors['midnight']['300']PrimitiveColors['midnight']['400']PrimitiveColors['midnight']['500']PrimitiveColors['midnight']['600']PrimitiveColors['midnight']['700']PrimitiveColors['midnight']['800']PrimitiveColors['midnight']['900']PrimitiveColors['midnight']['1000']Loading...
PrimitiveColors['moss']['100']PrimitiveColors['moss']['200']PrimitiveColors['moss']['300']PrimitiveColors['moss']['400']PrimitiveColors['moss']['500']PrimitiveColors['moss']['600']PrimitiveColors['moss']['700']PrimitiveColors['moss']['800']PrimitiveColors['moss']['900']PrimitiveColors['moss']['1000']Loading...
PrimitiveColors['red']['100']PrimitiveColors['red']['200']PrimitiveColors['red']['300']PrimitiveColors['red']['400']PrimitiveColors['red']['500']PrimitiveColors['red']['600']PrimitiveColors['red']['700']PrimitiveColors['red']['800']PrimitiveColors['red']['900']PrimitiveColors['red']['1000']Loading...
PrimitiveColors['white']
Loading...
PrimitiveColors['black']