@rossigee/clarity-ui 18.2.1-fixed

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 (219) hide show
  1. package/README.md +29 -0
  2. package/STYLES.md +1796 -0
  3. package/accordion/_accordion.clarity.scss +81 -0
  4. package/accordion/_properties.accordion.scss +45 -0
  5. package/accordion/_variables.accordion.scss +91 -0
  6. package/button/_buttons.clarity.scss +374 -0
  7. package/button/_mixins.buttons.scss +232 -0
  8. package/button/_properties.buttons.scss +325 -0
  9. package/button/_properties.toggles.scss +35 -0
  10. package/button/_variables.buttons.scss +843 -0
  11. package/button/_variables.toggles.scss +41 -0
  12. package/button/button-group/_button-group.clarity.scss +193 -0
  13. package/clr-ui.css +31728 -0
  14. package/clr-ui.css.map +1 -0
  15. package/clr-ui.min.css +52 -0
  16. package/clr-ui.min.css.map +1 -0
  17. package/collapsible-panel/_mixins.collapsible-panel.scss +189 -0
  18. package/collapsible-panel/_properties.collapsible-panel.scss +42 -0
  19. package/collapsible-panel/_variables.collapsible-panel.scss +40 -0
  20. package/data/_mixins.tables.scss +111 -0
  21. package/data/_properties.tables.scss +62 -0
  22. package/data/_tables.clarity.scss +120 -0
  23. package/data/_variables.tables.scss +42 -0
  24. package/data/datagrid/_datagrid.clarity.scss +1753 -0
  25. package/data/datagrid/_mixins.datagrid.scss +102 -0
  26. package/data/datagrid/_properties.datagrid.scss +90 -0
  27. package/data/datagrid/_variables.datagrid.scss +96 -0
  28. package/data/stack-view/_properties.stack-view.scss +50 -0
  29. package/data/stack-view/_stack-view.clarity.scss +267 -0
  30. package/data/stack-view/_variables.stack-view.scss +32 -0
  31. package/data/tree-view/_properties.tree-view.scss +41 -0
  32. package/data/tree-view/_tree-view.clarity.scss +281 -0
  33. package/data/tree-view/_variables.tree-view.scss +51 -0
  34. package/emphasis/alert/_alert.clarity.scss +467 -0
  35. package/emphasis/alert/_mixins.alert.scss +96 -0
  36. package/emphasis/alert/_properties.alert.scss +183 -0
  37. package/emphasis/alert/_variables.alert.scss +502 -0
  38. package/emphasis/badge/_badges.clarity.scss +61 -0
  39. package/emphasis/badge/_mixins.bades.scss +34 -0
  40. package/emphasis/badge/_properties.badges.scss +82 -0
  41. package/emphasis/badge/_variables.badges.scss +160 -0
  42. package/emphasis/label/_labels.clarity.scss +175 -0
  43. package/emphasis/label/_mixins.label.scss +76 -0
  44. package/emphasis/label/_properties.label.scss +105 -0
  45. package/emphasis/label/_variables.label.scss +181 -0
  46. package/forms/combobox/_combobox.clarity.scss +322 -0
  47. package/forms/combobox/_properties.combobox.scss +45 -0
  48. package/forms/combobox/_variables.combobox.scss +32 -0
  49. package/forms/datepicker/_datepicker.clarity.scss +259 -0
  50. package/forms/datepicker/_mixins.datepicker.scss +90 -0
  51. package/forms/datepicker/_properties.datepicker.scss +46 -0
  52. package/forms/datepicker/_variables.datepicker.scss +74 -0
  53. package/forms/styles/_checkbox.clarity.scss +193 -0
  54. package/forms/styles/_containers.clarity.scss +228 -0
  55. package/forms/styles/_datalist.clarity.scss +47 -0
  56. package/forms/styles/_file-input.clarity.scss +134 -0
  57. package/forms/styles/_file.clarity.scss +52 -0
  58. package/forms/styles/_form.clarity.scss +87 -0
  59. package/forms/styles/_input-group.clarity.scss +118 -0
  60. package/forms/styles/_input.clarity.scss +78 -0
  61. package/forms/styles/_mixins.forms.scss +173 -0
  62. package/forms/styles/_number-input.clarity.scss +58 -0
  63. package/forms/styles/_password.clarity.scss +26 -0
  64. package/forms/styles/_properties.forms.scss +121 -0
  65. package/forms/styles/_radio.clarity.scss +120 -0
  66. package/forms/styles/_range.clarity.scss +124 -0
  67. package/forms/styles/_select.clarity.scss +178 -0
  68. package/forms/styles/_textarea.clarity.scss +77 -0
  69. package/forms/styles/_toggles.clarity.scss +209 -0
  70. package/forms/styles/_variables.forms.scss +128 -0
  71. package/icon/icon.component.scss +242 -0
  72. package/image/_icons.clarity.scss +101 -0
  73. package/image/_images.clarity.scss +42 -0
  74. package/image/_mixins.images.scss +11 -0
  75. package/layout/_card.clarity.scss +311 -0
  76. package/layout/_login.clarity.scss +240 -0
  77. package/layout/_properties.card.scss +36 -0
  78. package/layout/_properties.login.scss +32 -0
  79. package/layout/_variables.card.scss +23 -0
  80. package/layout/_variables.login.scss +22 -0
  81. package/layout/breadcrumbs/_breadcrumbs.clarity.scss +60 -0
  82. package/layout/breadcrumbs/_properties.breadcrumbs.scss +18 -0
  83. package/layout/breadcrumbs/_variables.breadcrumbs.scss +11 -0
  84. package/layout/grid/_grid.scss +23 -0
  85. package/layout/grid/grid/_grid.scss +39 -0
  86. package/layout/grid/mixins/_breakpoint.scss +83 -0
  87. package/layout/grid/mixins/_clearfix.scss +13 -0
  88. package/layout/grid/mixins/_grid-framework.scss +91 -0
  89. package/layout/grid/mixins/_grid.scss +39 -0
  90. package/layout/grid/utilities/_align.scss +30 -0
  91. package/layout/grid/utilities/_clearfix.scss +12 -0
  92. package/layout/grid/utilities/_display.scss +18 -0
  93. package/layout/grid/utilities/_flex.scss +222 -0
  94. package/layout/grid/utilities/_float.scss +26 -0
  95. package/layout/grid/utilities/_visibility.scss +60 -0
  96. package/layout/main-container/_layout.clarity.scss +87 -0
  97. package/layout/main-container/_properties.header.scss +39 -0
  98. package/layout/main-container/_variables.header.scss +32 -0
  99. package/layout/nav/_header.clarity.scss +40 -0
  100. package/layout/nav/_links.clarity.scss +84 -0
  101. package/layout/nav/_mixins.header.scss +332 -0
  102. package/layout/nav/_mixins.responsive-nav.scss +75 -0
  103. package/layout/nav/_nav.clarity.scss +100 -0
  104. package/layout/nav/_properties.nav.scss +27 -0
  105. package/layout/nav/_properties.responsive-nav.scss +23 -0
  106. package/layout/nav/_properties.subnav.scss +19 -0
  107. package/layout/nav/_responsive-nav.clarity.scss +488 -0
  108. package/layout/nav/_subnav.clarity.scss +48 -0
  109. package/layout/nav/_variables.nav.scss +13 -0
  110. package/layout/nav/_variables.responsive-nav.scss +28 -0
  111. package/layout/nav/_variables.subnav.scss +21 -0
  112. package/layout/tabs/_mixins.tabs.scss +41 -0
  113. package/layout/tabs/_properties.tabs.scss +25 -0
  114. package/layout/tabs/_tabs.clarity.scss +110 -0
  115. package/layout/tabs/_variables.tabs.scss +17 -0
  116. package/layout/vertical-nav/_mixins.vertical-nav.scss +52 -0
  117. package/layout/vertical-nav/_properties.vertical-nav.scss +73 -0
  118. package/layout/vertical-nav/_variables.vertical-nav.scss +52 -0
  119. package/layout/vertical-nav/_vertical-nav.clarity.scss +469 -0
  120. package/main.scss +14 -0
  121. package/modal/_modal.clarity.scss +362 -0
  122. package/modal/_properties.modal.scss +45 -0
  123. package/modal/_variables.modal.scss +38 -0
  124. package/package.json +15 -0
  125. package/popover/common/_popover.clarity.scss +28 -0
  126. package/popover/dropdown/_dropdown.clarity.scss +326 -0
  127. package/popover/dropdown/_menu-mixins.clarity.scss +132 -0
  128. package/popover/dropdown/_properties.dropdown.scss +50 -0
  129. package/popover/dropdown/_variables.dropdown.scss +36 -0
  130. package/popover/signpost/_properties.signpost.scss +34 -0
  131. package/popover/signpost/_signposts.clarity.scss +414 -0
  132. package/popover/signpost/_variables.signpost.scss +21 -0
  133. package/popover/tooltip/_mixins.tooltip.scss +186 -0
  134. package/popover/tooltip/_properties.tooltip.scss +28 -0
  135. package/popover/tooltip/_tooltips.clarity.scss +122 -0
  136. package/popover/tooltip/_variables.tooltip.scss +20 -0
  137. package/progress/progress-bars/_progress-bars.clarity.scss +616 -0
  138. package/progress/progress-bars/_properties.progress-bars.scss +24 -0
  139. package/progress/progress-bars/_variables.progress-bars.scss +15 -0
  140. package/progress/progress-bars/utils/_mixins.clarity.scss +18 -0
  141. package/progress/spinner/_mixins.spinner.scss +30 -0
  142. package/progress/spinner/_properties.spinner.scss +37 -0
  143. package/progress/spinner/_spinner.clarity.scss +148 -0
  144. package/progress/spinner/_variables.spinner.scss +25 -0
  145. package/stepper/_properties.stepper.scss +29 -0
  146. package/stepper/_stepper.clarity.scss +184 -0
  147. package/stepper/_variables.stepper.scss +13 -0
  148. package/styles/_a11y.scss +14 -0
  149. package/styles/_close.clarity.scss +60 -0
  150. package/styles/_components.clarity.scss +183 -0
  151. package/styles/_mixins.scss +478 -0
  152. package/styles/_normalize.scss +292 -0
  153. package/styles/_reboot.clarity.scss +374 -0
  154. package/styles/_variables.clarity.scss +139 -0
  155. package/styles/core/base/base.element.scss +97 -0
  156. package/styles/core/global.scss +12 -0
  157. package/styles/core/layout/_alignments.scss +18 -0
  158. package/styles/core/layout/_container.scss +29 -0
  159. package/styles/core/layout/_display.scss +58 -0
  160. package/styles/core/layout/_optimize.scss +60 -0
  161. package/styles/core/layout/_shadow-dom.scss +47 -0
  162. package/styles/core/layout/_spacing.scss +31 -0
  163. package/styles/core/layout/_type-grid.scss +66 -0
  164. package/styles/core/layout/_type-horizontal.scss +33 -0
  165. package/styles/core/layout/_type-vertical.scss +26 -0
  166. package/styles/core/layout/mixins/_mixins.alignment.scss +35 -0
  167. package/styles/core/layout/mixins/_mixins.display.scss +23 -0
  168. package/styles/core/layout/mixins/_mixins.grid.scss +105 -0
  169. package/styles/core/layout/mixins/_mixins.scss +106 -0
  170. package/styles/core/layout/mixins/_mixins.shadow-dom.scss +106 -0
  171. package/styles/core/layout/mixins/_mixins.type-horizontal.scss +113 -0
  172. package/styles/core/layout/mixins/_mixins.type-vertical.scss +108 -0
  173. package/styles/core/module.layout.scss +22 -0
  174. package/styles/core/module.reset.scss +48 -0
  175. package/styles/core/module.typography.scss +9 -0
  176. package/styles/core/theme.dark.scss +266 -0
  177. package/styles/core/theme.high-contrast.scss +42 -0
  178. package/styles/core/theme.low-motion.scss +20 -0
  179. package/styles/core/tokens/_alias-interaction.scss +59 -0
  180. package/styles/core/tokens/_alias-object-background.scss +14 -0
  181. package/styles/core/tokens/_alias-object-border.scss +21 -0
  182. package/styles/core/tokens/_alias-object-container.scss +20 -0
  183. package/styles/core/tokens/_alias-object-opacity.scss +15 -0
  184. package/styles/core/tokens/_alias-object-shadow.scss +17 -0
  185. package/styles/core/tokens/_alias-status.scss +34 -0
  186. package/styles/core/tokens/_alias-typography.scss +101 -0
  187. package/styles/core/tokens/_alias-utility.scss +38 -0
  188. package/styles/core/tokens/_alias-viz-colors.scss +170 -0
  189. package/styles/core/tokens/_global-animation.scss +32 -0
  190. package/styles/core/tokens/_global-colors.scss +249 -0
  191. package/styles/core/tokens/_global-space.scss +52 -0
  192. package/styles/core/tokens/_internal-scale.scss +14 -0
  193. package/styles/core/tokens/_properties.tokens.scss +21 -0
  194. package/styles/core/tokens/_variables.tokens.scss +770 -0
  195. package/styles/core/typography/_legacy-typography.scss +328 -0
  196. package/styles/core/typography/_mixins.typography.scss +18 -0
  197. package/styles/core/typography/_typography.scss +321 -0
  198. package/styles/variables/_properties.density.scss +223 -0
  199. package/styles/variables/_properties.global.scss +51 -0
  200. package/styles/variables/_properties.layout.scss +21 -0
  201. package/styles/variables/_properties.scss +11 -0
  202. package/styles/variables/_properties.typography.scss +164 -0
  203. package/styles/variables/_variables.density.scss +114 -0
  204. package/styles/variables/_variables.global.scss +82 -0
  205. package/styles/variables/_variables.layout.scss +37 -0
  206. package/styles/variables/_variables.scss +11 -0
  207. package/styles/variables/_variables.typography.scss +156 -0
  208. package/timeline/_properties.timeline.scss +38 -0
  209. package/timeline/_timeline.clarity.scss +172 -0
  210. package/timeline/_variables.timeline.scss +29 -0
  211. package/typography/_code.scss +36 -0
  212. package/typography/_font-metropolis.scss +45 -0
  213. package/typography/_lists.scss +81 -0
  214. package/typography/_typography.scss +322 -0
  215. package/utils/animations/_animations.clarity.scss +44 -0
  216. package/utils/animations/_mixins.animations.scss +33 -0
  217. package/wizard/_properties.wizard.scss +53 -0
  218. package/wizard/_variables.wizard.scss +58 -0
  219. package/wizard/_wizard.clarity.scss +688 -0
