Skip to content

Feature/3445 standalone link development - #3590

Open
Diaan wants to merge 17 commits into
mainfrom
feature/3445-standalone-link-development
Open

Feature/3445 standalone link development#3590
Diaan wants to merge 17 commits into
mainfrom
feature/3445-standalone-link-development

Conversation

@Diaan

@Diaan Diaan commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

This pull request introduces a new standalone Link component to the SL Design System, making it available as a web component and integrating it into the Angular package and Storybook documentation. The changes include the component's implementation, registration, styles, package setup, and usage examples, both in web components and Angular environments.

New Link Component Implementation:

  • Created the @sl-design-system/link package, including its package.json and module exports, to provide a standalone link component for the design system. [1] [2]
  • Implemented the sl-link web component registration in register.ts for easy use in projects.
  • Added comprehensive SCSS styles for the sl-link component, supporting various variants (primary, secondary, success, info, warning, danger, inverted), fill modes (solid, outline, ghost), shapes, and accessibility/focus states.

Documentation and Storybook Integration:

  • Added Storybook stories for the sl-link component, demonstrating its usage, variants, fill modes, icon positions, event handling, and color schemes.
  • Integrated the new @sl-design-system/link package into the Angular package dependencies and registered it for use in Angular Storybook stories. [1] [2]
  • Added an Angular wrapper component and Storybook story to showcase the sl-link usage within Angular, including examples for internal, external, and new tab links, and ensured proper icon registration. [1] [2]

@Diaan Diaan linked an issue Aug 12, 2026 that may be closed by this pull request
@changeset-bot

changeset-bot Bot commented Aug 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 65f958d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sl-design-system/link Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Diaan
Diaan requested a balanced review from Copilot August 12, 2026 08:39
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces the standalone sl-link component with styling, localization, theme icons, tests, documentation, and Angular Storybook integration.

Changes:

  • Adds the Link package, behavior, styles, stories, and tests.
  • Adds required icon and animation tokens across themes.
  • Adds translations and Angular usage examples.

Reviewed changes

Copilot reviewed 38 out of 40 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
.changeset/huge-candies-stand.md Records the initial Link release.
packages/angular/package.json Adds the Link dependency.
packages/angular/stories/wrappers-navigation.stories.ts Adds the Angular Link example.
packages/components/link/index.ts Exports the Link API.
packages/components/link/package.json Defines package metadata.
packages/components/link/register.ts Registers sl-link.
packages/components/link/src/link.scss Implements Link styling.
packages/components/link/src/link.spec.ts Tests Link behavior.
packages/components/link/src/link.stories.ts Documents Link variants.
packages/components/link/src/link.ts Implements the component.
packages/components/link/tsconfig.json Configures TypeScript compilation.
packages/locales/src/es-ES.ts Adds Spanish translation.
packages/locales/src/es-ES.xlf Adds Spanish localization source.
packages/locales/src/it.ts Adds Italian translation.
packages/locales/src/it.xlf Adds Italian localization source.
packages/locales/src/nl.ts Adds Dutch translation.
packages/locales/src/nl.xlf Adds Dutch localization source.
packages/locales/src/pl.ts Adds Polish translation.
packages/locales/src/pl.xlf Adds Polish localization source.
packages/tokens/src/tokens/core.json Adds Link indicator icons.
packages/tokens/src/tokens/system.json Adds animation tokens.
packages/themes/bingel-dc/icons.ts Generates new theme icons.
packages/themes/bingel-int/icons.ts Generates new theme icons.
packages/themes/clickedu/icons.ts Generates new theme icons.
packages/themes/editorial-suite/icons.ts Generates new theme icons.
packages/themes/itslearning/icons.ts Generates new theme icons.
packages/themes/kampus/icons.ts Generates new theme icons.
packages/themes/magister/icons.ts Generates new theme icons.
packages/themes/max/icons.ts Generates new theme icons.
packages/themes/my-digital-book/icons.ts Generates new theme icons.
packages/themes/neon/icons.ts Generates new theme icons.
packages/themes/sanoma-learning/icons.ts Generates new theme icons.
packages/themes/sanoma-pro/icons.ts Generates new theme icons.
packages/themes/sanoma-utbildning/icons.ts Generates new theme icons.
packages/themes/teacher-assistant/icons.ts Generates new theme icons.
packages/themes/teas/icons.ts Generates new theme icons.
packages/themes/tig/icons.ts Generates new theme icons.
scripts/studio.lock Refreshes token source metadata.
tsconfig.all.json Adds Link to the project graph.
yarn.lock Locks the new workspace package.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/components/link/src/link.ts
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.scss
Comment thread packages/components/link/package.json
Comment thread packages/angular/stories/wrappers-navigation.stories.ts

@a11ymiko a11ymiko left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In story Link > All for all themes focus indicator is hard to see on Inverted Links. Maybe it'd be better if Inverted Links have got different focus indicator color (the same way it works right now for Inverted Toolbar)?

Screen.Recording.2026-08-13.at.07.07.56.mov

@a11ymiko a11ymiko left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For ITSLrearning and My Digital Book themes secondary and ghost links are not visible on the same color background: https://storybook-3590.d3c5h2uor7jlkj.amplifyapp.com/?path=/story/navigation-link--all&globals=theme:itslearning

Maybe some other background could be use for this links in that two themes?

Image Image

@Diaan Diaan self-assigned this Aug 13, 2026
@a11ymiko
a11ymiko marked this pull request as ready for review August 14, 2026 05:37
Comment thread packages/components/badge/src/badge.ts Outdated
Comment thread packages/components/link/package.json
Comment thread packages/angular/stories/wrappers-navigation.stories.ts Outdated
Comment thread packages/components/link/src/link.ts
Comment thread packages/components/link/src/link.ts Outdated
title: 'Navigation/Link',
args: {
fill: 'solid',
href: '/dashboard',

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thought: it would be really cool if the links in our stories actually navigated somewhere, like simple dummy pages. I know we can use @storybook/addon-links to link them to other stories in SB. Extra points for easter eggs 😄

link.mov

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is hard to maintain (been there, done that). If the name of the story we're linking to changes, then the link breaks. Nowadays i usually use example.com

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But that is not really an option here, because i need to use a relative path to show the internal link variant.

Comment thread packages/components/link/src/link.ts
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.ts Outdated
Comment thread packages/components/link/src/link.stories.ts Outdated
title: 'Navigation/Link',
args: {
fill: 'solid',
href: '/dashboard',

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is hard to maintain (been there, done that). If the name of the story we're linking to changes, then the link breaks. Nowadays i usually use example.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Standalone link] Development

5 participants