You can define your Organization's brand identity in the Console and apply it consistently across all Hubs. To do this, see How to apply branding and customization values across the Hubs experience.
The following sections describe the supported UI Customization values and where they are used throughout the interface.
The UI Customization configuration supports the following branding values:
- Logos
- Titles
- Descriptions
- Favicons
- Support links
- Brand colors
The frontend applies branding values to the following interface elements:
- Sidebar logo
- Login and logout logos
- Browser favicon
- Platform title
- Platform description
The frontend applies brand colors to the following interface elements:
- Primary buttons
- Links
- Highlights
- Main brand accents
The following TypeScript definition shows the complete structure of the UI Customization configuration.
type GEAIUiCustomizationOsCustomization<
Languages extends GEAILanguageSubtag
> = {
meta?: {
title?: GEAIOsUiCustomizationTypeByLanguage<Languages, string>;
description?: GEAIOsUiCustomizationTypeByLanguage<Languages, string>;
favicon?: GEAIOsUiCustomizationTypeByLanguage<Languages, string>;
};
availableLanguages?: Languages[];
defaultLanguage?: Languages;
termsOfServiceLink?: GEAIOsUiCustomizationTypeByLanguage<Languages, string>;
componentOverrides?: {
authenticationProcess?: {
translations?: GEAIAuthenticationProcessTranslationsOverrides;
logos?: {
globantLogoWidth?: Partial<Record<GEAILanguageSubtag, string>>;
globantLogoHeight?: Partial<Record<GEAILanguageSubtag, string>>;
globantLogoHidden?: boolean;
logoWidth?: Partial<Record<GEAILanguageSubtag, string>>;
logoHeight?: Partial<Record<GEAILanguageSubtag, string>>;
};
};
header?: {
translations?: GEAIHeaderTranslationsOverrides;
logos?: {
logoWidth?: Partial<Record<GEAILanguageSubtag, string>>;
logoHeight?: Partial<Record<GEAILanguageSubtag, string>>;
};
};
};
styleOverrides?: {
"base/base"?: {
cssVariables?: {
base?: Record<string, string>;
light?: Record<string, string>;
dark?: Record<string, string>;
};
};
};
};
type GEAILanguageSubtag = "ar" | "de" | "en" | "es" | "fr" | "it" | "ja" | "pt" | "zh";
The application supports the nine language subtags listed above. Set availableLanguages to restrict the options, and set defaultLanguage to one of the selected values.
Set title and description as a single text string, or as a language-specific value if you need different text per language. For assets such as the favicon and logos, use either a URL or a data URI. If you use a URL, host the asset on the same domain as the application; otherwise, use a data URI.
The following tokens control the interface:
| Token |
Description |
| --color-background-from, --color-background-to |
Define the two colors used in the full-page background gradient: background: linear-gradient(0deg, var(--color-background-from) 0%, var(--color-background-to) 100%) |
| --color-accent-surface-surface |
Sets the main surface color. |
| --color-accent-surface-elevation-1 |
Sets the color of elevated surfaces, such as cards, panels, and sidebars. |
| --color-accent-surface-elevation-2 |
Sets the color of higher-elevation surfaces, such as modals, dropdowns, and floating overlays. |
| --color-accent-primary-default |
Sets the primary action color. Pair it with --color-accent-primary-hover for the hover state. |
| --color-text-primary-default |
Sets the primary text color. Pair it with --color-text-primary-hover for the hover state. |
| --color-icon-primary-default |
Sets the icon color. Pair it with --color-icon-primary-hover for the hover state. |
| --color-border-primary-default |
Sets the border color. Pair it with --color-border-primary-hover for the hover state. |
Use componentOverrides to override the UI content and branding of each screen: authentication, header, trial, and contact sales. Every component includes translation and logo definitions. Provide logos as data URIs, and set sizes so they fit correctly.
type GEAIAuthenticationProcessTranslations<TemplateResult = unknown> = {
descriptions: Record<GEAIAuthenticationProcessTranslationKey, GEAIAuthenticationProcessTranslationEntry<TemplateResult>>;
globantLogoSrcDark?: string | undefined;
globantLogoSrcLight?: string | undefined;
globantLogoAltText?: string | undefined;
logoAltText: string;
logoSrcDark: string;
logoSrcLight?: string;
problemLoginNotification: string;
signInWithGeneXus: string;
signInWithMicrosoft: string;
signInWithGoogle: string;
signInWithGenericProvider: string;
termsAndConditions?: (termsHref: string, privacyHref?: string) => TemplateResult;
titles: Record<GEAIAuthenticationProcessTranslationKey, GEAIAuthenticationProcessTranslationEntry<TemplateResult>>;
};
type GEAIAuthenticationProcessTranslationKey =
| "not-authenticated"
| "needs-to-select-organization"
| "access-denied"
| "signed-out"
| "no-login-options";
type GEAIHeaderTranslations = {
"geai-header": {
alternativeText: {
brandingLogo: string;
userAvatar: string;
};
logoSrcDark: string;
logoSrcLight?: string;
text: {
changeLanguageDescription: string;
changeOrganizationDescription: string;
changeProjectDescription: string;
noUserInfo: string;
noModuleData: string;
noProjectData: string;
noOrganizationData: string;
};
};
};
Since version 2026-04.