Color Token Reference

This page lists every color token the Agentforce iOS SDK exposes for theming, with its default value in both light and dark mode.

There are 275 color tokens in total: 51 generic tokens and 224 component tokens across 50 component groups. Groups and token order match AgentforceColorPalette, so this page reads top-to-bottom the same way the components are laid out.

The palette has two layers:

  1. Generic tokens (declared by SharedUI.Colors): surface1, accent1, onSurface1, border1, and so on. These carry explicit light and dark values.
  2. Component tokens (declared by AgentforceColorPalette): every UI element has its own token — for example titleBarBackground, sendButtonEnabledBackground, carouselSurface. Each one falls back directly to a generic token, with no component-to-component chaining, so changing one component never affects another that happens to share the same color.

Each component token resolves its default in one of three ways:

  • Alias — falls back to a generic token (shown in the Resolves to column). Its default light and dark values are that generic token’s values.
  • Fixed literal — a single color that’s identical in light and dark.
  • Per-mode literal — distinct light and dark colors, seeded from the Cosmos brand palette.

Override any token — generic or component — through AgentforceThemeOverrides, or by subclassing AgentforceCosmosLightColors / AgentforceCosmosDarkColors. See Theming for usage.

Only aliases cascade. Overriding a generic token moves every component token that aliases it, but the 16 tokens below hold a literal instead of an alias, so a generic override never reaches them. Set them individually if you need to move them:

richTextLinkColor, markdownLinkColor, citationExternalLinkDefaultColor, attachmentPreviewPlaceholderBackground, pdfViewerPageBackground, mediaViewerBackground, mediaViewerCloseIconTint, mediaViewerCloseIconBackground, auraAvatarIconTint, auraColor1, auraColor2, inputBarPlaceholderColor, launcherPlaceholderColor, agentAvatarLiveBackground, utteranceBackground, voiceRoomCircleButtonSelectedBackground.

Most notably, link colors are in that list — overriding .accent1 does not change the color of links in rich text or markdown.

Each token’s rawValue is identical to its palette property name.

The design-system base palette. Every component token below ultimately resolves to one of these (unless it’s a fixed or per-mode literal). Override these to re-skin the whole UI at once.

A caveat on breadth: 21 of these generic tokens are declared by the shared design system but aren’t currently read by any Agentforce view, so overriding them has no visible effect today — borderInverse2, borderDisabled1, accentContainer2, borderAccent1, borderAccent2, errorContainer2, borderError1, successContainer2, success1, disabled1, disabledContainer2, brandBase50, brandBase70, brandBase90, errorBase50, feedbackWarning1, feedbackWarningContainer1, warning1, information1, informationContainer1, and cloudBlue60. They’re listed for completeness and may become live as more shared components are adopted.

Token (AgentforceColorToken)LightDark
.surface1#FFFFFF#1F1F1F
.surface2#F3F3F3#302D2D
.onSurface1#000000#FFFFFF
.onSurface2#222222#E8E8E8
.onSurface3#939393#E0E0E0
.onSurfaceInverse1#FFFFFF#FFFFFF
.surfaceContainer1#F3F3F3#2E2E2E
.surfaceContainer2#F5F5F5#777777
.surfaceContainer3#D8D8D8#BEBEBE
.surfaceContainerInverse1#032D60#032D60
.border1#DEDFE1#6E6D6D
.border2#DADCE0#5F6368
.borderInverse2#032D60#032D60
.borderDisabled1#C9C9C9#C9C9C9
.accent1#0170CB#008AF7
.accent2#F2F2F2#777777
.accent3#D6E6FF#3A3A3A
.accentContainer1#E9F5FF#0077D9
.accentContainer2#0250D9#0250D9
.onAccent1#FFFFFF#FFFFFF
.borderAccent1#066AFE#066AFE
.borderAccent2#0250D9#0250D9
.error1#BA0517#E24857
.errorContainer1#FCE8E6#FEB8AB
.errorContainer2#FDB6C5#FDB6C5
.onError1#EA4335#9B000F
.borderError1#BA0517#9B000F
.successContainer1#2E844A#2E844A
.successContainer2#04E1CB#04E1CB
.success1#056764#056764
.onSuccess1#FFFFFF#FFFFFF
.borderSuccess1#2E844A#2E844A
.disabled1#C9C9C9#C9C9C9
.disabledContainer1#EBEBEB#2D2D30
.disabledContainer2#E8EAED#484848
.onDisabled1#898A8D#C1C1C1
.onDisabled2#DADADA#666666
.brandBase50#066AFE#066AFE
.brandBase70#7CB1FE#7CB1FE
.brandBase90#E3F2FD#2A3441
.errorBase50#E3066A#E3066A
.feedbackWarning1#8C4B02#8C4B02
.feedbackWarningContainer1#F9E3B6#F9E3B6
.warning1#8C4B02#8C4B02
.warningContainer1#F9E3B6#F9E3B6
.info1#0B5CAB#0B5CAB
.infoContainer1#D8E6FE#D8E6FE
.information1#0B5CAB#0B5CAB
.informationContainer1#D8E6FE#D8E6FE
.onWarning1#8C4B02#8C4B02
.cloudBlue60#0D9DDA#0D9DDA

