|
616 | 616 | } |
617 | 617 | } |
618 | 618 |
|
619 | | -/* OpenSourceStrip — components/landing/OpenSourceStrip.tsx |
620 | | - * |
621 | | - * A strip, not a section: the sentence sits at the left edge of the page |
622 | | - * container and the action at the right, so it reads as an aside between the |
623 | | - * stage and the teams block. It deliberately undercuts the tight section |
624 | | - * rhythm (48–80px) — at that height the band still reads as a full closing |
625 | | - * beat, which is the volume this replaced. The [data-tight] selector is two |
626 | | - * attributes, so the override has to carry both to win. */ |
627 | | -[data-ui="section"][data-tight].open-source-strip { |
628 | | - padding-top: clamp(28px, 3.2vw, 44px); |
629 | | - padding-bottom: clamp(28px, 3.2vw, 44px); |
630 | | -} |
631 | | -.open-source-strip-inner { |
632 | | - display: flex; |
633 | | - align-items: center; |
634 | | - justify-content: space-between; |
635 | | - gap: 20px 32px; |
636 | | - flex-wrap: wrap; |
| 619 | +/* The Fork us band — components/landing/OpenSourceStrip.tsx. |
| 620 | + * No padding override: the band takes the standard --spacing-section-y, which |
| 621 | + * is where its ~461px comes from. The dark surface already sets position: |
| 622 | + * relative, but the runway depends on it, so it is set here too rather than |
| 623 | + * inherited from a rule that could change for unrelated reasons. */ |
| 624 | +.open-source-strip { |
| 625 | + position: relative; |
637 | 626 | } |
638 | | -.open-source-strip-line { |
639 | | - /* Body-scale editorial copy, not display type: it carries an italic <em>, |
640 | | - and Archivo Black has no italic. --font-sans (Archivo) does. */ |
641 | | - font-family: var(--font-sans); |
642 | | - font-size: 23px; |
643 | | - line-height: 1.35; |
| 627 | +.open-source-strip-eyebrow { |
| 628 | + font-family: var(--font-mono); |
| 629 | + font-size: 11px; |
| 630 | + font-weight: 700; |
| 631 | + letter-spacing: 0.18em; |
| 632 | + text-transform: uppercase; |
| 633 | + /* The Eyebrow primitive pins 1.4; this rule is hand-rolled for the tighter |
| 634 | + 11px/.18em the band wants, so it has to carry the line-height too rather |
| 635 | + than inherit the body's. */ |
| 636 | + line-height: 1.4; |
| 637 | + color: var(--color-signal); |
| 638 | + margin: 0 0 22px; |
| 639 | +} |
| 640 | +.open-source-strip-headline { |
| 641 | + /* --font-display is available here now: the italic <em> this line used to |
| 642 | + carry is gone, and Archivo Black has no italic. */ |
| 643 | + font-family: var(--font-display); |
644 | 644 | font-weight: 400; |
645 | | - letter-spacing: -0.005em; |
| 645 | + font-size: clamp(56px, 8.5vw, 116px); |
| 646 | + line-height: 0.9; |
| 647 | + letter-spacing: -0.04em; |
646 | 648 | color: var(--color-text-primary); |
647 | 649 | margin: 0; |
648 | 650 | } |
649 | | -.open-source-strip-line em { |
650 | | - font-style: italic; |
651 | | -} |
652 | 651 | .open-source-strip-actions { |
653 | 652 | display: flex; |
654 | 653 | align-items: center; |
655 | | - gap: 18px; |
656 | | - flex: none; |
| 654 | + gap: 20px; |
| 655 | + margin-top: 38px; |
657 | 656 | } |
658 | 657 | .open-source-strip-licence { |
659 | | - font-family: var(--font-sans); |
660 | | - font-size: 12px; |
661 | | - letter-spacing: 0.02em; |
| 658 | + font-family: var(--font-mono); |
| 659 | + font-size: 11px; |
| 660 | + letter-spacing: 0.12em; |
| 661 | + text-transform: uppercase; |
662 | 662 | color: var(--color-text-muted); |
663 | | - border: 1px solid var(--color-border); |
664 | | - border-radius: var(--radius-pill, 999px); |
665 | | - padding: 4px 10px; |
666 | 663 | white-space: nowrap; |
667 | 664 | } |
| 665 | +/* The runway centreline. A fixed 46px dash on a 92px period rather than a |
| 666 | + * proportional one, so it reads as the same painted marking at every width. */ |
| 667 | +.open-source-strip-runway { |
| 668 | + /* Decorative and layered over the band's bottom padding, so it must not |
| 669 | + swallow a text-selection drag — the dark surface's top seam |
| 670 | + (ui.css, [data-surface="dark"]::before) sets this for the same reason. */ |
| 671 | + pointer-events: none; |
| 672 | + position: absolute; |
| 673 | + left: 0; |
| 674 | + right: 0; |
| 675 | + bottom: 30px; |
| 676 | + height: 6px; |
| 677 | + background: repeating-linear-gradient( |
| 678 | + 90deg, |
| 679 | + rgba(255, 175, 0, 0.5) 0 46px, |
| 680 | + transparent 46px 92px |
| 681 | + ); |
| 682 | +} |
668 | 683 | @media (max-width: 640px) { |
669 | | - .open-source-strip-line { |
670 | | - font-size: 21px; |
| 684 | + .open-source-strip-headline { |
| 685 | + font-size: clamp(44px, 13vw, 56px); |
| 686 | + } |
| 687 | + .open-source-strip-actions { |
| 688 | + flex-wrap: wrap; |
| 689 | + gap: 14px; |
671 | 690 | } |
672 | 691 | } |
673 | 692 |
|
|
0 commit comments