Skip to content

Commit 041e679

Browse files
committed
Fixes and improvements (thanks AK for the feedback!)
1 parent 65c0cab commit 041e679

File tree

9 files changed

+258
-246
lines changed

9 files changed

+258
-246
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "graph-docs",
33
"private": true,
44
"version": "1.0.0",
5-
"packageManager": "pnpm@10.2.1",
5+
"packageManager": "pnpm@10.3.0",
66
"scripts": {
77
"dev": "turbo run dev",
88
"build": "NODE_OPTIONS='--max_old_space_size=4096' turbo run build",
@@ -30,7 +30,7 @@
3030
"remark-lint-heading-increment": "^4.0.1",
3131
"remark-lint-no-heading-punctuation": "^4.0.1",
3232
"remark-lint-restrict-elements": "workspace:*",
33-
"turbo": "^2.4.0",
33+
"turbo": "^2.4.1",
3434
"typescript": "^5.7.3"
3535
},
3636
"resolutions": {

pnpm-lock.yaml

Lines changed: 161 additions & 159 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

website/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@
1717
"dependencies": {
1818
"@docsearch/react": "^3.8.3",
1919
"@edgeandnode/common": "^6.51.0",
20-
"@edgeandnode/gds": "6.3.0-for-docs-1738980344062-6f60ec89903dd9f5d85ba069d3cdaa620c4e4c74",
21-
"@edgeandnode/go": "8.9.0-for-docs-1738980344062-6f60ec89903dd9f5d85ba069d3cdaa620c4e4c74",
20+
"@edgeandnode/gds": "6.3.0-for-docs-1739233638767-5000c1abd82fa2fa01effd5029f0eb2992db1b86",
21+
"@edgeandnode/go": "8.9.0-for-docs-1739233638767-5000c1abd82fa2fa01effd5029f0eb2992db1b86",
2222
"@emotion/react": "^11.14.0",
2323
"@graphprotocol/contracts": "6.2.1",
2424
"@pinax/graph-networks-registry": "^0.6.7",
2525
"lodash": "^4.17.21",
2626
"mixpanel-browser": "^2.60.0",
27-
"motion": "^12.4.1",
28-
"next": "^14.2.23",
27+
"motion": "^12.4.2",
28+
"next": "^14.2.24",
2929
"next-seo": "^6.6.0",
3030
"next-sitemap": "^4.2.3",
3131
"nextra": "^3.3.1",
@@ -47,7 +47,7 @@
4747
"@types/react-dom": "^18.3.5",
4848
"autoprefixer": "^10.4.20",
4949
"fast-xml-parser": "^4.5.1",
50-
"postcss": "^8.5.1",
50+
"postcss": "^8.5.2",
5151
"tailwindcss": "^3.4.17",
5252
"tsup": "^8.3.6",
5353
"tsx": "^4.19.2"

website/src/HomePage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export default function HomePage() {
1616
return (
1717
<>
1818
<div className="graph-docs-not-markdown grid grid-cols-subgrid">
19-
<div className="absolute inset-x-0 -top-8 flex h-90 justify-center">
19+
<div className="pointer-events-none absolute inset-x-0 -top-8 flex h-72 justify-center xs:h-90">
2020
<img alt="" src={`${process.env.BASE_PATH}/img/home-bg.svg`} className="h-full max-w-none" />
2121
</div>
2222
<div className="col-[container] py-20 xs:py-30">
@@ -25,7 +25,7 @@ export default function HomePage() {
2525
{t('index.hero.title')}
2626
</h1>
2727
<p className="mt-2">{t('index.hero.description')}</p>
28-
<ExperimentalButtonGroup className="mt-4">
28+
<ExperimentalButtonGroup className="mt-4 prop-orientation-vertical xs:prop-orientation-horizontal">
2929
<ExperimentalButton href="/about">{t('index.hero.cta1')}</ExperimentalButton>
3030
<ExperimentalButton href="/subgraphs/quick-start">{t('index.hero.cta2')}</ExperimentalButton>
3131
</ExperimentalButtonGroup>

website/src/Layout.tsx

Lines changed: 79 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
type ReactNode,
1515
useContext,
1616
useEffect,
17+
useLayoutEffect,
1718
useState,
1819
} from 'react'
1920
import { useSet } from 'react-use'
@@ -33,7 +34,6 @@ import {
3334
BookOpenText,
3435
Files,
3536
House,
36-
List,
3737
MagnifyingGlass,
3838
RoleIndexer,
3939
SidebarSimple,
@@ -43,7 +43,6 @@ import {
4343
Substreams,
4444
SubstreamsPoweredSubgraph,
4545
TheGraph,
46-
X,
4746
} from '@edgeandnode/gds/icons'
4847

4948
import {
@@ -104,11 +103,20 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps<Fr
104103
const [sidebarExpandedOnDesktop, setSidebarExpandedOnDesktop] = useState(true)
105104

106105
// Collapse the sidebar on mobile when the route changes
107-
// TODO: Also collapse it when clicking outside the sidebar
108106
useEffect(() => {
109107
setSidebarExpandedOnMobile(false)
110108
}, [router.pathname])
111109

110+
// TODO: Create `useTailwindScreen` hook in GDS, with usage like `const screen = useTailwindScreen()` and then you can check `screen.md`, etc.
111+
const [mobile, setMobile] = useState(false)
112+
useLayoutEffect(() => {
113+
const mediaQueryList = matchMedia('(min-width: 768px)')
114+
setMobile(!mediaQueryList.matches)
115+
const onChange = (event: MediaQueryListEvent) => setMobile(!event.matches)
116+
mediaQueryList.addEventListener('change', onChange)
117+
return () => mediaQueryList.removeEventListener('change', onChange)
118+
}, [])
119+
112120
const normalizedPages = normalizePages({
113121
list: pageMap,
114122
route: fsPath,
@@ -297,93 +305,80 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps<Fr
297305

298306
<div
299307
className={`
300-
isolate overflow-x-clip
308+
isolate
301309
[--graph-docs-content-padding-bottom:theme(spacing.12)]
302310
[--graph-docs-content-padding-top:theme(spacing.12)]
303311
[--graph-docs-content-padding:theme(spacing.6)]
304-
[--graph-docs-header-height:theme(spacing.14)]
312+
[--graph-docs-header-height:theme(spacing.16)]
305313
[--graph-docs-header-padding:theme(spacing.4)]
306314
[--graph-docs-layout-transition-duration:300ms]
307315
[--graph-docs-sidebar-width:theme(spacing.64)]
308316
[--graph-docs-toc-width:theme(spacing.66)]
309-
xs:[--graph-docs-header-height:theme(spacing.16)]
310-
xs:[--graph-docs-header-padding:theme(spacing.6)]
311317
md:[--graph-docs-content-padding-bottom:theme(spacing.16)]
312318
md:[--graph-docs-content-padding:theme(spacing.16)]
319+
md:[--graph-docs-header-padding:theme(spacing.6)]
313320
`}
314321
>
315322
<header
316323
className={`
317-
sticky top-0 z-10 grid h-[var(--graph-docs-header-height)] grid-cols-[1fr_auto_1fr] border-b border-white/8 bg-background
324+
sticky top-0 z-10 grid h-[var(--graph-docs-header-height)] grid-cols-[1fr_auto_1fr] items-center border-b border-white/8 bg-background
318325
md:grid-cols-[var(--graph-docs-sidebar-width),auto]
319326
`}
320327
>
321-
<div className="flex items-center px-[var(--graph-docs-header-padding)] md:hidden">
322-
{/* TODO: Use tertiary `ExperimentalButton` after new design is implemented */}
323-
<button
324-
type="button"
325-
data-sidebar-expanded={sidebarExpandedOnMobile || undefined}
326-
className={`
327-
flex size-8 items-center justify-center text-white/88 transition
328-
hocus-visible:text-white
329-
active:text-white/64
330-
active:transition-none
331-
`}
332-
onClick={() => {
333-
setSidebarExpandedOnMobile((expanded) => !expanded)
334-
}}
335-
>
336-
<List
337-
alt={t('global.navigation.show')}
338-
variant="regular"
339-
className="prop-size-5 in-clickable-[[data-sidebar-expanded]]:hidden xs:prop-size-6"
340-
/>
341-
<X
342-
alt={t('global.navigation.hide')}
343-
className="prop-size-5 in-clickable-not-[[data-sidebar-expanded]]:hidden xs:prop-size-6"
344-
/>
345-
</button>
346-
</div>
347-
<div className="flex items-center justify-center md:ps-[var(--graph-docs-header-padding)]">
348-
<ButtonOrLink href="https://thegraph.com" className="outline-offset-2">
328+
<div className="contents md:flex md:items-center md:justify-center md:ps-[var(--graph-docs-header-padding)]">
329+
<ButtonOrLink href="https://thegraph.com" className="outline-offset-2 md:-ms-1.5">
349330
<span className="absolute -inset-2" />
350-
<TheGraph className="prop-size-6 xs:prop-size-7" />
331+
<TheGraph size={7} />
351332
</ButtonOrLink>
352-
<div className="me-4.5 ms-3.5 h-7 w-px shrink-0 bg-white/8 xs:h-9" />
353-
<div className="text-body-small me-auto text-text xs:text-body-large">Docs</div>
333+
<div className="me-auto hidden md:flex md:items-center">
334+
<div className="me-4.5 ms-3.5 h-9 w-px shrink-0 bg-white/8" />
335+
<div className="text-body-large text-text">Docs</div>
336+
</div>
354337
{/* TODO: Use naked `ExperimentalButton` after new design is implemented */}
355-
<button
356-
type="button"
357-
data-sidebar-expanded={sidebarExpandedOnDesktop || undefined}
358-
className={`
359-
hidden size-8 items-center justify-center text-white/88 transition
360-
hocus-visible:text-white
361-
active:text-white/64
362-
active:transition-none
363-
md:flex
364-
`}
365-
onClick={() => {
366-
if (!sidebarExpandedOnDesktop) {
367-
setSidebarExpandedOnDesktop(true)
368-
} else {
369-
setSidebarExpandedOnDesktop(false)
370-
setSidebarExpandedOnMobile(false)
371-
}
372-
}}
373-
>
374-
<SidebarSimple
375-
alt={t('global.navigation.show')}
376-
variant="regular"
377-
size={6}
378-
className="in-clickable-[[data-sidebar-expanded]]:hidden"
379-
/>
380-
<SidebarSimple
381-
alt={t('global.navigation.hide')}
382-
variant="fill"
383-
size={6}
384-
className="in-clickable-not-[[data-sidebar-expanded]]:hidden"
385-
/>
386-
</button>
338+
<div className="order-first px-[var(--graph-docs-header-padding)] md:order-none md:px-0">
339+
<button
340+
type="button"
341+
data-sidebar-expanded-on-mobile={sidebarExpandedOnMobile || undefined}
342+
data-sidebar-expanded-on-desktop={sidebarExpandedOnDesktop || undefined}
343+
className={`
344+
flex size-8 items-center justify-center text-white/88 transition
345+
hocus-visible:text-white
346+
active:text-white/64
347+
active:transition-none
348+
`}
349+
onClick={() => {
350+
if (mobile) {
351+
setSidebarExpandedOnMobile((expanded) => !expanded)
352+
} else {
353+
if (!sidebarExpandedOnDesktop) {
354+
setSidebarExpandedOnDesktop(true)
355+
} else {
356+
setSidebarExpandedOnDesktop(false)
357+
setSidebarExpandedOnMobile(false)
358+
}
359+
}
360+
}}
361+
>
362+
<SidebarSimple
363+
alt={t('global.navigation.show')}
364+
variant="regular"
365+
size={6}
366+
className={`
367+
max-md:in-clickable-[[data-sidebar-expanded-on-mobile]]:hidden
368+
md:in-clickable-[[data-sidebar-expanded-on-desktop]]:hidden
369+
`}
370+
/>
371+
<SidebarSimple
372+
alt={t('global.navigation.hide')}
373+
variant="fill"
374+
size={6}
375+
className={`
376+
max-md:in-clickable-not-[[data-sidebar-expanded-on-mobile]]:hidden
377+
md:in-clickable-not-[[data-sidebar-expanded-on-desktop]]:hidden
378+
`}
379+
/>
380+
</button>
381+
</div>
387382
<div className="ms-3.5 hidden h-9 w-px shrink-0 bg-white/8 md:block" />
388383
</div>
389384
<div className="flex items-center gap-4 px-[var(--graph-docs-header-padding)]">
@@ -441,6 +436,7 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps<Fr
441436
</button>
442437
)}
443438
</DocSearch>
439+
{/* TODO: Implement new design */}
444440
<ExperimentalLocaleSwitcher className="prop-display-format-short lg:prop-display-format-full" />
445441
{/* TODO: Fix app launcher */}
446442
{/* <ExperimentalAppLauncher /> */}
@@ -457,6 +453,16 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps<Fr
457453
md:data-[sidebar-expanded-on-desktop]:grid-cols-[var(--graph-docs-sidebar-width),auto]
458454
`}
459455
>
456+
<div
457+
onClick={() => setSidebarExpandedOnMobile(false)}
458+
className={`
459+
pointer-events-none absolute inset-0 z-10 hidden bg-background/64 opacity-0
460+
transition-[opacity,display] duration-[var(--graph-docs-layout-transition-duration)] transition-allow-discrete +:starting:opacity-0
461+
max-md:group-data-[sidebar-expanded-on-mobile]/layout-sidebar-grid:pointer-events-auto
462+
max-md:group-data-[sidebar-expanded-on-mobile]/layout-sidebar-grid:block
463+
max-md:group-data-[sidebar-expanded-on-mobile]/layout-sidebar-grid:opacity-100
464+
`}
465+
/>
460466
<div className="sticky top-[var(--graph-docs-header-height)] z-10 h-[calc(100vh-var(--graph-docs-header-height))]">
461467
<nav
462468
aria-label={t('global.navigation.title')}
@@ -604,7 +610,7 @@ function MDXContent({ toc: headings, children }: ComponentPropsWithoutRef<Nextra
604610
<main
605611
data-hide-table-of-contents={frontMatter.hideTableOfContents || undefined}
606612
className={`
607-
group/layout-toc-grid grid grid-cols-[auto,0]
613+
group/layout-toc-grid grid grid-cols-[auto,0] overflow-x-clip
608614
transition-[grid-template-columns]
609615
duration-[var(--graph-docs-layout-transition-duration)]
610616
xl:not-data-[hide-table-of-contents]:grid-cols-[auto,var(--graph-docs-toc-width)]
@@ -683,6 +689,7 @@ function MDXContent({ toc: headings, children }: ComponentPropsWithoutRef<Nextra
683689
mdx-[hr]:bg-white/8
684690
mdx-[li]:ps-1.5
685691
mdx-[ul,ol]:ps-5
692+
mdx-[b,strong]:font-medium
686693
mdx-[b,strong]:text-white
687694
mdx-[h2,h3,h4,h5,h6]:text-white
688695
mdx-[ul>li]:after:absolute

website/src/components/Card.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,12 @@ export const Card = ({
5555
])}
5656
{...props}
5757
>
58-
<div className="flex h-full flex-col gap-6 nested-icon:default-size-6">
59-
{icon && iconPosition === 'top' ? <div className="shrink-0 grow-[9999]">{icon}</div> : null}
58+
<div className="flex h-full flex-col gap-6">
59+
{icon && iconPosition === 'top' ? (
60+
<div className="shrink-0 grow-[9999] nested-icon:default-size-6">{icon}</div>
61+
) : null}
6062
<div className="flex grow gap-4">
61-
{icon && iconPosition === 'side' ? <div className="shrink-0">{icon}</div> : null}
63+
{icon && iconPosition === 'side' ? <div className="shrink-0 nested-icon:default-size-6">{icon}</div> : null}
6264
<div className="flex flex-col gap-1">
6365
{slotAboveTitle}
6466
<h3 className="text-body-small font-medium text-white/88">{title}</h3>

website/src/components/DocSearch.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ export function DocSearch({ children, ...props }: DocSearchProps) {
194194
},
195195
'.DocSearch-Hit-title': {
196196
fontSize: FontSize['16px'],
197-
fontWeight: FontWeight.SEMIBOLD,
197+
fontWeight: FontWeight.MEDIUM,
198198
overflow: 'hidden',
199199
textOverflow: 'ellipsis',
200200
},

website/src/components/Link.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,14 @@ export const Link = forwardRef(
3939
{...(props.href === undefined ? { asSpan: true } : {})}
4040
className={`
4141
group/link -mx-1 whitespace-nowrap rounded-4 border border-transparent box-decoration-clone px-1 py-0.5 text-[#4c9eff] outline-none transition
42-
hover:text-[#70b1ff]
42+
hocus-visible:text-[#70b1ff]
4343
focus-visible:border-current
4444
active:text-[#3f80d1]
4545
active:transition-none
4646
+:disabled:text-white/48
4747
nested-icon:top-[0.075em]
4848
nested-icon:inline-block
49+
+:nested-icon:default-size-[1em] ${/* This is the default, but it prevents an ancestor from overriding it accidentally */ ''}
4950
`}
5051
{...props}
5152
>

website/src/components/Table.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export const Table = ({ className, children, ...props }: TableProps) => {
2323
nested-[th,td]:px-4
2424
nested-[th,td]:py-3
2525
nested-[th]:text-center
26-
nested-[th]:font-semibold
26+
nested-[th]:font-medium
2727
`}
2828
{...props}
2929
>

0 commit comments

Comments
 (0)