@react-ui-org/react-ui 0.54.0 → 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +7 -5
  2. package/dist/react-ui.css +36 -38
  3. package/dist/react-ui.development.css +10021 -10523
  4. package/dist/react-ui.development.js +211 -231
  5. package/dist/react-ui.js +1 -1
  6. package/package.json +3 -2
  7. package/src/components/Alert/Alert.jsx +1 -1
  8. package/src/components/Alert/Alert.module.scss +100 -0
  9. package/src/components/Alert/README.md +9 -7
  10. package/src/components/Badge/Badge.jsx +1 -1
  11. package/src/components/Badge/Badge.module.scss +109 -0
  12. package/src/components/Badge/README.md +9 -7
  13. package/src/components/Button/Button.jsx +1 -1
  14. package/src/components/Button/README.md +9 -7
  15. package/src/components/Button/_base.scss +117 -115
  16. package/src/components/Button/_priorities.scss +135 -133
  17. package/src/components/ButtonGroup/ButtonGroup.jsx +1 -1
  18. package/src/components/ButtonGroup/ButtonGroup.module.scss +35 -0
  19. package/src/components/ButtonGroup/README.md +10 -8
  20. package/src/components/Card/Card.jsx +1 -1
  21. package/src/components/Card/Card.module.scss +72 -0
  22. package/src/components/Card/CardBody.jsx +1 -1
  23. package/src/components/Card/CardFooter.jsx +1 -1
  24. package/src/components/Card/README.md +9 -7
  25. package/src/components/CheckboxField/CheckboxField.jsx +1 -1
  26. package/src/components/CheckboxField/CheckboxField.module.scss +63 -0
  27. package/src/components/CheckboxField/README.md +10 -8
  28. package/src/components/FileInputField/FileInputField.jsx +1 -1
  29. package/src/components/FileInputField/FileInputField.module.scss +65 -0
  30. package/src/components/FileInputField/README.md +10 -8
  31. package/src/components/FormLayout/FormLayout.jsx +1 -1
  32. package/src/components/FormLayout/{FormLayout.scss → FormLayout.module.scss} +30 -28
  33. package/src/components/FormLayout/FormLayoutCustomField.jsx +1 -1
  34. package/src/components/FormLayout/FormLayoutCustomField.module.scss +65 -0
  35. package/src/components/FormLayout/README.md +11 -9
  36. package/src/components/Grid/Grid.jsx +1 -1
  37. package/src/components/Grid/Grid.module.scss +66 -0
  38. package/src/components/Grid/GridSpan.jsx +1 -1
  39. package/src/components/Grid/README.md +11 -8
  40. package/src/components/InputGroup/InputGroup.jsx +1 -1
  41. package/src/components/InputGroup/InputGroup.module.scss +93 -0
  42. package/src/components/InputGroup/README.md +10 -8
  43. package/src/components/Modal/Modal.jsx +1 -1
  44. package/src/components/Modal/Modal.module.scss +80 -0
  45. package/src/components/Modal/ModalBody.jsx +1 -1
  46. package/src/components/Modal/ModalBody.module.scss +20 -0
  47. package/src/components/Modal/ModalCloseButton.jsx +1 -1
  48. package/src/components/Modal/ModalCloseButton.module.scss +20 -0
  49. package/src/components/Modal/ModalContent.jsx +1 -1
  50. package/src/components/Modal/ModalContent.module.scss +7 -0
  51. package/src/components/Modal/ModalFooter.jsx +1 -1
  52. package/src/components/Modal/ModalFooter.module.scss +37 -0
  53. package/src/components/Modal/ModalHeader.jsx +1 -1
  54. package/src/components/Modal/ModalHeader.module.scss +32 -0
  55. package/src/components/Modal/ModalTitle.jsx +1 -1
  56. package/src/components/Modal/ModalTitle.module.scss +12 -0
  57. package/src/components/Modal/README.md +17 -14
  58. package/src/components/Paper/Paper.jsx +1 -1
  59. package/src/components/Paper/Paper.module.scss +19 -0
  60. package/src/components/Paper/README.md +9 -7
  61. package/src/components/Popover/Popover.jsx +1 -1
  62. package/src/components/Popover/Popover.module.scss +238 -0
  63. package/src/components/Popover/PopoverWrapper.jsx +1 -2
  64. package/src/components/Popover/PopoverWrapper.module.scss +5 -0
  65. package/src/components/Popover/README.md +9 -7
  66. package/src/components/Radio/README.md +12 -10
  67. package/src/components/Radio/Radio.jsx +1 -1
  68. package/src/components/Radio/Radio.module.scss +85 -0
  69. package/src/components/ScrollView/README.md +10 -8
  70. package/src/components/ScrollView/ScrollView.jsx +1 -1
  71. package/src/components/ScrollView/ScrollView.module.scss +233 -0
  72. package/src/components/SelectField/README.md +10 -8
  73. package/src/components/SelectField/SelectField.jsx +1 -1
  74. package/src/components/SelectField/SelectField.module.scss +111 -0
  75. package/src/components/Table/README.md +10 -8
  76. package/src/components/Table/Table.jsx +1 -1
  77. package/src/components/Table/Table.module.scss +30 -0
  78. package/src/components/Table/_components/TableBodyCell/TableBodyCell.jsx +1 -1
  79. package/src/components/Table/_components/TableCell.module.scss +28 -0
  80. package/src/components/Table/_components/TableHeaderCell/TableHeaderCell.jsx +1 -1
  81. package/src/components/Tabs/README.md +16 -10
  82. package/src/components/Tabs/Tabs.jsx +1 -1
  83. package/src/components/Tabs/Tabs.module.scss +31 -0
  84. package/src/components/Tabs/TabsItem.jsx +1 -1
  85. package/src/components/Tabs/TabsItem.module.scss +119 -0
  86. package/src/components/Text/README.md +15 -9
  87. package/src/components/Text/Text.jsx +1 -1
  88. package/src/components/Text/Text.module.scss +42 -0
  89. package/src/components/TextArea/README.md +10 -8
  90. package/src/components/TextArea/TextArea.jsx +1 -1
  91. package/src/components/TextArea/TextArea.module.scss +97 -0
  92. package/src/components/TextField/README.md +13 -8
  93. package/src/components/TextField/TextField.jsx +1 -1
  94. package/src/components/TextField/TextField.module.scss +109 -0
  95. package/src/components/TextLink/README.md +10 -8
  96. package/src/components/TextLink/TextLink.jsx +1 -1
  97. package/src/components/TextLink/TextLink.module.scss +18 -0
  98. package/src/components/Toggle/README.md +10 -8
  99. package/src/components/Toggle/Toggle.jsx +1 -1
  100. package/src/components/Toggle/Toggle.module.scss +63 -0
  101. package/src/components/Toolbar/README.md +9 -7
  102. package/src/components/Toolbar/Toolbar.jsx +1 -1
  103. package/src/components/Toolbar/Toolbar.module.scss +85 -0
  104. package/src/components/Toolbar/ToolbarGroup.jsx +1 -1
  105. package/src/components/Toolbar/ToolbarItem.jsx +1 -1
  106. package/src/components/_helpers/transferProps.js +47 -7
  107. package/src/foundation.scss +22 -17
  108. package/src/helpers.scss +12 -8
  109. package/src/index.js +3 -4
  110. package/src/index.scss +7 -0
  111. package/src/layers.scss +4 -0
  112. package/src/styles/elements/_page.scss +0 -4
  113. package/src/styles/helpers/_animation.scss +2 -2
  114. package/src/styles/tools/_utilities.scss +1 -1
  115. package/src/theme.scss +1040 -1038
  116. package/src/components/Alert/Alert.scss +0 -98
  117. package/src/components/Badge/Badge.scss +0 -107
  118. package/src/components/ButtonGroup/ButtonGroup.scss +0 -33
  119. package/src/components/Card/Card.scss +0 -70
  120. package/src/components/CheckboxField/CheckboxField.scss +0 -61
  121. package/src/components/FileInputField/FileInputField.scss +0 -63
  122. package/src/components/FormLayout/FormLayoutCustomField.scss +0 -63
  123. package/src/components/Grid/Grid.scss +0 -63
  124. package/src/components/InputGroup/InputGroup.scss +0 -91
  125. package/src/components/Modal/Modal.scss +0 -78
  126. package/src/components/Modal/ModalBody.scss +0 -18
  127. package/src/components/Modal/ModalCloseButton.scss +0 -18
  128. package/src/components/Modal/ModalContent.scss +0 -5
  129. package/src/components/Modal/ModalFooter.scss +0 -35
  130. package/src/components/Modal/ModalHeader.scss +0 -30
  131. package/src/components/Modal/ModalTitle.scss +0 -10
  132. package/src/components/Paper/Paper.scss +0 -17
  133. package/src/components/Popover/Popover.scss +0 -236
  134. package/src/components/Popover/PopoverWrapper.scss +0 -3
  135. package/src/components/Radio/Radio.scss +0 -83
  136. package/src/components/ScrollView/ScrollView.scss +0 -227
  137. package/src/components/SelectField/SelectField.scss +0 -109
  138. package/src/components/Table/Table.scss +0 -28
  139. package/src/components/Table/_components/TableCell.scss +0 -26
  140. package/src/components/Tabs/Tabs.scss +0 -28
  141. package/src/components/Tabs/TabsItem.scss +0 -117
  142. package/src/components/Text/Text.scss +0 -40
  143. package/src/components/TextArea/TextArea.scss +0 -95
  144. package/src/components/TextField/TextField.scss +0 -107
  145. package/src/components/TextLink/TextLink.scss +0 -16
  146. package/src/components/Toggle/Toggle.scss +0 -61
  147. package/src/components/Toolbar/Toolbar.scss +0 -83
  148. /package/src/components/Button/{Button.scss → Button.module.scss} +0 -0
