Footer
Ready
Footer component is used as the global footer for all views. Contains copyright data and links to related documents.
Footer contains your application’s secondary menu items that perform an action when clicked. Each action in the footer should navigate to a href or trigger another action like a Modal overlay.
Examples
Properties #
Property | Attribute | Description | Type | Default |
---|---|---|---|---|
items |
items |
An array of items for the main footer links. Items have to include mandatory "label", "href" and "icon" fields to work. Additionally, you can pass an "id" that is added as an HTML identifier for the anchor tag. | any |
undefined |
language |
language |
The currently active language. This setting changes the logo to match the chosen language. | "en" | "fi" | "sv" |
"fi" |
logoHref |
logo-href |
URL that the logo link points to. | string |
"/" |
margin |
margin |
Controls the margin of the component. | "auto" | "none" |
"auto" |
menu |
menu |
An array of items for the small footer menu. Items have to include mandatory "label" and "href" fields to work. Additionally, you can pass an "id" that is added as an HTML identifier for the anchor tag. | any |
undefined |
theme |
theme |
Theme of the navigation. | "" | "default" | "turva" |
"" |
variation |
variation |
Style variation of the footer. | "default" | "simple" |
"default" |
Events #
Event | Description | Type |
---|---|---|
duetAnalytics |
Event raised when an items with an associated analytics ID is clicked. Analytics ID can be accessed via event.detail.analyticsId | CustomEvent<{ analyticsId: string; component: "duet-footer"; }> |
duetChange |
[DEPRECATED] in favour of the more specific events like duetLogoClick. Callback for when a user is about to navigate to another page. You can prevent the default browser functionality by calling event.detail.originalEvent.preventDefault() inside your listener. Additionally, the passed data is available via event.detail.data. |
CustomEvent<{ component: "duet-footer"; data: DuetFooterItem | DuetFooterIconItem; originalEvent: Event; }> |
duetItemClick |
Event raised when the items are clicked. You can prevent the default browser functionality by calling event.detail.originalEvent.preventDefault() inside your listener. Additionally, the passed data is available via event.detail.data. | CustomEvent<{ component: "duet-footer"; data: DuetFooterItem | DuetFooterIconItem; originalEvent: Event; }> |
duetLogoClick |
Event raised when the logo is clicked. You can prevent the default browser functionality by calling event.detail.originalEvent.preventDefault() inside your listener. Additionally, the passed data is available via event.detail.data. | CustomEvent<{ component: "duet-footer"; data: DuetFooterItem | DuetFooterIconItem; originalEvent: Event; }> |
duetMenuClick |
Event raised when the menu links are clicked. You can prevent the default browser functionality by calling event.detail.originalEvent.preventDefault() inside your listener. Additionally, the passed data is available via event.detail.data. | CustomEvent<{ component: "duet-footer"; data: DuetFooterItem | DuetFooterIconItem; originalEvent: Event; }> |
Usage #
This section includes guidelines for designers and developers about the usage of this component in different contexts.
When to use #
- Footer component is used as the global footer for all views.
When not to use #
- Inside HTML footer element as Duet Footer already uses it internally.
Variations #
This section describes the different component variations, their purpose, and when to use each variation.
Name | Purpose |
---|---|
default |
Default style is the most common footer variation. Only switch to another variation if you need to adjust the visual weight of the element. |
simple |
Simple variation should be used sparingly in views such as error pages. |
Accessibility #
This component has been validated to meet the WCAG 2.1 AA accessibility guidelines. You can find additional information regarding accessibility of this component below.
- Footer uses HTML
<footer>
element internally which is an HTML sectioning element that by default defines ARIA landmark with rolecontentinfo
. - Because of the above reason, footer should never be wrapped inside another
<footer>
element.
Additional considerations #
- If the service is public and does not require logging in, clicking the logo in the footer takes the user to the frontpage of lahitapiola.fi or turva.fi.
- If the service requires signing in (self portal), the logo in the footer takes the user to the home view of that specific service.
- In case the user is in the middle of purchase or similar flow, clicking the logo should show a warning modal asking whether the user actually wants to leave the page as the data already entered will be lost. View an example of this modal.
Integration
For integration, event and theming guidelines, please see Using Components. This documentation explains how to implement and use Duet’s components across different technologies like Angular, React or Vanilla JavaScript.
Tutorials
Follow these practical tutorials to learn how to build simple page layouts using Duet’s CSS Framework, Web Components and other features:
Abstract
TutorialsCreating Custom Patterns
TutorialsServer Side Rendering
TutorialsVS Code
TutorialsZeplin
TutorialsUsage With Markdown
TutorialsBuilding Layouts
TutorialsUsing CLI Tools
TutorialsSharing Prototypes
Troubleshooting
If you experience any issues while using a component, please head over to the Support page for more guidelines and help.