jekyll-theme-rop 2.1.15

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 (67) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +1084 -0
  4. data/_config.yml +89 -0
  5. data/_data/placeholder.yml +0 -0
  6. data/_includes/_nav-item.html +38 -0
  7. data/_includes/_post-meta.html +24 -0
  8. data/_includes/external-link.html +59 -0
  9. data/_includes/featured_posts.html +11 -0
  10. data/_includes/featured_software.html +55 -0
  11. data/_includes/featured_specs.html +31 -0
  12. data/_includes/head.html +9 -0
  13. data/_includes/home-hero.html +27 -0
  14. data/_includes/home-hub.html +81 -0
  15. data/_includes/home-project.html +19 -0
  16. data/_includes/index-page-hero.html +3 -0
  17. data/_includes/index-page-item-filter.html +83 -0
  18. data/_includes/item-doc-page.html +138 -0
  19. data/_includes/item-external-links.html +5 -0
  20. data/_includes/legal.html +24 -0
  21. data/_includes/logo.html +1 -0
  22. data/_includes/nav-links.html +45 -0
  23. data/_includes/nav-page-link.html +17 -0
  24. data/_includes/post-author-pic.html +13 -0
  25. data/_includes/post-card.html +59 -0
  26. data/_includes/project-doc-page.html +0 -0
  27. data/_includes/project-nav.html +0 -0
  28. data/_includes/scripts.html +0 -0
  29. data/_includes/social-links.html +23 -0
  30. data/_includes/software-card-hub.html +45 -0
  31. data/_includes/software-symbol.html +6 -0
  32. data/_includes/symbol.svg +19 -0
  33. data/_includes/tag-list.html +17 -0
  34. data/_includes/title.html +1 -0
  35. data/_layouts/blog-index.html +19 -0
  36. data/_layouts/default.html +156 -0
  37. data/_layouts/docs-base.html +87 -0
  38. data/_layouts/home.html +13 -0
  39. data/_layouts/page.html +5 -0
  40. data/_layouts/post.html +57 -0
  41. data/_layouts/product.html +9 -0
  42. data/_layouts/project-index.html +45 -0
  43. data/_layouts/software-index.html +31 -0
  44. data/_layouts/spec-index.html +31 -0
  45. data/_layouts/spec.html +6 -0
  46. data/_pages/blog.html +8 -0
  47. data/_pages/software.html +6 -0
  48. data/_pages/specs.html +6 -0
  49. data/_sass/headroom.scss +22 -0
  50. data/_sass/jekyll-theme-open-project.scss +2 -0
  51. data/_sass/jekyll-theme-rop.scss +798 -0
  52. data/_sass/normalize.scss +424 -0
  53. data/_sass/rop-base.scss +572 -0
  54. data/_sass/rop-header-footer.scss +366 -0
  55. data/_sass/rop-mixins.scss +871 -0
  56. data/assets/css/style.scss +13 -0
  57. data/assets/fa/fa-brands.js +456 -0
  58. data/assets/fa/fa-solid.js +915 -0
  59. data/assets/fa/fontawesome.js +1805 -0
  60. data/assets/img/external-link.svg +4 -0
  61. data/assets/js/adoc-toc.js +175 -0
  62. data/assets/js/anchor-scroll.js +81 -0
  63. data/assets/js/clipboard.min.js +7 -0
  64. data/assets/js/headroom.min.js +7 -0
  65. data/assets/js/opf.js +289 -0
  66. data/assets/listing-widget.js +19 -0
  67. metadata +276 -0
@@ -0,0 +1,798 @@
1
+ @import url('https://fonts.googleapis.com/css?family=Inconsolata');
2
+
3
+ $font-family: Helvetica, Arial, sans-serif !default;
4
+ $font-family-source: Inconsolata, monospace;
5
+
6
+ $main-font-color: #000;
7
+
8
+ $code-listing-background-color: rgba($main-font-color, 0.03);
9
+ $code-listing-border-color: lighten($main-font-color, 70);
10
+
11
+ $primary-color: lightblue !default;
12
+ $primary-dark-color: $primary-color !default;
13
+ $accent-color: red !default;
14
+
15
+ $warning-color: red !default;
16
+ $important-color: orange !default;
17
+
18
+ $main-background: linear-gradient(315deg, $accent-color 0%, $primary-color 74%) !default;
19
+ $header-background: $main-background !default;
20
+
21
+ $hub-software--primary-color: lightsalmon !default;
22
+ $hub-software--primary-dark-color: tomato !default;
23
+ $hub-software--hero-background: $hub-software--primary-dark-color !default;
24
+
25
+ $hub-specs--primary-color: lightpink !default;
26
+ $hub-specs--primary-dark-color: palevioletred !default;
27
+ $hub-specs--hero-background: $hub-specs--primary-dark-color !default;
28
+
29
+ $gutter: 15px;
30
+ $featured-cols: 3;
31
+ $featured-cols-narrow: 2;
32
+ $grid-cols: 3;
33
+ $grid-cols-narrow: 2;
34
+
35
+ $widescreen-breakpoint: 1140px + $gutter * 2;
36
+ $bigscreen-breakpoint: 800px + $gutter * 2;
37
+
38
+ $external-links-side-margin: 16px; // for external links
39
+
40
+
41
+ @import "rop-base";
42
+ @import "rop-header-footer";
43
+ @import "headroom";
44
+
45
+
46
+ main {
47
+
48
+ /* Generic */
49
+
50
+ .layout--home > & {
51
+ padding-bottom: 2em;
52
+
53
+ > .featured-posts {
54
+ @extend .main-section;
55
+
56
+ .items {
57
+ @extend .item-grid;
58
+ justify-content: center;
59
+ }
60
+
61
+ .item {
62
+ @extend .item-card;
63
+ @extend .post-card;
64
+ @include hoverable-card(4px, 12px, rgba(0, 0, 0, 0.08));
65
+
66
+ padding: 32px 30px;
67
+ box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.08);
68
+
69
+ .header {
70
+ font-size: 22px;
71
+ }
72
+
73
+ .body, .meta {
74
+ font-size: 15px;
75
+ }
76
+
77
+ @media screen and (min-width: $bigscreen-breakpoint) {
78
+ box-sizing: border-box;
79
+ flex-basis: calc( 100%/#{$featured-cols-narrow} - #{$gutter} );
80
+
81
+ // Hide third element (there’re at most 3)
82
+ &:nth-child(3) {
83
+ opacity: 0;
84
+ display: none;
85
+ }
86
+ }
87
+
88
+ @media screen and (min-width: $widescreen-breakpoint) {
89
+ box-sizing: border-box;
90
+ flex-basis: calc( 100%/#{$featured-cols} - #{$gutter} );
91
+
92
+ // Show third element
93
+ &:nth-child(3) {
94
+ opacity: 1;
95
+ display: flex;
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+
102
+ .layout--spec-index > &,
103
+ .layout--software-index > &,
104
+ .layout--blog-index > &,
105
+ .layout--product > &,
106
+ .layout--post > &,
107
+ .layout--spec > &,
108
+ .layout--project-index > &,
109
+ .docs-page > & {
110
+ padding-bottom: 50px;
111
+
112
+ @media screen and (min-width: $bigscreen-breakpoint) {
113
+ padding-bottom: 100px;
114
+ }
115
+ }
116
+
117
+ .layout--home > & {
118
+ padding-bottom: 50px;
119
+ }
120
+
121
+ .layout--spec-index > &,
122
+ .layout--software-index > & {
123
+ > .filter-header {
124
+ // Shown when a tag is selected.
125
+ background-color: #fafafa;
126
+ font-size: 80%;
127
+ box-shadow: 0 4px 40px -14px rgba(0, 0, 0, 0.4);
128
+ border-radius: .5em;
129
+ margin-top: -.5em;
130
+
131
+ .title {
132
+ font-weight: normal;
133
+ text-align: center;
134
+
135
+ .tag {
136
+ white-space: nowrap;
137
+ font-weight: bold;
138
+
139
+ .namespace {
140
+ font-weight: normal;
141
+ }
142
+
143
+ &:before { content: "“"; font-weight: normal; }
144
+ &:after { content: "”"; font-weight: normal; }
145
+ }
146
+ a.show-all {
147
+ white-space: nowrap;
148
+ }
149
+ }
150
+ }
151
+ > .item-filter {
152
+ padding: 18px 2em;
153
+ background-color: #F3F3F3;
154
+ align-self: stretch;
155
+ text-align: left;
156
+
157
+ .namespace, ul.tags {
158
+ font-size: 14px;
159
+ }
160
+
161
+ .namespace {
162
+ display: flex;
163
+ flex-flow: row nowrap;
164
+ align-items: flex-start;
165
+ margin-top: .5em;
166
+
167
+ .namespace-title {
168
+ margin-right: 14px;
169
+ }
170
+
171
+ &.empty {
172
+ display: none;
173
+ }
174
+
175
+ &:first-child {
176
+ margin-top: 0;
177
+ }
178
+ }
179
+
180
+ ul.tags {
181
+ flex: 1;
182
+
183
+ list-style: none;
184
+ margin: 0;
185
+ padding: 0;
186
+
187
+ white-space: nowrap;
188
+ overflow-x: scroll;
189
+ overflow-y: hidden;
190
+
191
+ text-overflow: ellipsis;
192
+
193
+ > li {
194
+ display: inline;
195
+ margin: 0;
196
+ padding: 0;
197
+
198
+ > * {
199
+ font-weight: 700;
200
+ margin: 0 4px;
201
+ padding: 3px 10px 3px 10px;
202
+ white-space: nowrap;
203
+
204
+ &:first-child {
205
+ margin-left: -10px;
206
+ }
207
+ }
208
+ > a {
209
+ color: grey;
210
+ }
211
+ }
212
+
213
+ &.scrolled {
214
+ text-overflow: unset;
215
+ }
216
+ }
217
+ }
218
+ }
219
+ // Item filter: color override for selected tags
220
+ > .item-filter ul.tags li > span {
221
+ .layout--software-index > & {
222
+ color: $hub-software--primary-dark-color;
223
+ background-color: rgba($hub-software--primary-color, 0.1);
224
+ }
225
+ .layout--spec-index > & {
226
+ color: $hub-specs--primary-dark-color;
227
+ background-color: rgba($hub-specs--primary-color, 0.1);
228
+ }
229
+ }
230
+
231
+ .layout--blog-index > & {
232
+ > .items {
233
+ @extend .item-grid;
234
+ @extend .index-item-grid;
235
+
236
+ .item {
237
+ @extend .item-card;
238
+ @extend .post-card;
239
+ @include hoverable-card(4px, 12px, rgba(0, 0, 0, 0.08));
240
+
241
+ padding: 30px 30px 16px 30px;
242
+
243
+ .header {
244
+ font-size: 22px;
245
+ }
246
+ .body {
247
+ font-size: 15px;
248
+ }
249
+
250
+ @media screen and (min-width: $bigscreen-breakpoint) {
251
+ box-sizing: border-box;
252
+ flex-basis: calc( 100%/#{$featured-cols-narrow} - #{$gutter} );
253
+ margin-bottom: $gutter;
254
+
255
+ &.has-cover-image {
256
+ flex-basis: 100%;
257
+ }
258
+ }
259
+ @media screen and (min-width: $widescreen-breakpoint) {
260
+ box-sizing: border-box;
261
+ flex-basis: calc( 100%/#{$featured-cols} - #{$gutter} );
262
+ margin-bottom: $gutter;
263
+
264
+ &.has-cover-image {
265
+ flex-basis: calc( 100%/#{$featured-cols} * 2 - #{$gutter} );
266
+ }
267
+ }
268
+ }
269
+ }
270
+
271
+ > .items.one-row {
272
+ justify-content: center;
273
+ }
274
+ }
275
+
276
+ .layout--post > & {
277
+ > article {
278
+ @extend .main-article;
279
+
280
+ > header {
281
+ > .title {
282
+ margin-bottom: 14px;
283
+ }
284
+ > .meta {
285
+ @extend .post-meta-row;
286
+ margin-bottom: 36px;
287
+ }
288
+ }
289
+ aside.social-links {
290
+ position: relative;
291
+ top: -10px;
292
+ margin-bottom: 14px;
293
+
294
+ .ico-ext {
295
+ display: none;
296
+ }
297
+
298
+ @media screen and (min-width: $bigscreen-breakpoint) {
299
+ // "Remove" from the flow, and offset to the left
300
+ $height: 100px;
301
+
302
+ height: $height;
303
+ width: 80px;
304
+
305
+ margin-bottom: -$height;
306
+
307
+ top: 10px;
308
+ left: -140px;
309
+
310
+ display: flex;
311
+ flex-flow: column nowrap;
312
+ align-items: flex-start;
313
+ }
314
+
315
+ > .ico {
316
+ margin-right: 5px;
317
+
318
+ @media screen and (min-width: $bigscreen-breakpoint) {
319
+ margin-right: 0;
320
+ margin-bottom: 5px;
321
+ }
322
+
323
+ .fa-layers {
324
+ > .fa-circle {
325
+ color: $primary-color;
326
+ }
327
+ > :not(.fa-circle) {
328
+ color: white;
329
+ }
330
+ }
331
+ }
332
+ }
333
+ }
334
+ }
335
+ }
336
+
337
+
338
+ /* Hub */
339
+
340
+ .site--hub {
341
+
342
+ &.layout--home > main {
343
+ > .featured-projects {
344
+ @extend .main-section;
345
+
346
+ > .title:after {
347
+ border-bottom-color: rgba($primary-dark-color, 0.12);
348
+ }
349
+
350
+ .items {
351
+ @extend .item-grid;
352
+ justify-content: center;
353
+ }
354
+
355
+ .item {
356
+ @extend .item-card;
357
+ @include hoverable-card(4px, 16px, rgba(0, 0, 0, 0.12));
358
+
359
+ padding: 40px 32px;
360
+ text-align: center;
361
+
362
+ display: flex;
363
+ flex-flow: column nowrap;
364
+
365
+ box-sizing: border-box;
366
+
367
+ @media screen and (min-width: $bigscreen-breakpoint) {
368
+ flex-basis: calc( 100%/#{$featured-cols} - #{$gutter} );
369
+ }
370
+
371
+ .logo {
372
+ display: inline-block;
373
+ height: 80px;
374
+ width: 80px;
375
+
376
+ // Without this, some items’ logos don’t conform to above dimensions
377
+ overflow: hidden;
378
+ }
379
+
380
+ header > .title {
381
+ font-size: 24px;
382
+ margin: 0;
383
+ }
384
+
385
+ .body {
386
+ flex: 1;
387
+ font-size: 16px;
388
+ margin-bottom: 1em;
389
+ overflow: hidden;
390
+ text-overflow: ellipsis;
391
+
392
+ @media screen and (min-width: $bigscreen-breakpoint) {
393
+ height: 100px;
394
+ padding-bottom: 0;
395
+ }
396
+ }
397
+
398
+ .cta-view-project {
399
+ text-align: center;
400
+
401
+ .button {
402
+ display: inline-block;
403
+ padding: 8px 18px;
404
+ border-radius: 4px;
405
+ font-size: 16px;
406
+ font-weight: 700;
407
+ color: white;
408
+ background-color: $accent-color;
409
+ }
410
+ }
411
+ }
412
+ }
413
+
414
+ > .other-projects {
415
+ @extend .main-section;
416
+ @extend .with-symbol-background;
417
+
418
+ .items {
419
+ @extend .item-grid;
420
+ }
421
+
422
+ > .title:after {
423
+ border-bottom-color: rgba($primary-color, 0.12);
424
+ }
425
+ }
426
+ }
427
+
428
+ &.layout--software-index > main,
429
+ &.layout--spec-index > main {
430
+ > .items {
431
+ @extend .item-grid;
432
+ @extend .index-item-grid;
433
+
434
+ .item {
435
+ @extend .item-card;
436
+ @include hoverable-card(4px, 12px, rgba(0, 0, 0, 0.08));
437
+
438
+ padding: 16px 30px 22px 30px;
439
+
440
+ .header {
441
+ font-size: 18px;
442
+ }
443
+ .body {
444
+ font-size: 15px;
445
+ }
446
+
447
+ @media screen and (min-width: $bigscreen-breakpoint) {
448
+ box-sizing: border-box;
449
+ flex-basis: calc( 100%/#{$grid-cols-narrow} - #{$gutter} );
450
+ margin-bottom: $gutter;
451
+ }
452
+
453
+ @media screen and (min-width: $widescreen-breakpoint) {
454
+ box-sizing: border-box;
455
+ flex-basis: calc( 100%/#{$grid-cols} - #{$gutter} );
456
+ margin-bottom: $gutter;
457
+ }
458
+ }
459
+ }
460
+ }
461
+
462
+ &.layout--project-index > main {
463
+ .items {
464
+ @extend .item-grid;
465
+ @extend .index-item-grid;
466
+ }
467
+ }
468
+
469
+ &.layout--project-index > main,
470
+ &.layout--blog-index > main,
471
+ &.layout--software-index > main,
472
+ &.layout--spec-index > main {
473
+ > .items {
474
+ @extend .with-symbol-background;
475
+ }
476
+ }
477
+
478
+ &.layout--home > main > .other-projects,
479
+ &.layout--project-index > main {
480
+ .items.one-row {
481
+ justify-content: center;
482
+ }
483
+
484
+ .item {
485
+ @extend .item-card;
486
+ @include hoverable-card(2px, 10px, rgba(desaturate($primary-color, 50), 0.08));
487
+
488
+ padding: 32px 30px;
489
+ text-align: center;
490
+
491
+ .logo {
492
+ display: inline-block;
493
+ height: 60px;
494
+ width: 60px;
495
+ }
496
+
497
+ header > .title {
498
+ font-size: 18px;
499
+ margin: 0;
500
+ }
501
+
502
+ .body {
503
+ font-size: 15px;
504
+ }
505
+
506
+ @media screen and (min-width: $bigscreen-breakpoint) {
507
+ box-sizing: border-box;
508
+ flex-basis: calc( 100%/#{$featured-cols} - #{$gutter} );
509
+ }
510
+ }
511
+ }
512
+ }
513
+
514
+
515
+ /* Project */
516
+
517
+ body.site--project {
518
+ &.layout--home {
519
+ background: $main-background;
520
+ }
521
+
522
+ &.layout--home > main {
523
+ .item {
524
+ background: linear-gradient(120deg, white 20%, rgba(white, 0.9) 80%, rgba(white, 0.75) 100%);
525
+
526
+ display: flex;
527
+ flex-flow: column nowrap;
528
+ padding: 1em 1.5em;
529
+
530
+ .body {
531
+ flex: 1;
532
+ }
533
+
534
+ .title {
535
+ font-size: 24px;
536
+ font-weight: normal;
537
+ word-break: break-word;
538
+ }
539
+
540
+ .docs-nav {
541
+ flex-basis: 100%;
542
+ margin-bottom: 1em;
543
+ @include item-nav-toc();
544
+ }
545
+
546
+ .external-links {
547
+ @include item-external-links();
548
+ margin-left: -1.5em;
549
+ margin-right: -1.5em;
550
+
551
+ .nav-items {
552
+ display: flex;
553
+ flex-direction: row;
554
+ flex-wrap: wrap-reverse;
555
+
556
+ a {
557
+ white-space: nowrap;
558
+ }
559
+ }
560
+ }
561
+ }
562
+
563
+ > .custom-intro {
564
+ .summary {
565
+ font-size: 20px;
566
+ color: #fefefe;
567
+
568
+ a {
569
+ @include static-link-color($accent-color);
570
+ }
571
+ .cta {
572
+ margin-top: 30px;
573
+ margin-bottom: 30px;
574
+ .button {
575
+ @include cta-button($primary-color, white);
576
+ border: 1px solid $accent-color;
577
+ }
578
+ }
579
+ p:first-child:first-letter {
580
+ color: $accent-color;
581
+ float: left;
582
+ font-size: 75px;
583
+ line-height: 60px;
584
+ padding-right: 8px;
585
+ margin-left: -5px;
586
+ }
587
+ @media screen and (min-width: $bigscreen-breakpoint) {
588
+ p:first-child {
589
+ padding-right: 20vw;
590
+ }
591
+ }
592
+ }
593
+ }
594
+ }
595
+
596
+ &.site--project--one-software.layout--home > main {
597
+ // On single-software project sites, the only software item on landing
598
+ // is made part of the page rather than being constrained to a card widget.
599
+ // No own background means it’ll appear on landing page’s overall dark background.
600
+
601
+ .custom-intro {
602
+ .summary {
603
+ a {
604
+ @include static-link-color(white);
605
+ }
606
+ }
607
+ }
608
+
609
+ .item {
610
+ background: none;
611
+ padding: 0;
612
+
613
+ .docs-nav {
614
+ ul.nav-items > li {
615
+ > .item-title {
616
+ font-size: 24px;
617
+
618
+ a {
619
+ @include static-link-color(white);
620
+ }
621
+ }
622
+ }
623
+ }
624
+ .external-links {
625
+ @include item-external-links(true);
626
+ margin-left: 0;
627
+ margin-right: 0;
628
+ }
629
+ }
630
+ }
631
+
632
+ &.layout--home > main > .software,
633
+ &.layout--home > main > .specs,
634
+ &.layout--software-index > main,
635
+ &.layout--spec-index > main {
636
+ > .items {
637
+ > hr {
638
+ // Separates featured items, listed initially, from the rest
639
+ width: 10em;
640
+ margin: 40px auto;
641
+ border-style: solid;
642
+ border-color: $primary-color;
643
+ background-color: $primary-color;
644
+ color: $primary-color;
645
+ box-shadow: 2px 2px 0 3px $primary-color;
646
+ }
647
+
648
+ .item {
649
+ flex: 1;
650
+ text-align: left;
651
+
652
+ header > .title {
653
+ margin: 0;
654
+ }
655
+ .body {
656
+ font-size: 16px;
657
+ }
658
+ }
659
+ }
660
+ }
661
+
662
+ &.layout--software-index > main,
663
+ &.layout--spec-index > main {
664
+ > .items .item {
665
+ display: block;
666
+ }
667
+ }
668
+
669
+ &.layout--software-index > main,
670
+ &.layout--spec-index > main {
671
+ > .items .item {
672
+ @extend .item-card;
673
+ @include hoverable-card(2px, 10px, rgba(desaturate($primary-color, 50), 0.08));
674
+
675
+ padding: 30px 32px;
676
+ flex: unset;
677
+ }
678
+ }
679
+
680
+ &.layout--home > main > .software {
681
+ > .items {
682
+ .item {
683
+ $logo-space: 64px;
684
+ $logo-side: 32px;
685
+
686
+ header {
687
+ display: flex;
688
+ flex-flow: row nowrap;
689
+ align-items: center;
690
+ flex-shrink: 0;
691
+
692
+ .title {
693
+ flex: 1;
694
+ }
695
+ .logo-container {
696
+ width: $logo-space;
697
+ flex: 0;
698
+ padding: 4px ($logo-space - $logo-side) 4px 0;
699
+
700
+ .logo > :only-child {
701
+ width: $logo-side;
702
+ height: $logo-side;
703
+ vertical-align: middle;
704
+ }
705
+ }
706
+ }
707
+ }
708
+ }
709
+ }
710
+
711
+ &.layout--software-index > main {
712
+ > .items {
713
+ .item {
714
+ $logo-space: 132px;
715
+ $logo-side: 48px;
716
+
717
+ .logo-container {
718
+ .logo > :only-child {
719
+ width: $logo-side;
720
+ height: $logo-side;
721
+ }
722
+ }
723
+
724
+ @media screen and (min-width: $bigscreen-breakpoint) {
725
+ padding-left: $logo-space;
726
+
727
+ .logo-container {
728
+ float: left;
729
+ margin-left: -$logo-space;
730
+ padding: 8px calc(($logo-space - $logo-side) / 2);
731
+ }
732
+ }
733
+ }
734
+ }
735
+ }
736
+
737
+ &.layout--home > main > .software,
738
+ &.layout--home > main > .specs {
739
+ @extend .main-section;
740
+
741
+ > .title {
742
+ padding: .4em 1.5em;
743
+ background: rgba(white, 0.9);
744
+ font-size: 110%;
745
+ font-weight: normal;
746
+ align-self: flex-start;
747
+ color: lighten($main-font-color, 20);
748
+ margin-bottom: $gutter;
749
+
750
+ a {
751
+ @include static-link-color($primary-dark-color);
752
+ }
753
+ }
754
+
755
+ .items {
756
+ @extend .item-grid;
757
+ justify-content: center;
758
+
759
+ > .item {
760
+ @media screen and (min-width: $bigscreen-breakpoint) {
761
+ box-sizing: border-box;
762
+ flex-basis: calc( 100%/#{$featured-cols-narrow} - #{$gutter} );
763
+
764
+ // Hide third element (there’re at most 3)
765
+ &:nth-child(3) {
766
+ opacity: 0;
767
+ display: none;
768
+ }
769
+ }
770
+
771
+ @media screen and (min-width: $widescreen-breakpoint) {
772
+ box-sizing: border-box;
773
+ flex-basis: calc( 100%/#{$featured-cols} - #{$gutter} );
774
+
775
+ // Show third element
776
+ &:nth-child(3) {
777
+ opacity: 1;
778
+ display: flex;
779
+ }
780
+ }
781
+ }
782
+ }
783
+ }
784
+
785
+ &.layout--software-index > main,
786
+ &.layout--spec-index > main {
787
+ > .items {
788
+ @extend .index-item-grid;
789
+ }
790
+ }
791
+
792
+ &.layout--spec > main > article {
793
+ @extend .main-article;
794
+ }
795
+ &.docs-page > main {
796
+ @include docs-page($primary-dark-color);
797
+ }
798
+ }