Every UI element has its own token, grouped below by component.

The root chat surface.

Token (AgentforceColorToken)Resolves toLightDark
.chatBackgroundsurface1#FFFFFF#1F1F1F

The conversation header (title, icons, divider).

Token (AgentforceColorToken)Resolves toLightDark
.titleBarBackgroundsurface1#FFFFFF#1F1F1F
.titleBarTextColoronSurface1#000000#FFFFFF
.titleBarIconTintonSurface3#939393#E0E0E0
.titleBarDividerColorborder1#DEDFE1#6E6D6D

The message composer row.

Token (AgentforceColorToken)Resolves toLightDark
.inputBarBackgroundsurface1#FFFFFF#1F1F1F
.inputBarListeningBackgroundaccent3#D6E6FF#3A3A3A
.inputBarFieldBackgroundsurface1#FFFFFF#1F1F1F
.inputBarFieldBorderColoronSurface3#939393#E0E0E0
.inputBarTextColoronSurface1#000000#FFFFFF
.inputBarPlaceholderColorper-mode literal#757575#D2D2D2
.inputBarIconTintonSurface3#939393#E0E0E0
.inputBarTopDividerColorborder1#DEDFE1#6E6D6D
.inputBarCursorColoraccent1#0170CB#008AF7
.inputBarAttachmentDividerColorborder1#DEDFE1#6E6D6D

The send-message button.

Token (AgentforceColorToken)Resolves toLightDark
.sendButtonEnabledBackgroundaccent1#0170CB#008AF7
.sendButtonDisabledBackgroundonDisabled1#898A8D#C1C1C1
.sendButtonIconTintonAccent1#FFFFFF#FFFFFF

The voice-entry button in the input bar.

Token (AgentforceColorToken)Resolves toLightDark
.voiceButtonBackgroundonSurface1#000000#FFFFFF
.voiceButtonBorderonSurface1#000000#FFFFFF
.voiceButtonAccentColoraccent1#0170CB#008AF7

The agent avatar in the chat feed.

Token (AgentforceColorToken)Resolves toLightDark
.agentAvatarBackgroundaccent3#D6E6FF#3A3A3A
.agentAvatarIconTintaccent1#0170CB#008AF7
.agentAvatarLiveBackgroundper-mode literal#05628A#FFFFFF
.agentAvatarLiveIconTintaccent3#D6E6FF#3A3A3A

Agent name and message text.

Token (AgentforceColorToken)Resolves toLightDark
.agentMessageNameColoronSurface1#000000#FFFFFF
.agentMessageTextColoronSurface1#000000#FFFFFF

The end user’s message bubble.

Token (AgentforceColorToken)Resolves toLightDark
.userMessageBubbleBackgroundaccentContainer1#E9F5FF#0077D9
.userMessageBubbleTextColoronSurface1#000000#FFFFFF
.userMessageStatusColoronSurface2#222222#E8E8E8
.userMessageErrorColorerror1#BA0517#E24857

Suggested reply and chat-response buttons.

