Icons help communicate meaning, actions, status, or feedback.
<SvgIcon>
The <SvgIcon>
component is a re-usable component that wraps its children in an <svg>
element.
This component is used by each individual icon component listed below.
Code snippet
Props
Name | Type | Default | Description |
---|---|---|---|
ariaHidden | boolean | true | Describes the value of the |
className | string | Additional CSS classes to be added to the svg element | |
children required | React.ReactNode | The elements that make up the SVG | |
description | string | Long-text description of any SVG. Use for complex icons, otherwise | |
id | string | A custom | |
inversed | boolean | false | If |
title required | string | The descriptive name for the SVG icon | |
viewBox | string | A string describing the viewbox of the SVG. It is recommended that the icon is centered and fill up the default viewport size. See this blog post for further explanation on viewBox and how to use it. |
Icon color
Icon components support a few built-in color options that can be applied by using one of the following utility classes.
If you need a different color for an icon, you can pass a custom class to an icon component through the class
prop. Then, in your application CSS, set the color
prop.
Color | CSS utility Class | Example |
---|---|---|
Primary | ds-c-icon-color--primary | |
Inverse | ds-c-icon-color--inverse | |
Error | ds-c-icon-color--error | |
Warn | ds-c-icon-color--warn | |
Success | ds-c-icon-color--success |
Icon size
Icon components use ems
for their height and width and can thereby be sized by changing the font-size of the SVG element.
It is recommended that the font-size utilities be used.
Size | Example |
---|---|
Small | |
Default | |
Large | |
Extra Large | |
2x Large | |
3x Large | |
4x Large | |
5x Large |
Custom Icons
The <SvgIcon>
component can be used for other custom icons. It allows you to pass in the SVG child elements. This component is recommended if you want built-in accessibility features and standard icon styles.
In the example below, the <SvgIcon>
component is used with a custom path.
Accessibility
The <SvgIcon>
component has built-in accessibility features including:
- a built-in
title
attribute. For any specific exported icon, thetitle
attribute is defaulted, but can be overwritten. focusable="false"
which prevents the icon from being focusablerole="img"
which tells assistive technologies that the icon's purpose is as an image- optional
description
attribute which can be used for a more detailed explanation of the icon's contents. Meant to be used to provide more detail than just thetitle
- an available
ariaHidden
attribute which can be used if the icon's context is described elsewhere. For example, if the icon is part of a button with text, the text may provide the text description instead of the icon component.
Customization
The following Sass variables can be overridden to customize Icon components: