From d690c43dc19a828363f381385fbc2229e6330855 Mon Sep 17 00:00:00 2001 From: Roy Nakakawa Date: Mon, 24 Aug 2026 14:58:42 +0200 Subject: [PATCH 1/3] boiler plate ready --- docs/website/docusaurus.config.js | 44 ++++- docs/website/homepage-content/hero.ts | 12 -- docs/website/homepage-content/use-cases.ts | 21 --- docs/website/homepage-content/why-mithril.tsx | 27 --- docs/website/src/components/AnimatedText.tsx | 74 -------- docs/website/src/components/Features.tsx | 112 ++++++----- docs/website/src/components/HomepageHero.tsx | 95 ++++------ docs/website/src/components/Trusted.tsx | 61 ++++++ docs/website/src/components/UseCases.tsx | 80 -------- docs/website/src/components/WhyMithril.tsx | 175 ++++++++---------- docs/website/src/components/icons/Discord.tsx | 18 -- docs/website/src/components/icons/Github.tsx | 20 -- .../src/components/icons/Scalability.tsx | 8 +- docs/website/src/css/custom.css | 145 +++++++-------- docs/website/src/pages/index.module.css | 23 --- docs/website/src/pages/index.tsx | 6 +- .../website/src/theme/Footer/Layout/index.tsx | 18 +- .../src/theme/Footer/LinkItem/index.tsx | 4 +- .../theme/Footer/Links/MultiColumn/index.tsx | 15 +- docs/website/src/theme/Footer/Logo/index.tsx | 7 +- .../src/theme/Navbar/Content/index.tsx | 73 +++++--- .../theme/Navbar/Content/styles.module.css | 8 + .../website/src/theme/Navbar/Layout/index.tsx | 53 ++---- .../Navbar/MobileSidebar/Layout/index.tsx | 50 ++++- .../MobileSidebar/PrimaryMenu/index.tsx | 9 - docs/website/static/img/blinklabs.png | Bin 0 -> 23212 bytes docs/website/static/img/cardano.png | Bin 0 -> 8094 bytes docs/website/static/img/iog.png | Bin 0 -> 137835 bytes docs/website/static/img/midnight.png | Bin 0 -> 61455 bytes docs/website/static/img/people.svg | 9 + docs/website/static/img/pogun.png | Bin 0 -> 61627 bytes docs/website/static/img/rocket.svg | 4 + docs/website/static/img/safe.svg | 10 + docs/website/static/img/teragone.png | Bin 0 -> 50315 bytes docs/website/static/img/txpipe.png | Bin 0 -> 61160 bytes docs/website/static/img/uralabs.png | Bin 0 -> 35368 bytes docs/website/static/mithril-shield.mp4 | Bin 0 -> 9964036 bytes 37 files changed, 508 insertions(+), 673 deletions(-) delete mode 100644 docs/website/homepage-content/hero.ts delete mode 100644 docs/website/homepage-content/use-cases.ts delete mode 100644 docs/website/homepage-content/why-mithril.tsx delete mode 100644 docs/website/src/components/AnimatedText.tsx create mode 100644 docs/website/src/components/Trusted.tsx delete mode 100644 docs/website/src/components/UseCases.tsx delete mode 100644 docs/website/src/components/icons/Discord.tsx delete mode 100644 docs/website/src/components/icons/Github.tsx delete mode 100644 docs/website/src/pages/index.module.css create mode 100644 docs/website/static/img/blinklabs.png create mode 100644 docs/website/static/img/cardano.png create mode 100644 docs/website/static/img/iog.png create mode 100644 docs/website/static/img/midnight.png create mode 100644 docs/website/static/img/people.svg create mode 100644 docs/website/static/img/pogun.png create mode 100644 docs/website/static/img/rocket.svg create mode 100644 docs/website/static/img/safe.svg create mode 100644 docs/website/static/img/teragone.png create mode 100644 docs/website/static/img/txpipe.png create mode 100644 docs/website/static/img/uralabs.png create mode 100644 docs/website/static/mithril-shield.mp4 diff --git a/docs/website/docusaurus.config.js b/docs/website/docusaurus.config.js index 5aa774b8f3d..77fa4915be8 100644 --- a/docs/website/docusaurus.config.js +++ b/docs/website/docusaurus.config.js @@ -235,26 +235,25 @@ const config = { navbar: { logo: { alt: "Mithril. A complete guide.", - src: "img/mithril-logo-text.svg", }, items: [ { type: "doc", docId: "manual/welcome", - position: "left", + position: "right", label: "Manual", }, { type: "doc", docId: "mithril/intro", label: "Protocol", - position: "left", + position: "right", }, { type: "dropdown", label: "Use Cases", - position: "left", + position: "right", items: [ { type: "doc", @@ -279,18 +278,49 @@ const config = { position: "right", }, { - to: "/glossary", label: "Glossary", + to: "/glossary", + position: "right", + }, + { + label: "Blog", + to: "/dev-blog", + position: "right", + }, + { + label: "ADRs", + to: "/adr", + position: "right", + }, + { + href: "https://github.com/IntersectMBO/mithril", + position: "right", + html: ` + + `, + }, + { + href: "https://discord.gg/5kaErDKDRq", position: "right", + html: ` + + `, }, - { to: "/dev-blog", label: "Blog", position: "right" }, - { to: "/adr", label: "ADRs", position: "right" }, ], }, footer: { + style: "dark", logo: { alt: "Mithril. A complete guide.", src: "img/mithril-logo-dark.svg", + width: 38, + height: 38, }, links: [ { diff --git a/docs/website/homepage-content/hero.ts b/docs/website/homepage-content/hero.ts deleted file mode 100644 index 474066300a5..00000000000 --- a/docs/website/homepage-content/hero.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { translate } from "@docusaurus/Translate"; - -export const hero = { - title: translate({ - id: "homepage.hero.title", - message: "Powering Cardano state proofs", - }), - standfirst: translate({ - id: "homepage.hero.standfirst", - message: `Built on stake-based threshold multisignatures, Mithril lets clients verify Cardano chain data without running a full node — ideal for wallets, exchanges, bridges, and any app that needs verified chain data with minimal overhead.`, - }), -}; diff --git a/docs/website/homepage-content/use-cases.ts b/docs/website/homepage-content/use-cases.ts deleted file mode 100644 index 3b500371737..00000000000 --- a/docs/website/homepage-content/use-cases.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { translate } from "@docusaurus/Translate"; - -export const useCases = { - nonScrollingText: translate({ - id: "homepage.useCases.nonScrollingText", - message: "Use cases include:", - }), - scrollingText: { - id: "homepage.useCases.scrollingText", - items: [ - "Full node clients", - "Light clients", - "Light wallets", - "Mobile applications", - "Sidechains", - "Bridges", - "Rollups", - "State channels", - ], - }, -}; diff --git a/docs/website/homepage-content/why-mithril.tsx b/docs/website/homepage-content/why-mithril.tsx deleted file mode 100644 index 00ddfec0ec3..00000000000 --- a/docs/website/homepage-content/why-mithril.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from "react"; -import { translate } from "@docusaurus/Translate"; - -export const WhyMithrilContents = { - title: translate({ - id: "homepage.whyMithril.title", - message: "WHY MITHRIL?", - }), - descriptionParagraph: { - id: "homepage.whyMithril.paragraphs", - message: ( -
-

- The Cardano blockchain offers robust security, but starting up a new - node, syncing it with the network, or exchanging data can be slow and - resource intensive (24GB of RAM, 150GB (and growing) of storage, and - over 24 hours for initial synchronization.) -

-

- Mithril was developed for Cardano as part of the Basho development - phase to support optimization, scalability, and interoperability. -

-
- ), - }, - timeline: ["Byron", "Shelley", "Goguen", "Basho", "Voltaire"], -}; diff --git a/docs/website/src/components/AnimatedText.tsx b/docs/website/src/components/AnimatedText.tsx deleted file mode 100644 index b71dec8920f..00000000000 --- a/docs/website/src/components/AnimatedText.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import React, { FC } from "react"; -import { motion } from "framer-motion"; - -const processText = (children: React.ReactNode): React.ReactNode => - React.Children.map(children, (child) => { - if (typeof child === "string") { - return child.split(" ").map((word, index) => ( - - {word.split("").map((char, charIndex) => ( - - {char} - {charIndex === word.length - 1 && ( -   - )} - - ))} - - )); - } - - if (React.isValidElement(child)) { - //@ts-ignore - const processedText = processText(child.props.children); - //@ts-ignore - return React.cloneElement(child, child.props, processedText); - } - }); - -const AnimatedText: FC = () => { - return ( -
- - {processText( -

- Choosing Mithril means opting for a scalable, secure, and versatile - enhancement to the Cardano blockchain -

, - )} -
-
- ); -}; - -export default AnimatedText; diff --git a/docs/website/src/components/Features.tsx b/docs/website/src/components/Features.tsx index bc5f4902147..8e0ad7a566a 100644 --- a/docs/website/src/components/Features.tsx +++ b/docs/website/src/components/Features.tsx @@ -1,66 +1,58 @@ -import React, { FC } from "react"; -import { motion } from "framer-motion"; -import { FeatureList } from "../../homepage-content/features"; -import useMediaQuery from "../hooks/useMediaQuery"; -import { forTablet } from "../../helpers/media-queries"; - -type Props = { - icon: React.JSX.Element; - title: string; - description: string; - index: number; -}; - -const Feature: FC = ({ icon, title, description, index }) => { - const isTabletUp = useMediaQuery(forTablet); - +const Features = () => { return ( - -
- {icon} -

- {title} -

+
+
+

Features

-

{description}

- - ); -}; - -const Features: FC = () => { - return ( -
-
- - FEATURES - - - {FeatureList.map((props, idx) => ( - - ))} - +
+
+
+ %% +

Trustless Light wallets

+
+

+ Fully open-source, non-custodial chain state that emphasizes privacy + and functionality without relying on third-party servers +

+
+
+
+ %% +

Succint state proofs

+
+

+ Allow participants to verify the validity of a blockchain’s entire + history or specific state transitions with constant verification + costs and minimal bandwidth +

+
+
+
+ %% +

+ Faster node bootstrapping +

+
+

+ Fast and secure data synchronization with layer 2 solutions – + including bridges, sidechains, and rollups – as well as applications + like light wallets. +

+
+
+
+ %% +

Decentralization

+
+

+ {" "} + Improved security and transparency, data and transactions are + recorded on distributed, verifiable ledgers accessible to all + participants +

+
-
+
); }; diff --git a/docs/website/src/components/HomepageHero.tsx b/docs/website/src/components/HomepageHero.tsx index 4ceeb202e74..d9689eff954 100644 --- a/docs/website/src/components/HomepageHero.tsx +++ b/docs/website/src/components/HomepageHero.tsx @@ -1,69 +1,48 @@ -import React, { FC } from "react"; import Link from "@docusaurus/Link"; -import { forTablet } from "../../helpers/media-queries"; -import { motion } from "framer-motion"; -import { hero } from "../../homepage-content/hero"; -const HomepageHero: FC = () => { +const HomepageHero = () => { return ( -
- -
-
-
- - {hero.title} - - +
+
+
+

+ Secure Cardano synchronization in{" "} + minutes, not hours +

+

+ Open Source </>  |  Community Driven ∞ +  |  Built for Cardano ✴ +

+ - {hero.standfirst} - -
- + Become a Signer + + + + + - Run a signer node + Explore the protocol - +
+
+
+
diff --git a/docs/website/src/components/Trusted.tsx b/docs/website/src/components/Trusted.tsx new file mode 100644 index 00000000000..bbbec198e04 --- /dev/null +++ b/docs/website/src/components/Trusted.tsx @@ -0,0 +1,61 @@ +import React from "react"; +import { motion } from "framer-motion"; + +import iog from "../../static/img/iog.png"; +import blinklabs from "../../static/img/blinklabs.png"; +import cardano from "../../static/img/cardano.png"; +import midnight from "../../static/img/midnight.png"; +import pogun from "../../static/img/pogun.png"; +import txpipe from "../../static/img/txpipe.png"; +import teragone from "../../static/img/teragone.png"; +import uralabs from "../../static/img/uralabs.png"; + +const logoPartner: Array<{ src: any; alt: string }> = [ + { src: iog, alt: "Input Output Global" }, + { src: blinklabs, alt: "BlinkLabs" }, + { src: cardano, alt: "Cardano" }, + { src: midnight, alt: "Midnight Network" }, + { src: pogun, alt: "Pogun DeFi" }, + { src: txpipe, alt: "TXPipe" }, + { src: teragone, alt: "Teragone Factory" }, + { src: uralabs, alt: "Ura Labs Finance" }, +]; + +const Trusted = () => { + return ( +
+
+

Trusted by the Cardano ecosystem

+
+
+
+ + {[...new Array(2)].fill(0).map((_, index) => ( + + {logoPartner.map(({ src, alt }) => ( + {alt} + ))} + + ))} + +
+
+
+ ); +}; + +export default Trusted; diff --git a/docs/website/src/components/UseCases.tsx b/docs/website/src/components/UseCases.tsx deleted file mode 100644 index 87d8f7cc85c..00000000000 --- a/docs/website/src/components/UseCases.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import React, { FC, useEffect, useState } from "react"; -import { AnimatePresence, motion } from "framer-motion"; -import Link from "@docusaurus/Link"; -import { useCases } from "../../homepage-content/use-cases"; - -const processItems = (items: string[]): React.ReactNode => { - const [index, setIndex] = useState(0); - - useEffect(() => { - const interval = setInterval(() => { - setIndex((prev) => (prev + 1) % items.length); - }, 2500); - - return () => clearInterval(interval); - }, []); - return ( - - - {items[index]} - - - ); -}; -const UseCases: FC = () => { - return ( -
- -

- {useCases.nonScrollingText} - {processItems(useCases.scrollingText.items)} -

- - Learn more - -
-
- ); -}; - -export default UseCases; diff --git a/docs/website/src/components/WhyMithril.tsx b/docs/website/src/components/WhyMithril.tsx index 1f869eb6a65..ab0444cfceb 100644 --- a/docs/website/src/components/WhyMithril.tsx +++ b/docs/website/src/components/WhyMithril.tsx @@ -1,112 +1,91 @@ -import React, { useEffect, useRef } from "react"; import Link from "@docusaurus/Link"; -import { WhyMithrilContents } from "../../homepage-content/why-mithril"; -import { cx } from "cva"; -import useMediaQuery from "../hooks/useMediaQuery"; -import { forLargeScreen } from "../../helpers/media-queries"; const WhyMithril = () => { - const containerRef = useRef(null); - const itemRefs = useRef<(HTMLDivElement | null)[]>([]); - const isLargeScreen = useMediaQuery(forLargeScreen); - - useEffect(() => { - let animationFrameId: number; - - const animate = () => { - const sectionEl = containerRef.current; - if (!sectionEl) return; - - const scrollY = window.scrollY; - const viewportHeight = window.innerHeight; - - const sectionTop = sectionEl.offsetTop; - const sectionHeight = sectionEl.offsetHeight; - const scrollProgress = - (scrollY + viewportHeight - sectionTop) / - (sectionHeight + viewportHeight); - - itemRefs.current.forEach((el, index) => { - if (!el) return; - - const start = 0.07 + index * 0.08; - const end = start + 0.75; - - let localProgress = (scrollProgress - start) / (end - start); - localProgress = Math.min(Math.max(localProgress, 0), 1); - - const translateZ = -200 + localProgress * 400; - const opacity = - localProgress < 0.5 ? localProgress * 2 : (1 - localProgress) * 2; - const blur = - localProgress < 0.5 - ? 5 - localProgress * 10 - : (1 - localProgress) * 100; - - el.style.opacity = `${opacity}`; - el.style.transform = `translateZ(${translateZ}px)`; - el.style.filter = `blur(${blur}px)`; - }); - - animationFrameId = requestAnimationFrame(animate); - }; - - animationFrameId = requestAnimationFrame(animate); - - return () => cancelAnimationFrame(animationFrameId); - }, []); - return ( -
-
-
- {WhyMithrilContents.title} -
- -
-
- {WhyMithrilContents.timeline.map((item, index) => ( -
(itemRefs.current[index] = el)} - className={cx( - "timeline-grid-item", - item === "Basho" && "text-blue-highlight", - )} - style={{ - transformStyle: "preserve-3d", - opacity: 0, - filter: "blur(5px)", - transform: "translateZ(-200px)", - alignSelf: [ - "flex-start", - "flex-end", - "flex-start", - "center", - "flex-end", - ][index % 5], - }} - > - {item} -
- ))} -
- -
- {WhyMithrilContents.descriptionParagraph.message} +
+
+

Why Mithril ?

+
+
+
+
+ +

+ Built on stake-based threshold multisignatures,{" "} + + Mithril + {" "} + lets clients verify Cardano chain data without running a full node + — ideal for wallets, exchanges, bridges, and any app that needs + verified chain data with minimal overhead +

Learn more
+
+
+
+
+ +

+ 250+ +
+ Active Signers +

+
+
+
+
+ +

+ 50M+ +
+ ADA stake securing +
+ the network +

+
+
+
+
+ +

+ 8 min +
+ To bootstrap a node +

+
+
+
+
-
+
); }; diff --git a/docs/website/src/components/icons/Discord.tsx b/docs/website/src/components/icons/Discord.tsx deleted file mode 100644 index 9a34d431cee..00000000000 --- a/docs/website/src/components/icons/Discord.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import * as React from "react"; -import { SVGProps } from "react"; -const Discord = (props: SVGProps) => ( - - - -); - -export default Discord; diff --git a/docs/website/src/components/icons/Github.tsx b/docs/website/src/components/icons/Github.tsx deleted file mode 100644 index 252be9b0f95..00000000000 --- a/docs/website/src/components/icons/Github.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import * as React from "react"; -import { SVGProps } from "react"; -const Github = (props: SVGProps) => ( - - - -); - -export default Github; diff --git a/docs/website/src/components/icons/Scalability.tsx b/docs/website/src/components/icons/Scalability.tsx index 843a8b6602a..cdf314ae9b1 100644 --- a/docs/website/src/components/icons/Scalability.tsx +++ b/docs/website/src/components/icons/Scalability.tsx @@ -21,13 +21,13 @@ const Scalability = (props: SVGProps) => ( y="0.609375" width="28.681" height="24.3904" - fill="#D9D9D9" + fill="var(--ifm-color-primary)" /> ) => ( width="24" height="24" > - + diff --git a/docs/website/src/css/custom.css b/docs/website/src/css/custom.css index 70048f4b510..00e327435ef 100644 --- a/docs/website/src/css/custom.css +++ b/docs/website/src/css/custom.css @@ -48,23 +48,11 @@ --color-transparent: transparent; --color-current: currentColor; - --color-blue: #01193c; - --color-blue-light: #ecf9fd; - --color-blue-highlight: #2634ad; - - --color-secondary: #3c9ec8; --color-black: #000000; - - --color-gray: #7c8080; - --color-gray-dark: #99a3b1; - --color-gray-light: #808c9d; - --color-gray-extra-light: #f3f4f4; - --color-gray-border: #b3bac5; - --color-white: #ffffff; - --color-cyan: #65cfe1; - --color-cyan-dark: #397589; + --color-white-ish: #f9fbf8; + --color-gray-dark: #383737; } @font-face { @@ -111,13 +99,13 @@ } :root { - --ifm-color-primary: #397589; - --ifm-color-primary-dark: #397589; - --ifm-color-primary-darker: #397589; - --ifm-color-primary-darkest: #397589; - --ifm-color-primary-light: #65cfe1; - --ifm-color-primary-lighter: #65cfe1; - --ifm-color-primary-lightest: #65cfe1; + --ifm-color-primary: #f4360b; + --ifm-color-primary-dark: #dc310a; + --ifm-color-primary-darker: #cf2e09; + --ifm-color-primary-darkest: #ab2608; + --ifm-color-primary-light: #f54a23; + --ifm-color-primary-lighter: #f65430; + --ifm-color-primary-lightest: #f77254; --ifm-code-font-size: 95%; --ifm-navbar-height: 60px; @@ -127,57 +115,84 @@ @media (min-width: 768px) { :root { - --ifm-navbar-height: 96px; + --ifm-navbar-height: 75px; } } /* Styling overrides to Infima after upgrading to Tailwind V4 */ -.navbar__item { - font-weight: 600; - font-size: 1rem; - line-height: 2rem; -} - -.navbar__items { - display: flex !important; +.navbar { + background: var(--color-white-ish); font-family: "Lexend"; } -.footer__link-item { - color: var(--color-gray-extra-light); - line-height: normal; +.hero-title { + margin: 0; + font-size: 2.25rem; + line-height: 48px; } -.footer__link-item:hover { - color: var(--ifm-color-primary-dark); +@media (min-width: 768px) { + .hero-title { + font-size: 3.25rem; + line-height: 75px; + } } -.footer-logo-text { - margin: 0; - font-size: 1.5rem; - line-height: calc(2 / 1.5); - font-weight: normal; +.glitch { + animation: textflicker 0.016s infinite alternate; } -.navbar__social-link { - color: var(--ifm-navbar-link-color); -} -.navbar__social-link:hover { - color: var(--ifm-navbar-link-hover-color); +@keyframes textflicker { + from { + text-shadow: + -2px 0.1 0.1 #c44b31, + 2px 0.1 0.1 #ff7455; + } + to { + text-shadow: + 2px 0.5px 1px #ff7455, + -2px -0.5px 2px #c44b31; + } } -.hero-title { - margin: 0; - font-size: 2.25rem; - line-height: 48px; +/* Loseely based on code by freefrontend.com/css-shine-effect/ */ +.shine-card { + position: relative; + overflow: hidden; +} + +.shine-card::before { + content: ""; + position: absolute; + top: 0; + left: -150%; + width: 50%; + height: 100%; + pointer-events: none; + background: linear-gradient( + 100deg, + transparent 10%, + color-mix(in srgb, var(--ifm-color-primary-lightest) 35%, transparent) 40%, + transparent 90% + ); + transform: skewX(-20deg); + animation: shine 3s ease-in-out infinite; + animation-delay: var(--shine-delay, 0s); } -@media (min-width: 768px) { - .hero-title { - font-size: 3.5rem; - line-height: 73px; + +@keyframes shine { + 0% { + left: -150%; + } + 40% { + left: 150%; + } + 100% { + left: 150%; } } +/*-------------------------------------------------------------*/ .animated-text-heading { font-size: 2rem; @@ -273,20 +288,6 @@ h3 { padding-bottom: 72px; } -.use-case-text { - background: #01193c; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - color: transparent; -} - -@media screen and (max-width: 996px) { - .footer { - text-align: center; - } -} - a.menu__link:hover { text-decoration: underline; } @@ -468,13 +469,3 @@ a.menu__link { transform 0.1s ease, filter 0.1s ease; } - -.landing-navbar--top { - background-color: rgba(255, 255, 255, 0); - transition: background-color 0.3s ease; -} - -.landing-navbar--scrolled { - background-color: rgba(255, 255, 255, 0.96); - transition: background-color 0.3s ease; -} diff --git a/docs/website/src/pages/index.module.css b/docs/website/src/pages/index.module.css deleted file mode 100644 index 9f71a5da775..00000000000 --- a/docs/website/src/pages/index.module.css +++ /dev/null @@ -1,23 +0,0 @@ -/** - * CSS files with the .module.css suffix will be treated as CSS modules - * and scoped locally. - */ - -.heroBanner { - padding: 4rem 0; - text-align: center; - position: relative; - overflow: hidden; -} - -@media screen and (max-width: 996px) { - .heroBanner { - padding: 2rem; - } -} - -.buttons { - display: flex; - align-items: center; - justify-content: center; -} diff --git a/docs/website/src/pages/index.tsx b/docs/website/src/pages/index.tsx index b077c1489e0..b40c8b3cce0 100644 --- a/docs/website/src/pages/index.tsx +++ b/docs/website/src/pages/index.tsx @@ -4,9 +4,8 @@ import Layout from "@theme/Layout"; import { PageContext, PageType } from "../context/PageContext"; import HomepageHero from "../components/HomepageHero"; import Features from "../components/Features"; -import AnimatedText from "../components/AnimatedText"; -import UseCases from "../components/UseCases"; import WhyMithril from "../components/WhyMithril"; +import Trusted from "../components/Trusted"; export default function HomePage() { return ( @@ -19,9 +18,8 @@ export default function HomePage() {
- - +
diff --git a/docs/website/src/theme/Footer/Layout/index.tsx b/docs/website/src/theme/Footer/Layout/index.tsx index dbf8df940e8..4a3e7d85897 100644 --- a/docs/website/src/theme/Footer/Layout/index.tsx +++ b/docs/website/src/theme/Footer/Layout/index.tsx @@ -1,18 +1,28 @@ import React, { type ReactNode } from "react"; -import type { Props } from "@theme/Footer/Layout"; import clsx from "clsx"; +import { ThemeClassNames } from "@docusaurus/theme-common"; +import type { Props } from "@theme/Footer/Layout"; export default function FooterLayout({ + style, links, logo, copyright, }: Props): ReactNode { return ( -