Token (AgentforceColorToken)Resolves toLightDark
.chatResponseButtonBackgroundsurface1#FFFFFF#1F1F1F
.chatResponseButtonTextColoraccent1#0170CB#008AF7
.chatResponseButtonDisabledBackgroundonDisabled2#DADADA#666666
.chatResponseButtonDisabledTextColoronDisabled1#898A8D#C1C1C1
.chatResponseButtonPrimaryBackgroundaccent1#0170CB#008AF7
.chatResponseButtonPrimaryTextColoronAccent1#FFFFFF#FFFFFF

Thumbs up / down / copy row under a message.

Token (AgentforceColorToken)Resolves toLightDark
.messageActionIconActiveTintaccent1#0170CB#008AF7
.messageActionIconInactiveTintonSurface3#939393#E0E0E0

The “why wasn’t this helpful?” feedback sheet.

Token (AgentforceColorToken)Resolves toLightDark
.feedbackBackgroundsurface1#FFFFFF#1F1F1F
.feedbackTextColoronSurface1#000000#FFFFFF
.feedbackBorderColorborder1#DEDFE1#6E6D6D
.feedbackButtonBackgroundaccent1#0170CB#008AF7
.feedbackButtonDisabledBackgrounddisabledContainer1#EBEBEB#2D2D30
.feedbackButtonTextColoronAccent1#FFFFFF#FFFFFF
.feedbackButtonDisabledTextColoronDisabled1#898A8D#C1C1C1

The four toast status styles.

Token (AgentforceColorToken)Resolves toLightDark
.toastInfoBackgroundinfoContainer1#D8E6FE#D8E6FE
.toastInfoForegroundinfo1#0B5CAB#0B5CAB
.toastSuccessBackgroundsuccessContainer1#2E844A#2E844A
.toastSuccessForegroundonSuccess1#FFFFFF#FFFFFF
.toastWarningBackgroundwarningContainer1#F9E3B6#F9E3B6
.toastWarningForegroundonWarning1#8C4B02#8C4B02
.toastErrorBackgrounderrorContainer1#FCE8E6#FEB8AB
.toastErrorForegroundonError1#EA4335#9B000F

More menu, multi-modal sheet, action list, agent selector.

Token (AgentforceColorToken)Resolves toLightDark
.modalSheetBackgroundsurface1#FFFFFF#1F1F1F
.modalSheetTitleColoronSurface1#000000#FFFFFF
.modalSheetItemTextColoronSurface2#222222#E8E8E8
.modalSheetItemIconTintonSurface3#939393#E0E0E0
.modalSheetDividerColorborder1#DEDFE1#6E6D6D
.modalSheetDoneButtonBackgroundaccent1#0170CB#008AF7
.modalSheetDoneButtonTextColoronAccent1#FFFFFF#FFFFFF

Error shown inline inside an agent response.

Token (AgentforceColorToken)Resolves toLightDark
.messageErrorBackgrounderrorContainer1#FCE8E6#FEB8AB
.messageErrorTextColorerror1#BA0517#E24857

The floating launcher entry point.

Token (AgentforceColorToken)Resolves toLightDark
.launcherBackgroundsurface1#FFFFFF#1F1F1F
.launcherInputBorderColoronSurface3#939393#E0E0E0
.launcherIconTintonSurface3#939393#E0E0E0
.launcherTextColoronSurface1#000000#FFFFFF
.launcherUnreadDotColoraccent1#0170CB#008AF7
.launcherFlashBackgroundaccent3#D6E6FF#3A3A3A
.launcherIconTileTintaccent1#0170CB#008AF7
.launcherPlaceholderColorper-mode literal#757575#D2D2D2

Suggested-utterance chips and their list.

Token (AgentforceColorToken)Resolves toLightDark
.utteranceBackgroundper-mode literal#ECF5FE#3A3A3A
.utteranceTextColoraccent1#0170CB#008AF7
.utteranceIconTintaccent1#0170CB#008AF7
.utteranceListLabelColoronSurface2#222222#E8E8E8
.utteranceListBackgroundsurface1#FFFFFF#1F1F1F

