@transferwise/neptune-css 0.0.0-experimental-1181467

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 (180) hide show
  1. package/LICENSE.md +13 -0
  2. package/README.md +45 -0
  3. package/dist/css/accordion.css +1 -0
  4. package/dist/css/alerts.css +1 -0
  5. package/dist/css/background.css +1 -0
  6. package/dist/css/badge.css +1 -0
  7. package/dist/css/border-radius.css +1 -0
  8. package/dist/css/breadcrumbs.css +1 -0
  9. package/dist/css/button-groups.css +1 -0
  10. package/dist/css/buttons.css +1 -0
  11. package/dist/css/chevron.css +1 -0
  12. package/dist/css/circles.css +1 -0
  13. package/dist/css/close.css +1 -0
  14. package/dist/css/column-layout.css +1 -0
  15. package/dist/css/currency-flags.css +1 -0
  16. package/dist/css/decision.css +1 -0
  17. package/dist/css/dropdowns.css +1 -0
  18. package/dist/css/droppable.css +1 -0
  19. package/dist/css/flex.css +1 -0
  20. package/dist/css/footer.css +1 -0
  21. package/dist/css/grid.css +1 -0
  22. package/dist/css/input-groups.css +1 -0
  23. package/dist/css/link-callout.css +1 -0
  24. package/dist/css/list-group.css +1 -0
  25. package/dist/css/loaders.css +1 -0
  26. package/dist/css/media.css +1 -0
  27. package/dist/css/modals.css +1 -0
  28. package/dist/css/navbar-base.css +1 -0
  29. package/dist/css/navbar.css +1 -0
  30. package/dist/css/navs.css +1 -0
  31. package/dist/css/neptune-addons.css +1 -0
  32. package/dist/css/neptune-core.css +1 -0
  33. package/dist/css/neptune-social-media.css +1 -0
  34. package/dist/css/neptune.css +1 -0
  35. package/dist/css/panels.css +1 -0
  36. package/dist/css/popovers.css +1 -0
  37. package/dist/css/process.css +1 -0
  38. package/dist/css/progress-bars.css +1 -0
  39. package/dist/css/ring.css +1 -0
  40. package/dist/css/select.css +1 -0
  41. package/dist/css/sequences.css +1 -0
  42. package/dist/css/table.css +1 -0
  43. package/dist/css/tick.css +1 -0
  44. package/dist/css/tooltip.css +1 -0
  45. package/dist/css/utilities.css +1 -0
  46. package/dist/css/wells.css +1 -0
  47. package/dist/fonts/TW-Averta-Bold.woff +0 -0
  48. package/dist/fonts/TW-Averta-Bold.woff2 +0 -0
  49. package/dist/fonts/TW-Averta-Regular.woff +0 -0
  50. package/dist/fonts/TW-Averta-Regular.woff2 +0 -0
  51. package/dist/fonts/TW-Averta-Semibold.woff +0 -0
  52. package/dist/fonts/TW-Averta-Semibold.woff2 +0 -0
  53. package/dist/fonts/TransferWise-IconFont.svg +81 -0
  54. package/dist/fonts/TransferWise-IconFont.woff +0 -0
  55. package/dist/fonts/WorldwiseSans-Heavy.woff2 +0 -0
  56. package/dist/fonts/inter-cyrillic-ext-variable-wghtOnly-normal.woff2 +0 -0
  57. package/dist/fonts/inter-cyrillic-variable-wghtOnly-normal.woff2 +0 -0
  58. package/dist/fonts/inter-greek-ext-variable-wghtOnly-normal.woff2 +0 -0
  59. package/dist/fonts/inter-greek-variable-wghtOnly-normal.woff2 +0 -0
  60. package/dist/fonts/inter-latin-ext-variable-wghtOnly-normal.woff2 +0 -0
  61. package/dist/fonts/inter-latin-variable-wghtOnly-normal.woff2 +0 -0
  62. package/dist/fonts/inter-vietnamese-variable-wghtOnly-normal.woff2 +0 -0
  63. package/dist/img/bg-dark.svg +31 -0
  64. package/dist/img/bg-light.svg +26 -0
  65. package/dist/less/legacy-variables.less +1299 -0
  66. package/dist/less/neptune-tokens.less +272 -0
  67. package/dist/less/zindex.less +17 -0
  68. package/dist/props/custom-media.css +9 -0
  69. package/dist/props/legacy-custom-props.css +69 -0
  70. package/dist/props/neptune-tokens.css +150 -0
  71. package/package.json +59 -0
  72. package/scripts/neptune-css-upgrader.js +106 -0
  73. package/src/fonts/TW-Averta-Bold.woff +0 -0
  74. package/src/fonts/TW-Averta-Bold.woff2 +0 -0
  75. package/src/fonts/TW-Averta-Regular.woff +0 -0
  76. package/src/fonts/TW-Averta-Regular.woff2 +0 -0
  77. package/src/fonts/TW-Averta-Semibold.woff +0 -0
  78. package/src/fonts/TW-Averta-Semibold.woff2 +0 -0
  79. package/src/fonts/TransferWise-IconFont.svg +81 -0
  80. package/src/fonts/TransferWise-IconFont.woff +0 -0
  81. package/src/fonts/WorldwiseSans-Heavy.woff2 +0 -0
  82. package/src/fonts/inter-cyrillic-ext-variable-wghtOnly-normal.woff2 +0 -0
  83. package/src/fonts/inter-cyrillic-variable-wghtOnly-normal.woff2 +0 -0
  84. package/src/fonts/inter-greek-ext-variable-wghtOnly-normal.woff2 +0 -0
  85. package/src/fonts/inter-greek-variable-wghtOnly-normal.woff2 +0 -0
  86. package/src/fonts/inter-latin-ext-variable-wghtOnly-normal.woff2 +0 -0
  87. package/src/fonts/inter-latin-variable-wghtOnly-normal.woff2 +0 -0
  88. package/src/fonts/inter-vietnamese-variable-wghtOnly-normal.woff2 +0 -0
  89. package/src/img/bg-dark.svg +31 -0
  90. package/src/img/bg-light.svg +26 -0
  91. package/src/less/accordion.less +15 -0
  92. package/src/less/addons/_background-utilities.less +82 -0
  93. package/src/less/addons/_border.less +3 -0
  94. package/src/less/addons/_display-utilities.less +159 -0
  95. package/src/less/addons/_spacing-utilities.less +49 -0
  96. package/src/less/addons/_utilities.less +147 -0
  97. package/src/less/alerts.less +253 -0
  98. package/src/less/background.less +24 -0
  99. package/src/less/badge.less +85 -0
  100. package/src/less/border-radius.less +3 -0
  101. package/src/less/breadcrumbs.less +27 -0
  102. package/src/less/button-groups.less +424 -0
  103. package/src/less/buttons.less +714 -0
  104. package/src/less/chevron.less +39 -0
  105. package/src/less/circles.less +223 -0
  106. package/src/less/close.less +48 -0
  107. package/src/less/column-layout.less +167 -0
  108. package/src/less/components/_component-animations.less +43 -0
  109. package/src/less/core/_fonts.less +97 -0
  110. package/src/less/core/_scaffolding.less +473 -0
  111. package/src/less/core/_typography-utilities.less +269 -0
  112. package/src/less/core/_typography.less +794 -0
  113. package/src/less/currency-flags.less +41 -0
  114. package/src/less/decision.less +98 -0
  115. package/src/less/dropdowns.less +374 -0
  116. package/src/less/droppable.less +280 -0
  117. package/src/less/flex.less +113 -0
  118. package/src/less/footer.less +113 -0
  119. package/src/less/forms/bootstrap-forms.less +1227 -0
  120. package/src/less/forms/checkbox-radio.less +303 -0
  121. package/src/less/grid.less +187 -0
  122. package/src/less/input-groups.less +299 -0
  123. package/src/less/link-callout.less +17 -0
  124. package/src/less/list-group.less +260 -0
  125. package/src/less/loaders.less +91 -0
  126. package/src/less/media.less +61 -0
  127. package/src/less/mixins/_alerts.less +35 -0
  128. package/src/less/mixins/_arrows.less +52 -0
  129. package/src/less/mixins/_border-radius.less +11 -0
  130. package/src/less/mixins/_buttons.less +82 -0
  131. package/src/less/mixins/_center-block.less +7 -0
  132. package/src/less/mixins/_circle.less +11 -0
  133. package/src/less/mixins/_clearfix.less +23 -0
  134. package/src/less/mixins/_flex.less +105 -0
  135. package/src/less/mixins/_forms.less +128 -0
  136. package/src/less/mixins/_grid-framework.less +104 -0
  137. package/src/less/mixins/_grid.less +158 -0
  138. package/src/less/mixins/_hide-text.less +20 -0
  139. package/src/less/mixins/_links.less +7 -0
  140. package/src/less/mixins/_list-group.less +23 -0
  141. package/src/less/mixins/_logical-properties-IE-friendly.less +381 -0
  142. package/src/less/mixins/_logical-properties-modern-browsers.less +226 -0
  143. package/src/less/mixins/_logical-properties.less +5 -0
  144. package/src/less/mixins/_nav-vertical-align.less +10 -0
  145. package/src/less/mixins/_panels.less +23 -0
  146. package/src/less/mixins/_physical-properties.less +110 -0
  147. package/src/less/mixins/_reset-text.less +22 -0
  148. package/src/less/mixins/_sequence.less +203 -0
  149. package/src/less/mixins/_spacing.less +122 -0
  150. package/src/less/mixins/_tab-focus.less +5 -0
  151. package/src/less/mixins/_table-row.less +47 -0
  152. package/src/less/mixins/_text-emphasis.less +39 -0
  153. package/src/less/mixins/_theming.less +7 -0
  154. package/src/less/modals.less +239 -0
  155. package/src/less/navbar-base.less +1333 -0
  156. package/src/less/navbar.less +106 -0
  157. package/src/less/navs.less +341 -0
  158. package/src/less/neptune-addons.less +4 -0
  159. package/src/less/neptune-core.less +4 -0
  160. package/src/less/neptune-social-media.less +57 -0
  161. package/src/less/neptune.bundle.less +44 -0
  162. package/src/less/panels.less +410 -0
  163. package/src/less/popovers.less +381 -0
  164. package/src/less/process.less +395 -0
  165. package/src/less/progress-bars.less +70 -0
  166. package/src/less/ring.less +51 -0
  167. package/src/less/select.less +88 -0
  168. package/src/less/sequences.less +515 -0
  169. package/src/less/table.less +385 -0
  170. package/src/less/tick.less +37 -0
  171. package/src/less/tooltip.less +132 -0
  172. package/src/less/utilities.less +153 -0
  173. package/src/less/wells.less +37 -0
  174. package/src/props/custom-media.css +9 -0
  175. package/src/props/legacy-custom-props.css +69 -0
  176. package/src/props/neptune-tokens.css +11 -0
  177. package/src/variables/legacy-variables.less +1299 -0
  178. package/src/variables/neptune-tokens.less +12 -0
  179. package/src/variables/zindex.less +17 -0
  180. package/upgrades/scripts/2021-11-v11-v12.js +61 -0
