From 7351549c8a2e04d5d07f96982274d37b11abf133 Mon Sep 17 00:00:00 2001 From: Erin Donehoo Date: Mon, 3 Jun 2024 16:31:11 -0400 Subject: [PATCH 1/5] docs(icons): Updates guidance with tokens. --- .../design-guidelines/styles/icons/icons.md | 138 +++++------------- 1 file changed, 40 insertions(+), 98 deletions(-) diff --git a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md index 4f4757da0a..9f51fbb2b7 100644 --- a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md +++ b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md @@ -2,10 +2,13 @@ id: Icons section: design-foundations --- -import { Card, CardBody, Divider, Flex, FlexItem, Grid, GridItem, Icon } from '@patternfly/react-core'; +import { Alert, Card, CardBody, Divider, Flex, FlexItem, Grid, GridItem, Icon } from '@patternfly/react-core'; import CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon'; import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon'; import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon'; +import ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon'; +import InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon'; +import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon'; import GithubIcon from '@patternfly/react-icons/dist/esm/icons/github-icon'; import OutlinedCalendarAltIcon from '@patternfly/react-icons/dist/esm/icons/outlined-calendar-alt-icon'; import StarIcon from '@patternfly/react-icons/dist/esm/icons/star-icon'; @@ -15,101 +18,40 @@ import { IconRecommendations } from './IconRecommendations'; import { IconsTable } from './IconsTable'; import './icons.css'; -If you're a developer, check out our [getting started](/get-started/develop#using-styles) page to learn more about how to get and use our icon set. +If you're a developer, check out our [development onboarding guide](/get-started//develop#using-icons) to learn how to install and use our icon set. + +## Icon sizes + +PatternFly supports a range of icon sizes so that all icons can be adapted to different use cases. This range includes small, medium, large, x-large, 2xl, and 3xl icons, which correspond to the following font sizes and tokens: + +| **Size** | **Token** | **Example** | +| --- | --- | :---: | +| Small (12px) | `--pf-t--global--icon--size--sm` | | +| Medium (14px) | `--pf-t--global--icon--size--md` | | +| Large (16px) | `--pf-t--global--icon--size--lg` | | +| X-large (22px) | `--pf-t--global--icon--size--xl` | | +| 2xl (56px) | `--pf-t--global--icon--size--2xl` | | +| 3xl (96px) | `--pf-t--global--icon--size--3xl` | | + +Medium icons (the size used in most PatternFly components) are typically the most versatile size to use across UIs. Other icon sizes are used sparingly across PatternFly. Regardless of size, icons should be center-aligned horizontally when placed next to text and center-aligned vertically when stacked: + +
Icon alignment
## Icon colors -Visit our [colors page](/design-foundations/colors) to learn more about icon colors. +All icon colors that you use should align with the proper [semantic design token.](/tokens/all-patternfly-tokens) For example, a warning icon should use our approved warning color, a danger icon should use our approved danger color, and so on. -## Icon sizes - - -

- PatternFly supports a range of icon sizes so that all icons can be adapted to different use cases. This range includes small, medium, large, and x-large icons, which correspond to the following font sizes and CSS variables: -

- - - - - - - -

Small (12px)

- --pf-v6-global--icon--FontSize--sm -
-
- - - - - - - -

Medium (16px)

- --pf-v6-global--icon--FontSize--md -
-
- - - - - - - -

Large (24px)

- --pf-v6-global--icon--FontSize--lg -
-
- - - - - - - -

X-large (54px)

- --pf-v6-global--icon--FontSize--xl -
-
-

- Medium icons are typically the most versatile size to use across UIs. PatternFly uses medium icons in most applications. Small, large and x-large icons are used sparingly across PatternFly components. -

-
- - - -

Small icons

- - - Small icons - - - Small icons - - -

Medium icons

- Medium icons -

Large icons

- Large icons -

X-large icons

- Extra large icons -
-
-
- -

- - No matter the size of an icon, when it is placed next to text, it should be center-aligned horizontally, as shown in our [link button example.](/components/button/design-guidelines#link-buttons) Stacked icons should also be center-aligned vertically. - -
Icon alignment
-
-
- -

+| **Icon state** | **Color token** | **Example** | +| --- | --- | :---: | +| Danger | `--pf-t--global--icon--color--status--danger--default` | | +| Warning | `--pf-t--global--icon--color--status--warning--default` | | +| Success | `--pf-t--global--icon--color--status--success--default` | | +| Info | `--pf-t--global--icon--color--status--info--default` | | +| Custom | `--pf-t--global--icon--color--status--custom--default` | | -## PatternFly icons -PatternFly uses custom icons and selections from Font Awesome Free. If PatternFly doesn't offer an icon for your use case, you can download SVGs of additional 'fa' icons from Font Awesome's free set. Be sure to properly attribute these additional icons as outlined on the Font Awesome site. +To learn more about icon colors and color tokens, visit our [colors page.](/design-foundations/colors) -These icons are the same as those in the [PatternFly Sketch design kit](/get-started/design#whats-in-the-design-kit), but you can use any Font Awesome icon so long it aligns with our icon guidelines. +## PatternFly icons +PatternFly uses custom icons and selections from Font Awesome Free, as shown in [this table](#all-icons). If PatternFly doesn't offer an icon for your use case, you can download SVGs of additional 'fa' icons from Font Awesome's free set. Be sure to properly attribute these additional icons as outlined on the Font Awesome site. ### HTML icons When using HTML, use the following syntax: @@ -118,18 +60,18 @@ When using HTML, use the following syntax: - For 'fa' solid icons: ``
- For 'fa' regular icons: ``
-**Note:** Be sure to read [how to get started with icons](/get-started/develop#using-styles) when using 'fa' regular icons. +**Note:** Be sure to reference our [development onboarding guide](/develop#using-icons) when using 'fa' regular icons. ### React icons When using React, include the following import line for 'pficon' icons: `import { [insert-icon-name] } from '@patternfly/react-icons'` ### Font Awesome solid (FAS) vs Font Awesome regular (FAR) -The Font Awesome icons included with PatternFly are Font Awesome solid (FAS) webfont icons. If you're using icons via ``, you can use any FAS icon. If you need to use a Font Awesome regular (FAR) icon, you must include the FAR icon(s) yourself by doing one of the following: +The Font Awesome icons included with PatternFly are Font Awesome solid (FAS) webfont icons. If you're using icons via ``, you can use any FAS icon. If you need to use a Font Awesome regular (FAR) icon, you must include the FAR icons yourself by doing one of the following: -1. [Hosting it yourself](https://fontawesome.com/how-to-use/on-the-web/setup/hosting-font-awesome-yourself) -2. [Including the icon(s) via a package manager](https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers) -3. [Linking to a CDN](https://cdnjs.com/libraries/font-awesome) -4. Using the SVG code directly from [fontawesome.com](https://fontawesome.com) (proper attribution is required) +1. [Host it yourself](https://fontawesome.com/how-to-use/on-the-web/setup/hosting-font-awesome-yourself) +2. [Include the icons via a package manager](https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers) +3. [Link to a CDN](https://cdnjs.com/libraries/font-awesome) +4. Use the SVG code directly from [fontawesome.com](https://fontawesome.com) (proper attribution is required) ## All icons @@ -138,6 +80,6 @@ The following table outlines details for all icons supported by PatternFly, as w For guidance related to tooltips for icons, [refer to our tooltips writing guide.](/ux-writing/tooltips#icon-tooltips) -Select any single icon in the table to download it as an SVG. You can also download all icon SVGs on GitHub. +Select any single icon in the table to download it as an SVG. You can also download all icon SVGs on GitHub (via patternfly-icons.zip.) From 293f984a1ce42c0a1e11dea8bb05273658ad17cd Mon Sep 17 00:00:00 2001 From: Erin Donehoo Date: Fri, 14 Jun 2024 09:37:36 -0400 Subject: [PATCH 2/5] Prepares content for initial review. --- packages/documentation-site/package.json | 2 +- .../design-guidelines/styles/icons/icons.md | 13 +++++--- yarn.lock | 31 +++++++++++++++++-- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/packages/documentation-site/package.json b/packages/documentation-site/package.json index 34c2c1b674..46a20d4283 100644 --- a/packages/documentation-site/package.json +++ b/packages/documentation-site/package.json @@ -17,7 +17,7 @@ "screenshots": "pf-docs-framework screenshots" }, "dependencies": { - "@patternfly/documentation-framework": "6.0.0-alpha.42", + "@patternfly/documentation-framework": "6.0.0-alpha.45", "@patternfly/quickstarts": "^5.1.0", "@patternfly/react-catalog-view-extension": "5.0.0", "@patternfly/react-console": "6.0.0-alpha.1", diff --git a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md index 9f51fbb2b7..d1c6f5b28f 100644 --- a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md +++ b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md @@ -33,7 +33,9 @@ PatternFly supports a range of icon sizes so that all icons can be adapted to di | 2xl (56px) | `--pf-t--global--icon--size--2xl` | | | 3xl (96px) | `--pf-t--global--icon--size--3xl` | | -Medium icons (the size used in most PatternFly components) are typically the most versatile size to use across UIs. Other icon sizes are used sparingly across PatternFly. Regardless of size, icons should be center-aligned horizontally when placed next to text and center-aligned vertically when stacked: +Medium icons are typically the most versatile size to use in a UI. Most icons in PatternFly components are medium—other sizes are used sparingly. + +Regardless of size, icons should be center-aligned horizontally when placed next to text and center-aligned vertically when stacked:
Icon alignment
@@ -63,7 +65,10 @@ When using HTML, use the following syntax: **Note:** Be sure to reference our [development onboarding guide](/develop#using-icons) when using 'fa' regular icons. ### React icons -When using React, include the following import line for 'pficon' icons: `import { [insert-icon-name] } from '@patternfly/react-icons'` +When using React, you can import 'pficon' icons from our [react-icons package](https://www.npmjs.com/package/@patternfly/react-icons) by including the following line: `import { [insert-icon-name] } from '@patternfly/react-icons/dist/esm/icons/[insert-hyphenated-icon-name]';` + +For example: +`import StarIcon from '@patternfly/react-icons/dist/esm/icons/star-icon';` ### Font Awesome solid (FAS) vs Font Awesome regular (FAR) The Font Awesome icons included with PatternFly are Font Awesome solid (FAS) webfont icons. If you're using icons via ``, you can use any FAS icon. If you need to use a Font Awesome regular (FAR) icon, you must include the FAR icons yourself by doing one of the following: @@ -76,9 +81,9 @@ The Font Awesome icons included with PatternFly are Font Awesome solid (FAS) web ## All icons -The following table outlines details for all icons supported by PatternFly, as well as guidance for using each icon. +The following table provides details and usage information for all icons that PatternFly supports. -For guidance related to tooltips for icons, [refer to our tooltips writing guide.](/ux-writing/tooltips#icon-tooltips) +For guidance related to icon tooltips, [refer to our tooltips writing guide.](/ux-writing/tooltips#icon-tooltips) Select any single icon in the table to download it as an SVG. You can also download all icon SVGs on GitHub (via patternfly-icons.zip.) diff --git a/yarn.lock b/yarn.lock index dbb715bb4c..ae4c9b0be3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11339,7 +11339,16 @@ streamx@^2.15.0, streamx@^2.16.1: optionalDependencies: bare-events "^2.2.0" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11388,7 +11397,7 @@ stringify-entities@^3.0.0, stringify-entities@^3.0.1: character-entities-legacy "^1.0.0" xtend "^4.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -11409,6 +11418,13 @@ strip-ansi@^5.1.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -12812,7 +12828,7 @@ wordwrap@^1.0.0: resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -12830,6 +12846,15 @@ wrap-ansi@^6.0.1: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 08fadf3830857ed51240ca5270855f6ee5baaf47 Mon Sep 17 00:00:00 2001 From: Erin Donehoo Date: Mon, 1 Jul 2024 10:50:46 -0400 Subject: [PATCH 3/5] Syntax updates. --- .../design-guidelines/styles/icons/icons.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md index d1c6f5b28f..6638ed1541 100644 --- a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md +++ b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md @@ -26,12 +26,12 @@ PatternFly supports a range of icon sizes so that all icons can be adapted to di | **Size** | **Token** | **Example** | | --- | --- | :---: | -| Small (12px) | `--pf-t--global--icon--size--sm` | | -| Medium (14px) | `--pf-t--global--icon--size--md` | | -| Large (16px) | `--pf-t--global--icon--size--lg` | | -| X-large (22px) | `--pf-t--global--icon--size--xl` | | -| 2xl (56px) | `--pf-t--global--icon--size--2xl` | | -| 3xl (96px) | `--pf-t--global--icon--size--3xl` | | +| Small (12px) | --pf-t--global--icon--size--sm | | +| Medium (14px) | --pf-t--global--icon--size--md | | +| Large (16px) | --pf-t--global--icon--size--lg | | +| X-large (22px) | --pf-t--global--icon--size--xl | | +| 2xl (56px) | --pf-t--global--icon--size--2xl | | +| 3xl (96px) | --pf-t--global--icon--size--3xl | | Medium icons are typically the most versatile size to use in a UI. Most icons in PatternFly components are medium—other sizes are used sparingly. @@ -44,11 +44,11 @@ All icon colors that you use should align with the proper [semantic design token | **Icon state** | **Color token** | **Example** | | --- | --- | :---: | -| Danger | `--pf-t--global--icon--color--status--danger--default` | | -| Warning | `--pf-t--global--icon--color--status--warning--default` | | -| Success | `--pf-t--global--icon--color--status--success--default` | | -| Info | `--pf-t--global--icon--color--status--info--default` | | -| Custom | `--pf-t--global--icon--color--status--custom--default` | | +| Danger | --pf-t--global--icon--color--status--danger--default | | +| Warning | --pf-t--global--icon--color--status--warning--default | | +| Success | --pf-t--global--icon--color--status--success--default | | +| Info | --pf-t--global--icon--color--status--info--default | | +| Custom | --pf-t--global--icon--color--status--custom--default | | To learn more about icon colors and color tokens, visit our [colors page.](/design-foundations/colors) From 286dc6b6c6447b647247bf1bddac77914a068bf1 Mon Sep 17 00:00:00 2001 From: Erin Donehoo Date: Wed, 10 Jul 2024 09:42:09 -0400 Subject: [PATCH 4/5] Add rem units. --- .../content/design-guidelines/styles/icons/icons.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md index 6638ed1541..801bc8503a 100644 --- a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md +++ b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md @@ -26,12 +26,12 @@ PatternFly supports a range of icon sizes so that all icons can be adapted to di | **Size** | **Token** | **Example** | | --- | --- | :---: | -| Small (12px) | --pf-t--global--icon--size--sm | | -| Medium (14px) | --pf-t--global--icon--size--md | | -| Large (16px) | --pf-t--global--icon--size--lg | | -| X-large (22px) | --pf-t--global--icon--size--xl | | -| 2xl (56px) | --pf-t--global--icon--size--2xl | | -| 3xl (96px) | --pf-t--global--icon--size--3xl | | +| Small (0.75rem, 12px) | --pf-t--global--icon--size--sm | | +| Medium (0.875rem, 14px) | --pf-t--global--icon--size--md | | +| Large (1rem, 16px) | --pf-t--global--icon--size--lg | | +| X-large (1.375rem, 22px) | --pf-t--global--icon--size--xl | | +| 2xl (3.5rem, 56px) | --pf-t--global--icon--size--2xl | | +| 3xl (6rem, 96px) | --pf-t--global--icon--size--3xl | | Medium icons are typically the most versatile size to use in a UI. Most icons in PatternFly components are medium—other sizes are used sparingly. From 961eaf9a89bcaee73c659357e0eba7729cbb67b4 Mon Sep 17 00:00:00 2001 From: Erin Donehoo Date: Wed, 10 Jul 2024 13:49:58 -0400 Subject: [PATCH 5/5] Adjust spacing and add inline icon content. --- .../styles/icons/icon-alignment.png | Bin 0 -> 29871 bytes .../styles/icons/icon_alignment.png | Bin 45375 -> 0 bytes .../design-guidelines/styles/icons/icons.md | 69 +++++++++++++----- 3 files changed, 50 insertions(+), 19 deletions(-) create mode 100644 packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icon-alignment.png delete mode 100644 packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icon_alignment.png diff --git a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icon-alignment.png b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icon-alignment.png new file mode 100644 index 0000000000000000000000000000000000000000..38b9090976c0bd9c341105fd67c3fed55fd53294 GIT binary patch literal 29871 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 literal 0 HcmV?d00001 diff --git a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icon_alignment.png b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icon_alignment.png deleted file mode 100644 index 9a8459f076776a5d57f77f4dc9611d79f00d84d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45375 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 KH9n}JL;fFPb;XDP diff --git a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md index 801bc8503a..b4ef85b951 100644 --- a/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md +++ b/packages/documentation-site/patternfly-docs/content/design-guidelines/styles/icons/icons.md @@ -2,7 +2,7 @@ id: Icons section: design-foundations --- -import { Alert, Card, CardBody, Divider, Flex, FlexItem, Grid, GridItem, Icon } from '@patternfly/react-core'; +import { Alert, Card, CardBody, Divider, Flex, FlexItem, Grid, GridItem, Icon, Text, TextVariants } from '@patternfly/react-core'; import CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon'; import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon'; import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon'; @@ -20,35 +20,66 @@ import './icons.css'; If you're a developer, check out our [development onboarding guide](/get-started//develop#using-icons) to learn how to install and use our icon set. +For additional usage instruction, [refer to the icon component pages.](/components/icon) + ## Icon sizes -PatternFly supports a range of icon sizes so that all icons can be adapted to different use cases. This range includes small, medium, large, x-large, 2xl, and 3xl icons, which correspond to the following font sizes and tokens: +Icon size tokens use rems, rather than pixels. Rems are relative units that adjust font size based on a webpage's HTML document root element size. For example, if the root size is 10px, a rem size of 1.5 would be 15px. + +PatternFly's default root element size is 16px. If you change this default size, note that the following tables will no longer show accurate pixel measurements (though the rem values will stay the same). + +## Inline icons + +[Inline icons](/components/icon#inline) must be center-aligned horizontally when placed next to text and center-aligned vertically when stacked. + +Icon alignment + +Use the following semantic tokens to ensure that icons are properly aligned and match the correct font size: + +### Headings | **Size** | **Token** | **Example** | | --- | --- | :---: | -| Small (0.75rem, 12px) | --pf-t--global--icon--size--sm | | -| Medium (0.875rem, 14px) | --pf-t--global--icon--size--md | | -| Large (1rem, 16px) | --pf-t--global--icon--size--lg | | -| X-large (1.375rem, 22px) | --pf-t--global--icon--size--xl | | -| 2xl (3.5rem, 56px) | --pf-t--global--icon--size--2xl | | -| 3xl (6rem, 96px) | --pf-t--global--icon--size--3xl | | +| 1.375rem (22px) | `pf-t--global--icon--size--font--heading--h1` | Heading | +| 1.25rem (20px) | `pf-t--global--icon--size--font--heading--h2` | Heading | +| 1.125rem (18px) | `pf-t--global--icon--size--font--heading--h3` | Heading | +| 1rem (16px) | `pf-t--global--icon--size--font--heading--h4` | Heading | +| 1rem (16px) | `pf-t--global--icon--size--font--heading--h5` | Heading | +| 1rem (16px) | `pf-t--global--icon--size--font--heading--h6` | Heading | -Medium icons are typically the most versatile size to use in a UI. Most icons in PatternFly components are medium—other sizes are used sparingly. +### Body text -Regardless of size, icons should be center-aligned horizontally when placed next to text and center-aligned vertically when stacked: +| **Size** | **Token** | **Example** | +| --- | --- | :---: | +| 0.75rem (12px) | `pf-t--global--icon--size--font--body--sm` | Small body | +| 0.875rem (14px) | `pf-t--global--icon--size--font--body--default` | Default body +| 1rem (16px) | `pf-t--global--icon--size--font--body--lg` | Large body + +## Standalone icons + +Occasionally, you may need to use a standalone icon that isn't aligned with any kind of text. PatternFly supports a range of icon sizes that can adapt to these use cases, including small, medium, large, x-large, 2xl, and 3xl icons. These sizes correspond to the following font sizes and tokens: + +| **Size** | **Token** | **Example** | +| --- | --- | :---: | +| Small (0.75rem, 12px) | `--pf-t--global--icon--size--sm` | | +| Medium (0.875rem, 14px) | `--pf-t--global--icon--size--md` | | +| Large (1rem, 16px) | `--pf-t--global--icon--size--lg` | | +| X-large (1.375rem, 22px) | `--pf-t--global--icon--size--xl` | | +| 2xl (3.5rem, 56px) | `--pf-t--global--icon--size--2xl` | | +| 3xl (6rem, 96px) | `--pf-t--global--icon--size--3xl` | | -
Icon alignment
+Medium icons are typically the most versatile size to use in a UI. Most icons in PatternFly components are medium; other sizes are used sparingly. ## Icon colors All icon colors that you use should align with the proper [semantic design token.](/tokens/all-patternfly-tokens) For example, a warning icon should use our approved warning color, a danger icon should use our approved danger color, and so on. | **Icon state** | **Color token** | **Example** | | --- | --- | :---: | -| Danger | --pf-t--global--icon--color--status--danger--default | | -| Warning | --pf-t--global--icon--color--status--warning--default | | -| Success | --pf-t--global--icon--color--status--success--default | | -| Info | --pf-t--global--icon--color--status--info--default | | -| Custom | --pf-t--global--icon--color--status--custom--default | | +| Danger | `--pf-t--global--icon--color--status--danger--default` | | +| Warning | `--pf-t--global--icon--color--status--warning--default` | | +| Success | `--pf-t--global--icon--color--status--success--default` | | +| Info | `--pf-t--global--icon--color--status--info--default` | | +| Custom | `--pf-t--global--icon--color--status--custom--default` | | To learn more about icon colors and color tokens, visit our [colors page.](/design-foundations/colors) @@ -58,9 +89,9 @@ PatternFly uses custom icons and selections from `
-- For 'fa' solid icons: ``
-- For 'fa' regular icons: ``
+- For 'pficon' icons: `` +- For 'fa' solid icons: `` +- For 'fa' regular icons: `` **Note:** Be sure to reference our [development onboarding guide](/develop#using-icons) when using 'fa' regular icons.