The horizontal card carousel.

Token (AgentforceColorToken)Resolves toLightDark
.carouselSurfacesurface1#FFFFFF#1F1F1F
.carouselItemBorderColoraccent1#0170CB#008AF7
.carouselTitleColoronSurface1#000000#FFFFFF
.carouselDotSelectedColoraccent1#0170CB#008AF7
.carouselDotUnselectedColoronSurface3#939393#E0E0E0
.carouselFadeOverlayColorsurface1#FFFFFF#1F1F1F
.carouselPlaceholderTintonSurface3#939393#E0E0E0

Citation chips, list, and external link.

Token (AgentforceColorToken)Resolves toLightDark
.citationBackgroundsurfaceContainer1#F3F3F3#2E2E2E
.citationTextColoronSurface1#000000#FFFFFF
.citationIconTintonSurface3#939393#E0E0E0
.citationListBackgroundsurface1#FFFFFF#1F1F1F
.citationDividerColorborder1#DEDFE1#6E6D6D
.citationExternalLinkDefaultColorfixed literal#4892E7#4892E7

Rich link preview card.

Token (AgentforceColorToken)Resolves toLightDark
.richLinkBackgroundsurfaceContainer2#F5F5F5#777777
.richLinkImageBackgroundsurfaceContainer2#F5F5F5#777777
.richLinkPlaceholderTintonSurface3#939393#E0E0E0
.richLinkTitleColoronSurface1#000000#FFFFFF
.richLinkUrlColoronSurface2#222222#E8E8E8

Inline web link chip.

Token (AgentforceColorToken)Resolves toLightDark
.webLinkBackgroundsurfaceContainer2#F5F5F5#777777
.webLinkTextColoronSurface1#000000#FFFFFF
.webLinkFaviconTintonSurface3#939393#E0E0E0

Record info card.

Token (AgentforceColorToken)Resolves toLightDark
.recordInfoBackgroundsurfaceContainer1#F3F3F3#2E2E2E
.recordInfoTextColoronSurface1#000000#FFFFFF
.recordInfoLabelColoronSurface1#000000#FFFFFF
.recordInfoMoreIconTintonSurface3#939393#E0E0E0
.recordInfoDividerColorborder1#DEDFE1#6E6D6D

The full-screen voice conversation room, including its circle buttons (mute, stop, closed captions).

Token (AgentforceColorToken)Resolves toLightDark
.voiceRoomBackgroundsurface1#FFFFFF#1F1F1F
.voiceRoomTextColoronSurface1#000000#FFFFFF
.voiceRoomErrorPulseColoronSurface3#939393#E0E0E0
.voiceRoomCircleButtonBorderColorborder1#DEDFE1#6E6D6D
.voiceRoomCircleButtonSelectedBackgroundper-mode literal#ECF5FE#3A3A3A

Record picker list.

Token (AgentforceColorToken)Resolves toLightDark
.recordSelectorTextColoronSurface1#000000#FFFFFF
.recordSelectorDisabledTextColoronDisabled1#898A8D#C1C1C1
.recordSelectorRadioSelectedColoraccent1#0170CB#008AF7
.recordSelectorRadioUnselectedColorsurfaceContainer3#D8D8D8#BEBEBE
.recordSelectorDividerColorborder1#DEDFE1#6E6D6D

Expandable JSON object viewer.

Token (AgentforceColorToken)Resolves toLightDark
.jsonViewerBackgroundsurfaceContainer1#F3F3F3#2E2E2E
.jsonViewerTextColoronSurface1#000000#FFFFFF
.jsonViewerExpandTextColoraccent1#0170CB#008AF7
.jsonViewerDividerColorborder1#DEDFE1#6E6D6D
.jsonViewerFadeOverlayColorsurfaceContainer1#F3F3F3#2E2E2E

Email component surface.

Token (AgentforceColorToken)Resolves toLightDark
.emailBackgroundsurfaceContainer1#F3F3F3#2E2E2E

Shimmer placeholder while content loads.

Token (AgentforceColorToken)Resolves toLightDark
.stencilShimmerColorsurfaceContainer3#D8D8D8#BEBEBE

