forever_style_guide 3.5.0 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }