Skip to content

Commit 1328f3c

Browse files
committed
Separators: 2px thin, pure dark/blue; h2 underline gets trapezoid clip-path
1 parent 98e0e30 commit 1328f3c

3 files changed

Lines changed: 42 additions & 51 deletions

File tree

src/components/layout/SectionSeparator.tsx

Lines changed: 38 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,54 @@
1-
type Segment = { w: number; dark: boolean };
1+
type Color = "dark" | "blue" | "red" | "white";
2+
type Segment = { w: number; c: Color };
3+
4+
const D = (w: number): Segment => ({ w, c: "dark" });
5+
const B = (w: number): Segment => ({ w, c: "blue" });
6+
const R = (w: number): Segment => ({ w, c: "red" });
7+
const W = (w: number): Segment => ({ w, c: "white" });
28

39
const VARIANTS: Record<number, Segment[]> = {
4-
1: [
5-
{ w: 21, dark: true }, { w: 7, dark: false }, { w: 22, dark: true },
6-
{ w: 7, dark: false }, { w: 15, dark: true }, { w: 8, dark: false },
7-
{ w: 14, dark: true }, { w: 6, dark: false },
8-
],
9-
2: [
10-
{ w: 6, dark: false }, { w: 22, dark: true }, { w: 19, dark: false },
11-
{ w: 19, dark: true }, { w: 8, dark: false }, { w: 15, dark: true },
12-
{ w: 11, dark: false },
13-
],
14-
3: [
15-
{ w: 26, dark: true }, { w: 17, dark: false }, { w: 24, dark: true },
16-
{ w: 15, dark: false }, { w: 11, dark: true }, { w: 7, dark: false },
17-
],
18-
4: [
19-
{ w: 8, dark: true }, { w: 5, dark: false }, { w: 12, dark: true },
20-
{ w: 8, dark: false }, { w: 13, dark: true }, { w: 8, dark: false },
21-
{ w: 10, dark: true }, { w: 9, dark: false }, { w: 13, dark: true },
22-
{ w: 7, dark: false }, { w: 7, dark: true },
23-
],
24-
5: [
25-
{ w: 14, dark: false }, { w: 4, dark: true }, { w: 17, dark: false },
26-
{ w: 13, dark: true }, { w: 9, dark: false }, { w: 11, dark: true },
27-
{ w: 11, dark: false }, { w: 15, dark: true }, { w: 6, dark: false },
28-
],
29-
6: [
30-
{ w: 7, dark: true }, { w: 7, dark: false }, { w: 9, dark: true },
31-
{ w: 7, dark: false }, { w: 11, dark: true }, { w: 7, dark: false },
32-
{ w: 11, dark: true }, { w: 7, dark: false }, { w: 10, dark: true },
33-
{ w: 8, dark: false }, { w: 9, dark: true }, { w: 7, dark: false },
34-
],
35-
7: [
36-
{ w: 5, dark: true }, { w: 6, dark: false }, { w: 7, dark: true },
37-
{ w: 7, dark: false }, { w: 9, dark: true }, { w: 7, dark: false },
38-
{ w: 10, dark: true }, { w: 6, dark: false }, { w: 8, dark: true },
39-
{ w: 7, dark: false }, { w: 9, dark: true }, { w: 6, dark: false },
40-
{ w: 7, dark: true }, { w: 6, dark: false },
41-
],
42-
8: [
43-
{ w: 3, dark: true }, { w: 6, dark: false }, { w: 19, dark: true },
44-
{ w: 8, dark: false }, { w: 5, dark: true }, { w: 17, dark: false },
45-
{ w: 11, dark: true }, { w: 6, dark: false }, { w: 13, dark: true },
46-
{ w: 12, dark: false },
47-
],
10+
// home: after hero | blog: after header
11+
1: [ D(21), B(7), D(22), B(7), D(15), B(8), D(14), B(6) ],
12+
13+
// home: after "Who we work with" | careers: after header
14+
2: [ B(6), D(22), B(19), D(19), B(8), D(15), B(11) ],
15+
16+
// home: after "How we work with you" | sponsor: after header
17+
3: [ D(26), B(17), D(24), B(15), D(11), B(7) ],
18+
19+
// services: after header — no accent, dense rhythm
20+
4: [ D(8), B(5), D(12), B(8), D(13), B(8), D(10), B(9), D(13), B(7), D(7) ],
21+
22+
// (unused) — pure blue/dark
23+
5: [ B(14), D(4), B(17), D(13), B(9), D(11), B(11), D(15), B(6) ],
24+
25+
// home: before blog
26+
6: [ D(7), B(7), D(9), B(7), D(11), B(7), D(11), B(7), D(10), B(8), D(9), B(7) ],
27+
28+
7: [ D(5), B(6), D(7), B(7), D(9), B(7), D(10), B(6), D(8), B(7), D(9), B(6), D(7), B(6) ],
29+
30+
8: [ D(3), B(6), D(19), B(8), D(5), B(17), D(11), B(6), D(13), B(12) ],
31+
};
32+
33+
const COLOR_MAP: Record<Color, string> = {
34+
dark: "#1d1d1b",
35+
blue: "var(--ifm-color-blue-jupyter)",
36+
red: "var(--ifm-color-accent-red)",
37+
white: "#ffffff",
4838
};
4939

