Skip to content

Commit bee8b29

Browse files
Bruno FKclaude
andcommitted
Redesign: Systems/Terminal direction
Diffhero read most machine-made of the three: it carried the pill badge, the centred hero and the centred subtitle — the three most recognisable signatures of a generated landing page. The cause is mechanical rather than aesthetic: shadcn/ui became the dominant component vocabulary, so it dominates training data, so it is what gets produced by default. The escape is a vocabulary with its own internal logic, not "more creative". Direction: the interface should look like the artefact it produces. Grounded in Unix tooling aesthetics and Tufte's data-ink ratio — a diff IS a data visualisation, so that applies literally. Reference points: CyberChef, regex101. - Pill badge replaced by a full-width instrument spec bar. Rules drawn with a 1px grid gap over a border-coloured ground, which stays correct however the columns wrap; border-right dangles at row ends and did, at first. - Hero left-aligned. Headings set in the mono face, since the product's output is monospaced text. - All radii to 0 and all shadows to none. Radius is the loudest single tell, and separation is now done with 1px rules like a technical drawing. - Dropped the radial accent wash behind the hero; squared the logo mark. Accessibility caught before shipping, not after: muted chrome at 12px measured 2.79:1 against the ground, below the 4.5 AA floor. Moved to --text-secondary, now 5.46:1 dark and 5.73:1 light, verified by canvas-resolving the computed oklch and computing WCAG ratios in both themes. (The first measurement pass reported 1.00 for everything — the parser assumed rgb() and the browser returns oklch() verbatim. Broken measurement, not a passing result.) Hybrid, not purist: guides and prose keep the readable sans, since Diffhero also gets non-developer traffic — contracts, résumés, Word documents. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 05b7b6c commit bee8b29

71 files changed

Lines changed: 264 additions & 235 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

about.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<link rel="preconnect" href="https://fonts.googleapis.com">
2222
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
2323
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
24-
<link rel="stylesheet" href="./assets/style.css?v=dff7f34c">
24+
<link rel="stylesheet" href="./assets/style.css?v=bc8cedc1">
2525
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q907KGWEP4"></script>
2626
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}
2727
gtag('js',new Date());gtag('config','G-Q907KGWEP4');</script>
@@ -38,15 +38,15 @@
3838
<a class="skip-link" href="#main">Skip to content</a>
3939
<header>
4040
<a class="logo" href="/">
41-
<svg class="logo-mark" width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true"><rect x="2" y="3" width="7" height="16" rx="2.5" fill="currentColor"/><rect x="13" y="7" width="7" height="12" rx="2.5" fill="currentColor" opacity="0.45"/></svg>
41+
<svg class="logo-mark" width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true"><rect x="2" y="3" width="7" height="16" fill="currentColor"/><rect x="13" y="7" width="7" height="12" fill="currentColor" opacity="0.45"/></svg>
4242
Diffhero
4343
</a>
4444
<button type="button" class="theme-toggle" id="themeToggle" aria-label="Toggle light/dark">
4545
<svg class="icon-sun" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2.5M12 19.5V22M4.2 4.2l1.8 1.8M18 18l1.8 1.8M2 12h2.5M19.5 12H22M4.2 19.8 6 18M18 6l1.8-1.8"/></svg>
4646
<svg class="icon-moon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.2 14.6A8.5 8.5 0 1 1 9.4 3.8a7 7 0 0 0 10.8 10.8Z"/></svg>
4747
</button>
4848
</header>
49-
<nav class="main-nav" aria-label="Site">
49+
<nav class="main-nav chrome-rule" aria-label="Site">
5050
<a href="/guides">Guides</a>
5151
<a href="/diffchecker-alternative">Compare</a>
5252
<a href="/about">About</a>

assets/style.css

