Technologies An overview of the technologies used in the Design System. How the technologies fit together

The Design System is built on Web Components. Most component functionality lives in the core Web Components layer. Angular and React wrappers sit on top of that layer to make the components easier to use in those frameworks.

We use Svelte to author the components that are compiled to custom elements. You can use the Design System through the core Web Components or through Angular and React wrappers.

Diagram showing the technology layers: Svelte compiles to Web Components, which are wrapped by Angular and React Web Components

Web Components are a set of standard web technologies that allow you to create reusable custom elements. Each component includes its own structure, styling, and behaviour. This keeps it independent from the rest of your code.

In the Design System, Web Components are the core library. They are framework-agnostic, so teams can use them in different front-end environments.

Benefits of using Web Components
  • Reuse: Build once and use across pages, applications, and frameworks
  • Browser support: Work in modern browsers without additional libraries
  • Maintenance: Modular and self-contained structure simplifies updates
  • Encapsulation: Structure, style, and behaviour remain isolated from other page elements
  • Reliability: Code is not spread across HTML and JS files, thereby avoiding inconsistencies
  • Flexibility: Use inline, import, or compile components as needed
  • Composability: Combine components or integrate them with other components
Do not use Web Components directly unless there is a specific reason to do so. Using wrappers provides type checking and developer helpers that are not available when working with the core Web Components alone. Svelte

Svelte is the framework used to generate the Design System Web Components. Svelte combines JavaScript (logic), HTML (structure), and CSS (style) within a single file. It compiles these into efficient, reusable components.

Why Svelte

We use Svelte to:

  • Build reusable Web Components
  • Keep component logic, structure, and styling together
  • Support integration with multiple front-end frameworks
Angular Supported versions: 18, 19, 20, 21

Angular is a TypeScript-based framework for building web applications. The Design System supports Angular through Angular wrappers around the core Web Components.

How Web Components and Angular work together

Angular wrappers are created around the Web Components. These wrappers:

  • Manage component properties and events
  • Support form binding (Reactive and Template-driven)
  • Allow integration within Angular applications

The Angular application interacts with the wrapper, which renders the underlying Web Component.

React Supported versions: 17, 18, 19

React is an open-source JavaScript library used to build user interfaces from reusable components.

How Web Components and React work together

React wrappers are created around the Web Components. These wrappers:

  • Manage properties and events
  • Enable integration within React applications

The React application interacts with the wrapper, which renders the underlying Web Component.

Join design system drop-in hours to:
  • Get feedback on your service
  • Propose new components or patterns
  • Suggest updates to existing resources
  • Ask questions
  • Share feedback
Drop-in sessions are available to Government of Alberta product teams. Book time in drop-in hours