Skip to content

Commit 28f1a1f

Browse files
committed
Add namespace as corporate sponsor
1 parent e8730d4 commit 28f1a1f

File tree

5 files changed

+117
-0
lines changed

5 files changed

+117
-0
lines changed

docs/sponsor.mdx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,16 @@ for several reasons:
144144
all the overhead of a nonprofit. With Hack Club, we pay a similar fee (7%),
145145
but that fee goes towards another non-profit with a mission we support.
146146
As Zach Latta, Hack Club's founder, put it: "it is a good-for-good trade."
147+
148+
## Corporate Sponsors
149+
150+
We're grateful for the companies that support Ghostty's development through
151+
infrastructure, services, or financial contributions.
152+
153+
<SponsorCard
154+
name="Namespace"
155+
logo="/images/sponsors/namespace.svg"
156+
href="https://namespace.so"
157+
description="Namespace sponsors all of Ghostty's continuous integration infrastructure, enabling fast and reliable builds across all supported platforms."
158+
since="2023"
159+
/>
Lines changed: 14 additions & 0 deletions
Loading

src/components/custom-mdx/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import ButtonLinks from "../button-links";
55
import Callout, { Caution, Important, Note, Tip, Warning } from "../callout";
66
import CardLinks from "../card-links";
77
import DonateCard from "../donate-card";
8+
import SponsorCard from "../sponsor-card";
89
import CodeBlock from "../codeblock";
910
import GitHub from "../github";
1011
import { processGitHubLinks } from "../github/mdx";
@@ -95,6 +96,7 @@ export default function CustomMDX({ content }: CustomMDXProps) {
9596
CardLinks,
9697
ButtonLinks,
9798
DonateCard,
99+
SponsorCard,
98100
GitHub,
99101
Video,
100102
/* Callout Variants */
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
.card {
2+
display: flex;
3+
flex-direction: column;
4+
gap: 20px;
5+
padding: 24px;
6+
border-radius: 12px;
7+
border: 1px solid var(--gray-3);
8+
background: var(--gray-1);
9+
text-decoration: none;
10+
transition: border-color 0.15s ease, background-color 0.15s ease;
11+
12+
&:hover {
13+
@media (hover: hover) {
14+
border-color: var(--gray-4);
15+
background: hsl(var(--brand-color-hsl) / 0.03);
16+
}
17+
}
18+
}
19+
20+
.logoContainer {
21+
display: flex;
22+
align-items: center;
23+
justify-content: flex-start;
24+
min-height: 48px;
25+
}
26+
27+
.logo {
28+
height: 40px;
29+
width: auto;
30+
object-fit: contain;
31+
}
32+
33+
.content {
34+
display: flex;
35+
flex-direction: column;
36+
gap: 8px;
37+
}
38+
39+
.description {
40+
margin: 0;
41+
color: var(--gray-6);
42+
font-size: 14px;
43+
line-height: 1.6;
44+
}
45+
46+
.since {
47+
font-size: 12px;
48+
color: var(--gray-5);
49+
font-weight: 500;
50+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import Image from "next/image";
2+
import Link from "next/link";
3+
import { P } from "../text";
4+
import s from "./SponsorCard.module.css";
5+
6+
interface SponsorCardProps {
7+
name: string;
8+
logo: string;
9+
href: string;
10+
description: string;
11+
since?: string;
12+
}
13+
14+
export default function SponsorCard({
15+
name,
16+
logo,
17+
href,
18+
description,
19+
since,
20+
}: SponsorCardProps) {
21+
return (
22+
<Link href={href} className={s.card} target="_blank" rel="noopener noreferrer">
23+
<div className={s.logoContainer}>
24+
<Image
25+
src={logo}
26+
alt={`${name} logo`}
27+
width={180}
28+
height={48}
29+
className={s.logo}
30+
/>
31+
</div>
32+
<div className={s.content}>
33+
<P className={s.description}>{description}</P>
34+
{since && <span className={s.since}>Supporter since {since}</span>}
35+
</div>
36+
</Link>
37+
);
38+
}

0 commit comments

Comments
 (0)