Brand
Primary identity and call-to-action hue.
usecelo semantic color token workbench
Tune three anchor colors, generate a semantic token system, and open the live preview to compare the original website against a token-driven clone. Export JSON, CSS variables, or Tailwind once the palette feels right.
Preview the palette on a real site, then export the tokens once the colors feel right.Compare the original site and a token-driven clone before exporting.
These three seeds expand into primitive scales and semantic roles.
Primary identity and call-to-action hue.
Secondary highlight for emphasis and charts.
Surfaces, borders, text, and base UI structure.
Preview the named roles that matter most in generated interfaces.
Main app background
Buttons and links
Selected states
Positive status
Attention needed
Critical actions
surface
#F3F4F5#E4E6E8#FFFFFF#E4E6E8#EFF5FE#3574DCtext
#222837#545A69#6B7280#FFFFFF#2F67C3border
#D0D2D6#B5B9C0#6B7280#9DC1FBaction
#3574DC#2F67C3#2854A0#F97316#DC6717#E4E6E8feedback
#CA2FE3#FADAFF#E23C12#FFDDD4#E12F39#FFDADCchart
#3B82F6#F97316#E433FE#FF4210#6B7280Use semantic.surface for backgrounds, semantic.text for readable content, semantic.action for interactive states, and semantic.feedback for status messaging before falling back to primitive scales.
Move between implementation targets without renaming tokens by hand.
{
"primitive": {
"brand": {
"50": "#EFF5FE",
"100": "#DCE9FD",
"200": "#C0D7FC",
"300": "#9DC1FB",
"400": "#6AA0F8",
"500": "#3B82F6",
"600": "#3574DC",
"700": "#2F67C3",
"800": "#2854A0",
"900": "#1F407A",
"950": "#172B53"
},
"accent": {
"50": "#FFF4EC",
"100": "#FEE6D5",
"200": "#FDD2B4",
"300": "#FCB98B",
"400": "#FA954E",
"500": "#F97316",
"600": "#DC6717",
"700": "#C05B18",
"800": "#9A4B1A",
"900": "#6F3A1C",
"950": "#44281E"
},
"neutral": {
"50": "#F3F4F5",
"100": "#E4E6E8",
"200": "#D0D2D6",
"300": "#B5B9C0",
"400": "#8F949E",
"500": "#6B7280",
"600": "#5F6674",
"700": "#545A69",
"800": "#454B5A",
"900": "#333948",
"950": "#222837"
},
"success": {
"50": "#FDEFFF",
"100": "#FADAFF",
"200": "#F6BEFF",
"300": "#F299FF",
"400": "#EA64FE",
"500": "#E433FE",
"600": "#CA2FE3",
"700": "#B02BC9",
"800": "#8D25A5",
"900": "#661F7D",
"950": "#3F1855"
},
"warning": {
"50": "#FFF0EC",
"100": "#FFDDD4",
"200": "#FFC3B3",
"300": "#FFA188",
"400": "#FF6F49",
"500": "#FF4210",
"600": "#E23C12",
"700": "#C43614",
"800": "#9D2E16",
"900": "#712519",
"950": "#461C1C"
},
"danger": {
"50": "#FFEFEF",
"100": "#FFDADC",
"200": "#FFBEC1",
"300": "#FF999E",
"400": "#FE646B",
"500": "#FE333C",
"600": "#E12F39",
"700": "#C42B35",
"800": "#9D2531",
"900": "#711F2C",
"950": "#451827"
}
},
"semantic": {
"surface": {
"canvas": "#F3F4F5",
"sunken": "#E4E6E8",
"elevated": "#FFFFFF",
"floating": "#E4E6E8",
"accent": "#EFF5FE",
"accentStrong": "#3574DC"
},
"text": {
"primary": "#222837",
"secondary": "#545A69",
"muted": "#6B7280",
"inverse": "#FFFFFF",
"accent": "#2F67C3"
},
"border": {
"subtle": "#D0D2D6",
"default": "#B5B9C0",
"strong": "#6B7280",
"accent": "#9DC1FB"
},
"action": {
"primary": "#3574DC",
"primaryHover": "#2F67C3",
"primaryActive": "#2854A0",
"secondary": "#F97316",
"secondaryHover": "#DC6717",
"ghostHover": "#E4E6E8"
},
"feedback": {
"success": "#CA2FE3",
"successSoft": "#FADAFF",
"warning": "#E23C12",
"warningSoft": "#FFDDD4",
"danger": "#E12F39",
"dangerSoft": "#FFDADC"
},
"chart": {
"one": "#3B82F6",
"two": "#F97316",
"three": "#E433FE",
"four": "#FF4210",
"five": "#6B7280"
}
}
}