Lines changed: 48 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,15 @@
6363
--text-xl: 24px; --text-2xl: 32px; --text-3xl: 44px;
6464
--space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 20px;
6565
--space-6: 24px; --space-8: 32px; --space-10: 40px; --space-12: 48px; --space-16: 64px;
66-
--radius-sm: 4px; --radius-md: 6px; --radius-lg: 10px; --radius-full: 999px;
66+
/* Squared throughout. A terminal has hard edges; radius is the single
67+
loudest tell of the generic component look, and this tool's whole
68+
credibility rests on looking like an instrument rather than a product. */
69+
--radius-sm: 0; --radius-md: 0; --radius-lg: 0; --radius-full: 0;
6770
--container-max: 1080px;
68-
--shadow-sm: 0 2px 6px hsl(var(--shadow-color) / 0.28), 0 1px 2px hsl(var(--shadow-color) / 0.30);
69-
--shadow-md: 0 8px 24px hsl(var(--shadow-color) / 0.30), 0 2px 6px hsl(var(--shadow-color) / 0.24);
71+
/* No soft elevation. Separation is done with 1px rules, the way a
72+
technical drawing separates regions — not with drop shadows. */
73+
--shadow-sm: none;
74+
--shadow-md: none;
7075
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
7176
--duration-fast: 120ms; --duration-base: 200ms;
7277
}
@@ -77,15 +82,14 @@ body {
7782
font-family: var(--font-ui); font-size: var(--text-base); line-height: 1.5;
7883
color: var(--text-primary); background: var(--bg); -webkit-font-smoothing: antialiased;
7984
min-height: 100vh; display: flex; flex-direction: column;
80-
/* A whisper of the accent behind the hero, not a flat neutral field — echoes
81-
the cyan used everywhere else instead of introducing a new color. */
82-
background-image: radial-gradient(ellipse 900px 480px at 50% -8%, var(--accent-soft), transparent 60%);
83-
background-repeat: no-repeat;
8485
}
8586
a { color: var(--accent); text-decoration: none; }
8687
a:hover { text-decoration: underline; }
8788
h1, h2, h3 { line-height: 1.1; letter-spacing: -0.02em; font-weight: 700; }
88-
h1 { font-size: var(--text-3xl); text-wrap: balance; }
89+
/* Headings set in the mono face, not the UI sans: the product's output is
90+
monospaced text, so the voice of the page matches the artefact it makes. */
91+
h1, h2 { font-family: var(--font-display); }
92+
h1 { font-size: var(--text-3xl); text-wrap: balance; letter-spacing: -0.045em; }
8993
h2 { font-size: var(--text-xl); }
9094
h3 { font-size: var(--text-md); }
9195
:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--focus-ring); border-radius: var(--radius-sm); }
@@ -97,17 +101,20 @@ h3 { font-size: var(--text-md); }
97101
.muted { color: var(--text-secondary); font-size: var(--text-sm); }
98102