@@ -0,0 +1,299 @@
1
+ @import (reference) "../variables/legacy-variables.less";
2
+ @import "./mixins/_border-radius.less";
3
+ @import "./mixins/_buttons.less";
4
+ @import "./mixins/_forms.less";
5
+ @import (reference) "./mixins/_logical-properties.less";
6
+ @import (reference) "./core/_typography.less";
7
+ @import "./forms/bootstrap-forms.less";
8
+
9
+ .input-group {
10
+ position: relative; // For dropdowns
11
+ display: table;
12
+ // Prevent input groups from inheriting border styles from table cells when placed in a table
13
+ border-collapse: separate;
14
+ width: 100%;
15
+
16
+ // Undo padding and float of grid classes
17
+ &[class*="col-"] {
18
+ float: none;
19
+ .padding(left, 0);
20
+
21
+ .padding(start, 0);
22
+ }
23
+
24
+ .form-control {
25
+ // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
26
+ .float(left);
27
+
28
+ width: 100%;
29
+ margin-bottom: 0;
30
+
31
+ &:not(:first-child) {
32
+ .border(left, 0);
33
+ }
34
+
35
+ &:not(:last-child) {
36
+ .border(right, 0);
37
+ }
38
+
39
+ border-color: var(--color-interactive-secondary);
40
+ }
41
+
42
+ .input-group-addon {
43
+ button.np-btn {
44
+ padding: 0;
45
+ min-height: 16px;
46
+ border-radius: 50%;
47
+ }
48
+ }
49
+
50
+ .input-group-addon + .form-control {
51
+ .padding(left, 0);
52
+ }
53
+
54
+ .form-control + .input-group-addon {
55
+ .padding(left, 0);
56
+ }
57
+ }
58
+
59
+ // Sizing options
60
+
61
+ .input-group-lg {
62
+ > .form-control,
63
+ > .input-group-addon,
64
+ > .input-group-btn .btn {
65
+ .input-lg();
66
+
67
+ .np-text-title-subsection();
68
+
69
+ font-weight: var(--font-weight-regular);
70
+ margin-bottom: 0;
71
+ }
72
+ }
73
+
74
+ .input-group-sm > .form-control,
75
+ .input-group-sm > .input-group-addon {
76
+ .input-sm();
77
+
78
+ .icon {
79
+ font-size: var(--font-size-20);
80
+ }
81
+ }
82
+
83
+ .input-group-sm > .input-group-btn > .btn {
84
+ .btn-sm();
85
+ }
86
+
87
+ .input-group-sm > .input-group-addon {
88
+ line-height: 22px;
89
+ }
90
+
91
+ // Display as table-cell
92
+ // -------------------------
93
+ .input-group-addon,
94
+ .input-group-btn,
95
+ .input-group .form-control {
96
+ display: table-cell;
97
+ }
98
+ // Addon and addon wrapper for buttons
99
+ .input-group-addon,
100
+ .input-group-btn {
101
+ width: 1%;
102
+ white-space: nowrap;
103
+ vertical-align: middle; // Match the inputs
104
+ }
105
+
106
+ // Text input groups
107
+ // -------------------------
108
+ .input-group-addon {
109
+ padding: var(--input-group-addon-padding);
110
+ font-size: var(--font-size-16);
111
+ line-height: var(--line-height-body);
112
+ color: var(--color-content-secondary);
113
+ text-align: center;
114
+ background-color: var(--color-background-screen);
115
+ border: 1px solid var(--color-interactive-secondary);
116
+
117
+ // Sizing - over rule spacing from .input-group-sm/lg
118
+ &.input-sm {
119
+ padding: var(--input-group-addon-sm-padding) !important;
120
+ }
121
+
122
+ &.input-lg {
123
+ padding: var(--input-group-addon-lg-padding) !important;
124
+ }
125
+
126
+ &--search {
127
+ padding-right: calc(@padding-base-horizontal / 2);
128
+ }
129
+
130
+ // Nuke default margins from checkboxes and radios to vertically center within.
131
+ input[type="radio"],
132
+ input[type="checkbox"] {
133
+ margin-top: 0;
134
+ }
135
+
136
+ .icon {
137
+ font-size: 24px;
138
+ vertical-align: middle;
139
+ display: inline-block;
140
+ margin-top: -2px;
141
+ .margin(left, -4px);
142
+ .margin(right, -5px);
143
+ }
144
+
145
+ a {
146
+ text-decoration: none;
147
+ }
148
+
149
+ &:empty {
150
+ padding: 0 !important;
151
+ // We still need the empty addon to provide border radius
152
+ width: @border-radius-base;
153
+ }
154
+ }
155
+
156
+ .form-group-lg .input-lg,
157
+ .form-group-lg .input-group {
158
+ margin-bottom: 0;
159
+ }
160
+
161
+ .input-group .input-group-addon,
162
+ .input-group .btn-input,
163
+ .input-group .form-control {
164
+ .border-width(left,0);
165
+
166
+ .border-width(right,0);
167
+
168
+ border-radius: 0;
169
+
170
+ .np-theme-personal & {
171
+ border-radius: 0;
172
+ }
173
+ }
174
+
175
+ .input-group .input-group-btn:first-child,
176
+ .input-group .input-group-addon:first-child,
177
+ .input-group .btn-input:first-child,
178
+ .input-group .form-control:first-child {
179
+ .border-width(left, 1px);
180
+
181
+ .border-radius(left, @border-radius-base);
182
+ }
183
+
184
+ .input-group .input-group-btn:last-child,
185
+ .input-group .input-group-addon:last-child,
186
+ .input-group .btn-input:last-child,
187
+ .input-group .form-control:last-child {
188
+ .border-width(right, 1px);
189
+
190
+ .border-radius(right, @border-radius-base);
191
+ }
192
+
193
+ /* TODO: Remove this rule group once the brand refresh is out */
194
+ // stylelint-disable-next-line no-duplicate-selectors
195
+ .input-group {
196
+ > :first-child .btn,
197
+ > :first-child .btn-group {
198
+ .border-radius(right, 0);
199
+
200
+ .np-theme-personal & {
201
+ .border-radius(left, var(--radius-small));
202
+ }
203
+ }
204
+
205
+ > :last-child .btn,
206
+ > :last-child .btn-group {
207
+ .border-radius(left, 0);
208
+
209
+ .np-theme-personal & {
210
+ .border-radius(left, var(--radius-small));
211
+ }
212
+ }
213
+ }
214
+
215
+ // Button input groups
216
+ // -------------------------
217
+ .input-group-btn {
218
+ position: relative;
219
+ // Jankily prevent input button groups from wrapping with `white-space` and
220
+ // `font-size` in combination with `inline-block` on buttons.
221
+ font-size: 0;
222
+ white-space: nowrap;
223
+
224
+ // Negative margin for spacing, position for bringing hovered/focused/actived
225
+ // element above the siblings.
226
+ > .btn {
227
+ position: relative;
228
+
229
+ + .btn {
230
+ .margin(left, -1px);
231
+ }
232
+ // Bring the "active" button to the front
233
+ &:hover,
234
+ &:focus,
235
+ &:active {
236
+ z-index: 2;
237
+ }
238
+ }
239
+
240
+ // Negative margin to only have a 1px border between the two
241
+ &:first-child {
242
+ > .btn,
243
+ > .btn-group {
244
+ .margin(right, -1px);
245
+ }
246
+ }
247
+ }
248
+
249
+ // inputs focus and hover states (not disabled)
250
+ .input-group:hover:not(.disabled,:disabled) {
251
+ .form-control,
252
+ .input-group-addon,
253
+ .btn-input,
254
+ .bootstrap-select .btn-default {
255
+ border-color: var(--color-interactive-secondary-hover);
256
+ }
257
+ }
258
+
259
+ .form-control:hover:not(.disabled,:disabled) {
260
+ border-color: var(--color-interactive-secondary-hover);
261
+ }
262
+
263
+ .input-group:focus-within:not(.disabled,:disabled) {
264
+ .form-control,
265
+ .input-group-addon,
266
+ .btn-input,
267
+ .bootstrap-select .btn-default {
268
+ border-color: var(--color-interactive-accent);
269
+
270
+ .np-theme-personal & {
271
+ border-color: var(--color-interactive-secondary);
272
+ }
273
+ }
274
+ }
275
+
276
+ .form-control:focus-within:not(.disabled,:disabled) {
277
+ border-color: var(--color-interactive-accent);
278
+
279
+ .np-theme-personal & {
280
+ border-color: var(--color-interactive-secondary);
281
+ }
282
+ }
283
+
284
+ .has-error .input-group {
285
+ .form-control,
286
+ .input-group-addon {
287
+ border-color: var(--color-interactive-negative);
288
+
289
+ &:hover {
290
+ border-color: var(--color-interactive-negative-hover);
291
+ }
292
+ }
293
+ }
294
+
295
+ .dropdown-menu {
296
+ .input-group-addon {
297
+ border: 0;
298
+ }
299
+ }
@@ -0,0 +1,17 @@
1
+ @import (reference) "./mixins/_logical-properties.less";
2
+
3
+ .link-callout > .tw-icon-chevron-up {
4
+ display: inline-block;
5
+ .margin(left, var(--size-8));
6
+
7
+ pointer-events: none;
8
+ transition: transform 0.2s ease-in-out;
9
+ transform: rotate(+90deg);
10
+ }
11
+
12
+ .link-callout:hover > .tw-icon-chevron-up,
13
+ .link-callout:focus > .tw-icon-chevron-up,
14
+ .callout-container:hover .link-callout > .tw-icon-chevron-up,
15
+ .callout-container:focus .link-callout > .tw-icon-chevron-up {
16
+ transform: translateX(4px) rotate(+90deg);
17
+ }
@@ -0,0 +1,260 @@
1
+ @import (reference) "../variables/legacy-variables.less";
2
+ @import (reference) "./mixins/_list-group.less";
3
+ @import (reference) "./mixins/_logical-properties.less";
4
+ @import (reference) "./mixins/_theming.less";
5
+ @import (reference) "./core/_typography.less";
6
+
7
+ //
8
+ // List groups
9
+ // --------------------------------------------------
10
+
11
+ // Base class
12
+ //
13
+ // Easily usable on <ul>, <ol>, or <div>.
14
+
15
+ .list-group {
16
+ list-style-type: none;
17
+ margin-bottom: 20px;
18
+ .padding(left, 0); // reset padding because ul and ol
19
+
20
+ border-left: 1px solid var(--color-border-neutral);
21
+ border-right: 1px solid var(--color-border-neutral);
22
+ }
23
+
24
+ // Individual list items
25
+ //
26
+ // Use on `li`s or `div`s within the `.list-group` parent.
27
+
28
+ .list-group-item {
29
+ display: block;
30
+ .padding-shorthand(@spacing-1-mobile, @spacing-1-mobile, @spacing-1-mobile, (@spacing-1-mobile - 2px));
31
+
32
+ // Place the border on the list items and negative margin up for better styling
33
+
34
+ background-color: var(--color-background-screen);
35
+ .border(left, 2px, solid, transparent);
36
+
37
+ margin-top: 1px;
38
+ line-height: var(--line-height-body);
39
+ transition: all ease @panel-focus-transtion;
40
+
41
+ .panel-group & {
42
+ margin-top: 0;
43
+ }
44
+ }
45
+
46
+ @media (--screen-sm) {
47
+ .list-group-item {
48
+ .padding-shorthand(@spacing-1-tablet, @spacing-1-tablet, @spacing-1-tablet, (@spacing-1-tablet - 2px));
49
+ }
50
+ }
51
+
52
+ @media (--screen-lg) {
53
+ .list-group-item {
54
+ .padding-shorthand(@spacing-1-desktop, @spacing-1-desktop, @spacing-1-desktop, (@spacing-1-desktop - 2px));
55
+ }
56
+ }
57
+
58
+ // Custom content options
59
+ //
60
+ // Extra classes for creating well-formatted content within `.list-group-item`s.
61
+
62
+ .list-group-item-heading {
63
+ margin-bottom: 0;
64
+ .np-text-title-group;
65
+
66
+ color: var(--color-content-primary);
67
+ }
68
+
69
+ .list-group-item-text {
70
+ margin-bottom: 0;
71
+ color: var(--color-content-secondary);
72
+ }
73
+
74
+ // Linked list items
75
+ //
76
+ // Use anchor elements instead of `li`s or `div`s to create linked list items.
77
+ // Includes an extra `.active` modifier class for showing selected items.
78
+
79
+ a.list-group-item {
80
+ color: var(--color-content-accent);
81
+ text-decoration: none;
82
+
83
+ .list-group-item-heading {
84
+ color: var(--color-content-accent);
85
+ }
86
+
87
+ // Hover state
88
+ &:not(.disabled, :disabled):hover,
89
+ &:not(.disabled, :disabled):focus {
90
+ text-decoration: none;
91
+ color: var(--color-content-accent-hover);
92
+ background-color: var(--color-background-neutral);
93
+ }
94
+ }
95
+
96
+ // stylelint-disable-next-line no-duplicate-selectors
97
+ .list-group-item {
98
+ // Ideally would use role=button on list group item but invalid markup on li
99
+ &[ng-click] {
100
+ cursor: pointer;
101
+
102
+ &:hover {
103
+ // tell the browser there is a likelihood this will animate when clicked
104
+ will-change: margin, contents;
105
+ }
106
+ }
107
+
108
+ // Active class on item itself, not parent
109
+ &.active {
110
+ z-index: 2; // Place active items above their siblings for proper border styling
111
+ background-color: var(--color-background-elevated);
112
+ box-shadow: 0 1px 10px var(--color-border-neutral);
113
+ margin-top: var(--size-24);
114
+ margin-bottom: var(--size-24);
115
+
116
+ &:first-child {
117
+ margin-top: 1px;
118
+ }
119
+
120
+ &:last-child {
121
+ margin-bottom: 0;
122
+ }
123
+
124
+ .remove-dark-themes-box-shadows();
125
+ }
126
+
127
+ @media (min-width: @screen-md-min) {
128
+ &.active {
129
+ margin-left: -12px;
130
+ margin-right: -12px;
131
+ }
132
+
133
+ .media-body {
134
+ // In combination with applying extra padding to the media-body,
135
+ // this prevents text reflow on panel expansion
136
+ transition: padding ease @panel-focus-transtion;
137
+ }
138
+ }
139
+ }
140
+
141
+ .list-group-inactive {
142
+ .list-group-item {
143
+ background-color: transparent;
144
+ margin-top: 0;
145
+
146
+ &:hover,
147
+ &.active {
148
+ background-color: var(--color-background-screen);
149
+
150
+ @media (--screen-sm) {
151
+ .circle {
152
+ background-color: var(--color-background-neutral);
153
+ }
154
+ }
155
+ }
156
+
157
+ &.active {
158
+ margin-top: var(--size-24);
159
+ }
160
+ }
161
+ }
162
+
163
+ // Contextual variants
164
+ //
165
+ // Add modifier classes to change text and background color on individual items.
166
+ // Organizationally, this must come after the `:hover` states.
167
+
168
+ .list-group-item-variant(success; var(--color-background-positive); var(--color-content-positive));
169
+ .list-group-item-variant(info; var(--color-background-accent); var(--color-content-accent));
170
+ .list-group-item-variant(warning; var(--color-background-warning); var(--color-content-warning));
171
+ .list-group-item-variant(danger; var(--color-background-negative); var(--color-content-negative));
172
+
173
+ // Hover states
174
+ .list-group:hover {
175
+ .list-group-item:not(.active) {
176
+ background-color: #fbfcfd;
177
+
178
+ .media {
179
+ opacity: 0.94;
180
+ }
181
+ }
182
+
183
+ .list-group-item:hover {
184
+ background-color: var(--color-background-screen);
185
+
186
+ .media {
187
+ opacity: 1;
188
+ }
189
+ }
190
+ }
191
+
192
+ .list-group-inactive:hover {
193
+ .list-group-item:not(.active) {
194
+ background-color: var(--color-background-neutral);
195
+ }
196
+
197
+ .list-group-item:hover {
198
+ background-color: var(--color-background-screen);
199
+ }
200
+ }
201
+
202
+ @keyframes listSlideOver {
203
+ 0% { transform: translateX(100vw); }
204
+ 100% { transform: translateX(0); }
205
+ }
206
+
207
+ @media (max-width: @screen-sm-max) {
208
+ .list-group-slide-out {
209
+ .list-group-item {
210
+ .collapse {
211
+ position: fixed;
212
+ top: 0;
213
+ .left(0);
214
+
215
+ width: 100vw;
216
+ height: 100vh;
217
+ height: 100dvh;
218
+ margin: 0;
219
+ overflow-y: auto;
220
+ background-color: #fff;
221
+ animation: listSlideOver 0.15s ease-out forwards;
222
+ z-index: 3;
223
+
224
+ .media-left {
225
+ display: none;
226
+ }
227
+
228
+ .well {
229
+ border-radius: 0;
230
+ margin-bottom: 0;
231
+ }
232
+ }
233
+ }
234
+
235
+ .list-group-item.active,
236
+ .list-group-inactive .list-group-item.active {
237
+ margin-top: 1px;
238
+ margin-bottom: 0;
239
+ box-shadow: none !important;
240
+ }
241
+
242
+ .list-group-item.active .collapse {
243
+ height: 100vh;
244
+ height: 100dvh;
245
+ overflow-y: auto;
246
+
247
+ // Annoying but makes sure the last content is visible in iOS safari
248
+
249
+ padding-bottom: 72px;
250
+ }
251
+
252
+ .list-group-item.active .collapse .well {
253
+
254
+ // Annoying but makes sure the last content is visible in iOS safari
255
+
256
+ padding-bottom: 72px;
257
+ margin-bottom: -72px;
258
+ }
259
+ }
260
+ }
@@ -0,0 +1,91 @@
1
+ .loader {
2
+ position: relative;
3
+ display: inline-block;
4
+ height: 160px;
5
+ width: 160px;
6
+
7
+ .loader-flag {
8
+ top: 58px;
9
+ left: 52px;
10
+ position: relative;
11
+ height: 52px;
12
+ width: 52px;
13
+ }
14
+
15
+ .loader-flag-stroke {
16
+ animation: loaderStroke 3.5s infinite;
17
+ }
18
+
19
+ .loader-flag-fill {
20
+ display: block;
21
+ position: absolute;
22
+ top: 1px;
23
+ opacity: 1;
24
+ animation: loaderFill 3.5s infinite;
25
+ }
26
+
27
+ .loader-spinner {
28
+ width: 160px;
29
+ height: 160px;
30
+ position: absolute;
31
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjU0IC01NCAxNjAgMTYwIj48bGluZWFyR3JhZGllbnQgaWQ9ImEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTA4LjY2MiIgeTE9IjUyLjE3NSIgeDI9IjEwNy42NjIiIHkyPSI1Mi4xNzUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTYwIDAgMCAtODAgLTE3MTcyIDQxNjApIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMwMDk3YzciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDk3YzciIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZmlsbD0idXJsKCNhKSIgZD0iTTIxNCAyNmMwLTQ0LjItMzUuOC04MC04MC04MFM1NC0xOC4yIDU0IDI2aDJjMC00My4xIDM0LjktNzggNzgtNzhzNzggMzQuOSA3OCA3OGgyeiIvPjwvc3ZnPg==");
32
+ animation: rotating 1.4s linear infinite;
33
+ }
34
+
35
+ .loader-flag-fill,
36
+ .loader-flag-outline {
37
+ width: 52px;
38
+ height: 52px;
39
+ }
40
+ }
41
+
42
+ /* Animations */
43
+ @keyframes loaderStroke {
44
+ 30% {
45
+ stroke-dashoffset: 300;
46
+ opacity: 0;
47
+ }
48
+
49
+ 40% {
50
+ stroke-dashoffset: 300;
51
+ opacity: 1;
52
+ }
53
+
54
+ 70% {
55
+ stroke-dashoffset: 0;
56
+ opacity: 1;
57
+ }
58
+
59
+ 100% {
60
+ stroke-dashoffset: 0;
61
+ opacity: 0;
62
+ }
63
+ }
64
+
65
+ @keyframes loaderFill {
66
+ 0% {
67
+ opacity: 1;
68
+ }
69
+
70
+ 30% {
71
+ opacity: 0;
72
+ }
73
+
74
+ 70% {
75
+ opacity: 0;
76
+ }
77
+
78
+ 100% {
79
+ opacity: 1;
80
+ }
81
+ }
82
+
83
+ @keyframes rotating {
84
+ from {
85
+ transform: rotate(0deg);
86
+ }
87
+
88
+ to {
89
+ transform: rotate(360deg);
90
+ }
91
+ }
@@ -0,0 +1,61 @@
1
+ @import (reference) "./mixins/_logical-properties.less";
2
+
3
+ .media {
4
+ display: flex;
5
+ align-items: center;
6
+ }
7
+
8
+ .media-body {
9
+ flex: 1;
10
+
11
+ > *:last-child {
12
+ margin-bottom: 0;
13
+ }
14
+ }
15
+
16
+ .media-middle {
17
+ align-self: center;
18
+ }
19
+
20
+ .media-bottom {
21
+ align-self: flex-end;
22
+ }
23
+
24
+ /* Images/elements as the media anchor */
25
+
26
+ .media-object {
27
+ display: block;
28
+ }
29
+
30
+ /* Alignment */
31
+
32
+ .media-right {
33
+ .padding(left, var(--size-16));
34
+ }
35
+
36
+ .media-left {
37
+ .padding(right, var(--size-16));
38
+ }
39
+
40
+ /* Headings */
41
+
42
+ .media-heading {
43
+ margin-top: 0;
44
+ margin-bottom: 0;
45
+ }
46
+
47
+ /* Media list variation */
48
+
49
+ .media-list {
50
+ .padding(left, 0);
51
+
52
+ list-style: none;
53
+ }
54
+
55
+ /* Fix text-ellipsis issue with text in dropdown */
56
+
57
+ .dropdown-menu {
58
+ .media-body {
59
+ overflow: hidden;
60
+ }
61
+ }