forever_style_guide 3.5.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 062bb57292d8f5b25da7309c9aef3907667e035d808b14aaaebf6575e91e93b8
4
- data.tar.gz: 0262e211592b7d6c2a443afbe7d1a8cd394c3464ecd8abb4a10150b59a7acafb
3
+ metadata.gz: 8bd073fcc5b9c7faf0951ea94969802677334803c8ca0d3c462ab015f5977062
4
+ data.tar.gz: bad07aa31abd29da6afd071e6070ff5b52a5fe197a0adf8c872311475a650bfd
5
5
  SHA512:
6
- metadata.gz: ba44a79675b24af4b52135ae36b9eb57fcb71fb3215137532675ac0ea6f4294ebc359ee69c1854f3cb586f2a566fbf9bf0947494cb9352fcccb394231fc67d5f
7
- data.tar.gz: '06832ef0606ae9a2cba9834434967b267a48b7f0d6850a615a3b759feb1af6793833f23fd7abeae7514f028f93875e386712950f033d82e3465773af18f00784'
6
+ metadata.gz: c76d397fc6af2395dfeb556f3bb55489825b0eb84d73671f421562bf066e0a2f824f08c69cf793a91e787a26344ab511b2ff81d20debc5acfa7ed89a57508922
7
+ data.tar.gz: a4c69b4fd6c4f1d3b30b226d5007b76d032721e0191f67cf26196513d41c5400c4572205ac23132539264978b6aa9a39afb88c95e63d5c22242db69d4d4ef660
@@ -42,8 +42,10 @@ $font-face-gotham: faceify('gotham', ('Gotham A', 'Gotham B', Helvetica
42
42
  $font-size-000: fontify('000', 10px) !default;
43
43
  $font-size-100: fontify('100', 12px) !default;
44
44
  $font-size-200: fontify('200', 14px) !default;
45
+ $font-size-250: fontify('250', 15px) !default;
45
46
  $font-size-300: fontify('300', 16px) !default;
46
47
  $font-size-400: fontify('400', 18px) !default;
48
+ $font-size-450: fontify('450', 21px) !default;
47
49
  $font-size-500: fontify('500', 24px) !default;
48
50
  $font-size-600: fontify('600', 36px) !default;
49
51
  $font-size-700: fontify('700', 48px) !default;
@@ -42,39 +42,26 @@ $color-nav-hover: color('secondary');
42
42
  border-#{$direction}: $header_active_border_height solid $color;
43
43
  }
44
44
 
45
- // Shared nav mixin for offcanvas mobile nav and desktop user info
46
- @mixin off-canvas-style {
47
- position: fixed;
48
- top: 0;
49
- right: -$minimum-application-width;
50
- bottom: 0;
51
- width: $minimum-application-width;
52
- padding-left: 20px;
53
- padding-right: 20px;
54
- background-color: $color-white;
55
- border-left: solid 1px $color-gray-200;
56
- box-shadow: 0 3px 5px rgba(0, 0, 0, 0.1);
57
- transition: all 0.3s ease-in-out; // TODO - animate out
58
- z-index: $zindex-tooltip;
59
- overflow: hidden;
60
- direction: rtl; // puts scrollbar to lefthand side
61
-
62
- .nav-mobile-menu-close {
63
- display: block;
64
- }
65
-
66
- .navbar-toggle {
67
- padding-right: 0;
68
- }
45
+ @mixin transition_extra_fast($properties...) {
46
+ transition-property: $properties;
47
+ transition-duration: 0.08s;
48
+ transition-timing-function: ease-in-out;
49
+ }
69
50
 
70
- &.in {
71
- opacity: 1;
72
- right: 0;
73
- overflow-y: auto;
74
- z-index: $in-front-of-primary-and-banner-and-impersonation;
51
+ @mixin transition_fast($properties...) {
52
+ transition-property: $properties;
53
+ transition-duration: 0.15s;
54
+ transition-timing-function: ease-in-out;
55
+ }
75
56
 
76
- @media (max-width: $screen-xs) {
77
- width: 100%;
78
- }
79
- }
57
+ @mixin transition_normal($properties...) {
58
+ transition-property: $properties;
59
+ transition-duration: 0.3s;
60
+ transition-timing-function: ease-in-out;
80
61
  }
62
+
63
+ @mixin transition_slow($properties...) {
64
+ transition-property: $properties;
65
+ transition-duration: 0.45s;
66
+ transition-timing-function: ease-in-out;
67
+ }
@@ -13,11 +13,7 @@
13
13
  @import "input_groups";
14
14
  @import "list";
15
15
  @import "message_box";
16
- @import "nav";
17
- @import "nav-account_dropdown";
18
- @import "nav-cart";
19
- @import "nav-fixed";
20
- @import "nav-mobile-menu";
16
+ @import "primary_nav";
21
17
  @import "progress";
22
18
  @import "promo_banner";
23
19
  @import "responsive_utilities";
@@ -2,8 +2,10 @@ $avatar-xl: 210px;
2
2
  $avatar-lg: 150px;
3
3
  $avatar-md: 100px;
4
4
  $avatar-sm: 70px;
5
- $avatar-xs: 40px;
5
+ $avatar-xs: 54px;
6
+ $avatar-xxs: 32px;
6
7
  $avatar-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
8
+ $avatar-shadow-xs: 0 2px 2px rgba(0, 0, 0, 0.1);
7
9
 
8
10
  @mixin avatar_size($size) {
9
11
  height: $size;
@@ -54,11 +56,28 @@ $avatar-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
54
56
  }
55
57
 
56
58
  @at-root #{&}-xs {
57
- @include avatar_size($avatar-sm);
59
+ @include avatar_size($avatar-xs);
60
+ border-width: 2px;
61
+
62
+ &.avatar-with_shadow {
63
+ box-shadow: $avatar-shadow-xs;
64
+ }
65
+
66
+ .avatar-initials {
67
+ font-size: $font-size-400;
68
+ }
69
+ }
70
+
71
+ @at-root #{&}-xxs {
72
+ @include avatar_size($avatar-xxs);
58
73
  border-width: 2px;
59
74
 
75
+ &.avatar-with_shadow {
76
+ box-shadow: $avatar-shadow-xs;
77
+ }
78
+
60
79
  .avatar-initials {
61
- font-size: $font-size-300;
80
+ font-size: $font-size-200;
62
81
  }
63
82
  }