@@ -0,0 +1,63 @@
1
+ @use "../../styles/tools/form-fields/foundation";
2
+ @use "../../styles/tools/form-fields/inline-field-elements";
3
+ @use "../../styles/tools/form-fields/inline-field-layout";
4
+ @use "../../styles/tools/form-fields/variants";
5
+ @use "../../styles/tools/accessibility";
6
+
7
+ @layer components.toggle {
8
+ // Foundation
9
+ .root {
10
+ @include foundation.root();
11
+ @include inline-field-layout.root();
12
+ @include inline-field-elements.min-tap-target($type: toggle);
13
+ @include variants.visual(check);
14
+ }
15
+
16
+ .label {
17
+ @include foundation.label();
18
+ }
19
+
20
+ .field {
21
+ @include inline-field-layout.field($type: toggle);
22
+ }
23
+
24
+ .input {
25
+ @include inline-field-elements.check-input($type: toggle);
26
+ }
27
+
28
+ .helpText,
29
+ .validationText {
30
+ @include foundation.help-text();
31
+ }
32
+
33
+ .isRootRequired .label {
34
+ @include foundation.label-required();
35
+ }
36
+
37
+ // States
38
+ .isRootStateInvalid {
39
+ @include variants.validation(invalid);
40
+ }
41
+
42
+ .isRootStateValid {
43
+ @include variants.validation(valid);
44
+ }
45
+
46
+ .isRootStateWarning {
47
+ @include variants.validation(warning);
48
+ }
49
+
50
+ // Invisible label
51
+ .isLabelHidden {
52
+ @include accessibility.hide-text();
53
+ }
54
+
55
+ // Layouts
56
+ .hasRootLabelBefore {
57
+ @include inline-field-layout.has-label-before();
58
+ }
59
+
60
+ .isRootInFormLayout {
61
+ @include inline-field-layout.in-form-layout();
62
+ }
63
+ }
@@ -322,13 +322,15 @@ Or to build a classic media layout with image on the left and text on the right:
322
322
  ## Forwarding HTML Attributes