99103
/* ---- Header / nav ---- */
104+
/* Header reads as a terminal status bar: full-bleed rule underneath, mono
105+
chrome, no floating. It frames the page rather than sitting on top of it. */
100106
header {
101107
display: flex; align-items: center; justify-content: space-between;
102-
max-width: var(--container-max); margin: 0 auto; width: 100%; padding: var(--space-4) var(--space-5);
108+
max-width: var(--container-max); margin: 0 auto; width: 100%; padding: var(--space-3) var(--space-5);
103109
}
104-
.logo { font-weight: 700; font-size: var(--text-lg); color: var(--text-primary); letter-spacing: -0.03em; display: inline-flex; align-items: center; gap: var(--space-2); }
110+
.chrome-rule { border-bottom: 1px solid var(--border-subtle); }
111+
.logo { font-family: var(--font-display); font-weight: 700; font-size: var(--text-md); color: var(--text-primary); letter-spacing: -0.04em; display: inline-flex; align-items: center; gap: var(--space-2); }
105112
.logo:hover { text-decoration: none; }
106113
.logo-mark { color: var(--accent); flex: 0 0 auto; }
107114
.theme-toggle {
108115
display: inline-flex; align-items: center; justify-content: center;
109116
background: var(--surface-elevated); border: 1px solid var(--border-subtle); color: var(--text-secondary);
110-
width: 36px; height: 36px; border-radius: var(--radius-full); cursor: pointer;
117+
width: 30px; height: 30px; cursor: pointer;
111118
transition: background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);
112119
}
113120
.theme-toggle:hover { background: var(--surface-hover); color: var(--text-primary); }
@@ -116,22 +123,27 @@ header {
116123
[data-theme="light"] .theme-toggle .icon-moon { display: none; }
117124
.main-nav {
118125
display: flex; gap: var(--space-5); flex-wrap: wrap;
119-
max-width: var(--container-max); margin: 0 auto; width: 100%; padding: 0 var(--space-5) var(--space-4); font-size: var(--text-sm);
126+
max-width: var(--container-max); margin: 0 auto; width: 100%;
127+
padding: var(--space-3) var(--space-5); font-family: var(--font-display);
128+
font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase;
120129
}
121130
.main-nav a { color: var(--text-secondary); }
131+
.main-nav a:hover { color: var(--accent); text-decoration: none; }
122132

123133
/* ---- Main / hero ---- */
124-
main.wrap { flex: 1; padding-top: var(--space-6); padding-bottom: var(--space-16); }
134+
main.wrap { flex: 1; padding-top: var(--space-8); padding-bottom: var(--space-16); }
125135
.hero { margin-bottom: var(--space-8); }
126-
.hero--home { text-align: center; margin-bottom: var(--space-8); padding-top: var(--space-4); }
127-
.hero--home h1 { font-size: clamp(2.4rem, 5.2vw, 3.6rem); }
136+
/* Left-aligned, always. Centred hero + centred subtitle is the layout every
137+
generated page defaults to; the grid should decide where the eye enters. */
138+
.hero--home { text-align: left; margin-bottom: var(--space-10); padding-top: 0; }
139+
.hero--home h1 { font-size: clamp(2.3rem, 5vw, 3.4rem); }
128140
.eyebrow { display: inline-block; font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: var(--space-3); }
129141
.lede { font-size: var(--text-md); color: var(--text-secondary); max-width: 64ch; margin-top: var(--space-4); }
130142
/* Secondary hero line: the concrete competitive claim, deliberately smaller
131143
than the main lede so it reads as a footnote, not a second headline. */
132144
.lede--sub { font-size: var(--text-sm); margin-top: var(--space-3); }
133145
.lede--sub a { color: var(--accent); font-weight: 600; }
134-
.hero--home .lede { margin-left: auto; margin-right: auto; max-width: 46ch; }
146+
.hero--home .lede { margin-left: 0; margin-right: 0; max-width: 58ch; }
135147

136148
/* Split hero: copy on the left, a static illustrative diff snippet on the
137149
right — shows what the product does before the visitor ever reaches the
@@ -146,8 +158,7 @@ main.wrap { flex: 1; padding-top: var(--space-6); padding-bottom: var(--space-16
146158
.hero--split .lede { margin-left: 0; margin-right: 0; max-width: 52ch; }
147159
.hero-sample {
148160
background: var(--surface-elevated); border: 1px solid var(--border-subtle);
149-
border-radius: var(--radius-lg); box-shadow: var(--shadow-md); overflow: hidden;
150-
transform: rotate(-1deg);
161+
overflow: hidden; border-left: 2px solid var(--accent);
151162
}
152163
.hero-sample-head {
153164
display: flex; align-items: center; padding: var(--space-2) var(--space-4);
@@ -162,17 +173,25 @@ main.wrap { flex: 1; padding-top: var(--space-6); padding-bottom: var(--space-16
162173
.hero-sample { transform: none; }
163174
}
164175

165-
/* Trust badge — home hero only. States something true (client-side, nothing
166-
uploaded) rather than decorating; see .badge .dot for the "live" signal. */
167-
.badge {
168-
display: inline-flex; align-items: center; gap: var(--space-2); font-family: var(--font-ui);
169-
font-size: var(--text-xs); color: var(--text-secondary); background: var(--surface-elevated);
170-
border: 1px solid var(--border-subtle); border-radius: var(--radius-full);
171-
padding: 6px var(--space-3) 6px var(--space-2); margin-bottom: var(--space-5);
172-
}
173-
.badge .dot {
174-
width: 6px; height: 6px; border-radius: 50%; background: var(--success);
175-
box-shadow: 0 0 0 3px oklch(0.72 0.15 152 / 0.16); flex: none;
176+
/* Instrument spec bar. Replaces the old pill badge — a rounded capsule with a
177+
coloured dot above a centred headline is the single most recognisable
178+
signature of a generated landing page. This states the same true things as
179+
a device's printed markings: hard edges, mono, rule-separated fields.
180+
Full-width rather than inside the hero column, which is why it no longer
181+
wraps. The 1px grid gap over a border-coloured ground draws the rules, so
182+
they stay correct however the columns wrap. */
183+
.specbar {
184+
display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
185+
gap: 1px; background: var(--border-subtle);
186+
border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle);
187+
margin-bottom: var(--space-10); font-family: var(--font-display);
188+
font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase;
189+
color: var(--text-secondary);
190+
}
191+
.specbar > span { background: var(--bg); padding: var(--space-3) var(--space-4); }
192+
.specbar .dot {
193+
width: 5px; height: 5px; background: var(--success); flex: none;
194+
display: inline-block; margin-right: var(--space-2); vertical-align: 1px;
176195
}
177196

178197
/* ---- The tool shell ---- */

contact.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<link rel="preconnect" href="https://fonts.googleapis.com">
2222
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
2323
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
24-
<link rel="stylesheet" href="./assets/style.css?v=dff7f34c">
24+
<link rel="stylesheet" href="./assets/style.css?v=bc8cedc1">
2525
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q907KGWEP4"></script>
2626
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}
2727
gtag('js',new Date());gtag('config','G-Q907KGWEP4');</script>
@@ -38,15 +38,15 @@
3838
<a class="skip-link" href="#main">Skip to content</a>
3939
<header>
4040
<a class="logo" href="/">
41-
<svg class="logo-mark" width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true"><rect x="2" y="3" width="7" height="16" rx="2.5" fill="currentColor"/><rect x="13" y="7" width="7" height="12" rx="2.5" fill="currentColor" opacity="0.45"/></svg>
41+
<svg class="logo-mark" width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true"><rect x="2" y="3" width="7" height="16" fill="currentColor"/><rect x="13" y="7" width="7" height="12" fill="currentColor" opacity="0.45"/></svg>
4242
Diffhero
4343
</a>
4444
<button type="button" class="theme-toggle" id="themeToggle" aria-label="Toggle light/dark">
4545
<svg class="icon-sun" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2.5M12 19.5V22M4.2 4.2l1.8 1.8M18 18l1.8 1.8M2 12h2.5M19.5 12H22M4.2 19.8 6 18M18 6l1.8-1.8"/></svg>
4646
<svg class="icon-moon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.2 14.6A8.5 8.5 0 1 1 9.4 3.8a7 7 0 0 0 10.8 10.8Z"/></svg>
4747
</button>
4848
</header>
49-
<nav class="main-nav" aria-label="Site">
49+
<nav class="main-nav chrome-rule" aria-label="Site">
5050
<a href="/guides">Guides</a>
5151
<a href="/diffchecker-alternative">Compare</a>
5252
<a href="/about">About</a>

