From 2c28ad33aee5e54882bbf61b89f4589cea06c102 Mon Sep 17 00:00:00 2001 From: TJ Egan Date: Mon, 28 Feb 2022 16:52:32 -0500 Subject: [PATCH] test(stylelint): add a11y rules to stylelint (#10780) * test(stylelint): add a11y rules to stylelint * chore(stylelint): fix lint violations Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Josh Black Co-authored-by: Taylor Jones --- ...t-a11y-npm-1.2.3-ecffc7ded5-e6548c53ed.zip | Bin 0 -> 66570 bytes config/stylelint-config-carbon/index.js | 1 + config/stylelint-config-carbon/package.json | 1 + .../stylelint-config-carbon/plugins/a11y.js | 15 +++++++++++ .../components/breadcrumb/_breadcrumb.scss | 4 +++ .../src/components/loading/_mixins.scss | 8 ++++++ .../src/components/modal/_modal.scss | 4 +++ .../overflow-menu/_overflow-menu.scss | 4 +++ .../pagination-nav/_pagination-nav.scss | 4 +++ .../src/components/search/_search.scss | 4 +++ .../components/src/components/tile/_tile.scss | 4 +++ .../src/components/toggle/_toggle.scss | 20 +++++++++++++++ .../src/components/tooltip/_tooltip.scss | 4 +++ .../components/src/globals/scss/_tooltip.scss | 4 +++ .../components/breadcrumb/_breadcrumb.scss | 4 +++ .../components/date-picker/_flatpickr.scss | 8 ++++++ .../scss/components/loading/_animation.scss | 8 ++++++ .../styles/scss/components/modal/_modal.scss | 4 +++ .../overflow-menu/_overflow-menu.scss | 4 +++ .../components/pagination-nav/_mixins.scss | 4 +++ .../scss/components/search/_search.scss | 4 +++ .../styles/scss/components/tile/_tile.scss | 4 +++ .../scss/components/toggle/_toggle.scss | 24 ++++++++++++++++++ packages/styles/scss/utilities/_tooltip.scss | 4 +++ yarn.lock | 10 ++++++++ 25 files changed, 155 insertions(+) create mode 100644 .yarn/cache/stylelint-a11y-npm-1.2.3-ecffc7ded5-e6548c53ed.zip create mode 100644 config/stylelint-config-carbon/plugins/a11y.js diff --git a/.yarn/cache/stylelint-a11y-npm-1.2.3-ecffc7ded5-e6548c53ed.zip b/.yarn/cache/stylelint-a11y-npm-1.2.3-ecffc7ded5-e6548c53ed.zip new file mode 100644 index 0000000000000000000000000000000000000000..19b7d23573a5d6dcecf5fa1181b16ceb987e206a GIT binary patch literal 66570 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 literal 0 HcmV?d00001 diff --git a/config/stylelint-config-carbon/index.js b/config/stylelint-config-carbon/index.js index bd561d7ac6d7..67c76cc74fe4 100644 --- a/config/stylelint-config-carbon/index.js +++ b/config/stylelint-config-carbon/index.js @@ -16,6 +16,7 @@ module.exports = { require.resolve('./rules/possible-errors'), require.resolve('./rules/limit-language-features'), require.resolve('./rules/stylistic-issues'), + require.resolve('./plugins/a11y'), require.resolve('./plugins/prettier'), require.resolve('./plugins/scss'), ], diff --git a/config/stylelint-config-carbon/package.json b/config/stylelint-config-carbon/package.json index 321a82c2324a..ec41b4b4dde3 100644 --- a/config/stylelint-config-carbon/package.json +++ b/config/stylelint-config-carbon/package.json @@ -26,6 +26,7 @@ "stylelint": "^14.3.0" }, "dependencies": { + "stylelint-a11y": "^1.2.3", "stylelint-config-idiomatic-order": "^8.1.0", "stylelint-config-prettier": "^9.0.3", "stylelint-config-standard": "^24.0.0", diff --git a/config/stylelint-config-carbon/plugins/a11y.js b/config/stylelint-config-carbon/plugins/a11y.js new file mode 100644 index 000000000000..6f30207dce6b --- /dev/null +++ b/config/stylelint-config-carbon/plugins/a11y.js @@ -0,0 +1,15 @@ +/** + * Copyright IBM Corp. 2018, 2018 + * + * This source code is licensed under the Apache-2.0 license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +module.exports = { + plugins: ['stylelint-a11y'], + rules: { + 'a11y/media-prefers-reduced-motion': true, + }, +}; diff --git a/packages/components/src/components/breadcrumb/_breadcrumb.scss b/packages/components/src/components/breadcrumb/_breadcrumb.scss index 459074f85061..034ccfa455d8 100644 --- a/packages/components/src/components/breadcrumb/_breadcrumb.scss +++ b/packages/components/src/components/breadcrumb/_breadcrumb.scss @@ -98,6 +98,10 @@ content: ''; opacity: 0; transition: opacity $duration--fast-01 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } diff --git a/packages/components/src/components/loading/_mixins.scss b/packages/components/src/components/loading/_mixins.scss index afea3ebfd67c..5448099853a0 100644 --- a/packages/components/src/components/loading/_mixins.scss +++ b/packages/components/src/components/loading/_mixins.scss @@ -25,6 +25,10 @@ animation-duration: 10ms; animation-name: init-stroke; animation-timing-function: $carbon--standard-easing; + + @media screen and (prefers-reduced-motion: reduce) { + animation: none; + } } } @@ -42,5 +46,9 @@ animation-fill-mode: forwards; animation-name: stroke-end; animation-timing-function: $carbon--ease-out; + + @media screen and (prefers-reduced-motion: reduce) { + animation: none; + } } } diff --git a/packages/components/src/components/modal/_modal.scss b/packages/components/src/components/modal/_modal.scss index 2e32110ef9b6..818e131c8dcc 100644 --- a/packages/components/src/components/modal/_modal.scss +++ b/packages/components/src/components/modal/_modal.scss @@ -43,6 +43,10 @@ transition: opacity $duration--moderate-02 motion(entrance, expressive), visibility 0ms linear; visibility: inherit; + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } // V11: Question for design: do we have an updated tokens for fields that exist on `layer`? diff --git a/packages/components/src/components/overflow-menu/_overflow-menu.scss b/packages/components/src/components/overflow-menu/_overflow-menu.scss index 3ef07861cad8..921683c2986c 100644 --- a/packages/components/src/components/overflow-menu/_overflow-menu.scss +++ b/packages/components/src/components/overflow-menu/_overflow-menu.scss @@ -110,6 +110,10 @@ content: ''; transition: background-color $duration--fast-02 motion(entrance, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } diff --git a/packages/components/src/components/pagination-nav/_pagination-nav.scss b/packages/components/src/components/pagination-nav/_pagination-nav.scss index 60d75e7a2242..230e684ce953 100644 --- a/packages/components/src/components/pagination-nav/_pagination-nav.scss +++ b/packages/components/src/components/pagination-nav/_pagination-nav.scss @@ -33,6 +33,10 @@ content: ''; opacity: 0; transition: width $duration--fast-02 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } diff --git a/packages/components/src/components/search/_search.scss b/packages/components/src/components/search/_search.scss index 5d66390ec6ad..0374c39a8432 100644 --- a/packages/components/src/components/search/_search.scss +++ b/packages/components/src/components/search/_search.scss @@ -147,6 +147,10 @@ content: ''; transition: background-color $duration--fast-02 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } &:hover { diff --git a/packages/components/src/components/tile/_tile.scss b/packages/components/src/components/tile/_tile.scss index b47592270765..9c6d016fd183 100644 --- a/packages/components/src/components/tile/_tile.scss +++ b/packages/components/src/components/tile/_tile.scss @@ -148,6 +148,10 @@ transform-origin: center; transition: $duration--fast-02 motion(standard, productive); + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } + // Windows, Firefox HCM Fix @media screen and (-ms-high-contrast: active), screen and (prefers-contrast) { diff --git a/packages/components/src/components/toggle/_toggle.scss b/packages/components/src/components/toggle/_toggle.scss index a0cb747333c8..f93ace2c9b08 100644 --- a/packages/components/src/components/toggle/_toggle.scss +++ b/packages/components/src/components/toggle/_toggle.scss @@ -62,6 +62,10 @@ border-radius: 50%; content: ''; transition: transform $duration--fast-01 motion(exit, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } @@ -197,6 +201,10 @@ transition: box-shadow $duration--fast-01 motion(exit, productive), background-color $duration--fast-01 motion(exit, productive); will-change: box-shadow; + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } // Toggle circle @@ -311,6 +319,10 @@ &::after { cursor: not-allowed; transition: $duration--fast-01 motion(exit, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } @@ -430,6 +442,10 @@ transition: box-shadow $duration--fast-01 motion(exit, productive), background-color $duration--fast-01 motion(exit, productive); will-change: box-shadow; + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } // Toggle circle @@ -529,6 +545,10 @@ &::after { cursor: not-allowed; transition: $duration--fast-01 motion(exit, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } diff --git a/packages/components/src/components/tooltip/_tooltip.scss b/packages/components/src/components/tooltip/_tooltip.scss index 507976b9c077..3792b0cbcb6e 100644 --- a/packages/components/src/components/tooltip/_tooltip.scss +++ b/packages/components/src/components/tooltip/_tooltip.scss @@ -38,6 +38,10 @@ opacity: 0; pointer-events: none; transition: opacity $duration--fast-01 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } &::before { diff --git a/packages/components/src/globals/scss/_tooltip.scss b/packages/components/src/globals/scss/_tooltip.scss index 2ee1f785c35e..984f0318665f 100644 --- a/packages/components/src/globals/scss/_tooltip.scss +++ b/packages/components/src/globals/scss/_tooltip.scss @@ -123,6 +123,10 @@ &::before, &::after { transition: opacity $duration--fast-01 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } &.#{$prefix}--tooltip--a11y::before, diff --git a/packages/styles/scss/components/breadcrumb/_breadcrumb.scss b/packages/styles/scss/components/breadcrumb/_breadcrumb.scss index 156fd5905069..570003595ca1 100644 --- a/packages/styles/scss/components/breadcrumb/_breadcrumb.scss +++ b/packages/styles/scss/components/breadcrumb/_breadcrumb.scss @@ -97,6 +97,10 @@ content: ''; opacity: 0; transition: opacity $duration-fast-01 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } diff --git a/packages/styles/scss/components/date-picker/_flatpickr.scss b/packages/styles/scss/components/date-picker/_flatpickr.scss index 05488461eaf8..bb5cffdda6d8 100644 --- a/packages/styles/scss/components/date-picker/_flatpickr.scss +++ b/packages/styles/scss/components/date-picker/_flatpickr.scss @@ -138,6 +138,10 @@ .flatpickr-calendar.animate.open { animation: fp-fade-in-down $duration-fast-02 motion(entrance, productive); + + @media screen and (prefers-reduced-motion: reduce) { + animation: none; + } } .flatpickr-calendar.inline { @@ -230,6 +234,10 @@ // Windows HCM fix @include high-contrast-mode('icon-fill'); + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } + &:hover { background-color: $background-hover; } diff --git a/packages/styles/scss/components/loading/_animation.scss b/packages/styles/scss/components/loading/_animation.scss index 68f6af28d8e9..2b179fa40105 100644 --- a/packages/styles/scss/components/loading/_animation.scss +++ b/packages/styles/scss/components/loading/_animation.scss @@ -20,6 +20,10 @@ animation-duration: 10ms; animation-name: init-stroke; animation-timing-function: motion.$standard-easing; + + @media screen and (prefers-reduced-motion: reduce) { + animation: none; + } } } @@ -35,5 +39,9 @@ animation-fill-mode: forwards; animation-name: stroke-end; animation-timing-function: motion.$ease-out; + + @media screen and (prefers-reduced-motion: reduce) { + animation: none; + } } } diff --git a/packages/styles/scss/components/modal/_modal.scss b/packages/styles/scss/components/modal/_modal.scss index 567f1a07ce60..bd722a0fb445 100644 --- a/packages/styles/scss/components/modal/_modal.scss +++ b/packages/styles/scss/components/modal/_modal.scss @@ -45,6 +45,10 @@ transition: opacity $duration-moderate-02 motion(entrance, expressive), visibility 0ms linear; visibility: inherit; + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } // V11: Question for design: do we have an updated tokens for fields that exist on `layer`? diff --git a/packages/styles/scss/components/overflow-menu/_overflow-menu.scss b/packages/styles/scss/components/overflow-menu/_overflow-menu.scss index 2b5cd4be3fef..b0946f771bf3 100644 --- a/packages/styles/scss/components/overflow-menu/_overflow-menu.scss +++ b/packages/styles/scss/components/overflow-menu/_overflow-menu.scss @@ -111,6 +111,10 @@ content: ''; transition: background-color $duration-fast-02 motion(entrance, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } diff --git a/packages/styles/scss/components/pagination-nav/_mixins.scss b/packages/styles/scss/components/pagination-nav/_mixins.scss index 87458229490a..a74de56bd173 100644 --- a/packages/styles/scss/components/pagination-nav/_mixins.scss +++ b/packages/styles/scss/components/pagination-nav/_mixins.scss @@ -26,6 +26,10 @@ content: ''; opacity: 0; transition: width $duration-fast-02 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } diff --git a/packages/styles/scss/components/search/_search.scss b/packages/styles/scss/components/search/_search.scss index 68318538d6a8..6ce19ccc3c26 100644 --- a/packages/styles/scss/components/search/_search.scss +++ b/packages/styles/scss/components/search/_search.scss @@ -151,6 +151,10 @@ content: ''; transition: background-color $duration-fast-02 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } &:hover { diff --git a/packages/styles/scss/components/tile/_tile.scss b/packages/styles/scss/components/tile/_tile.scss index b5b735173b55..e2de96d4c995 100644 --- a/packages/styles/scss/components/tile/_tile.scss +++ b/packages/styles/scss/components/tile/_tile.scss @@ -144,6 +144,10 @@ transform-origin: center; transition: $duration-fast-02 motion(standard, productive); + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } + // Windows, Firefox HCM Fix @media screen and (-ms-high-contrast: active), screen and (prefers-contrast) { diff --git a/packages/styles/scss/components/toggle/_toggle.scss b/packages/styles/scss/components/toggle/_toggle.scss index 61490376ad73..a130bdb8470b 100644 --- a/packages/styles/scss/components/toggle/_toggle.scss +++ b/packages/styles/scss/components/toggle/_toggle.scss @@ -64,6 +64,10 @@ border-radius: 50%; content: ''; transition: transform $duration-fast-01 motion(exit, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } @@ -199,6 +203,10 @@ transition: box-shadow $duration-fast-01 motion(exit, productive), background-color $duration-fast-01 motion(exit, productive); will-change: box-shadow; + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } // Toggle circle @@ -215,6 +223,10 @@ content: ''; cursor: pointer; transition: transform $duration-fast-01 motion(exit, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } @@ -313,6 +325,10 @@ &::after { cursor: not-allowed; transition: $duration-fast-01 motion(exit, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } @@ -432,6 +448,10 @@ transition: box-shadow $duration-fast-01 motion(exit, productive), background-color $duration-fast-01 motion(exit, productive); will-change: box-shadow; + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } // Toggle circle @@ -531,6 +551,10 @@ &::after { cursor: not-allowed; transition: $duration-fast-01 motion(exit, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } } diff --git a/packages/styles/scss/utilities/_tooltip.scss b/packages/styles/scss/utilities/_tooltip.scss index e3bb23989cec..ada56bb76587 100644 --- a/packages/styles/scss/utilities/_tooltip.scss +++ b/packages/styles/scss/utilities/_tooltip.scss @@ -127,6 +127,10 @@ &::before, &::after { transition: opacity $duration-fast-01 motion(standard, productive); + + @media screen and (prefers-reduced-motion: reduce) { + transition: none; + } } &.#{$prefix}--tooltip--a11y::before, diff --git a/yarn.lock b/yarn.lock index 87efd3a06714..75bfb306a3c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -35408,12 +35408,22 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"stylelint-a11y@npm:^1.2.3": + version: 1.2.3 + resolution: "stylelint-a11y@npm:1.2.3" + peerDependencies: + stylelint: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 + checksum: e6548c53ed5f1a51240e924ef783821ac91def107df4c00a901a017277c72e9372dbd274bd8073032089be686132cf458415317039ca9ab1699e98a75bd6b42c + languageName: node + linkType: hard + "stylelint-config-carbon@workspace:config/stylelint-config-carbon": version: 0.0.0-use.local resolution: "stylelint-config-carbon@workspace:config/stylelint-config-carbon" dependencies: prettier: ^2.2.1 stylelint: ^14.3.0 + stylelint-a11y: ^1.2.3 stylelint-config-idiomatic-order: ^8.1.0 stylelint-config-prettier: ^9.0.3 stylelint-config-standard: ^24.0.0