@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,311 @@
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 'sass:map';
9
+ @use 'sass:meta';
10
+ @use '../styles/mixins';
11
+ @use '../styles/variables/variables';
12
+ @use 'variables.card' as card-variables;
13
+ @use '../styles/variables/variables.density' as density;
14
+ @use '../styles/core/tokens/variables.tokens' as tokens;
15
+
16
+ @include meta.load-css('properties.card');
17
+ @include mixins.exports('card.clarity') {
18
+ %card-border-appearance {
19
+ box-shadow: card-variables.$clr-card-box-shadow;
20
+ border-radius: card-variables.$clr-card-border-radius;
21
+ border: card-variables.$clr-card-border-width solid card-variables.$clr-card-border-color;
22
+ }
23
+
24
+ %clickable-card-transition {
25
+ box-shadow: card-variables.$clr-card-clickable-box-shadow;
26
+ border: tokens.$cds-alias-object-border-width-100 solid card-variables.$clr-card-clickable-border-color;
27
+ cursor: pointer;
28
+ text-decoration: none;
29
+ transition:
30
+ border 0.2s ease,
31
+ box-shadow 0.2s ease,
32
+ transform 0.2s ease;
33
+ }
34
+
35
+ %card-space-between {
36
+ margin-top: 0;
37
+ margin-bottom: density.$clr-base-gap-m;
38
+
39
+ &:last-child {
40
+ margin-bottom: 0;
41
+ }
42
+ }
43
+
44
+ //Responsive Card Images
45
+ %card-image-appearance {
46
+ display: block;
47
+ height: auto;
48
+ width: 100%;
49
+ max-width: 100%;
50
+ }
51
+
52
+ .card {
53
+ position: relative;
54
+ display: block;
55
+ background-color: card-variables.$clr-card-bg-color;
56
+ width: 100%;
57
+ margin-top: density.$clr-base-vertical-offset-2xl;
58
+
59
+ @extend %card-border-appearance;
60
+
61
+ .alert {
62
+ margin: 0 0 #{density.$clr-base-gap-s} 0;
63
+ }
64
+
65
+ .btn-link {
66
+ min-width: 0;
67
+
68
+ //NOTE: Set left and right padding of link buttons to 0. aligning these buttons
69
+ //without removing the paddings is a huge task and leads to a brittle card css
70
+ //plus the alignment doesn't work in all the cases
71
+ padding: 0;
72
+ }
73
+
74
+ //Clickable Cards
75
+ &.clickable {
76
+ color: inherit;
77
+
78
+ &:hover {
79
+ @extend %clickable-card-transition;
80
+ }
81
+ }
82
+
83
+ .card-title,
84
+ .card-text,
85
+ .card-media-block,
86
+ .list,
87
+ .list-unstyled {
88
+ @extend %card-space-between;
89
+ }
90
+
91
+ & > .list,
92
+ & > .list-unstyled {
93
+ padding: density.$clr-base-vertical-offset-l density.$clr-base-horizontal-offset-xl;
94
+ }
95
+
96
+ .list-group {
97
+ padding-left: 0;
98
+ margin-bottom: 0;
99
+ list-style: none;
100
+ }
101
+
102
+ .list-group-item {
103
+ @include mixins.generate-typography-token('BODY-14-RG-STD');
104
+
105
+ padding: density.$clr-base-vertical-offset-xl density.$clr-base-horizontal-offset-xl;
106
+ background-color: card-variables.$clr-card-bg-color;
107
+ border-bottom: card-variables.$clr-card-border-width solid card-variables.$clr-card-border-color;
108
+ }
109
+ }
110
+
111
+ .card-block {
112
+ padding: density.$clr-base-vertical-offset-xl density.$clr-base-horizontal-offset-xl;
113
+ }
114
+
115
+ .card-footer {
116
+ display: flex;
117
+ flex-direction: row;
118
+ gap: density.$clr-base-gap-s;
119
+ padding: density.$clr-base-vertical-offset-m density.$clr-base-horizontal-offset-xl;
120
+ }
121
+
122
+ h3.card-header,
123
+ .card-header {
124
+ @include mixins.generate-typography-token('SECTION-20-STD');
125
+
126
+ padding: density.$clr-base-vertical-offset-xl density.$clr-base-horizontal-offset-xl;
127
+ color: card-variables.$clr-card-header-title-color;
128
+ }
129
+
130
+ h4.card-title,
131
+ .card-title {
132
+ @include mixins.generate-typography-token('SUBSECTION-16-EXP');
133
+
134
+ color: card-variables.$clr-card-content-title-color;
135
+ }
136
+
137
+ h1,
138
+ h2,
139
+ h3,
140
+ h4,
141
+ h5,
142
+ h6 {
143
+ &.card-header,
144
+ &.card-title {
145
+ margin-top: 0; // removes default margin from clr-ui typography styles
146
+ }
147
+ }
148
+
149
+ .card-text {
150
+ @include mixins.generate-typography-token('BODY-14-RG-STD');
151
+
152
+ color: card-variables.$clr-card-text-color;
153
+ }
154
+
155
+ //Images
156
+ .card-img {
157
+ &:first-child > img {
158
+ border-radius: 0;
159
+ border-top-left-radius: card-variables.$clr-card-border-radius;
160
+ border-top-right-radius: card-variables.$clr-card-border-radius;
161
+ }
162
+
163
+ &:last-child > img {
164
+ border-radius: 0;
165
+ border-bottom-left-radius: card-variables.$clr-card-border-radius;
166
+ border-bottom-right-radius: card-variables.$clr-card-border-radius;
167
+ }
168
+
169
+ & > img {
170
+ @extend %card-image-appearance;
171
+ }
172
+ }
173
+
174
+ //Card with just an image
175
+ .card.card-img,
176
+ .card > .card-img:first-child:last-child {
177
+ & > img {
178
+ border-radius: card-variables.$clr-card-border-radius;
179
+
180
+ @extend %card-image-appearance;
181
+ }
182
+ }
183
+
184
+ .card-block,
185
+ .card-footer {
186
+ .btn,
187
+ .btn.btn-link,
188
+ .card-link {
189
+ margin: 0;
190
+ }
191
+
192
+ .btn-group .btn {
193
+ margin: 0;
194
+ }
195
+ }
196
+
197
+ .card-header,
198
+ .card-block {
199
+ border-bottom: card-variables.$clr-card-border-width solid card-variables.$clr-card-border-color;
200
+
201
+ &:last-child {
202
+ border-bottom: none;
203
+ }
204
+ }
205
+
206
+ //Use border-bottom directly on card header and card block to simplify the layout
207
+ //Card dividers should only be used inside of a .card-block
208
+ .card-divider {
209
+ display: block;
210
+ border-bottom: card-variables.$clr-card-border-width solid card-variables.$clr-card-divider-color;
211
+ }
212
+
213
+ .card-block {
214
+ .card-divider {
215
+ @extend %card-space-between;
216
+
217
+ margin-left: calc(-1 * density.$clr-base-horizontal-offset-xl);
218
+ margin-right: calc(-1 * density.$clr-base-horizontal-offset-xl);
219
+ width: auto;
220
+ }
221
+ }
222
+
223
+ //Hide card dividers and just show the border bottom of card-header and card-block
224
+ .card-header,
225
+ .card-block {
226
+ & + .card-divider {
227
+ display: none;
228
+ }
229
+ }
230
+
231
+ //Card Media Block
232
+ .card-media-block {
233
+ display: flex;
234
+
235
+ .card-media-image {
236
+ flex: 0 0 auto;
237
+
238
+ @include mixins.max-equilateral(density.$clr-base-icon-size-4xl);
239
+ }
240
+
241
+ .card-media-description {
242
+ @include mixins.generate-typography-token('BODY-14-RG-STD');
243
+
244
+ display: flex;
245
+ flex-direction: column;
246
+ color: card-variables.$clr-card-text-color;
247
+ margin-left: density.$clr-base-horizontal-offset-xl;
248
+ }
249
+
250
+ .card-media-title {
251
+ display: inline-block;
252
+ }
253
+
254
+ span,
255
+ .card-media-text {
256
+ display: inline-block;
257
+ }
258
+
259
+ &.wrap {
260
+ flex-direction: column;
261
+
262
+ .card-media-description {
263
+ margin-left: 0;
264
+ margin-top: density.$clr-base-vertical-offset-xl;
265
+ }
266
+ }
267
+ }
268
+
269
+ .card-block {
270
+ & > .list,
271
+ & > .list-unstyled {
272
+ padding: 0;
273
+ }
274
+ }
275
+
276
+ //Credit: Bootstrap 4 Card Masonry
277
+ //Added some fixes to avoid flickering in Clickable cards
278
+ //Added extra column classes to control the number of CSS columns
279
+
280
+ @media screen and (min-width: map.get(variables.$clr-grid-breakpoints, sm)) {
281
+ .card-columns {
282
+ column-count: 3;
283
+ column-gap: density.$clr-base-gap-m;
284
+ break-inside: avoid;
285
+ column-fill: balance;
286
+
287
+ //Note: Safari Bug Fix for CSS Columns
288
+ //http://stackoverflow.com/a/34998087/3538394
289
+ perspective: 1;
290
+
291
+ &.card-columns-2 {
292
+ column-count: 2;
293
+ }
294
+
295
+ &.card-columns-4 {
296
+ column-count: 4;
297
+ }
298
+
299
+ .card {
300
+ display: inline-block; //For some weird reason stops the cards from getting cut off between 2 columns
301
+ margin: density.$clr-base-vertical-offset-s density.$clr-base-horizontal-offset-s;
302
+ }
303
+
304
+ .clickable {
305
+ //To fix the flickering issue with clickable card transition
306
+ //http://stackoverflow.com/questions/3461441/prevent-flicker-on-webkit-transition-of-webkit-transform
307
+ backface-visibility: hidden;
308
+ }
309
+ }
310
+ }
311
+ }
@@ -0,0 +1,240 @@
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 'sass:map';
9
+ @use 'sass:meta';
10
+ @use '../image/icons.clarity';
11
+ @use '../styles/mixins';
12
+ @use '../styles/variables/variables';
13
+ @use 'variables.login' as login-variables;
14
+ @use '../forms/styles/variables.forms' as forms-variables;
15
+ @use '../emphasis/alert/variables.alert' as alert-variables;
16
+ @use '../styles/core/tokens/variables.tokens' as tokens;
17
+ @use '../styles/variables/variables.density' as density;
18
+
19
+ @include meta.load-css('properties.login');
20
+ @include mixins.exports('login.clarity') {
21
+ .login-wrapper {
22
+ display: flex;
23
+ height: 100%;
24
+ background: icons.generateLoginBackground();
25
+ background-size: 100%;
26
+ background-position: mixins.baselinePx(580) 0;
27
+ background-repeat: no-repeat;
28
+
29
+ .login {
30
+ background: login-variables.$clr-login-background-color;
31
+ position: relative;
32
+ display: flex;
33
+ justify-content: center;
34
+ align-items: center;
35
+ flex-direction: column;
36
+ padding: density.$clr-base-vertical-offset-xl density.$clr-base-horizontal-offset-xl;
37
+ height: auto;
38
+ min-height: 100vh;
39
+ width: mixins.baselinePx(580);
40
+
41
+ .login-footer,
42
+ .login-header {
43
+ display: flex;
44
+ width: 100%;
45
+ flex-direction: row;
46
+ align-items: center;
47
+
48
+ .actions {
49
+ margin-left: auto;
50
+ }
51
+ }
52
+
53
+ .login-header {
54
+ .logo {
55
+ height: tokens.$cds-global-space-7;
56
+ width: 100%;
57
+ mask: icons.generateLoginVMWareLogo();
58
+ mask-repeat: no-repeat;
59
+ background-color: login-variables.$clr-login-logo-color;
60
+ }
61
+ }
62
+
63
+ .login-footer {
64
+ gap: login-variables.$clr-login-footer-gap;
65
+
66
+ a,
67
+ .copyright {
68
+ @include mixins.generate-typography-token('CAPTION-LG-11-STD');
69
+
70
+ color: login-variables.$clr-login-copyright-color;
71
+ }
72
+ }
73
+
74
+ .login-body {
75
+ height: 100%;
76
+ display: flex;
77
+ flex-direction: column;
78
+ justify-content: center;
79
+ align-items: center;
80
+ width: mixins.baselinePx(320);
81
+ }
82
+
83
+ .title {
84
+ @include mixins.generate-typography-token('DISPLAY-40');
85
+
86
+ color: login-variables.$clr-login-title-color;
87
+
88
+ .welcome {
89
+ color: login-variables.$clr-login-welcome-color;
90
+ margin: 0 0 #{density.$clr-base-vertical-offset-m} 0;
91
+ }
92
+
93
+ .hint {
94
+ @include mixins.generate-typography-token('SECTION-20-STD');
95
+
96
+ color: login-variables.$clr-login-hint-color;
97
+ margin: #{density.$clr-base-vertical-offset-m} 0 0 0;
98
+ }
99
+ }
100
+
101
+ .login-group {
102
+ display: flex;
103
+ flex-direction: column;
104
+ padding-top: density.$clr-base-vertical-offset-3xl;
105
+ width: 100%;
106
+
107
+ // @TODO Are these used? Some are documented on the website but not actually used. Some are neither documented nor used.
108
+ .auth-source,
109
+ .username,
110
+ .password,
111
+ .checkbox,
112
+ .clr-form-control {
113
+ margin: 0 0 #{density.$clr-base-vertical-offset-2xl} 0;
114
+ }
115
+
116
+ .clr-checkbox-wrapper {
117
+ margin: 0 0 density.$clr-base-vertical-offset-3xl 0;
118
+ }
119
+
120
+ // Overrides for new forms layouts to match original login layout
121
+ .clr-control-container {
122
+ display: block;
123
+ width: 100%;
124
+
125
+ // Override to make select full width
126
+ .clr-select-wrapper,
127
+ .clr-select {
128
+ width: 100%;
129
+ }
130
+
131
+ // Override to make input full width
132
+ .clr-input-wrapper > .clr-input {
133
+ width: 100%;
134
+ }
135
+
136
+ // Override to make password full width
137
+ .clr-input-wrapper {
138
+ width: 100%;
139
+
140
+ & > .clr-input-group {
141
+ max-width: 100%;
142
+ width: 100%;
143
+
144
+ & > .clr-input {
145
+ width: calc(100% - #{forms-variables.$clr-forms-icon-size});
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ // @TODO Is this used? It's not documented on the website or used in the demo app.
152
+ .tooltip-validation {
153
+ margin-top: density.$clr-base-vertical-offset-s;
154
+ }
155
+
156
+ // @TODO Is this used? It's not documented on the website or used in the demo app.
157
+ .tooltip-validation .username,
158
+ .tooltip-validation .password {
159
+ width: 100%;
160
+ margin-top: 0; //Since the top margin is now handled by the tooltip itself
161
+ }
162
+
163
+ .error {
164
+ @include mixins.generate-typography-token('SECONDARY-13-RG-STD');
165
+
166
+ display: none;
167
+ padding: density.$clr-base-vertical-offset-m density.$clr-base-horizontal-offset-m;
168
+ background: login-variables.$clr-login-error-background-color;
169
+ color: alert-variables.$clr-alert-danger-font-color;
170
+ border-radius: alert-variables.$clr-alert-borderradius;
171
+ border: alert-variables.$clr-alert-borderwidth solid alert-variables.$clr-alert-danger-border-color;
172
+
173
+ &::before {
174
+ content: '';
175
+ mask: icons.generateErrorIcon("'none'");
176
+ mask-repeat: no-repeat;
177
+ mask-size: cover;
178
+ background-color: login-variables.$clr-login-error-icon-color;
179
+ margin: tokens.$cds-global-space-1 density.$clr-base-horizontal-offset-s 0 0;
180
+
181
+ @include mixins.equilateral(login-variables.$clr-login-icon-size);
182
+ }
183
+
184
+ &.active {
185
+ display: flex;
186
+
187
+ &::before {
188
+ flex: 0 0 login-variables.$clr-login-icon-size;
189
+ }
190
+ }
191
+ }
192
+
193
+ .btn {
194
+ margin: density.$clr-base-vertical-offset-m 0;
195
+ max-width: none;
196
+ }
197
+
198
+ .signup {
199
+ text-align: center;
200
+ }
201
+ }
202
+
203
+ &::after {
204
+ position: absolute;
205
+ content: '';
206
+ display: block;
207
+ width: tokens.$cds-global-space-1;
208
+ height: 100%;
209
+ background: tokens.$cds-global-color-black;
210
+ opacity: 0.1;
211
+ top: 0;
212
+ right: calc(-1 * tokens.$cds-global-space-2);
213
+ }
214
+ }
215
+ }
216
+
217
+ @media screen and (max-width: map.get(variables.$clr-grid-breakpoints, md)) {
218
+ .login-wrapper {
219
+ justify-content: center;
220
+ background: login-variables.$clr-login-background-color;
221
+
222
+ .login {
223
+ width: 100%;
224
+ margin-left: 0;
225
+ padding: density.$clr-base-vertical-offset-2xl 20%;
226
+
227
+ &::after {
228
+ content: none;
229
+ }
230
+ }
231
+ }
232
+ }
233
+ @media screen and (max-width: map.get(variables.$clr-grid-breakpoints, sm)) {
234
+ .login-wrapper {
235
+ .login {
236
+ padding: density.$clr-base-vertical-offset-2xl 15%;
237
+ }
238
+ }
239
+ }
240
+ }
@@ -0,0 +1,36 @@
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/variables/variables.density' as density;
10
+ @use '../styles/core/tokens/variables.tokens' as tokens;
11
+
12
+ @include mixins.exports('card.properties') {
13
+ @include mixins.root-or-host() {
14
+ --clr-card-title-font-weight: #{tokens.$cds-alias-typography-section-font-weight};
15
+ --clr-card-border-width: #{tokens.$cds-alias-object-border-width-100};
16
+
17
+ &,
18
+ & [clr-density] {
19
+ --clr-card-border-radius: #{density.$clr-base-border-radius-s};
20
+ }
21
+
22
+ &,
23
+ & [cds-theme] {
24
+ --clr-card-bg-color: #{tokens.$cds-alias-object-container-background};
25
+ --clr-card-divider-color: #{tokens.$cds-alias-object-border-color};
26
+ --clr-card-title-color: #{tokens.$cds-alias-typography-color-400};
27
+ --clr-card-border-color: #{tokens.$cds-alias-object-border-color};
28
+ --clr-card-box-shadow: #{tokens.$cds-alias-object-shadow-300};
29
+ --clr-card-clickable-border-color: #{tokens.$cds-alias-object-interaction-background-highlight};
30
+ --clr-card-clickable-box-shadow: 0 0 0 #{tokens.$cds-global-space-1} var(--clr-card-clickable-border-color);
31
+ --clr-card-header-title-color: var(--clr-card-title-color);
32
+ --clr-card-content-title-color: var(--clr-card-title-color);
33
+ --clr-card-text-color: #{tokens.$cds-alias-typography-color-400};
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,32 @@
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/variables/variables';
10
+ @use '../styles/core/tokens/variables.tokens' as tokens;
11
+ @use '../emphasis/alert/variables.alert' as alert-variables;
12
+ @use '../styles/variables/variables.density' as density;
13
+
14
+ @include mixins.exports('login.properties') {
15
+ @include mixins.root-or-host() {
16
+ [cds-theme] {
17
+ --clr-login-title-color: #{tokens.$cds-alias-typography-color-400};
18
+ --clr-login-hint-color: #{tokens.$cds-alias-typography-color-400};
19
+ --clr-login-footer-gap: #{density.$clr-base-gap-l};
20
+ --clr-login-copyright-color: #{tokens.$cds-alias-typography-link-color};
21
+ --clr-login-background-color: #{tokens.$cds-alias-object-container-background};
22
+ --clr-login-welcome-color: #{tokens.$cds-alias-typography-color-400};
23
+ --clr-login-error-background-color: #{alert-variables.$clr-alert-danger-bg-color};
24
+ --clr-login-error-icon-color: #{alert-variables.$clr-alert-danger-icon-color};
25
+ --clr-login-logo-color: #717175; // Brand color from spec. Not a Clarity color.
26
+ }
27
+
28
+ [cds-theme~='dark'] {
29
+ --clr-login-logo-color: #{tokens.$cds-global-color-white};
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,23 @@
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/variables/variables';
9
+
10
+ // Usage: ../layout/_card.clarity.scss
11
+ $clr-card-bg-color: var(--clr-card-bg-color);
12
+ $clr-card-divider-color: var(--clr-card-divider-color);
13
+ $clr-card-title-color: var(--clr-card-title-color);
14
+ $clr-card-title-font-weight: var(--clr-card-title-font-weight);
15
+ $clr-card-header-title-color: var(--clr-card-header-title-color);
16
+ $clr-card-content-title-color: var(--clr-card-content-title-color);
17
+ $clr-card-border-color: var(--clr-card-border-color);
18
+ $clr-card-box-shadow: var(--clr-card-box-shadow);
19
+ $clr-card-clickable-border-color: var(--clr-card-clickable-border-color);
20
+ $clr-card-clickable-box-shadow: var(--clr-card-clickable-box-shadow);
21
+ $clr-card-border-radius: var(--clr-card-border-radius);
22
+ $clr-card-border-width: var(--clr-card-border-width);
23
+ $clr-card-text-color: var(--clr-card-text-color);