content.mjs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,14 @@ export const home = {
1717
title: `${C.NAME} — Free Online Diff Checker for Text & Code`,
1818
description: C.DESCRIPTION,
1919
bodyHtml: `
20+
<div class="specbar">
21+
<span><span class="dot" aria-hidden="true"></span>Client-side</span>
22+
<span>Nothing uploaded</span>
23+
<span>~17 languages</span>
24+
<span>No account</span>
25+
</div>
2026
<section class="hero hero--home hero--split">
2127
<div class="hero-copy">
22-
<span class="badge"><span class="dot" aria-hidden="true"></span>Every feature free and unmetered — nothing uploaded</span>
2328
<h1>${C.NAME}</h1>
2429
<p class="lede">A diff checker that doesn't hold anything back: syntax highlighting across ~17 languages, character-level detail, split and unified views, 3-way merge, image and CSV comparison — all free, all unlimited, all running on your own machine.</p>
2530
<p class="lede lede--sub">Most free diff tools do plain line comparison and stop. The big paid one meters syntax highlighting at five uses a month. <a href="/diffchecker-alternative">See the comparison →</a></p>

de/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<link rel="preconnect" href="https://fonts.googleapis.com">
2525
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
2626
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
27-
<link rel="stylesheet" href="../assets/style.css?v=dff7f34c">
27+
<link rel="stylesheet" href="../assets/style.css?v=bc8cedc1">
2828
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q907KGWEP4"></script>
2929
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}
3030
gtag('js',new Date());gtag('config','G-Q907KGWEP4');</script>
@@ -41,15 +41,15 @@
4141
<a class="skip-link" href="#main">Skip to content</a>
4242
<header>
4343
<a class="logo" href="/">
44-
<svg class="logo-mark" width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true"><rect x="2" y="3" width="7" height="16" rx="2.5" fill="currentColor"/><rect x="13" y="7" width="7" height="12" rx="2.5" fill="currentColor" opacity="0.45"/></svg>
44+
<svg class="logo-mark" width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true"><rect x="2" y="3" width="7" height="16" fill="currentColor"/><rect x="13" y="7" width="7" height="12" fill="currentColor" opacity="0.45"/></svg>
4545
Diffhero
4646
</a>
4747
<button type="button" class="theme-toggle" id="themeToggle" aria-label="Toggle light/dark">
4848
<svg class="icon-sun" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2.5M12 19.5V22M4.2 4.2l1.8 1.8M18 18l1.8 1.8M2 12h2.5M19.5 12H22M4.2 19.8 6 18M18 6l1.8-1.8"/></svg>
4949
<svg class="icon-moon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.2 14.6A8.5 8.5 0 1 1 9.4 3.8a7 7 0 0 0 10.8 10.8Z"/></svg>
5050
</button>
5151
</header>
52-
<nav class="main-nav" aria-label="Site">
52+
<nav class="main-nav chrome-rule" aria-label="Site">
5353
<a href="/guides">Guides</a>
5454
<a href="/diffchecker-alternative">Compare</a>
5555
<a href="/about">About</a>

diff/code-diff.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<link rel="preconnect" href="https://fonts.googleapis.com">
2222
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
2323
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
24-
<link rel="stylesheet" href="../assets/style.css?v=dff7f34c">
24+
<link rel="stylesheet" href="../assets/style.css?v=bc8cedc1">
2525
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q907KGWEP4"></script>
2626
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}
2727
gtag('js',new Date());gtag('config','G-Q907KGWEP4');</script>
@@ -38,15 +38,15 @@
3838
<a class="skip-link" href="#main">Skip to content</a>
3939
<header>
4040
<a class="logo" href="/">
41-
<svg class="logo-mark" width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true"><rect x="2" y="3" width="7" height="16" rx="2.5" fill="currentColor"/><rect x="13" y="7" width="7" height="12" rx="2.5" fill="currentColor" opacity="0.45"/></svg>
41+
<svg class="logo-mark" width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true"><rect x="2" y="3" width="7" height="16" fill="currentColor"/><rect x="13" y="7" width="7" height="12" fill="currentColor" opacity="0.45"/></svg>
4242
Diffhero
4343
</a>
4444
<button type="button" class="theme-toggle" id="themeToggle" aria-label="Toggle light/dark">
4545
<svg class="icon-sun" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2.5M12 19.5V22M4.2 4.2l1.8 1.8M18 18l1.8 1.8M2 12h2.5M19.5 12H22M4.2 19.8 6 18M18 6l1.8-1.8"/></svg>
4646
<svg class="icon-moon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.2 14.6A8.5 8.5 0 1 1 9.4 3.8a7 7 0 0 0 10.8 10.8Z"/></svg>
4747
</button>
4848
</header>
49-
<nav class="main-nav" aria-label="Site">
49+
<nav class="main-nav chrome-rule" aria-label="Site">
5050
<a href="/guides">Guides</a>
5151
<a href="/diffchecker-alternative">Compare</a>
5252
<a href="/about">About</a>

0 commit comments

Comments
 (0)