Skip to content
This repository was archived by the owner on Apr 25, 2023. It is now read-only.

Commit 0445f3e

Browse files
authored
SDK page layout (#153)
Added code that supports the sdk page layout.
1 parent ed8187f commit 0445f3e

File tree

9 files changed

+450
-115
lines changed

9 files changed

+450
-115
lines changed
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import Markdown from 'markdown-to-jsx';
2+
import { createElement } from 'react';
3+
import styles from '../Docs.module.scss';
4+
import { DocsMarkdownRenderer } from '../DocsTypographyRenderer/DocsTypographyRenderer';
5+
6+
const CLASSNAME_MAP: { [k: string]: string } = {
7+
section: styles.sdkDocSection,
8+
left: styles.sdkLeftColumn,
9+
right: styles.sdkRightColumn,
10+
parameter: styles.methodParameter,
11+
innerParameterContainer: styles.innerParameterContainer,
12+
innerParameterHeading: styles.innerParameterHeading,
13+
};
14+
15+
export const DocSection = ({ content }: { content: string }) => {
16+
return (
17+
<Markdown
18+
options={{
19+
createElement(type, props, children) {
20+
return createElement(
21+
type,
22+
{ ...props, className: CLASSNAME_MAP[props.className] },
23+
children
24+
);
25+
},
26+
overrides: {
27+
h1: DocsMarkdownRenderer('h5'),
28+
h2: DocsMarkdownRenderer('h5'),
29+
h3: DocsMarkdownRenderer('h5'),
30+
h4: DocsMarkdownRenderer('h5'),
31+
h5: DocsMarkdownRenderer('h5'),
32+
code: DocsMarkdownRenderer('code'),
33+
a: DocsMarkdownRenderer('a'),
34+
},
35+
}}
36+
>
37+
{content}
38+
</Markdown>
39+
);
40+
};

components/Docs/Docs.module.scss

+124-1
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,36 @@
183183
}
184184
}
185185

186+
.sdkRender {
187+
h4,
188+
h5,
189+
h6 {
190+
scroll-margin-top: var(--size-large);
191+
margin: var(--size-xSmall) 0 !important;
192+
193+
&:hover {
194+
text-decoration: underline;
195+
text-decoration-color: var(--color-copy-on-light);
196+
text-decoration-thickness: 1px;
197+
text-underline-offset: var(--size-xSmall);
198+
cursor: pointer;
199+
}
200+
}
201+
202+
p {
203+
font-size: 18px;
204+
font-weight: 400;
205+
line-height: 26px !important;
206+
margin: var(--size-medium) 0 !important;
207+
color: var(--copy-on-dark);
208+
}
209+
210+
img {
211+
width: 100%;
212+
border-radius: var(--border-radius);
213+
}
214+
}
215+
186216
.inlineCodeBlock {
187217
border-radius: var(--space-unit);
188218
background-color: var(--color-pseudo-black);
@@ -331,6 +361,10 @@ h5:hover .headingCopyIcon {
331361
border-left: 1px var(--color-divider-on-dark) solid;
332362
}
333363

364+
.sdkCenterSection {
365+
max-width: none;
366+
}
367+
334368
.rightSection {
335369
display: flex;
336370
flex: 0 0 320px;
@@ -537,6 +571,94 @@ h5:hover .headingCopyIcon {
537571
}
538572
}
539573

574+
.sdkDocSection {
575+
display: flex;
576+
margin-bottom: 60px;
577+
gap: var(--size-xxLarge);
578+
579+
.sdkLeftColumn {
580+
flex: 1 0 50%;
581+
}
582+
583+
.sdkRightColumn {
584+
padding-top: var(--size-4xLarge);
585+
position: sticky;
586+
align-self: flex-start;
587+
top: 0;
588+
flex: 0 0 50%;
589+
}
590+
591+
h6 {
592+
margin: var(--size-small) 0 !important;
593+
}
594+
595+
p {
596+
margin: var(--size-small) 0 var(--size-large) !important;
597+
}
598+
}
599+
600+
.methodParameter {
601+
padding: var(--size-medium) 0;
602+
border-top: 1px solid var(--color-divider-on-dark);
603+
604+
h5 {
605+
display: flex;
606+
font-family: 'Fira Code' !important;
607+
font-style: normal;
608+
font-weight: 500;
609+
font-size: 16px;
610+
line-height: 26px;
611+
align-items: center;
612+
gap: var(--size-xSmall);
613+
margin: var(--size-xSmall) 0 !important;
614+
615+
&:hover {
616+
text-decoration: none;
617+
}
618+
619+
code {
620+
color: var(--color-copy-on-dark);
621+
font-weight: 400;
622+
font-size: 14.5px;
623+
line-height: 24px;
624+
background-color: rgba(29, 10, 38, 1);
625+
border: 1px solid var(--color-divider-on-dark);
626+
}
627+
}
628+
629+
p {
630+
color: var(--color-copy-on-light);
631+
font-weight: 400;
632+
font-size: 14px;
633+
line-height: 22px !important;
634+
margin: var(--size-xSmall) 0 !important;
635+
}
636+
}
637+
638+
.innerParameterContainer {
639+
margin-top: var(--size-medium);
640+
border: 1px solid var(--color-divider-on-dark);
641+
border-radius: var(--size-xxSmall);
642+
display: flex;
643+
flex-direction: column;
644+
645+
.innerParameterHeading {
646+
background: #30294e;
647+
padding: var(--size-xxSmall) var(--size-small);
648+
font-size: 12px;
649+
line-height: 22px;
650+
color: var(--color-copy-on-dark);
651+
}
652+
653+
.methodParameter {
654+
padding: var(--size-xSmall) var(--size-small);
655+
}
656+
657+
p {
658+
font-size: 12px;
659+
}
660+
}
661+
540662
@supports (-webkit-hyphens: none) {
541663
.contentRender {
542664
h4,
@@ -556,7 +678,8 @@ h5:hover .headingCopyIcon {
556678
width: 100%;
557679
}
558680

559-
.contentRender {
681+
.contentRender,
682+
.sdkRender {
560683
h5 {
561684
margin: 0 !important;
562685
}

components/Docs/Docs.module.scss.d.ts

+8
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,12 @@ export const headingSection: string;
1717
export const highlightedText: string;
1818
export const icon: string;
1919
export const inlineCodeBlock: string;
20+
export const innerParameterContainer: string;
21+
export const innerParameterHeading: string;
2022
export const leftInner: string;
2123
export const leftSection: string;
2224
export const mainWrapper: string;
25+
export const methodParameter: string;
2326
export const pageContentList: string;
2427
export const pageContentTable: string;
2528
export const pageContentTitle: string;
@@ -28,6 +31,11 @@ export const pageNavigateRow: string;
2831
export const pageTitle: string;
2932
export const resultTitle: string;
3033
export const rightSection: string;
34+
export const sdkCenterSection: string;
35+
export const sdkDocSection: string;
36+
export const sdkLeftColumn: string;
37+
export const sdkRender: string;
38+
export const sdkRightColumn: string;
3139
export const searchContainer: string;
3240
export const searchDiv: string;
3341
export const searchResultCard: string;

0 commit comments

Comments
 (0)