5040
type Variant = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
5141

5242
export default function SectionSeparator({ variant = 1 }: { variant?: Variant }) {
5343
const segments = VARIANTS[variant];
5444
return (
55-
<div style={{ display: "flex", gap: "4px", height: "4px", alignItems: "stretch", width: "100%", backgroundColor: "white" }}>
56-
{segments.map(({ w, dark }, i) => (
45+
<div style={{ display: "flex", gap: "2px", height: "2px", alignItems: "stretch", width: "100%", backgroundColor: "white" }}>
46+
{segments.map(({ w, c }, i) => (
5747
<div
5848
key={i}
5949
style={{
6050
flex: w,
61-
backgroundColor: dark ? "#1d1d1b" : "var(--ifm-color-blue-jupyter)",
51+
backgroundColor: COLOR_MAP[c],
6252
clipPath: "polygon(5px 0%, 100% 0%, calc(100% - 5px) 100%, 0% 100%)",
6353
}}
6454
/>

src/css/custom.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ ul {
301301
height: 3px;
302302
background: var(--ifm-color-accent-red);
303303
margin-top: 10px;
304+
clip-path: polygon(3px 0%, 100% 0%, calc(100% - 3px) 100%, 0% 100%);
304305
}
305306

306307
.page-content h2.text--center::after {

src/pages/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ function HomeContent() {
5454

5555
{/* ── Trusted By ────────────────────────────────────────────────────── */}
5656
<Section fullHeight>
57-
<h2 className="text--center"><span className="highlight">Who</span> we work with</h2>
57+
<h2 className="text--center">Who we work with</h2>
5858
<LogoGrid />
5959
</Section>
6060

6161
<SectionSeparator variant={2} />
6262

6363
{/* ── How we work with you (services) ───────────────────────────────── */}
6464
<Section fullHeight>
65-
<h2 className="text--center"><span className="highlight">How</span> we work with you</h2>
65+
<h2 className="text--center">How we work with you</h2>
6666
<CardGrid cols={3}>
6767
<li>
6868
<Card bg="transparent" className={styles.topics_card}>
@@ -97,7 +97,7 @@ function HomeContent() {
9797
{/* ── What we work on (projects) ────────────────────────────────────── */}
9898
<div className={styles.projects_overview_container}>
9999
<Section>
100-
<h2 className="text--center"><span className="highlight">What</span> we work on</h2>
100+
<h2 className="text--center">What we work on</h2>
101101
</Section>
102102

103103
<SplitSection image={<img src={JupyterPictureUrl} alt="JupyterLab interfaces" style={{ maxWidth: "100%" }} />}>

0 commit comments

Comments
 (0)