Footer of the application layout shown at the bottom of the screen. It is optional and if it is not specified,
- the default header will be shown. Please check the Footer documentation{" "}
+ the default footer will be shown. Please check the Footer documentation{" "}
here
@@ -60,7 +60,7 @@ const ApplicationLayoutPropsTable = () => (
Header of the application layout shown at the top of the screen. It is optional and if it is not specified,
- the default header will be shown. Please check the Header documentation{" "}
+ the header will not be shown. Please check the Header documentation{" "}
here
@@ -122,7 +122,7 @@ const sections = [
title: "Application layout with components",
content: (
Number of items per page.
-
5
+
+ 5
+
itemsPerPageFunction
@@ -270,7 +272,9 @@ const sections = [
boolean
If true, a select component for navigation between pages will be displayed.
-
true
+
+ true
+
showPaginator
@@ -278,7 +282,9 @@ const sections = [
boolean
If true, paginator will be displayed.
-
false
+
+ false
+
summaryRow
diff --git a/apps/website/screens/components/date-input/code/DateInputCodePage.tsx b/apps/website/screens/components/date-input/code/DateInputCodePage.tsx
index 6dc0c0d3a6..766731813b 100644
--- a/apps/website/screens/components/date-input/code/DateInputCodePage.tsx
+++ b/apps/website/screens/components/date-input/code/DateInputCodePage.tsx
@@ -31,7 +31,9 @@ const sections = [
Specifies a string to be used as the name for the date input element when no label is
provided.
-
+
+
+ ),
+ },
{
title: "select",
content: (
diff --git a/apps/website/screens/principles/localization/examples/translations.tsx b/apps/website/screens/guidelines/localization/examples/translations.tsx
similarity index 100%
rename from apps/website/screens/principles/localization/examples/translations.tsx
rename to apps/website/screens/guidelines/localization/examples/translations.tsx
diff --git a/apps/website/screens/guidelines/themes/ThemesPage.tsx b/apps/website/screens/guidelines/themes/ThemesPage.tsx
new file mode 100644
index 0000000000..76d6a75adb
--- /dev/null
+++ b/apps/website/screens/guidelines/themes/ThemesPage.tsx
@@ -0,0 +1,150 @@
+import DocFooter from "@/common/DocFooter";
+import PageHeading from "@/common/PageHeading";
+import DxcQuickNavContainer from "@/common/QuickNavContainer";
+import { DxcAlert, DxcBulletedList, DxcFlex, DxcHeading, DxcLink, DxcParagraph } from "@dxc-technology/halstack-react";
+import Link from "next/link";
+
+const sections = [
+ {
+ title: "What is a theme in Halstack?",
+ content: (
+ <>
+
+ In Halstack, a theme is a structured set of properties that defines how your brand is
+ expressed across the design system. These properties allow you to adapt core visual decisions such as colors
+ and logos, while preserving the consistency, accessibility, and usability standards defined by Halstack.
+
+
+ To understand what a theme is, it is important to recognize that the definition of colors, sizes, shapes, and
+ visual foundations is an intrinsic part of any design system. These elements are carefully designed to ensure
+ accessibility, usability, and a consistent user experience. For this reason, changing them must be done in a
+ controlled and intentional way.
+
+
+ Themes provide this controlled flexibility. They allow teams to override specific foundational decisions of
+ the Halstack Design System in order to adapt product to different brand identities, while still benefiting
+ from the structure and scalability of the system.
+
+ >
+ ),
+ },
+ {
+ title: "Why themes matter?",
+ content: (
+ <>
+
+ Color, branding, and visual identity{" "}
+ play a key role in how users perceive and interact with a product. A consistent and
+ accessible visual language helps guide user behavior, improves readability, and strengthens trust.
+
+
+ However, unmanaged customization can quickly lead to fragmentation, accessibility issues, and higher
+ maintenance costs. Themes help prevent this by offering a structured way to evolve brand identity without
+ breaking the foundations of the design system. They support scalability, maintain accessibility, and enable
+ consistency across products, teams, and client implementations.
+
+
+ Typically, teams build their applications using the default Halstack foundations. Themes are applied only when
+ there is a clear need to adapt the experience to a specific brand, such as in white-label or multi-brand
+ environments. In this way, theming remains intentional and aligned with product and business needs.
+
+ >
+ ),
+ },
+ {
+ title: "How Halstack manages theming",
+ content: (
+ <>
+
+ Halstack approaches theming through design tokens. Instead of manually adjusting styles in
+ each component, you define a set of core and semantic values that are applied across the system.
+
+ The main customizable aspects include:
+
+
+ Core brand colors such as primary, secondary, tertiary, and neutral
+
+
+ Semantic colors such as info, success, warning, and error
+
+
+
+ This approach ensures that customization remains predictable, accessible, and easy to maintain over time.
+
+ >
+ ),
+ },
+ {
+ title: "Where to manage your themes",
+ content: (
+
+ To create and manage themes in Halstack, you can use the Theme Generator tool. You can preview how your theme
+ behaves across real Halstack components, validate contrast and readability, and export a structured file ready
+ to be integrated into your project.
+
+ ),
+ },
+ {
+ title: "Introducing Theme Generator",
+ content: (
+ <>
+
+
+
+ Theme Generator
+
+ {" "}
+ helps you create Halstack themes without manual token configuration. Instead of defining dozens of values, you
+ provide your core and semantic colors, and the tool generates a complete, ready-to-use token structure.
+
+
+ You can also preview how your theme behaves in real Halstack components and layouts, validate contrast and
+ readability, and export a structured file ready to be integrated into your development workflow.
+
+
+ This enables designers and developers to collaborate around a shared and repeatable process, ensuring
+ consistency across products and brands.
+
+
+ For more details about how the tool works, visit the{" "}
+
+
+ Theme Generator user guide
+
+
+ .
+
+ >
+ ),
+ },
+];
+
+const ThemesPage = () => (
+
+
+
+
+
+ You can start configuring your own themes using the{" "}
+
+
+ Theme Generator
+
+
+
+ ),
+ }}
+ />
+
+
+
+
+
+);
+
+export default ThemesPage;
diff --git a/apps/website/screens/migration/TokensMigrationPage.tsx b/apps/website/screens/migration/TokensMigrationPage.tsx
index a4c80f11c7..6c8f834d25 100644
--- a/apps/website/screens/migration/TokensMigrationPage.tsx
+++ b/apps/website/screens/migration/TokensMigrationPage.tsx
@@ -66,6 +66,7 @@ const sections = [
Migrating color, spacing, and typography overrides to CSS tokens.
Replacing any custom component overrides that referenced theme object values.
Updating global styles to rely on CSS variables instead of hardcoded values.
+
Refactoring prop values to rely on alias tokens instead of hardcoded values.
>
),
@@ -153,7 +154,8 @@ return (
This can be applied to colors, fonts, spacings and borders. However, keep in mind that, for now, only core
tokens can be overwritten and they affect all the components which are wrapped within the{" "}
- HalstackProvider.
+ HalstackProvider. Note that the former theme prop has been renamed to{" "}
+ opinionatedTheme.
>
),
diff --git a/apps/website/screens/migration/Components16MigrationPage.tsx b/apps/website/screens/migration/components/Components16MigrationPage.tsx
similarity index 92%
rename from apps/website/screens/migration/Components16MigrationPage.tsx
rename to apps/website/screens/migration/components/Components16MigrationPage.tsx
index 0328f88f3a..56eab849c7 100644
--- a/apps/website/screens/migration/Components16MigrationPage.tsx
+++ b/apps/website/screens/migration/components/Components16MigrationPage.tsx
@@ -4,6 +4,24 @@ import DocFooter from "@/common/DocFooter";
import PageHeading from "@/common/PageHeading";
import Code, { ExtendedTableCode } from "@/common/Code";
import Link from "next/link";
+import Example from "@/common/example/Example";
+import previousExample from "./examples/previous";
+import newExample from "./examples/new";
+
+const groupItemType = `{
+ badge?: ReactElement;
+ icon?: string | SVG;
+ label: string;
+ items: (Item)[];
+}`;
+
+const itemType = `{
+ badge?: ReactElement;
+ icon?: string | SVG;
+ label: string;
+ onSelect?: () => void;
+ selected?: boolean;
+}`;
const sections = [
{
@@ -16,6 +34,27 @@ const sections = [
),
},
+ {
+ title: "Usage of components",
+ content: (
+ <>
+
+ In our component props, instead of passing hardcoded values such as 2rem, we should always use an
+ alias token whenever possible. Only if no suitable alias token exists, a core token or a hardcoded value may
+ be used.
+
+ Previous version:
+
+
+
+ For more information about tokens refer to{" "}
+
+ its documentation
+
+
+ >
+ ),
+ },
{
title: "Added components",
content: (
@@ -155,22 +194,11 @@ const sections = [
The navItems prop accepts an array of Item and
GroupItem objects. Each GroupItem has the following structure:
- {`{
- badge?: ReactElement;
- icon?: string | SVG;
- label: string;
- items: (Item)[];
-}`}
+ {groupItemType}
+
+
+
+ Manage your family's insurance policies, view coverage details, and track policy status all in one
+ place.
+
+
+
+
+
+
+
+ View and manage coverage information for all family members
+
+
+
+
+
+
+
+
+
+
+ Complete overview of all insurance policies associated with your family
+
+
+
+
+
+
+
+
+