diff --git a/apps/website/pages/components/link/code.tsx b/apps/website/pages/components/link/code.tsx
new file mode 100644
index 0000000000..c1de068bfa
--- /dev/null
+++ b/apps/website/pages/components/link/code.tsx
@@ -0,0 +1,17 @@
+import Head from "next/head";
+import type { ReactElement } from "react";
+import LinkPageLayout from "screens/components/link/LinkPageLayout";
+import LinkCodePage from "screens/components/link/code/LinkCodePage";
+
+const Code = () => (
+ <>
+
+ Link code — Halstack Design System
+
+
+ >
+);
+
+Code.getLayout = (page: ReactElement) => {page};
+
+export default Code;
diff --git a/apps/website/pages/components/link/index.tsx b/apps/website/pages/components/link/index.tsx
index e3bf049d24..ac2fb0eb4e 100644
--- a/apps/website/pages/components/link/index.tsx
+++ b/apps/website/pages/components/link/index.tsx
@@ -1,21 +1,17 @@
import Head from "next/head";
import type { ReactElement } from "react";
import LinkPageLayout from "screens/components/link/LinkPageLayout";
-import LinkCodePage from "screens/components/link/code/LinkCodePage";
+import LinkOverviewPage from "screens/components/link/overview/LinkOverviewPage";
-const Index = () => {
- return (
- <>
-
- Link — Halstack Design System
-
-
- >
- );
-};
+const Index = () => (
+ <>
+
+ Link — Halstack Design System
+
+
+ >
+);
-Index.getLayout = function getLayout(page: ReactElement) {
- return {page};
-};
+Index.getLayout = (page: ReactElement) => {page};
export default Index;
diff --git a/apps/website/pages/components/link/specifications.tsx b/apps/website/pages/components/link/specifications.tsx
deleted file mode 100644
index 2b0ca22e29..0000000000
--- a/apps/website/pages/components/link/specifications.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import Head from "next/head";
-import type { ReactElement } from "react";
-import LinkPageLayout from "screens/components/link/LinkPageLayout";
-import LinkSpecsPage from "screens/components/link/specs/LinkSpecsPage";
-
-const Specifications = () => {
- return (
- <>
-
- Link Specs — Halstack Design System
-
-
- >
- );
-};
-
-Specifications.getLayout = function getLayout(page: ReactElement) {
- return {page};
-};
-
-export default Specifications;
diff --git a/apps/website/pages/components/link/usage.tsx b/apps/website/pages/components/link/usage.tsx
deleted file mode 100644
index 4e2a3786c6..0000000000
--- a/apps/website/pages/components/link/usage.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import Head from "next/head";
-import type { ReactElement } from "react";
-import LinkPageLayout from "screens/components/link/LinkPageLayout";
-import LinkUsagePage from "screens/components/link/usage/LinkUsagePage";
-
-const Index = () => {
- return (
- <>
-
- Link usage — Halstack Design System
-
-
- >
- );
-};
-
-Index.getLayout = function getLayout(page: ReactElement) {
- return {page};
-};
-
-export default Index;
diff --git a/apps/website/screens/components/link/LinkPageLayout.tsx b/apps/website/screens/components/link/LinkPageLayout.tsx
index 3a2c17a655..d2d2573222 100644
--- a/apps/website/screens/components/link/LinkPageLayout.tsx
+++ b/apps/website/screens/components/link/LinkPageLayout.tsx
@@ -6,9 +6,8 @@ import { ReactNode } from "react";
const LinkPageHeading = ({ children }: { children: ReactNode }) => {
const tabs = [
- { label: "Code", path: "/components/link" },
- { label: "Usage", path: "/components/link/usage" },
- { label: "Specifications", path: "/components/link/specifications" },
+ { label: "Overview", path: "/components/link" },
+ { label: "Code", path: "/components/link/code" },
];
return (
@@ -17,8 +16,9 @@ const LinkPageHeading = ({ children }: { children: ReactNode }) => {
- Links are used as navigational elements. They may appear isolated, inside a sentence or paragraph or
- following the content.
+ Links serve as navigational elements, allowing users to move between pages or access related content. They
+ can appear independently, be embedded within text, or follow a section to provide additional information or
+ actions.
diff --git a/apps/website/screens/components/link/code/LinkCodePage.tsx b/apps/website/screens/components/link/code/LinkCodePage.tsx
index 3c3cfefd01..5d4de67884 100644
--- a/apps/website/screens/components/link/code/LinkCodePage.tsx
+++ b/apps/website/screens/components/link/code/LinkCodePage.tsx
@@ -27,25 +27,36 @@ const sections = [
-
disabled
- boolean
+
+
+ children
+
-
If true, the link is disabled.
- false
+ string
+
Text of the link.
+
-
-
inheritColor
+
disabled
boolean
-
If true, the color is inherited from parent.
+
If true, the link is disabled.
false
+
+
href
+
+ string
+
+
Page to be opened when the user clicks on the link.
+
-
+
icon
@@ -59,7 +70,6 @@ const sections = [
replace spaces with underscores. By default they are outlined if you want it to be filled prefix the
symbol name with "filled_".
-
-
@@ -73,55 +83,44 @@ const sections = [
-
href
-
- string
-
-
Page to be opened when the user clicks on the link.
- If defined, the link will be displayed as a button. This function will be called when the user clicks the
- link.
+ Size of the margin to be applied to the component. You can pass an object with 'top', 'bottom', 'left' and
+ 'right' properties in order to specify different margin sizes.
- Size of the margin to be applied to the component. You can pass an object with 'top', 'bottom', 'left' and
- 'right' properties in order to specify different margin sizes.
+ If defined, the link will be displayed as a button. This function will be called when the user clicks the
+ link.
-
diff --git a/apps/website/screens/components/link/overview/LinkOverviewPage.tsx b/apps/website/screens/components/link/overview/LinkOverviewPage.tsx
new file mode 100644
index 0000000000..8e062fd01a
--- /dev/null
+++ b/apps/website/screens/components/link/overview/LinkOverviewPage.tsx
@@ -0,0 +1,81 @@
+import { DxcLink, DxcBulletedList, DxcFlex, DxcTable, DxcParagraph } from "@dxc-technology/halstack-react";
+import DocFooter from "@/common/DocFooter";
+import QuickNavContainer from "@/common/QuickNavContainer";
+import QuickNavContainerLayout from "@/common/QuickNavContainerLayout";
+import Image from "@/common/Image";
+import linkAnatomy from "./images/link-anatomy.png";
+
+const sections = [
+ {
+ title: "Introduction",
+ content: (
+
+ Links are essential interactive elements that enable users to navigate between pages, access
+ external resources, or explore related content. They can be placed within text, used as standalone elements, or
+ positioned after sections to provide additional actions or information. Links enhance usability by clearly
+ indicating their purpose and destination, ensuring a seamless and intuitive browsing experience. Proper usage of
+ links helps maintain accessibility and improves content discoverability across digital products.
+
+ ),
+ },
+ {
+ title: "Anatomy",
+ content: (
+ <>
+
+
+
+ Icon: an optional visual element that can be used to represent more graphically the purpose
+ of the link. It can be placed before or after the link it’s representing.
+
+
+ Label: displays the textual content of the link, conveying where exactly it’s going to
+ navigate the component.
+
+
+ >
+ ),
+ },
+ {
+ title: "Best practices",
+ content: (
+ <>
+
+
+ Use clear and descriptive labels: link labels should clearly indicate what users can expect
+ when they click. Avoid generic labels like "click here".
+
+
+ Indicate external links appropriately: If a link directs users to an external site or opens
+ a new tab, provide an appropriate icon to set expectations.
+
+
+ Avoid excessive linking: too many links within a paragraph can overwhelm users and make
+ content harder to read. Use links strategically.
+
+
+ Use appropriate link placement: position links logically within content, either integrated
+ into sentences or placed at the end of a section for additional navigation.
+
+
+ Differentiate links from buttons: links are primarily for navigation, while buttons trigger
+ actions like form submissions or modal openings. Use each element correctly.
+
+
+ >
+ ),
+ },
+];
+
+const LinkOverviewPage = () => {
+ return (
+
+
+
+
+
+
+ );
+};
+
+export default LinkOverviewPage;
diff --git a/apps/website/screens/components/link/overview/images/link-anatomy.png b/apps/website/screens/components/link/overview/images/link-anatomy.png
new file mode 100644
index 0000000000..05bfb822cf
Binary files /dev/null and b/apps/website/screens/components/link/overview/images/link-anatomy.png differ
diff --git a/apps/website/screens/components/link/specs/LinkSpecsPage.tsx b/apps/website/screens/components/link/specs/LinkSpecsPage.tsx
deleted file mode 100644
index b9ae6b4490..0000000000
--- a/apps/website/screens/components/link/specs/LinkSpecsPage.tsx
+++ /dev/null
@@ -1,347 +0,0 @@
-import { DxcLink, DxcBulletedList, DxcFlex, DxcTable, DxcParagraph } from "@dxc-technology/halstack-react";
-import DocFooter from "@/common/DocFooter";
-import Figure from "@/common/Figure";
-import QuickNavContainer from "@/common/QuickNavContainer";
-import QuickNavContainerLayout from "@/common/QuickNavContainerLayout";
-import Image from "@/common/Image";
-import Code from "@/common/Code";
-import linkSpecs from "./images/link_specs.png";
-import linkStates from "./images/link_states.png";
-
-const sections = [
- {
- title: "Specifications",
- content: (
-
-
-
- ),
- },
- {
- title: "States",
- content: (
- <>
-
- States: enabled, hover, focus, active,{" "}
- visited and disabled.
-
-
-
-
- >
- ),
- },
- {
- title: "Design tokens",
- subSections: [
- {
- title: "Color",
- content: (
-
-
-