@element-public/react-icon
v1.0.0
Published
Icon component for Element React
Downloads
3
Keywords
Readme
Icon
Description
Icons are small representative images that can be combined with other components such as buttons.
See live demos on storybook
Install bundle from npm-e
npm i @element-public/react-components @element-public/themes
Optional: install the component individually
npm i @element-public/react-icon @element-public/themes
Open ~/.npmrc
in an editor and add the following line to enable the @element-public
scope:
@element-public:registry=https://npm.platforms.engineering
Troubleshooting
See below if you have never installed a package from Bayer's npm-enterprise or run into the following error:
npm ERR! code E401
npm ERR! Unable to authenticate, your authentication token seems to be invalid.
npm ERR! To correct this please trying logging in again with:
npm ERR! npm login
Setup an access token
See the
devtools npm-e guide
to learn how to create an access token if this is the first time you are using a
npm-e package at Bayer or you do not have a line that starts with the following
in your ~/.npmrc
file:
//npm.platforms.engineering/:_authToken=
Notes
Many options exist for Icon use. First, there is an extensive list of premade and labeled Icons. This list is included under the 'Icon Search' story on Storybook, and is based on the Google Material list, which can be found at the following link:
- https://fonts.google.com/icons?selected=Material+Icons
Icons can be used in several different sizes:
xsmall
small
medium
large
xlarge
Icons also support a number of color options:
filled-danger-alt
filled-danger
filled-muted
filled-primary
filled-secondary
color-primary
color-secondary
color-on-dark
blue
gray
green
orange
purple
red
teal
yellow
Alternatively, custom Icons can be used alone or with other components, similarly to the preexisting options.
Usage
Icons can be used with, or inside of, many other components, such as Badge and Button. Examples and demos of this behavior can be found under components' respective Storybook stories.
Accessibility Considerations
When creating a custom Icon, it is essential to ensure that the image is AA compliant. Refer to the following link, or one of many similar online resources, to check contrasting colors.
- https://webaim.org/resources/contrastchecker/
Icon Props
| Name | Type | Default | Required | Description |
| -------------- | ----------------------- | ------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ariaHidden | boolean | null | false | Sets the aria-hidden
attribute for the icon. If set to true, the icon will not be read by screen readers. Should be used if icon is purely decorative (such as when used in a button or textfield) or labeled by rendered text using aria-labelledBy
or aria-label
. |
| ariaLabel | string | null | false | Accessibility label for assistive technologies. |
| ariaLabelledBy | string | null | false | Id of the component being labeled for assistive technologies. |
| badgePlacement | string | 'right-start' | false | The placement of the notification badge on the icon to start. It will flip to the opposite side if there is no room.Accepted Values: right-start, left-start |
| className | string | undefined | false | The css class name to be passed through to the component markup. |
| icon | string|React.ReactNode | null | false | Mostly commonly a string but accepts any valid markup or components. If a custom icon is used styles like color and size will need be handled with custom CSS. |
| iconSize | string | 'medium' | false | One of 'xsmall', 'small', 'medium', 'large', and 'xlarge' will change the size of the icon. Defaults to medium.Accepted Values: xsmall, small, medium, large, xlarge |
| iconType | string | 'filled' | false | The icon type to be rendered. Not all icons have every type. To see which icons are available for different types see Material Icons docsAccepted Values: filled, outlined, rounded, two-tone, sharp |
| pointer | boolean | false | false | Add pointer icon style |
| variant | string | empty string | false | Color variations. Variants prefixed with filled-
will add a background color to the icon according to the theme. Variants prefixed with color-
will change the color of the icon according to the theme.Accepted Values: filled-danger-alt, filled-danger, filled-muted, filled-primary, filled-secondary, color-primary, color-secondary, color-on-dark, blue, gray, green, orange, purple, red, teal, yellowDeprecated Values: primary-alt, secondary-alt, primary, danger-alt, danger, muted |
Icon Deprecated Props
| Name | Type | Default | Required | Deprecated | Description | | ---- | ------ | --------- | -------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------- | | size | string | undefined | false | Renamed, see iconSize instead. | One of 'xsmall', 'small', 'medium', 'large', and 'xlarge' will change the size of the icon. Defaults to medium. |
Icon Render Props
| Name | Type | Default | Required | Description |
| ----- | --------------- | --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
| badge | React.ReactNode | undefined | false | The custom icon notification badge to be rendered. The icon notification badge component prevents xsmall
and small
icon size |