Record-actions sheet.

Token (AgentforceColorToken)Resolves toLightDark
.actionSheetBackgroundsurface1#FFFFFF#1F1F1F
.actionSheetIconTintonSurface3#939393#E0E0E0
.actionSheetTextColoronSurface1#000000#FFFFFF
.actionSheetExternalIconTintonSurface3#939393#E0E0E0
.actionSheetDividerColorborder1#DEDFE1#6E6D6D

Toxicity warning block.

Token (AgentforceColorToken)Resolves toLightDark
.toxicityTextColoronSurface1#000000#FFFFFF
.toxicityIconTintonSurface3#939393#E0E0E0
.toxicityDividerColorborder1#DEDFE1#6E6D6D

Shared by pre-chat field, secure-form field, text input, and pickers.

Token (AgentforceColorToken)Resolves toLightDark
.formFieldLabelColoronSurface2#222222#E8E8E8
.formFieldErrorColorerror1#BA0517#E24857
.formFieldRequiredColorerror1#BA0517#E24857
.formFieldBackgroundsurface1#FFFFFF#1F1F1F
.formFieldDisabledBackgrounddisabledContainer1#EBEBEB#2D2D30
.formFieldBorderColoronSurface3#939393#E0E0E0
.formFieldErrorBorderColorerror1#BA0517#E24857
.formFieldTextColoronSurface1#000000#FFFFFF
.formFieldDisabledTextColoronDisabled1#898A8D#C1C1C1
.formFieldPlaceholderColoronSurface3#939393#E0E0E0
.formFieldArrowTintonSurface3#939393#E0E0E0
.formFieldCursorColoraccent1#0170CB#008AF7
.formFieldClearIconTintonSurface3#939393#E0E0E0

Checkbox and its label.

Token (AgentforceColorToken)Resolves toLightDark
.checkBoxBackgroundsurface1#FFFFFF#1F1F1F
.checkBoxDisabledBackgrounddisabledContainer1#EBEBEB#2D2D30
.checkBoxCheckedColoraccent1#0170CB#008AF7
.checkBoxUncheckedColoronSurface3#939393#E0E0E0
.checkBoxCheckmarkColoronAccent1#FFFFFF#FFFFFF
.checkBoxLabelColoronSurface1#000000#FFFFFF
.checkBoxDisabledLabelColoronDisabled1#898A8D#C1C1C1
.checkBoxDisabledFillColoronDisabled1#898A8D#C1C1C1

Pre-chat form page.

Token (AgentforceColorToken)Resolves toLightDark
.preChatFormPageBackgroundaccent3#D6E6FF#3A3A3A
.preChatFormInstructionColoronSurface1#000000#FFFFFF
.preChatFormAvatarBackgroundaccent1#0170CB#008AF7
.preChatFormAvatarIconTintsurface1#FFFFFF#1F1F1F
.preChatFormSubmitBackgroundaccent1#0170CB#008AF7
.preChatFormSubmitTextColorsurface1#FFFFFF#1F1F1F
.preChatFormSubmitDisabledBackgroundonDisabled2#DADADA#666666
.preChatFormSubmitDisabledTextColoronDisabled1#898A8D#C1C1C1
.preChatFormRequiredColorerror1#BA0517#E24857

Secure form page.

Token (AgentforceColorToken)Resolves toLightDark
.secureFormPageBackgroundaccent3#D6E6FF#3A3A3A
.secureFormTitleColoronSurface1#000000#FFFFFF
.secureFormSubmitBackgroundaccent1#0170CB#008AF7
.secureFormSubmitTextColorsurface1#FFFFFF#1F1F1F
.secureFormSubmitDisabledBackgroundonDisabled2#DADADA#666666
.secureFormSubmitDisabledTextColoronDisabled1#898A8D#C1C1C1
.secureFormReadOnlyRequiredColoronSurface3#939393#E0E0E0
.secureFormSpinnerTintonSurface3#939393#E0E0E0
.secureFormSuccessTitleColoronSurface1#000000#FFFFFF

Secure form link chip.

Token (AgentforceColorToken)Resolves toLightDark
.secureFormLinkBackgroundsurfaceContainer2#F5F5F5#777777
.secureFormLinkTitleColoronSurface1#000000#FFFFFF
.secureFormLinkIconTintonSurface3#939393#E0E0E0

Attachment remove button, chip preview, border.

Token (AgentforceColorToken)Resolves toLightDark
.attachmentRemoveButtonBackgroundonSurface3#939393#E0E0E0
.attachmentRemoveButtonTintaccent2#F2F2F2#777777
.attachmentChipPreviewBackgroundsurface2#F3F3F3#302D2D
.attachmentBorderColorsurfaceContainer3#D8D8D8#BEBEBE

Placeholder shown before a preview loads.

Token (AgentforceColorToken)Resolves toLightDark
.attachmentPreviewPlaceholderBackgroundfixed literal#E5E5E5#E5E5E5
.attachmentChipMimeTypeColoronSurface1#000000#FFFFFF

Audio attachment player.

Token (AgentforceColorToken)Resolves toLightDark
.audioAttachmentBackgroundsurfaceContainer2#F5F5F5#777777
.audioAttachmentTitleColoronSurface1#000000#FFFFFF
.audioAttachmentDurationColoronSurface2#222222#E8E8E8
.audioAttachmentErrorColorerror1#BA0517#E24857
.audioAttachmentProgressColoraccent1#0170CB#008AF7
.audioAttachmentButtonBackgroundsurfaceContainer3#D8D8D8#BEBEBE

Video attachment preview.

Token (AgentforceColorToken)Resolves toLightDark
.videoAttachmentPlaceholderBackgroundsurfaceContainer2#F5F5F5#777777
.videoAttachmentPlayButtonBackgroundonAccent1#FFFFFF#FFFFFF
.videoAttachmentPlayIconTintonSurface3#939393#E0E0E0

PDF attachment chip.

Token (AgentforceColorToken)Resolves toLightDark
.attachmentBackgroundsurfaceContainer2#F5F5F5#777777
.attachmentTitleColoronSurface1#000000#FFFFFF

Full-screen PDF viewer page.

Token (AgentforceColorToken)Resolves toLightDark
.pdfViewerPageBackgroundfixed literal#FFFFFF#FFFFFF

Image preview and video player chrome.

Token (AgentforceColorToken)Resolves toLightDark
.mediaViewerBackgroundfixed literal#000000#000000
.mediaViewerCloseIconTintfixed literal#FFFFFF#FFFFFF
.mediaViewerCloseIconBackgroundfixed literal#000000 at 45% alpha#000000 at 45% alpha
.mediaViewerControlBackgroundsurfaceContainer3#D8D8D8#BEBEBE
.mediaViewerControlIconTintonSurface1#000000#FFFFFF

The animated brand aura / avatar glow.

Token (AgentforceColorToken)Resolves toLightDark
.auraColor1fixed literal#1589EE#1589EE
.auraColor2fixed literal#4892E7#4892E7
.auraAvatarBackgroundsurface1#FFFFFF#1F1F1F
.auraAvatarIconTintper-mode literal#0176D3#008AF7

Markdown-rendered agent text.

Token (AgentforceColorToken)Resolves toLightDark
.markdownTextColoronSurface1#000000#FFFFFF
.markdownLinkColorper-mode literal#0170CB#008AF7
.markdownBlockquoteColorborder1#DEDFE1#6E6D6D
.markdownThematicBreakColorborder1#DEDFE1#6E6D6D

HTML-rendered rich text.

Token (AgentforceColorToken)Resolves toLightDark
.richTextBackgroundsurfaceContainer1#F3F3F3#2E2E2E
.richTextColoronSurface1#000000#FFFFFF
.richTextLinkColorper-mode literal#0170CB#008AF7

Streaming card fade and action text.

Token (AgentforceColorToken)Resolves toLightDark
.streamingCardFadeColorsurface1#FFFFFF#1F1F1F
.streamingCardActionTextColoraccent1#0170CB#008AF7

Status line under the chat.

Token (AgentforceColorToken)Resolves toLightDark
.chatStatusLineColorborder1#DEDFE1#6E6D6D
.chatStatusTextColoronSurface1#000000#FFFFFF