323
323
 
324
324
  In addition to the options below in the [component's API](#api) section, you
325
- can specify [React synthetic events] or **any HTML attribute you like.** All
326
- attributes that don't interfere with the API are forwarded to the root `<div>`
327
- HTML element. This enables making the component interactive and helps to improve
325
+ can specify **any HTML attribute you like.** All attributes that don't interfere
326
+ with the API of the React component are forwarded to the root `<div>` HTML
327
+ element. This enables making the component interactive and helps to improve
328
328
  its accessibility.
329
329
 
330
- 👉 Refer to the MDN reference for the full list of supported attributes of the
331
- [div] element.
330
+ 👉 For the full list of supported attributes refer to:
331
+
332
+ - [`<div>` HTML element attributes][div-attributes]{:target="_blank"}
333
+ - [React common props]{:target="_blank"}
332
334
 
333
335
  ## API
334
336
 
@@ -353,7 +355,7 @@ A wrapper for individual toolbar items.
353
355
  | `--rui-Toolbar__gap` | Gap between toolbar items |
354
356
  | `--rui-Toolbar__gap--dense` | Dense gap between toolbar items |
355
357
 
358
+ [div-attributes]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div#attributes
356
359
  [grid]: /components/Grid
357
360
  [text]: /components/Text
358
- [React synthetic events]: https://reactjs.org/docs/events.html
359
- [div]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div#attributes
361
+ [React common props]: https://react.dev/reference/react-dom/components/common#common-props
@@ -6,7 +6,7 @@ import { classNames } from '../../utils/classNames';
6
6
  import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
7
7
  import { getAlignClassName } from './_helpers/getAlignClassName';
8
8
  import { getJustifyClassName } from './_helpers/getJustifyClassName';
9
- import styles from './Toolbar.scss';
9
+ import styles from './Toolbar.module.scss';
10
10
 
11
11
  export const Toolbar = ({
12
12
  align,
@@ -0,0 +1,85 @@
1
+ // 1. Get rid of unwanted spacing of inline elements by invocation of flex layout.
2
+
3
+ @use "../../styles/tools/spacing";
4
+ @use "theme";
5
+
6
+ @layer components.toolbar {
7
+ .toolbar,
8
+ .group {
9
+ display: flex;
10
+ flex-wrap: wrap;
11
+ gap: theme.$gap;
12
+ }
13
+
14
+ .toolbar {
15
+ @include spacing.bottom(layouts);
16
+ }
17
+
18
+ .item {
19
+ display: flex; // 1.
20
+ flex: none;
21
+ flex-direction: column; // 1.
22
+ }
23
+
24
+ .isItemFlexible {
25
+ flex: 1;
26
+ min-width: 0;
27
+ }
28
+
29
+ .isToolbarAlignedToTop,
30
+ .isGroupAlignedToTop {
31
+ align-items: flex-start;
32
+ }
33
+
34
+ .isToolbarAlignedToMiddle,
35
+ .isGroupAlignedToMiddle {
36
+ align-items: center;
37
+ }
38
+
39
+ .isToolbarAlignedToBottom,
40
+ .isGroupAlignedToBottom {
41
+ align-items: flex-end;
42
+ }
43
+
44
+ .isToolbarAlignedToBaseline,
45
+ .isGroupAlignedToBaseline {
46
+ align-items: baseline;
47
+ }
48
+
49
+ .isToolbarJustifiedToStart,
50
+ .isGroupJustifiedToStart {
51
+ justify-content: flex-start;
52
+ }
53
+
54
+ .isToolbarJustifiedToCenter,
55
+ .isGroupJustifiedToCenter {
56
+ justify-content: center;
57
+ }
58
+
59
+ .isToolbarJustifiedToEnd,
60
+ .isGroupJustifiedToEnd {
61
+ justify-content: flex-end;
62
+ }
63
+
64
+ .isToolbarJustifiedToSpaceBetween,
65
+ .isGroupJustifiedToSpaceBetween {
66
+ justify-content: space-between;
67
+ }
68
+
69
+ .isToolbarDense,
70
+ .isGroupDense,
71
+ .isToolbarDense .group,
72
+ .isGroupDense .group {
73
+ gap: theme.$gap-dense;
74
+ }
75
+
76
+ .isToolbarNowrap,
77
+ .isGroupNowrap {
78
+ flex-wrap: nowrap;
79
+ }
80
+
81
+ .isToolbarNowrap > .item:not(.isItemFlexible),
82
+ .isGroupNowrap > .item:not(.isItemFlexible) {
83
+ flex: 0 1 auto;
84
+ }
85
+ }
@@ -5,7 +5,7 @@ import { transferProps } from '../_helpers/transferProps';
5
5
  import { classNames } from '../../utils/classNames';
6
6
  import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
7
7
  import { getAlignClassName } from './_helpers/getAlignClassName';
8
- import styles from './Toolbar.scss';
8
+ import styles from './Toolbar.module.scss';
9
9
 
10
10
  export const ToolbarGroup = ({
11
11
  align,
@@ -4,7 +4,7 @@ import { transferProps } from '../_helpers/transferProps';
4
4
  import { classNames } from '../../utils/classNames';
5
5
  import { withGlobalProps } from '../../provider';
6
6
  import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
7
- import styles from './Toolbar.scss';
7
+ import styles from './Toolbar.module.scss';
8
8
 
9
9
  export const ToolbarItem = ({
10
10
  children,
@@ -1,7 +1,47 @@
1
- export const transferProps = ({
2
- children,
3
- className,
4
- ref,
5
- staticContext,
6
- ...restProps
7
- }) => restProps;
1
+ /**
2
+ * Controls passing of props from the React component to the HTML element
3
+ *
4
+ * Sometimes it is useful to have a mechanism to pass props from the React component to a rendered HTML element.
5
+ * It enables making the component interactive and helps improve its accessibility. However some props should
6
+ * never be passed to the HTML element as it would break things. This function is used to filter out such props.
7
+ *
8
+ * When run in development mode, the function will log the error to the console if any invalid props are passed.
9
+ *
10
+ * @param props The props that were passed to the React component and were not used by it
11
+ * @returns The props to be passed to the HTML element
12
+ */
13
+ export const transferProps = (props) => {
14
+ const {
15
+ children,
16
+ className,
17
+ contentEditable,
18
+ dangerouslySetInnerHTML,
19
+ ref,
20
+ staticContext,
21
+ style,
22
+ suppressContentEditableWarning,
23
+ ...restProps
24
+ } = props;
25
+
26
+ if (process.env.NODE_ENV !== 'production') {
27
+ console.log('props', props);
28
+ const invalidProps = [
29
+ 'children', // It is always either handled by the component itself or not supported.
30
+ 'className', // Classes are set by component authors, changing it arbitrarily might break things.
31
+ 'contentEditable', // Components are either interactive or not, changing it arbitrarily might break things.
32
+ 'dangerouslySetInnerHTML', // This might break things and allow for XSS attacks.
33
+ 'ref', // Forwarding `ref` is hardcoded and documented for each component.
34
+ 'staticContext', // In `react-router` (v4, v5) this is used during server side rendering, it makes no sense to pass it to a component.
35
+ 'style', // Styles are set by component authors, changing it arbitrarily might break things.
36
+ 'suppressContentEditableWarning', // Since setting `contentEditable` is not allowed, this is not needed.
37
+ ]
38
+ .filter((key) => props[key] !== undefined);
39
+
40
+ if (invalidProps.length > 0) {
41
+ // eslint-disable-next-line no-console
42
+ console.error(`Invalid prop(s) supplied to the "transferProps" function: "${invalidProps.join('", "')}"`);
43
+ }
44
+ }
45
+
46
+ return restProps;
47
+ };
@@ -1,28 +1,33 @@
1
1
  // Mandatory themeable CSS layer to prepare ground for components.
2
- // Structured according to ITCSS methodology, ie. most importantly in ascending specificity.
2
+
3
+ @use "sass:meta";
3
4
 
4
5
  //
5
- // 1. Generic
6
- // ==========
6
+ // Generic
7
+ // =======
7
8
  //
8
9
  // Ground-zero styles.
9
10
 
10
- @use "styles/generic/box-sizing";
11
- @use "normalize.css/normalize.css";
12
- @use "styles/generic/focus";
13
- @use "styles/generic/forms";
14
- @use "styles/generic/reset";
15
- @use "styles/generic/shared";
11
+ @layer foundation.generic {
12
+ @include meta.load-css("styles/generic/box-sizing");
13
+ @include meta.load-css("normalize.css/normalize.css");
14
+ @include meta.load-css("styles/generic/focus");
15
+ @include meta.load-css("styles/generic/forms");
16
+ @include meta.load-css("styles/generic/reset");
17
+ @include meta.load-css("styles/generic/shared");
18
+ }
16
19
 
17
20
  //
18
- // 2. Elements
19
- // ===========
21
+ // Elements
22
+ // ========
20
23
  //
21
24
  // Unclassed HTML elements (type selectors).
22
25
 
23
- @use "styles/elements/code";
24
- @use "styles/elements/links";
25
- @use "styles/elements/lists";
26
- @use "styles/elements/page";
27
- @use "styles/elements/rulers";
28
- @use "styles/elements/small";
26
+ @layer foundation.elements {
27
+ @include meta.load-css("styles/elements/code");
28
+ @include meta.load-css("styles/elements/links");
29
+ @include meta.load-css("styles/elements/lists");
30
+ @include meta.load-css("styles/elements/page");
31
+ @include meta.load-css("styles/elements/rulers");
32
+ @include meta.load-css("styles/elements/small");
33
+ }
package/src/helpers.scss CHANGED
@@ -1,22 +1,26 @@
1
1
  // Optional layer with helper CSS classes to easily adjust visual details.
2
- // Structured according to ITCSS methodology, ie. most importantly in ascending specificity.
3
- // This file should be imported as the very last of your stylesheets.
2
+
3
+ @use "sass:meta";
4
4
 
5
5
  //
6
- // 1. Helpers
7
- // ==========
6
+ // Helpers
7
+ // =======
8
8
  //
9
9
  // General purpose helpers for common situations. They can compose multiple CSS rules to do a bit
10
10
  // more complicated tasks.
11
11
 
12
- @use "styles/helpers/animation";
12
+ @layer helpers {
13
+ @include meta.load-css("styles/helpers/animation");
14
+ }
13
15
 
14
16
  //
15
- // 2. Utilities
16
- // ============
17
+ // Utilities
18
+ // =========
17
19
  //
18
20
  // Utility classes to tweak small details like typography, margins or padding. They do just one
19
21
  // thing: they set a single CSS rule and use the otherwise disallowed `!important` to enforce it.
20
22
  // Also they are often responsive (can be adjusted for individual breakpoints).
21
23
 
22
- @use "styles/utilities";
24
+ @layer utilities {
25
+ @include meta.load-css("styles/utilities");
26
+ }
package/src/index.js CHANGED
@@ -1,8 +1,7 @@
1
1
  // Global definitions
2
- // These need to be imported here to be placed in the distribution CSS file
3
- import './theme.scss';
4
- import './foundation.scss';
5
- import './helpers.scss';
2
+ // The styles need to be imported here to be placed in the distribution CSS file.
3
+ // Component styles are imported in the components themselves below.
4
+ import './index.scss';
6
5
 
7
6
  // Components
8
7
  export { Alert } from './components/Alert';
package/src/index.scss ADDED
@@ -0,0 +1,7 @@
1
+ // First establish cascade layers:
2
+ @forward "layers"; // ⚠️ Must come first for the cascade layers to work as intended.
3
+
4
+ // Then import the rest of the files, already organized by layer:
5
+ @forward "theme";
6
+ @forward "foundation";
7
+ @forward "helpers";
@@ -0,0 +1,4 @@
1
+ // Establish CSS cascade layers.
2
+ // ⚠️ WARNING: This file must be called before other React UI styles for the cascade layers to work as intended.
3
+
4
+ @layer theme, foundation, helpers, components, utilities;
@@ -2,8 +2,6 @@
2
2
  @use "../theme/typography";
3
3
 
4
4
  html {
5
- width: 100%;
6
- height: 100%;
7
5
  -moz-osx-font-smoothing: grayscale;
8
6
  -webkit-font-smoothing: antialiased;
9
7
  font-weight: typography.$font-weight-base;
@@ -13,8 +11,6 @@ html {
13
11
  }
14
12
 
15
13
  body {
16
- width: 100%;
17
- min-height: 100%;
18
14
  font-size: 1em;
19
15
  color: page.$color;
20
16
  background-color: page.$background;
@@ -12,10 +12,10 @@ $_spin-easing: cubic-bezier(0.31, 0.3, 0.34, -0.17);
12
12
  }
13
13
  }
14
14
 
15
- :global(.animation-spin-clockwise) {
15
+ .animation-spin-clockwise {
16
16
  animation: spin $_spin-duration $_spin-easing infinite;
17
17
  }
18
18
 
19
- :global(.animation-spin-counterclockwise) {
19
+ .animation-spin-counterclockwise {
20
20
  animation: spin $_spin-duration $_spin-easing infinite reverse;
21
21
  }
@@ -20,7 +20,7 @@
20
20
  // Don't prefix if value key is null (e.g. with shadow class)
21
21
  $property-class-modifier: if($key, "-" + $key, "");
22
22
 
23
- :global(.#{$property-class + $infix + $property-class-modifier}) {
23
+ .#{$property-class + $infix + $property-class-modifier} {
24
24
  @each $property in $properties {
25
25
  // stylelint-disable-next-line declaration-no-important
26
26
  #{$property}: $value !important;