Skip to content

Commit 72c6ae2

Browse files
committed
dark theme hero illustration idk
1 parent d6bcc8e commit 72c6ae2

2 files changed

Lines changed: 204 additions & 63 deletions

File tree

src/pages/index.tsx

Lines changed: 78 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import Link from "@docusaurus/Link";
22
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
33
import HomepageFeatures from "@site/src/components/HomepageFeatures";
44
import HomepageSocials from "@site/src/components/HomepageSocials";
5-
import HeroImage from "@site/static/img/hero-illustration.svg";
5+
import { useBaseUrlUtils } from "@docusaurus/useBaseUrl";
6+
import ThemedImage from "@theme/ThemedImage";
67
import Heading from "@theme/Heading";
78
import Layout from "@theme/Layout";
89
import clsx from "clsx";
@@ -11,70 +12,84 @@ import type { ReactNode } from "react";
1112
import styles from "./index.module.css";
1213

1314
function HomepageHeader() {
14-
const { siteConfig } = useDocusaurusContext();
15-
const brand = (siteConfig.customFields as any)?.brandTitleParts as
16-
| {
17-
lttle: string;
18-
dot: string;
19-
cloud: string;
20-
suffix: string;
21-
taglineHtml: string;
22-
}
23-
| undefined;
24-
return (
25-
<header className={clsx("hero hero--primary", styles.heroBanner)}>
26-
<div className={clsx(styles.heroBannerContent)}>
27-
<Heading as="h1">
28-
{brand ? (
29-
<>
30-
<span className={styles.brandTitle}>
31-
<span className={styles.brandTitleParts}>
32-
<span className={styles.brandLttle}>{brand.lttle}</span>
33-
<span className={styles.brandDot}>{brand.dot}</span>
34-
<span className={styles.brandCloud}>{brand.cloud}</span>
35-
</span>
36-
<span>{brand.suffix}</span>
37-
</span>
38-
</>
39-
) : (
40-
siteConfig.title
41-
)}
42-
</Heading>
43-
<p
44-
className={styles.brandTagline}
45-
dangerouslySetInnerHTML={{
46-
__html: brand?.taglineHtml || siteConfig.tagline,
47-
}}
48-
/>
49-
<code className={styles.heroBannerCode}>
50-
<span className={styles.green}>curl</span>{" "}
51-
<span className={styles.purpleItalic}>-fsSL</span>{" "}
52-
<span>https://install.lttle.sh</span> <span>|</span>{" "}
53-
<span className={styles.green}>bash</span>
54-
</code>
55-
<div className={styles.buttons}>
56-
<Link className="button button--lg" to="/docs">
57-
start now
58-
</Link>
59-
</div>
60-
</div>
15+
const { withBaseUrl } = useBaseUrlUtils();
16+
const { siteConfig } = useDocusaurusContext();
17+
const brand = (siteConfig.customFields as any)?.brandTitleParts as
18+
| {
19+
lttle: string;
20+
dot: string;
21+
cloud: string;
22+
suffix: string;
23+
taglineHtml: string;
24+
}
25+
| undefined;
26+
return (
27+
<header className={clsx("hero hero--primary", styles.heroBanner)}>
28+
<div className={clsx(styles.heroBannerContent)}>
29+
<Heading as="h1">
30+
{brand ? (
31+
<>
32+
<span className={styles.brandTitle}>
33+
<span className={styles.brandTitleParts}>
34+
<span className={styles.brandLttle}>
35+
{brand.lttle}
36+
</span>
37+
<span className={styles.brandDot}>
38+
{brand.dot}
39+
</span>
40+
<span className={styles.brandCloud}>
41+
{brand.cloud}
42+
</span>
43+
</span>
44+
<span>{brand.suffix}</span>
45+
</span>
46+
</>
47+
) : (
48+
siteConfig.title
49+
)}
50+
</Heading>
51+
<p
52+
className={styles.brandTagline}
53+
dangerouslySetInnerHTML={{
54+
__html: brand?.taglineHtml || siteConfig.tagline,
55+
}}
56+
/>
57+
<code className={styles.heroBannerCode}>
58+
<span className={styles.green}>curl</span>{" "}
59+
<span className={styles.purpleItalic}>-fsSL</span>{" "}
60+
<span>https://install.lttle.sh</span> <span>|</span>{" "}
61+
<span className={styles.green}>bash</span>
62+
</code>
63+
<div className={styles.buttons}>
64+
<Link className="button button--lg" to="/docs">
65+
start now
66+
</Link>
67+
</div>
68+
</div>
6169

62-
<div className={clsx(styles.heroBannerImage)}>
63-
<HeroImage className={styles.heroImage} />
64-
</div>
65-
</header>
66-
);
70+
<div className={clsx(styles.heroBannerImage)}>
71+
<ThemedImage
72+
className={styles.heroImage}
73+
alt="Hero illustration"
74+
sources={{
75+
light: withBaseUrl("/img/hero-illustration.svg"),
76+
dark: withBaseUrl("/img/hero-illustration-dark.svg"),
77+
}}
78+
/>
79+
</div>
80+
</header>
81+
);
6782
}
6883

6984
export default function Home(): ReactNode {
70-
const { siteConfig } = useDocusaurusContext();
71-
return (
72-
<Layout title={`${siteConfig.title}`} description={siteConfig.tagline}>
73-
<HomepageHeader />
74-
<main>
75-
<HomepageFeatures />
76-
<HomepageSocials />
77-
</main>
78-
</Layout>
79-
);
85+
const { siteConfig } = useDocusaurusContext();
86+
return (
87+
<Layout title={`${siteConfig.title}`} description={siteConfig.tagline}>
88+
<HomepageHeader />
89+
<main>
90+
<HomepageFeatures />
91+
<HomepageSocials />
92+
</main>
93+
</Layout>
94+
);
8095
}

0 commit comments

Comments
 (0)