64
83
  }
@@ -10,11 +10,7 @@
10
10
  @import "input_groups";
11
11
  @import "list";
12
12
  @import "message_box";
13
- @import "nav";
14
- @import "nav-account_dropdown";
15
- @import "nav-cart";
16
- @import "nav-fixed";
17
- @import "nav-mobile-menu";
13
+ @import "primary_nav";
18
14
  @import "progress";
19
15
  @import "responsive_utilities";
20
16
  @import "select";
@@ -0,0 +1,519 @@
1
+
2
+ $f-primary_nav-shadow: 0 3px 5px rgba(0, 0, 0, 0.1);
3
+ $f-primary_nav-main-zindex: $zindex-navbar-fixed;
4
+ $f-primary_nav-main-minheight: 50px;
5
+ $f-primary_nav-side-width: 320px;
6
+ $f-primary_nav-side-zindex: $zindex-modal;
7
+ $f-primary_nav-side_section-close_angle: 45deg;
8
+ $f-primary_nav-icon-count_badge-top: 5px;
9
+ $f-primary_nav-icon-count_badge-right: -4px;
10
+
11
+ @mixin deals_link_base() {
12
+ color: $color-forever_orange;
13
+
14
+ &:hover {
15
+ color: $color-forever_blue;
16
+ }
17
+
18
+ &::after {
19
+ position: relative;
20
+ top: -5px;
21
+ right: -2px;
22
+ font-family: FontAwesome;
23
+ font-size: $font-size-000;
24
+ content: '\f005';
25
+ }
26
+ }
27
+
28
+ .f-primary_nav {
29
+ width: 100%;
30
+ padding-left: 10px;
31
+ padding-right: 10px;
32
+ box-shadow: $f-primary_nav-shadow;
33
+ background-color: $color-white;
34
+
35
+ /*support store method of affixing*/
36
+ &.affix {
37
+ top: 0;
38
+ left: 0;
39
+ z-index: $f-primary_nav-side-zindex;
40
+ }
41
+
42
+ /* nested to give more specificity and override the base styleguide link styles */
43
+ .f-primary_nav-link_base {
44
+ text-decoration: none;
45
+ color: $color-gray-600;
46
+ @include transition_fast(color);
47
+
48
+ &.is-active,
49
+ &:hover {
50
+ color: $color-forever_blue;
51
+ }
52
+ }
53
+ }
54
+
55
+ .f-primary_nav-main {
56
+ display: flex;
57
+ height: $f-primary_nav-main-minheight;
58
+ min-height: $f-primary_nav-main-minheight;
59
+ position: relative;
60
+ z-index: $f-primary_nav-main-zindex;
61
+ }
62
+
63
+ .f-primary_nav-logo_link {
64
+ display: flex;
65
+ align-items: center;
66
+ }
67
+
68
+ .f-primary_nav-logo_image {
69
+ height: 22px;
70
+ width: 138px;
71
+ max-width: unset;
72
+ @include transition_fast(height, width);
73
+ }
74
+
75
+ .f-primary_nav-ecom_list {
76
+ display: flex;
77
+ flex: 1 0 auto;
78
+ justify-content: center;
79
+ align-items: stretch;
80
+ margin-bottom: 0;
81
+ padding-left: 0;
82
+ list-style: none;
83
+ }
84
+
85
+ .f-primary_nav-ecom_item {
86
+ /* we want to ul to remain and grow, so just hide the items */
87
+ display: none;
88
+ }
89
+
90
+ .f-primary_nav-ecom_link {
91
+ position: relative;
92
+ display: flex;
93
+ align-items: center;
94
+ padding-right: 4px;
95
+ padding-left: 4px;
96
+ font-family: $font-face-semibold;
97
+ font-size: $font-size-200;
98
+
99
+ &.f-primary_nav-ecom_link-deals {
100
+ @include deals_link_base();
101
+ }
102
+
103
+ &::before {
104
+ position: absolute;
105
+ bottom: 0;
106
+ left: 0;
107
+ height: 4px;
108
+ width: 100%;
109
+ background-color: $color-forever_blue;
110
+ content: '';
111
+ transform: scaleX(0);
112
+ @include transition_fast(transform);
113
+ }
114
+
115
+ &.is-active,
116
+ &:hover {
117
+ &::before {
118
+ transform: scaleX(1);
119
+ }
120
+ }
121
+ }
122
+
123
+ .f-primary_nav-icon_list {
124
+ position: relative;
125
+ display: flex;
126
+ align-items: stretch;
127
+ margin-bottom: 0;
128
+ padding-left: 0;
129
+ list-style: none;
130
+ }
131
+
132
+ .f-primary_nav-icon_item {
133
+ display: flex;
134
+ align-items: stretch;
135
+ font-size: $font-size-450;
136
+
137
+ //display flex here gets rid of extra vertical space with inline block
138
+ .f-primary_nav-icon_link {
139
+ display: flex;
140
+ align-items: center;
141
+ padding: 0 6px;
142
+ }
143
+
144
+ .f-primary_nav-icon_link > .f-icon {
145
+ display: flex;
146
+ }
147
+
148
+ }
149
+
150
+ .f-primary_nav-icon_link-cart {
151
+ position: relative;
152
+
153
+ .f-primary_nav-icon_link-cart_count {
154
+ position: absolute;
155
+ top: $f-primary_nav-icon-count_badge-top;
156
+ right: $f-primary_nav-icon-count_badge-right;
157
+ width: 18px;
158
+ height: 18px;
159
+ border-radius: $border-radius-xl;
160
+ background-color: $color-primary;
161
+ color: $color-white;
162
+ font-size: $font-size-000;
163
+ font-family: $font-face-semibold;
164
+ display: flex;
165
+ align-items: center;
166
+ justify-content: center;
167
+ pointer-events: none;
168
+ }
169
+
170
+ }
171
+
172
+ //this overrides notification dropdown styles and lets nav own these styles, selectors and nesting is necessary for selector specificity
173
+ .f-primary_nav-icon_notification.f-notification_dropdown {
174
+ display: flex;
175
+ align-items: stretch;
176
+
177
+ .f-notification_dropdown-bell {
178
+ padding: 0 6px;
179
+ align-items: center;
180
+
181
+ .f-notification_dropdown-bell_count {
182
+ top: $f-primary_nav-icon-count_badge-top;
183
+ right: $f-primary_nav-icon-count_badge-right;
184
+ }
185
+ }
186
+ }
187
+
188
+ //this is a placeholder div in store that houses an icon for notifications while turbolinks is transitioning. Ensures there is no jumpiness
189
+ #mars-notifications {
190
+ padding: 0 6px;
191
+ align-self: center;
192
+
193
+ .fa { display:flex; }
194
+ }
195
+
196
+ .f-primary_nav-user_list {
197
+ display: flex;
198
+ align-items: center;
199
+ margin-bottom: 0;
200
+ padding-left: 5px;
201
+ list-style: none;
202
+
203
+ .f-primary_nav-user_link {
204
+ font-family: $font-face-semibold;
205
+ text-transform: uppercase;
206
+
207
+ &.btn {
208
+ padding: 7px;
209
+ font-size: 12px;
210
+ height: 30px;
211
+ }
212
+ }
213
+
214
+ .f-primary_nav-user-link-signup {
215
+ &.btn {
216
+ color: $color-white;
217
+ }
218
+ }
219
+
220
+ .f-primary_nav-user-link-signin {
221
+ &.btn {
222
+ &:link,
223
+ &:hover,
224
+ &:active,
225
+ &:visited {
226
+ color: $color-gray-600;
227
+ text-decoration: none;
228
+ }
229
+
230
+ &:hover {
231
+ color: $color-secondary;
232
+ }
233
+ }
234
+ }
235
+ }
236
+
237
+ .f-primary_nav-user_item-avatar {
238
+
239
+ /* use below instead of display to hide so we retain padding */
240
+ visibility: hidden;
241
+ width: 0;
242
+
243
+ .avatar {
244
+ padding: 0;
245
+ margin-right: 0;
246
+ }
247
+ }
248
+
249
+ .f-primary_nav-user_item-logged_out {
250
+ display: none;
251
+ }
252
+
253
+ .f-primary_nav-user_item-side_toggle {
254
+ cursor: pointer;
255
+ padding: 10px 10px 10px 5px;
256
+ margin-right: -10px;
257
+
258
+ .f-primary_nav-user_icon_bar {
259
+ background-color: $color-gray-600;
260
+ width: 20px;
261
+ display: block;
262
+ height: 2px;
263
+ border-radius: 1px;
264
+ @include transition_fast(background-color, margin);
265
+ }
266
+
267
+ .f-primary_nav-user_icon_bar:not(:first-child) {
268
+ margin-top: 4px;
269
+ }
270
+
271
+ &:hover {
272
+ .f-primary_nav-user_icon_bar {
273
+ background-color: $color_forever_blue;
274
+ }
275
+
276
+ .f-primary_nav-user_icon_bar:not(:first-child) {
277
+ margin-top: 6px;
278
+ }
279
+ }
280
+ }
281
+
282
+ .f-primary_nav-side {
283
+ position: fixed;
284
+ display: flex;
285
+ flex-direction: column;
286
+ overflow: auto;
287
+ top: 0;
288
+ right: -($f-primary_nav-side-width);
289
+ bottom: 0;
290
+ z-index: $f-primary_nav-side-zindex;
291
+ width: $f-primary_nav-side-width;
292
+ padding: 0 20px;
293
+ background-color: $color-white;
294
+ box-shadow: $f-primary_nav-shadow;
295
+ direction: rtl;
296
+ text-align: left;
297
+ @include transition_normal(right);
298
+
299
+ &.is-onscreen {
300
+ right: 0;
301
+ width: 100%;
302
+ }
303
+ }
304
+
305
+ .f-primary_nav-side_section {
306
+ padding: 8px 0;
307
+ margin-bottom: 0;
308
+ list-style: none;
309
+ border-bottom: 2px solid $color-gray-200;
310
+ direction: ltr;
311
+
312
+ &:last-child {
313
+ border: none;
314
+ }
315
+
316
+ .f-primary_nav-side_signout_link {
317
+ &:link,
318
+ &:hover,
319
+ &:active,
320
+ &:visited {
321
+ color: $color-forever_red;
322
+ }
323
+ }
324
+
325
+ .f-primary_nav-side_link_base {
326
+ text-transform: uppercase;
327
+ display: block;
328
+ font-family: $font-face-semibold;
329
+ font-size: $font-size-200;
330
+ padding: 8px 0;
331
+ }
332
+
333
+ }
334
+
335
+ .f-primary_nav-side_section-close {
336
+ position: relative;
337
+ width: 22px;
338
+ padding-top: 20px;
339
+ align-self: flex-start;
340
+ cursor: pointer;
341
+ border: none;
342
+ outline: none;
343
+
344
+ &::before,
345
+ &::after {
346
+ position: absolute;
347
+ right: 0;
348
+ width: 22px;
349
+ height: 2px;
350
+ content: ' ';
351
+ border-radius: 1px;
352
+ background-color: $color-gray-600;
353
+ @include transition_fast(background-color);
354
+ }
355
+
356
+ &::before { transform: rotate($f-primary_nav-side_section-close_angle); }
357
+ &::after { transform: rotate(-($f-primary_nav-side_section-close_angle)); }
358
+
359
+ &:hover {
360
+ &::before,
361
+ &::after { background-color: $color-forever_blue; }
362
+ }
363
+ }
364
+
365
+ .f-primary_nav-side_section-info {
366
+ padding-bottom: 15px;
367
+
368
+ /* avatar/badge and storage meter */
369
+ .f-primary_nav-side_info-avameter {
370
+ display: flex;
371
+ align-items: center;
372
+ margin: 0 -6px;
373
+ }
374
+
375
+ .f-primary_nav-side_info-avatar {
376
+ position: relative;
377
+ flex: 0 1 auto;
378
+
379
+ /* necessary to dig into avatar and add custom size*/
380
+ .avatar {
381
+ width: 80px;
382
+ height: 80px;
383
+ }
384
+
385
+ //this accounts for some markup differences between store and webapp, making sure we are only styleing the badge
386
+ > img:not(.avatar), > svg {
387
+ position: absolute;
388
+ height: 50px;
389
+ width: 50px;
390
+ top: 48px;
391
+ left: 43px;
392
+ }
393
+ }
394
+
395
+ .f-primary_nav-side_info-storage_meter {
396
+ flex: 1 0 0;
397
+ padding-left: 15px;
398
+
399
+ /*store only, mars has a component*/
400
+ .f-primary_nav-side_info-storage_meter-bg {
401
+ height: 10px;
402
+ border-radius: 50px;
403
+ background-color: $color-gray-300;
404
+ margin-top: 4px;
405
+ margin-bottom: 8px;
406
+ width: 100%;
407
+ }
408
+
409
+ .f-primary_nav-side_info-storage_meter-percent {
410
+ height: 100%;
411
+ border-radius: 50px;
412
+ }
413
+ /* store only end*/
414
+
415
+ }
416
+
417
+ .f-primary_nav-side_info-club {
418
+ margin-top: 30px;
419
+ line-height: 1;
420
+ text-align: center;
421
+ }
422
+
423
+ }
424
+
425
+ .f-primary_nav-side_section-ecom_list {
426
+ .f-primary_nav-side_ecom-deals_link {
427
+ @include deals_link_base();
428
+ }
429
+ }
430
+
431
+ .f-primary_nav-side_section-logged_out {
432
+ .f-primary_nav-side_logged_out_button {
433
+ margin-right: 20px;
434
+ margin-top: 10px;
435
+ display: block;
436
+ }
437
+ }
438
+
439
+
440
+ //everything above xs
441
+ @media (min-width: $screen-xs) {
442
+
443
+ .f-primary_nav {
444
+ padding: 0 15px;
445
+ }
446
+
447
+ .f-primary_nav-logo_image {
448
+ height: 28px;
449
+ width: 175px;
450
+ }
451
+
452
+ .f-primary_nav-user_list {
453
+ padding-left: 10px;
454
+ }
455
+
456
+ .f-primary_nav-icon_item {
457
+ font-size: $font-size-500;
458
+ }
459
+
460
+ .f-primary_nav-user_item-avatar {
461
+ visibility: visible;
462
+ width: auto;
463
+ }
464
+
465
+ .f-primary_nav-side.is-onscreen {
466
+ width: $f-primary_nav-side-width;
467
+ }
468
+ }
469
+
470
+ //everything above medium
471
+ @media (min-width: $screen-md) {
472
+
473
+ .f-primary_nav-ecom_item {
474
+ display: flex;
475
+ }
476
+
477
+ .f-primary_nav-user_item-logged_out {
478
+ display: flex;
479
+ }
480
+
481
+ .f-primary_nav-side_section-ecom_list {
482
+ display: none;
483
+ }
484
+
485
+ .f-primary_nav-user_item-side_toggle {
486
+ &.is-unauthenticated {
487
+ display: none;
488
+ }
489
+ }
490
+ }
491
+
492
+ //everything above lg
493
+ @media (min-width: $screen-lg) {
494
+ .f-primary_nav-ecom_link {
495
+ padding-left: 8px;
496
+ padding-right: 8px;
497
+ font-size: $font-size-300;
498
+ }
499
+ }
500
+
501
+ //bet
502
+ @media (max-width: $screen-lg-max) and (min-width: $screen-md_to_lg) {
503
+ .f-primary_nav-ecom_link {
504
+ font-size: $font-size-250;
505
+ }
506
+ }
507
+
508
+ @media (max-width: $screen-md_to_lg) and (min-width: $screen-md) {
509
+ .f-primary_nav-logo_image {
510
+ height: 22px;
511
+ width: 138px;
512
+ }
513
+ }
514
+
515
+ @media (max-width: $screen-lg-max) and (min-width: $screen-md) {
516
+ .f-primary_nav-icon_item {
517
+ font-size: $font-size-450;
518
+ }
519
+ }