Skip to content

Commit f7a7adc

Browse files
committed
wip
1 parent a9fd191 commit f7a7adc

File tree

4 files changed

+102
-19
lines changed

4 files changed

+102
-19
lines changed

src/app/(main)/resources/[category]/texts.ts

Lines changed: 87 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,94 @@ export const texts: {
66
heading: string
77
subtitle: string
88
sections: {
9-
[key in Kind]: {
9+
[key in Kind]?: {
1010
heading: string
11-
paragraph: string
11+
text: string
1212
}
1313
}
1414
}
15-
} = {}
15+
} = {
16+
frontend: {
17+
heading: "Frontend",
18+
subtitle: "Learn how to use GraphQL on the frontend.",
19+
sections: {
20+
video: {
21+
heading: "Master GraphQL on the frontend",
22+
text: "Watch talks and tutorials from GraphQL Conf and community experts. See how teams integrate GraphQL on the frontend and learn from real-world case studies.",
23+
},
24+
"tools-and-libraries": {
25+
heading: "Frontend tools & libraries",
26+
text: "Explore the most popular GraphQL client libraries and frameworks for frontend. These tools help you fetch and manage data with GraphQL.",
27+
},
28+
"blog-or-newsletter": {
29+
heading: "Insights for frontend devs",
30+
text: "Stay up to date with insights from the GraphQL community.",
31+
},
32+
},
33+
},
34+
backend: {
35+
heading: "Backend",
36+
subtitle:
37+
"Build powerful GraphQL backends with the right tools, libraries and expert insights.",
38+
sections: {
39+
video: {
40+
heading: "Master GraphQL on the backend",
41+
text: "Discover videos and tutorials to help you build, deploy and scale your GraphQL backend.",
42+
},
43+
"tools-and-libraries": {
44+
heading: "Backend tools & libraries",
45+
text: "Find the right GraphQL backend stack — from JavaScript to Rust and beyond.",
46+
},
47+
"blog-or-newsletter": {
48+
heading: "Build better GraphQL infrastructure",
49+
text: "Dive into articles on server architecture, schema design and best practices for running GraphQL at scale.",
50+
},
51+
},
52+
},
53+
federation: {
54+
heading: "Federation",
55+
subtitle: "Learn how to build and compose GraphQL graphs with federation.",
56+
sections: {
57+
video: {
58+
heading: "Master GraphQL federation",
59+
text: "Watch talks and tutorials from GraphQL Conf and community experts. See how teams build and compose GraphQL graphs with federation.",
60+
},
61+
"tools-and-libraries": {
62+
heading: "Tools & libraries for federated graphs",
63+
text: "Run federated GraphQL graphs at scale with the right tools — from open-source routers to managed platforms.",
64+
},
65+
"blog-or-newsletter": {
66+
heading: "Latest updates on federation & composition",
67+
text: "Read the latest announcements and technical deep dives.",
68+
},
69+
},
70+
},
71+
ai: {
72+
heading: "Artificial Intelligence",
73+
subtitle: "Explore how to use GraphQL for AI systems.",
74+
sections: {
75+
"tools-and-libraries": {
76+
heading: "GraphQL tools for AI",
77+
text: "Discover the best tools for building AI systems with GraphQL.",
78+
},
79+
"blog-or-newsletter": {
80+
heading: "Latest insights on AI & GraphQL",
81+
text: "Read the latest announcements and technical deep dives.",
82+
},
83+
},
84+
},
85+
security: {
86+
heading: "Security",
87+
subtitle: "Learn how to secure your GraphQL APIs.",
88+
sections: {
89+
"tools-and-libraries": {
90+
heading: "GraphQL security tools",
91+
text: "Find resources to help secure GraphQL APIs across various languages and frameworks.",
92+
},
93+
docs: {
94+
heading: "Security in practice",
95+
text: "Follow proven patterns to delegate authorization correctly and protect your GraphQL APIs from malicious operations.",
96+
},
97+
},
98+
},
99+
}
Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,35 @@
1-
// https://www.figma.com/design/aPUvZDSxJfYDJtPd7GF2sB/GraphQL.org--Working-File?node-id=2947-75981&m=dev
2-
31
import ArrowDownIcon from "@/app/conf/_design-system/pixelarticons/arrow-down.svg?svgr"
42
import blurCorner from "./[category]/blur-corner.webp"
53
import { StripesDecoration } from "@/app/conf/_design-system/stripes-decoration"
64
import { Anchor } from "@/app/conf/_design-system/anchor"
75

