Skip to content

Commit d26029b

Browse files
fix: improve blog typography (#5169)
Use black page titles, level-specific article heading styles, and remove the redundant article ending.
1 parent 03b39c7 commit d26029b

4 files changed

Lines changed: 72 additions & 15 deletions

File tree

apps/web/content/articles/char-is-now-anarlog.mdx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,3 @@ It's an anagram of *granola*. The product everyone keeps comparing us to — and
6969
It also reads as **anar + log** — anar for autonomy, log for the artifact. Your stack, your keys, your files. A log you keep, not one we host.
7070

7171
Both readings are true. Take whichever you like.
72-
73-
### tl;dr
74-
75-
- **Anarlog** = the meeting notetaker you've been using. OSS, free forever, MIT. [anarlog.so](https://anarlog.so) · [github.com/fastrepl/anarlog](https://github.com/fastrepl/anarlog)
76-
- **Char** = a new product. AI notepad that finishes your todos. Private alpha. [char.com](https://char.com)
77-
- Same team, same company (`fastrepl`, YC S25), same conviction.
78-
- Old `char.com/blog/*` links now redirect here. Your bookmarks still work.
79-
80-
— John

apps/web/src/routes/blog/$slug.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function Component() {
6060
</Link>
6161

6262
<header className="pt-10 pb-12">
63-
<h1 className="font-hand text-5xl leading-[1.02] font-semibold tracking-normal text-balance md:text-7xl">
63+
<h1 className="font-hand text-5xl leading-[1.02] font-semibold tracking-normal text-balance text-black md:text-7xl">
6464
{article.title}
6565
</h1>
6666
<div className="mt-6 flex items-center gap-2 text-sm text-[#756b5d]">
@@ -81,14 +81,16 @@ function Component() {
8181
aria-label="TLDR"
8282
className="mb-12 border-y border-[#eee8df] py-5"
8383
>
84-
<p className="font-mono text-xs font-medium tracking-[0.14em] text-[#756b5d] uppercase">
84+
<p className="font-hand text-xl font-semibold tracking-normal text-[#756b5d]">
8585
TL;DR
8686
</p>
87-
<p className="mt-3 text-lg leading-8 text-[#363029]">{tldr}</p>
87+
<p className="font-hand mt-3 text-2xl leading-8 font-semibold text-[#363029]">
88+
{tldr}
89+
</p>
8890
</aside>
8991
)}
9092

91-
<article className="prose prose-stone prose-headings:font-hand prose-headings:font-semibold prose-headings:text-[#181613] prose-p:text-[#363029] prose-a:text-[#181613] prose-a:underline hover:prose-a:text-[#4f4940] prose-strong:text-[#181613] prose-li:text-[#363029] prose-img:rounded-md prose-img:border prose-img:border-[#eee8df] max-w-none">
93+
<article className="blog-prose prose prose-stone prose-headings:font-hand prose-headings:font-semibold prose-headings:text-[#756b5d] prose-p:text-[#363029] prose-a:text-[#181613] prose-a:underline hover:prose-a:text-[#4f4940] prose-strong:text-[#181613] prose-li:text-[#363029] prose-img:rounded-md prose-img:border prose-img:border-[#eee8df] max-w-none">
9294
<MDXContent code={article.mdx} components={mdxComponents} />
9395
</article>
9496
</div>

apps/web/src/routes/blog/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function Component() {
3636
</header>
3737

3838
<section className="pt-24 pb-16 md:pt-32">
39-
<h1 className="font-hand text-6xl leading-[0.98] font-semibold tracking-normal text-balance md:text-8xl">
39+
<h1 className="font-hand text-6xl leading-[0.98] font-semibold tracking-normal text-balance text-black md:text-8xl">
4040
Blog
4141
</h1>
4242
<p className="mt-6 max-w-2xl text-xl leading-9 text-[#363029]">
@@ -54,7 +54,7 @@ function Component() {
5454
className="group block"
5555
>
5656
<article className="grid gap-3 border-t border-[#eee8df] pt-6">
57-
<h2 className="text-xl leading-7 font-medium text-[#181613] group-hover:text-[#4f4940]">
57+
<h2 className="font-hand text-3xl leading-[1.05] font-semibold tracking-normal text-balance text-[#756b5d] group-hover:text-[#4f4940]">
5858
{article.title}
5959
</h2>
6060
{article.meta_description && (

apps/web/src/styles.css

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,70 @@
497497
content: none;
498498
}
499499

500+
.blog-prose
501+
:where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
502+
margin-top: 4rem;
503+
margin-bottom: 1.25rem;
504+
font-family: var(--font-hand);
505+
font-size: 2.25rem;
506+
font-weight: 600;
507+
line-height: 1.05 !important;
508+
letter-spacing: 0;
509+
color: #756b5d;
510+
}
511+
512+
.blog-prose
513+
:where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
514+
margin-top: 3.5rem;
515+
margin-bottom: 1rem;
516+
font-family: var(--font-hand);
517+
font-size: 1.875rem;
518+
font-weight: 600;
519+
line-height: 1.05;
520+
letter-spacing: 0;
521+
color: #756b5d;
522+
}
523+
524+
.blog-prose
525+
:where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
526+
margin-top: 2.5rem;
527+
margin-bottom: 0.75rem;
528+
font-family: var(--font-hand);
529+
font-size: 1.5rem;
530+
font-weight: 600;
531+
line-height: 1.1;
532+
letter-spacing: 0;
533+
color: #756b5d;
534+
}
535+
536+
.blog-prose
537+
:where(h2, h3, h4):not(:where([class~="not-prose"], [class~="not-prose"] *))
538+
:where(a) {
539+
color: inherit;
540+
text-decoration: none;
541+
}
542+
543+
.blog-prose
544+
:where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *))
545+
+ :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)),
546+
.blog-prose
547+
:where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *))
548+
+ :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
549+
margin-top: 1.5rem;
550+
}
551+
552+
@media (min-width: 768px) {
553+
.blog-prose
554+
:where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
555+
font-size: 2.75rem;
556+
}
557+
558+
.blog-prose
559+
:where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
560+
font-size: 2.25rem;
561+
}
562+
}
563+
500564
.border-around {
501565
box-shadow: var(--shadow-ring);
502566
}

0 commit comments

Comments
 (0)