@@ -0,0 +1,78 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use '../../styles/mixins';
9
+ @use 'mixins.forms' as forms-mixins;
10
+ @use 'variables.forms' as forms-variables;
11
+
12
+ @include mixins.exports('forms.input') {
13
+ .clr-input-wrapper {
14
+ white-space: nowrap;
15
+ max-height: forms-variables.$clr-forms-input-wrapper-height;
16
+ }
17
+
18
+ .clr-input {
19
+ @include forms-mixins.custom-inputs-reset(forms-variables.$clr-forms-input-wrapper-height);
20
+ @include forms-mixins.form-fields-appearance();
21
+
22
+ padding: forms-variables.$clr-forms-input-padding;
23
+ max-height: forms-variables.$clr-forms-input-wrapper-height;
24
+
25
+ @include mixins.generate-typography-token('SECONDARY-13-RG-EXP');
26
+
27
+ &[readonly] {
28
+ border: none;
29
+ }
30
+
31
+ &:not([readonly]) {
32
+ @include forms-mixins.input-border-bottom-animation();
33
+ }
34
+
35
+ &:disabled {
36
+ @include forms-mixins.disabled-form-fields();
37
+ @include mixins.input-placeholder-wrapper() {
38
+ color: forms-variables.$clr-forms-placeholder-disabled-color;
39
+ }
40
+ }
41
+ }
42
+
43
+ .clr-error .clr-input:not([readonly]) {
44
+ border-bottom-color: forms-variables.$clr-forms-invalid-color;
45
+
46
+ @include forms-mixins.input-border-bottom-animation(forms-variables.$clr-forms-invalid-color);
47
+ }
48
+
49
+ .clr-success .clr-input:not([readonly]) {
50
+ border-bottom-color: forms-variables.$clr-forms-valid-color;
51
+
52
+ @include forms-mixins.input-border-bottom-animation(forms-variables.$clr-forms-valid-color);
53
+ }
54
+
55
+ .clr-form-control.row .clr-input-wrapper {
56
+ max-width: calc(100% - #{forms-variables.$clr-forms-icon-size});
57
+ }
58
+
59
+ .clr-form-compact .clr-input {
60
+ @include forms-mixins.form-flatten-compact-adjustments();
61
+ }
62
+
63
+ .clr-form-control-readonly .clr-input {
64
+ border: none;
65
+ }
66
+
67
+ .clr-form-control-multi .clr-input {
68
+ max-width: calc(100% + #{forms-variables.$clr-forms-icon-size});
69
+ }
70
+
71
+ /**
72
+ Placeholder
73
+ **/
74
+
75
+ @include mixins.input-placeholder-wrapper() {
76
+ color: forms-variables.$clr-forms-placeholder-color;
77
+ }
78
+ }
@@ -0,0 +1,173 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use '../../styles/mixins';
9
+ @use '../../styles/core/tokens/variables.tokens' as tokens;
10
+ @use '../../styles/variables/variables.global';
11
+ @use '../../styles/variables/variables.density' as density;
12
+ @use 'variables.forms' as forms-variables;
13
+ @use '../../button/variables.toggles' as toggle-variables;
14
+
15
+ // Flatten the error icon and message to be inline for certain input types
16
+
17
+ @mixin form-flatten-validate-text() {
18
+ .clr-control-label {
19
+ font-weight: normal;
20
+ display: block;
21
+ }
22
+ }
23
+
24
+ // Used to provide an inline set of labels for checkbox/radios
25
+
26
+ @mixin form-inline-input($wrap: false) {
27
+ display: flex;
28
+
29
+ @if $wrap {
30
+ flex-wrap: wrap;
31
+ align-content: flex-start;
32
+ }
33
+
34
+ .clr-control-label {
35
+ display: inline-block;
36
+ margin-right: density.$clr-base-gap-m;
37
+ width: auto;
38
+ }
39
+ }
40
+
41
+ // Used to adjust the flattened error icon message for compact
42
+
43
+ @mixin form-flatten-compact-adjustments() {
44
+ max-width: 100%;
45
+
46
+ & ~ .clr-subtext {
47
+ margin-left: density.$clr-base-horizontal-offset-xs;
48
+ }
49
+ }
50
+
51
+ // Standard Clarity Input Bottom Border Animation
52
+
53
+ @mixin input-border-bottom-animation($border-color: forms-variables.$clr-forms-focused-color) {
54
+ // Border-bottom animation on focus
55
+ background: linear-gradient(to bottom, transparent 95%, #{$border-color} 95%) no-repeat;
56
+ background-size: 0 100%;
57
+ transition: background-size 0.2s ease;
58
+
59
+ &:focus,
60
+ &.clr-focus,
61
+ &:focus-within {
62
+ border-bottom-color: $border-color;
63
+ background-size: 100% 100%;
64
+ }
65
+ }
66
+
67
+ // Style default input
68
+
69
+ @mixin custom-inputs-reset($height) {
70
+ @include mixins.clr-appearance-normal();
71
+
72
+ margin: 0;
73
+ padding: 0;
74
+ border: none;
75
+ border-radius: 0;
76
+ box-shadow: none;
77
+ background: none;
78
+ height: $height;
79
+
80
+ &:focus {
81
+ outline: 0;
82
+ }
83
+ }
84
+ @mixin form-fields-appearance(
85
+ $border-color: forms-variables.$clr-forms-border-color,
86
+ $text-color: forms-variables.$clr-forms-text-color
87
+ ) {
88
+ color: $text-color;
89
+ border-bottom: #{tokens.$cds-alias-object-border-width-100} solid #{$border-color};
90
+ display: inline-flex;
91
+ align-items: center;
92
+ }
93
+ @mixin disabled-form-fields() {
94
+ color: forms-variables.$clr-forms-text-disabled-color;
95
+ cursor: not-allowed;
96
+ }
97
+ @mixin checkbox-radio-toggle-control-group-gap() {
98
+ & + .clr-checkbox-wrapper,
99
+ & + .clr-radio-wrapper {
100
+ padding-top: density.$clr-base-control-group-gap;
101
+ }
102
+
103
+ & + .clr-toggle-wrapper {
104
+ margin-top: density.$clr-base-control-group-gap;
105
+ }
106
+ }
107
+ @mixin checkbox-radio-input-styles($size) {
108
+ position: relative;
109
+ //NOTE: Even though the input is invisible, we assign it a height
110
+ //and width so that it aligns right behind the fake checkbox
111
+ //and so that the user's default input size doesn't affect it
112
+
113
+ @include mixins.min-equilateral($size);
114
+ }
115
+ @mixin checkbox-radio-label-styles($min-height, $color, $typography) {
116
+ //Positioning
117
+ position: relative;
118
+
119
+ //Display
120
+ display: block;
121
+ margin-top: 0;
122
+ cursor: pointer;
123
+ min-height: $min-height;
124
+ padding: density.$clr-base-vertical-offset-multi-row-inline-s 0;
125
+ color: $color;
126
+
127
+ @include mixins.generate-typography-token($typography);
128
+ }
129
+ @mixin checkbox-radio-shared-inactive($size, $border-color) {
130
+ //Display
131
+ content: '';
132
+ position: absolute;
133
+ display: inline-block;
134
+
135
+ @include mixins.equilateral($size);
136
+
137
+ border: tokens.$cds-global-space-1 solid $border-color;
138
+ }
139
+ @mixin custom-inputs($height) {
140
+ @include mixins.clr-appearance-normal();
141
+
142
+ margin: 0;
143
+ padding: 0;
144
+ border: none;
145
+ border-radius: 0;
146
+ box-shadow: none;
147
+ background: none;
148
+ height: $height;
149
+
150
+ &:focus {
151
+ outline: 0;
152
+ }
153
+ }
154
+ @mixin range-style($height, $background-color) {
155
+ appearance: none;
156
+ left: 0;
157
+ height: $height;
158
+ background-color: $background-color;
159
+ }
160
+ @mixin range-border-style($border-color, $border-radius, $border-width) {
161
+ border: $border-width solid $border-color;
162
+ border-radius: $border-radius;
163
+ }
164
+ @mixin range-thumb-style($size, $background-color) {
165
+ border-radius: 50%;
166
+ background-color: $background-color;
167
+
168
+ @include mixins.equilateral($size);
169
+ }
170
+ @mixin clr-toggle-transition-styles() {
171
+ transition-duration: toggle-variables.$clr-toggle-transition-time;
172
+ transition-timing-function: toggle-variables.$clr-toggle-transition-animation;
173
+ }
@@ -0,0 +1,58 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use '../../styles/mixins';
9
+ @use 'mixins.forms' as forms-mixins;
10
+ @use 'variables.forms' as forms-variables;
11
+ @use '../../styles/core/tokens/variables.tokens' as tokens;
12
+ @use '../../styles/variables/variables.density' as density;
13
+ @use 'sass:selector';
14
+
15
+ @include mixins.exports('forms.number-input') {
16
+ .clr-number-input-wrapper {
17
+ display: inline-block;
18
+ white-space: nowrap;
19
+ max-height: forms-variables.$clr-forms-input-wrapper-height;
20
+
21
+ .clr-number-input {
22
+ /* Chrome, Safari, Edge, Opera */
23
+ &::-webkit-outer-spin-button,
24
+ &::-webkit-inner-spin-button {
25
+ appearance: none;
26
+ margin: 0;
27
+ }
28
+
29
+ /* Firefox */
30
+ appearance: textfield;
31
+
32
+ &-separator {
33
+ background: tokens.$cds-alias-object-border-color;
34
+ width: tokens.$cds-alias-object-border-width-100;
35
+ height: density.$clr-base-row-height-xs;
36
+ }
37
+ }
38
+
39
+ .clr-input-group-icon-action {
40
+ height: calc(forms-variables.$clr-forms-input-wrapper-height - tokens.$cds-alias-object-border-width-300);
41
+ padding: 0 density.$clr-base-horizontal-offset-xs;
42
+ display: flex;
43
+ align-items: center;
44
+
45
+ &:hover {
46
+ background-color: tokens.$cds-alias-object-interaction-background-hover;
47
+ }
48
+
49
+ &:active {
50
+ background-color: tokens.$cds-alias-object-interaction-background-active;
51
+ }
52
+
53
+ &:disabled {
54
+ background-color: unset;
55
+ }
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use 'variables.forms' as forms-variables;
9
+
10
+ .clr-input-wrapper input[clrPassword] {
11
+ & + button.clr-input-group-icon-action {
12
+ .clr-password-eye-icon {
13
+ color: forms-variables.$clr-forms-password-eye-icon-color;
14
+ }
15
+ }
16
+
17
+ & + button.clr-input-group-icon-action[disabled] {
18
+ .clr-password-eye-icon {
19
+ fill: forms-variables.$clr-forms-password-disabled-eye-icon-color;
20
+ }
21
+ }
22
+
23
+ &[disabled] {
24
+ color: forms-variables.$clr-forms-password-disabled-eye-icon-color;
25
+ }
26
+ }
@@ -0,0 +1,121 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use '../../styles/mixins';
9
+ @use '../../styles/core/tokens/variables.tokens' as tokens;
10
+ @use '../../styles/variables/variables.density' as density;
11
+
12
+ @include mixins.exports('forms.properties') {
13
+ @include mixins.root-or-host() {
14
+ // Legacy CLR form base line (6px). Baked deeply in all form calculations.
15
+ // Don't change it unless you know exactly what you are doing.
16
+ --clr-forms-baseline: #{tokens.$cds-global-space-4};
17
+ --clr-forms-label-font-weight: #{tokens.$cds-alias-typography-font-weight-semibold};
18
+ --clr-forms-checkbox-height: #{tokens.$cds-global-space-7};
19
+
20
+ &,
21
+ & [clr-density] {
22
+ --clr-forms-icon-size: #{density.$clr-base-icon-size-s};
23
+ --clr-forms-input-group-icon-action-size: #{density.$clr-base-icon-size-s};
24
+ --clr-forms-checkbox-border-radius: #{density.$clr-base-border-radius-s};
25
+ --clr-forms-select-caret-size: #{density.$clr-base-icon-size-xs};
26
+ --clr-forms-textarea-border-radius: #{density.$clr-base-border-radius-s};
27
+ --clr-forms-datalist-caret-icon-size: #{density.$clr-base-icon-size-s};
28
+
29
+ // Input
30
+ --clr-forms-input-padding: 0 #{density.$clr-base-horizontal-offset-m};
31
+ --clr-forms-input-wrapper-height: #{density.$clr-base-row-height-s};
32
+
33
+ // Range
34
+ --clr-forms-range-thumb-height: #{density.$clr-base-icon-size-s};
35
+ --clr-forms-range-track-height: #{density.$clr-base-layout-space-2xs};
36
+ --clr-forms-range-track-border-radius: #{density.$clr-base-border-radius-s};
37
+ }
38
+
39
+ &,
40
+ & [cds-theme] {
41
+ --clr-form-disabled-background-color: #{tokens.$cds-alias-object-interaction-background};
42
+
43
+ // Generic
44
+ --clr-forms-label-color: #{tokens.$cds-alias-typography-color-400};
45
+ --clr-forms-text-color: #{tokens.$cds-alias-typography-color-400};
46
+ --clr-forms-invalid-color: #{tokens.$cds-alias-status-danger};
47
+ --clr-forms-invalid-text-color: #{tokens.$cds-alias-status-danger};
48
+ --clr-forms-valid-color: #{tokens.$cds-alias-status-success};
49
+ --clr-forms-valid-text-color: #{tokens.$cds-alias-status-success};
50
+ --clr-forms-subtext-color: #{tokens.$cds-alias-typography-color-300};
51
+ --clr-forms-placeholder-color: #{tokens.$cds-alias-typography-color-200};
52
+ --clr-forms-border-color: #{tokens.$cds-alias-object-interaction-border-color};
53
+ --clr-forms-focused-color: #{tokens.$cds-alias-object-interaction-background-highlight};
54
+ --clr-forms-subtext-disabled-color: #{tokens.$cds-alias-typography-disabled};
55
+ --clr-forms-border-disabled-color: #{tokens.$cds-alias-object-interaction-color-disabled};
56
+ --clr-forms-text-disabled-color: #{tokens.$cds-alias-typography-disabled};
57
+ --clr-forms-label-disabled-color: #{tokens.$cds-alias-typography-disabled};
58
+ --clr-forms-placeholder-disabled-color: #{tokens.$cds-alias-typography-disabled};
59
+
60
+ // Input group
61
+ --clr-forms-input-group-icon-disabled-color: #{tokens.$cds-alias-status-disabled};
62
+
63
+ // Checkbox
64
+ --clr-forms-checkbox-label-color: var(--clr-forms-label-color);
65
+ --clr-forms-checkbox-background-color: #{tokens.$cds-alias-object-interaction-background-highlight};
66
+ --clr-forms-checkbox-indeterminate-border-color: #{tokens.$cds-alias-object-interaction-background-highlight};
67
+ --clr-forms-checkbox-mark-color: #{tokens.$cds-alias-object-interaction-background};
68
+ --clr-forms-checkbox-disabled-label-color: var(--clr-forms-label-disabled-color);
69
+ --clr-forms-checkbox-disabled-background-color: var(--clr-form-disabled-background-color);
70
+ --clr-forms-checkbox-disabled-checked-background-color: #{tokens.$cds-alias-status-disabled};
71
+ --clr-forms-checkbox-disabled-border-color: #{tokens.$cds-alias-status-disabled};
72
+ --clr-forms-checkbox-disabled-indeterminate-color: #{tokens.$cds-alias-status-disabled};
73
+ --clr-forms-checkbox-disabled-mark-color: #{tokens.$cds-alias-object-interaction-background};
74
+
75
+ // Radio
76
+ --clr-forms-radio-label-color: var(--clr-forms-label-color);
77
+ --clr-forms-radio-label-disabled-color: #{tokens.$cds-alias-typography-disabled};
78
+ --clr-forms-radio-disabled-background-color: var(--clr-form-disabled-background-color);
79
+ --clr-forms-radio-disabled-mark-color: #{tokens.$cds-alias-typography-color-100};
80
+ --clr-forms-radio-selected-shadow: inset 0 0 0 #{tokens.$cds-global-space-4}
81
+ #{tokens.$cds-alias-object-interaction-background-highlight};
82
+ --clr-forms-radio-checked-disabled-shadow: inset 0 0 0 #{tokens.$cds-global-space-4}
83
+ #{tokens.$cds-alias-object-interaction-color-disabled};
84
+
85
+ // Password
86
+ --clr-forms-password-eye-icon-color: #{tokens.$cds-alias-object-interaction-color};
87
+ --clr-forms-password-disabled-eye-icon-color: #{tokens.$cds-alias-status-disabled};
88
+
89
+ // Range
90
+ --clr-forms-range-progress-fill-color: #{tokens.$cds-alias-object-interaction-background-highlight};
91
+ --clr-forms-range-track-color: #{tokens.$cds-alias-object-container-background-shade};
92
+ --clr-forms-range-track-border-color: #{tokens.$cds-alias-object-interaction-background-highlight};
93
+ --clr-forms-range-track-border-width: #{tokens.$cds-global-space-1};
94
+ --clr-forms-range-progress-fill-color-disabled: #{tokens.$cds-alias-object-interaction-color-disabled};
95
+ --clr-forms-range-track-color-disabled: #{tokens.$cds-alias-status-disabled-tint};
96
+ --clr-forms-range-track-border-color-disabled: #{tokens.$cds-alias-object-interaction-color-disabled};
97
+
98
+ // Select
99
+ --clr-forms-select-hover-background: transparent;
100
+ --clr-forms-select-disabled-color: #{tokens.$cds-alias-object-interaction-color-disabled};
101
+ --clr-forms-select-hover-border-color: #{tokens.$cds-alias-object-interaction-color-hover};
102
+ --clr-forms-select-disabled-border-color: #{tokens.$cds-alias-object-interaction-color-disabled};
103
+ --clr-forms-select-caret-hover-color: #{tokens.$cds-alias-object-interaction-color-hover};
104
+ --clr-forms-select-caret-color: #{tokens.$cds-alias-object-interaction-color};
105
+ --clr-forms-select-option-color: #{tokens.$cds-alias-typography-color-400};
106
+ --clr-forms-select-option-background-color: #{tokens.$cds-alias-object-interaction-background};
107
+ --clr-forms-select-multiple-background-color: #{tokens.$cds-alias-object-container-background};
108
+ --clr-forms-select-multiple-border-color: #{tokens.$cds-alias-object-border-color};
109
+ --clr-forms-select-multiple-option-color: #{tokens.$cds-alias-typography-color-400};
110
+ --clr-forms-select-multiple-selected-option-background-color: #{tokens.$cds-alias-object-interaction-background-selected};
111
+
112
+ // Textarea
113
+ --clr-forms-textarea-background-color: #{tokens.$cds-alias-object-container-background};
114
+ --clr-forms-textarea-disabled-background: #{tokens.$cds-alias-object-container-background};
115
+
116
+ // Datalist
117
+ --clr-forms-datalist-caret-color: #{tokens.$cds-alias-status-neutral};
118
+ --clr-forms-datalist-caret-disabled-color: #{tokens.$cds-alias-status-disabled};
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,120 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use '../../styles/mixins';
9
+ @use 'mixins.forms' as forms-mixins;
10
+ @use 'variables.forms' as forms-variables;
11
+ @use '../../styles/variables/variables.density' as density;
12
+ @use '../../styles/core/tokens/variables.tokens' as tokens;
13
+
14
+ @include mixins.exports('forms.radio') {
15
+ //Remove the default radio appearance
16
+ %custom-radio {
17
+ @include mixins.clr-appearance-normal();
18
+ }
19
+
20
+ // @TODO un-nest the radio inputs when old forms are removed
21
+ .clr-radio-wrapper {
22
+ @include forms-mixins.form-flatten-validate-text();
23
+
24
+ position: relative;
25
+ display: flex;
26
+ align-items: flex-start;
27
+
28
+ @include forms-mixins.checkbox-radio-toggle-control-group-gap();
29
+
30
+ //Hide the default radio
31
+ input[type='radio'] {
32
+ @include forms-mixins.checkbox-radio-input-styles(forms-variables.$clr-forms-radio-size);
33
+
34
+ @extend %custom-radio;
35
+
36
+ padding: density.$clr-base-vertical-offset-xs 0;
37
+
38
+ &:not(:disabled) {
39
+ cursor: pointer;
40
+ }
41
+
42
+ //Radio button base
43
+ &::before {
44
+ @include forms-mixins.checkbox-radio-shared-inactive(
45
+ forms-variables.$clr-forms-radio-height,
46
+ forms-variables.$clr-forms-border-color
47
+ );
48
+
49
+ border-radius: 50%;
50
+ }
51
+
52
+ //Checked Radio Styles
53
+ &:checked {
54
+ &::before {
55
+ border: none;
56
+ box-shadow: forms-variables.$clr-forms-radio-selected-shadow;
57
+ }
58
+
59
+ &:disabled::before {
60
+ //background-color around the dot
61
+ box-shadow: forms-variables.$clr-forms-radio-checked-disabled-shadow;
62
+ }
63
+ }
64
+
65
+ &:focus {
66
+ outline: none;
67
+
68
+ &::before {
69
+ @include mixins.include-outline-style-form-fields(mixins.baselinePx(3));
70
+ }
71
+ }
72
+
73
+ &:disabled {
74
+ + label {
75
+ cursor: not-allowed;
76
+ color: forms-variables.$clr-forms-radio-label-disabled-color;
77
+ }
78
+
79
+ &::before {
80
+ background-color: forms-variables.$clr-forms-radio-disabled-background-color;
81
+ border-color: tokens.$cds-alias-object-interaction-color-disabled;
82
+ }
83
+ }
84
+ }
85
+
86
+ .clr-control-label {
87
+ @include forms-mixins.checkbox-radio-label-styles(
88
+ forms-variables.$clr-forms-radio-label-height,
89
+ forms-variables.$clr-forms-radio-label-color,
90
+ 'SECONDARY-13-RG-CPT'
91
+ );
92
+
93
+ &:empty {
94
+ padding-left: 0;
95
+ }
96
+ }
97
+ }
98
+
99
+ .clr-form-control-disabled .clr-radio-wrapper {
100
+ .clr-control-label {
101
+ cursor: not-allowed;
102
+ color: forms-variables.$clr-forms-radio-label-disabled-color;
103
+ }
104
+ }
105
+
106
+ .clr-error .clr-radio-wrapper input[type='radio']::before {
107
+ border-color: forms-variables.$clr-forms-invalid-color;
108
+ }
109
+
110
+ .clr-form-compact .clr-radio-wrapper {
111
+ padding-top: 0;
112
+
113
+ @include forms-mixins.form-flatten-compact-adjustments();
114
+ @include forms-mixins.form-inline-input();
115
+
116
+ .clr-control-label {
117
+ margin-top: 0;
118
+ }
119
+ }
120
+ }
@@ -0,0 +1,124 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use '../../styles/mixins';
9
+ @use 'mixins.forms' as forms-mixins;
10
+ @use 'variables.forms' as forms-variables;
11
+ @use '../../styles/core/tokens/variables.tokens' as tokens;
12
+
13
+ @include mixins.exports('forms.range') {
14
+ // Thumb should move down to match its center with track center
15
+ $thumb-y-translation: calc(
16
+ #{forms-variables.$clr-forms-range-thumb-height} / 2 - #{forms-variables.$clr-forms-range-track-height} / 2 +
17
+ #{forms-variables.$clr-forms-range-border-width}
18
+ );
19
+
20
+ .clr-range-wrapper {
21
+ position: relative;
22
+ display: flex;
23
+ justify-content: flex-start;
24
+ align-items: center;
25
+ height: forms-variables.$clr-forms-input-wrapper-height;
26
+ white-space: nowrap;
27
+
28
+ .fill-input {
29
+ position: absolute;
30
+ left: 0;
31
+ display: inline-block;
32
+ height: forms-variables.$clr-forms-range-track-height;
33
+ pointer-events: none; // needed for correct chrome behavior with progress
34
+ cursor: pointer;
35
+ z-index: 10;
36
+ background-color: forms-variables.$clr-forms-range-progress-fill-color;
37
+ border-radius: forms-variables.$clr-forms-range-border-radius;
38
+ border-style: none;
39
+ }
40
+ }
41
+
42
+ .clr-range {
43
+ display: flex;
44
+ justify-content: center;
45
+ align-items: flex-end;
46
+ height: forms-variables.$clr-forms-range-thumb-height;
47
+
48
+ &:disabled {
49
+ pointer-events: auto; // needed for correct chrome behavior for disabled w/ progress
50
+ cursor: not-allowed;
51
+
52
+ @include forms-mixins.range-style(
53
+ forms-variables.$clr-forms-range-track-height,
54
+ forms-variables.$clr-forms-range-track-color-disabled
55
+ );
56
+ }
57
+
58
+ &:disabled::-webkit-slider-thumb {
59
+ appearance: none;
60
+ transform: translate(0, #{$thumb-y-translation});
61
+
62
+ @include forms-mixins.range-thumb-style(
63
+ forms-variables.$clr-forms-range-thumb-height,
64
+ forms-variables.$clr-forms-range-progress-fill-color-disabled
65
+ );
66
+ }
67
+
68
+ &:disabled::-moz-range-thumb {
69
+ border: 0;
70
+
71
+ @include forms-mixins.range-thumb-style(
72
+ forms-variables.$clr-forms-range-thumb-height,
73
+ forms-variables.$clr-forms-range-progress-fill-color-disabled
74
+ );
75
+ }
76
+
77
+ &:disabled + .fill-input {
78
+ pointer-events: auto; // needed for correct chrome behavior for disabled w/ progress
79
+ cursor: not-allowed;
80
+ background-color: forms-variables.$clr-forms-range-progress-fill-color-disabled;
81
+ }
82
+ }
83
+
84
+ input[type='range'] {
85
+ padding: 0;
86
+
87
+ @include forms-mixins.range-style(
88
+ forms-variables.$clr-forms-range-track-height,
89
+ forms-variables.$clr-forms-range-track-color
90
+ );
91
+ @include forms-mixins.range-border-style(
92
+ forms-variables.$clr-forms-range-border-color,
93
+ forms-variables.$clr-forms-range-border-radius,
94
+ forms-variables.$clr-forms-range-border-width
95
+ );
96
+
97
+ &::-webkit-slider-thumb {
98
+ appearance: none;
99
+ transform: translate(0, #{$thumb-y-translation});
100
+
101
+ @include forms-mixins.range-thumb-style(
102
+ forms-variables.$clr-forms-range-thumb-height,
103
+ forms-variables.$clr-forms-range-progress-fill-color
104
+ );
105
+ }
106
+
107
+ &:disabled {
108
+ @include forms-mixins.range-border-style(
109
+ forms-variables.$clr-forms-range-border-color-disabled,
110
+ forms-variables.$clr-forms-range-border-radius,
111
+ forms-variables.$clr-forms-range-border-width
112
+ );
113
+ }
114
+
115
+ &::-moz-range-thumb {
116
+ border: 0;
117
+
118
+ @include forms-mixins.range-thumb-style(
119
+ forms-variables.$clr-forms-range-thumb-height,
120
+ forms-variables.$clr-forms-range-progress-fill-color
121
+ );
122
+ }
123
+ }
124
+ }