6+
// "bg-[linear-gradient(90deg,hsl(var(--color-sec-lighter))_0_12px,hsl(var(--color-sec-light))_12px_24px)] dark:bg-[linear-gradient(90deg,hsl(var(--color-sec-dark)/0.22)_0_12px,hsl(var(--color-sec-base)/0.22)_12px_24px)]"
7+
88
export function KeepLearning({
9-
nextTitle,
10-
nextHref,
9+
title,
10+
href,
11+
stripes,
1112
}: {
12-
nextTitle: string
13-
nextHref: string
13+
title: string
14+
href: string
15+
stripes: string
1416
}) {
1517
return (
1618
<section className="gql-container gql-section flex">
1719
<h2 className="max-md:hidden">Keep Learning</h2>
18-
<Anchor href={nextHref} className="relative">
20+
<Anchor href={href} className="relative">
1921
<span className="typography-menu flex gap-1 text-pri-base dark:text-pri-dark">
2022
Next
2123
<ArrowDownIcon className="size-4 -rotate-90" />
2224
</span>
23-
<p>{nextTitle}</p>
24-
<Stripes />
25+
<p>{title}</p>
26+
<Stripes stripes={stripes} />
2527
</Anchor>
2628
</section>
2729
)
2830
}
2931

30-
function Stripes() {
32+
function Stripes({ stripes }: { stripes: string }) {
3133
return (
3234
<div
3335
className="pointer-events-none absolute inset-0"
@@ -36,11 +38,7 @@ function Stripes() {
3638
WebkitMaskImage: `url(${blurCorner.src})`,
3739
}}
3840
>
39-
<StripesDecoration
40-
evenClassName="bg-[linear-gradient(90deg,hsl(var(--color-sec-lighter))_0_12px,hsl(var(--color-sec-light))_12px_24px)] dark:bg-[linear-gradient(90deg,hsl(var(--color-sec-dark)/0.22)_0_12px,hsl(var(--color-sec-base)/0.22)_12px_24px)]"
41-
// oddClassName="bg-[linear-gradient(90deg,hsl(var(--color-pri-light))_0_12px,hsl(var(--color-pri-base)/0)_12px_24px)] dark:bg-[linear-gradient(90deg,hsl(var(--color-sec-base)/0.14)_0_12px,hsl(var(--color-sec-light)/0.14)_12px_24px)]"
42-
angle="-90deg"
43-
/>
41+
<StripesDecoration evenClassName={stripes} angle="-90deg" />
4442
</div>
4543
)
4644
}

src/app/(main)/resources/resource-hub-card.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export function ResourceHubCard({
6161
<Link
6262
href={href}
6363
className={clsx(
64-
"group grid h-full grid-rows-[1fr_auto] border border-neu-200 bg-neu-50 text-left hover:ring hover:ring-neu-100 dark:border-neu-100 dark:bg-neu-50/50 dark:hover:ring-neu-50",
64+
"group grid h-full grid-rows-[1fr_auto] border border-neu-200 bg-neu-50 text-left hover:ring hover:ring-neu-100 dark:border-neu-100 dark:bg-neu-50/25 dark:hover:ring-neu-50",
6565
className,
6666
)}
6767
>

src/resources/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export const kinds = [
2121
"guide",
2222
"book",
2323
"blog-or-newsletter",
24+
"docs",
2425
] as const
2526
export type Kind = (typeof kinds)[number]
2627

0 commit comments

Comments
 (0)