Typing / progress indicator.

Token (AgentforceColorToken)Resolves toLightDark
.progressIndicatorTextColoronSurface1#000000#FFFFFF
.progressIndicatorDotColoronSurface3#939393#E0E0E0
.progressIndicatorSparkleColoraccent1#0170CB#008AF7

Loading, error, and onboarding full-screen states.

Token (AgentforceColorToken)Resolves toLightDark
.fullScreenTitleColoronSurface1#000000#FFFFFF
.spinnerColoraccent1#0170CB#008AF7
.fullScreenBackgroundsurface1#FFFFFF#1F1F1F
.fullScreenBodyColoronSurface1#000000#FFFFFF

Refresh button on the error screen.

Token (AgentforceColorToken)Resolves toLightDark
.refreshButtonBackgroundsurface1#FFFFFF#1F1F1F
.refreshButtonBorderColorborder1#DEDFE1#6E6D6D
.refreshButtonTextColoraccent1#0170CB#008AF7
.refreshButtonIconTintaccent1#0170CB#008AF7

Confirm button on the onboarding screen.

Token (AgentforceColorToken)Resolves toLightDark
.onboardingButtonBackgroundaccent1#0170CB#008AF7
.onboardingButtonTextColoronAccent1#FFFFFF#FFFFFF
.onboardingDividerColorborder1#DEDFE1#6E6D6D

Generic call-to-action button.

Token (AgentforceColorToken)Resolves toLightDark
.ctaButtonBackgroundaccent1#0170CB#008AF7
.ctaButtonTextColoronAccent1#FFFFFF#FFFFFF
.ctaButtonBorderColorsurfaceContainer3#D8D8D8#BEBEBE
  • Values are #RRGGBB and fully opaque unless noted. mediaViewerCloseIconBackground is the one token that carries alpha in its default.
  • onAccent1 is white in both modes by design (text and icons on the accent fill).
  • onSurfaceInverse1, surfaceContainerInverse1, borderInverse2, accentContainer2, borderAccent1, borderAccent2, disabled1, borderDisabled1, brandBase50, brandBase70, errorBase50, success1, successContainer1, successContainer2, borderSuccess1, onSuccess1, errorContainer2, feedbackWarning1, feedbackWarningContainer1, warning1, warningContainer1, onWarning1, info1, infoContainer1, information1, informationContainer1, and cloudBlue60 are mode-independent in the Cosmos defaults — they carry the same value in light and dark.

The two SDKs share a model, not an API. The concepts line up almost exactly — same three-way theming choice, same slot vocabularies — but the host-facing code differs enough that theming can’t be written once and translated mechanically, and the out-of-the-box colors aren’t identical.

What matches: the AgentforceTheming three-way choice (.default / .overrides / .customManager) and its setTheming entry point; 23 icon slots and 45 display-name slots with identical names on both platforms; the same 23 typography styles at the same sizes; and all 224 component color tokens, name for name, with the same fallback wiring.

What differs:

AreaiOSAndroid
Color token count275 (51 generic + 224 component)271 (47 generic + 224 component)
Generic tokens not on the other platformborderInverse2, brandBase70, feedbackWarning1, feedbackWarningContainer1none
Reusable palettesSubclass AgentforceCosmosLightColors / AgentforceCosmosDarkColorswithOverrides(...) on a default palette — no iOS equivalent
Default manageropen class you may subclassFactory functions (createDefaultAgentforceThemeManager, createCustomAgentforceThemeManager)
Reading the themeHold the manager instance you passed in (@Observable)Compose CompositionLocal (LocalAgentforceTheme)
Theme modeSet on the theme managerCarried in the overrides bag

Of the 47 generic tokens both platforms share, 23 ship different default values, because iOS resolves the semantic families through Salesforce Cosmos ramps while Android uses Material-style ramps — and iOS keeps most of them mode-independent where Android ships a distinct dark value. If cross-platform consistency matters, set the status and semantic tokens (success, warning, info, inverse-surface) explicitly on both platforms rather than relying on defaults.