diff --git a/ui/app/src/App.tsx b/ui/app/src/App.tsx
index 35660f9..ed95342 100644
--- a/ui/app/src/App.tsx
+++ b/ui/app/src/App.tsx
@@ -6,6 +6,7 @@ import "./styles.css";
import "./sakura.css";
import "./tokyoNight.css";
import { useTheme } from "./ThemeContext";
+import Header from "./Header";
function App() {
const { theme } = useTheme();
@@ -13,7 +14,8 @@ function App() {
return (
<>
-
+
+
diff --git a/ui/app/src/ThemedRainbowKit.tsx b/ui/app/src/ThemedRainbowKit.tsx
new file mode 100644
index 0000000..74f8cb7
--- /dev/null
+++ b/ui/app/src/ThemedRainbowKit.tsx
@@ -0,0 +1,200 @@
+import React, { ReactNode } from "react";
+import { RainbowKitProvider } from "@rainbow-me/rainbowkit";
+import { useTheme } from "./ThemeContext";
+import { Chain } from "wagmi";
+
+type ThemedRainbowKitProviderProps = {
+ children: ReactNode;
+ chains: Chain[];
+};
+
+const ThemedRainbowKitProvider: React.FC
= ({
+ children,
+ chains,
+}) => {
+ const { theme } = useTheme();
+
+ const sakura = {
+ colors: {
+ accentColor: "hsl(338 100% 84%)",
+ accentColorForeground: "hsl(225, 0%, 0%)",
+ actionButtonBorder: "hsl(338 100% 84%)",
+ actionButtonBorderMobile: "hsl(338 100% 84%)",
+ actionButtonSecondaryBackground: "hsl(338 100% 84%)",
+ closeButton: "hsl(340 8% 58%)",
+ closeButtonBackground: "hsl(339 52% 77%)",
+ connectButtonBackground: "hsl(338 100% 84%)",
+ connectButtonBackgroundError: "hsl(338 100% 84%)",
+ connectButtonInnerBackground: "hsl(339 71% 80%)",
+ connectButtonText: "hsl(225, 0%, 0%)",
+ connectButtonTextError: "hsl(225, 0%, 0%)",
+ error: "hsl(225, 0%, 0%)",
+ generalBorder: "hsl(180, 0%, 94%)",
+ generalBorderDim: "rgba(0, 0, 0, 0.03)",
+ menuItemBackground: "hsl(339 71% 80%)",
+ modalBackdrop: "rgba(0, 0, 0, 0.5)",
+ modalBackground: "hsl(338 100% 84%)",
+ modalBorder: "hsl(180, 0%, 94%)",
+ modalText: "hsl(225, 0%, 0%)",
+ modalTextDim: "rgba(60, 66, 66, 0.3)",
+ modalTextSecondary: "hsl(200,1%,55%)",
+ profileAction: "hsl(339 71% 80%)",
+ profileActionHover: "hsl(339 52% 77%)",
+ profileForeground: "hsl(338 100% 84%)",
+ selectedOptionBorder: "hsl(338 100% 84%)",
+ downloadBottomCardBackground:
+ "linear-gradient(126deg, rgba(255, 255, 255, 0) 9.49%, rgba(171, 171, 171, 0.04) 71.04%), #FFFFFF",
+ downloadTopCardBackground:
+ "linear-gradient(126deg, rgba(171, 171, 171, 0.2) 9.49%, rgba(255, 255, 255, 0) 71.04%), #FFFFFF",
+ connectionIndicator: "hsl(107, 100%, 44%)",
+ standby: "hsl(47, 100%, 63%)",
+ },
+ radii: {
+ actionButton: "9999px",
+ connectButton: "12px",
+ menuButton: "12px",
+ modal: "24px",
+ modalMobile: "24px",
+ },
+ shadows: {
+ connectButton: "0px 8px 32px rgba(0,0,0,.32)",
+ dialog: "0px 8px 32px rgba(0,0,0,.32)",
+ profileDetailsAction: "0px 2px 6px rgba(37, 41, 46, 0.04)",
+ selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.24)",
+ selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.12)",
+ walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.16)",
+ },
+ blurs: {
+ modalOverlay: "blur(0px)", // e.g. 'blur(4px)'
+ },
+ fonts: {
+ body: "...", // default
+ },
+ };
+
+ const nord = {
+ colors: {
+ accentColor: "hsl(219 28% 88%)",
+ accentColorForeground: "hsl(225, 0%, 0%)",
+ actionButtonBorder: "hsl(219 28% 88%)",
+ actionButtonBorderMobile: "hsl(219 28% 88%)",
+ actionButtonSecondaryBackground: "hsl(219 28% 88%)",
+ closeButton: "hsl(219 2% 58%)",
+ closeButtonBackground: "hsl(219 12% 79%)",
+ connectButtonBackground: "hsl(219 28% 88%)",
+ connectButtonBackgroundError: "hsl(219 28% 88%)",
+ connectButtonInnerBackground: "hsl(219 18% 84%)",
+ connectButtonText: "hsl(225, 0%, 0%)",
+ connectButtonTextError: "hsl(225, 0%, 0%)",
+ error: "hsl(225, 0%, 0%)",
+ generalBorder: "hsl(180, 0%, 94%)",
+ generalBorderDim: "rgba(0, 0, 0, 0.03)",
+ menuItemBackground: "hsl(219 18% 84%)",
+ modalBackdrop: "rgba(0, 0, 0, 0.5)",
+ modalBackground: "hsl(219 28% 88%)",
+ modalBorder: "hsl(180, 0%, 94%)",
+ modalText: "hsl(225, 0%, 0%)",
+ modalTextDim: "rgba(60, 66, 66, 0.3)",
+ modalTextSecondary: "hsl(200,1%,55%)",
+ profileAction: "hsl(219 18% 84%)",
+ profileActionHover: "hsl(219 12% 79%)",
+ profileForeground: "hsl(219 28% 88%)",
+ selectedOptionBorder: "hsl(219 28% 88%)",
+ downloadBottomCardBackground:
+ "linear-gradient(126deg, rgba(255, 255, 255, 0) 9.49%, rgba(171, 171, 171, 0.04) 71.04%), #FFFFFF",
+ downloadTopCardBackground:
+ "linear-gradient(126deg, rgba(171, 171, 171, 0.2) 9.49%, rgba(255, 255, 255, 0) 71.04%), #FFFFFF",
+ connectionIndicator: "hsl(107, 100%, 44%)",
+ standby: "hsl(47, 100%, 63%)",
+ },
+ radii: {
+ actionButton: "9999px",
+ connectButton: "12px",
+ menuButton: "12px",
+ modal: "24px",
+ modalMobile: "24px",
+ },
+ shadows: {
+ connectButton: "0px 8px 32px rgba(0,0,0,.32)",
+ dialog: "0px 8px 32px rgba(0,0,0,.32)",
+ profileDetailsAction: "0px 2px 6px rgba(37, 41, 46, 0.04)",
+ selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.24)",
+ selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.12)",
+ walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.16)",
+ },
+ blurs: {
+ modalOverlay: "blur(0px)", // e.g. 'blur(4px)'
+ },
+ fonts: {
+ body: "...", // default
+ },
+ };
+
+ const tokyoNight = {
+ colors: {
+ accentColor: "hsl(169 100% 50%)",
+ accentColorForeground: "hsl(225, 0%, 0%)",
+ actionButtonBorder: "hsl(169 100% 50%)",
+ actionButtonBorderMobile: "hsl(169 100% 50%)",
+ actionButtonSecondaryBackground: "hsl(169 100% 50%)",
+ closeButton: "hsl(161 14% 55%)",
+ closeButtonBackground: "hsl(165 72% 60%)",
+ connectButtonBackground: "hsl(169 100% 50%)",
+ connectButtonBackgroundError: "hsl(169 100% 50%)",
+ connectButtonInnerBackground: "hsl(167 86% 59%)",
+ connectButtonText: "hsl(225, 0%, 0%)",
+ connectButtonTextError: "hsl(225, 0%, 0%)",
+ error: "hsl(225, 0%, 0%)",
+ generalBorder: "hsl(180, 0%, 94%)",
+ generalBorderDim: "rgba(0, 0, 0, 0.03)",
+ menuItemBackground: "hsl(167 86% 59%)",
+ modalBackdrop: "rgba(0, 0, 0, 0.5)",
+ modalBackground: "hsl(169 100% 50%)",
+ modalBorder: "hsl(180, 0%, 94%)",
+ modalText: "hsl(225, 0%, 0%)",
+ modalTextDim: "rgba(60, 66, 66, 0.3)",
+ modalTextSecondary: "hsl(0, 0%, 60%)",
+ profileAction: "hsl(167 86% 59%)",
+ profileActionHover: "hsl(165 72% 60%)",
+ profileForeground: "hsl(169 100% 50%)",
+ selectedOptionBorder: "hsl(169 100% 50%)",
+ downloadBottomCardBackground:
+ "linear-gradient(126deg, rgba(255, 255, 255, 0) 9.49%, rgba(171, 171, 171, 0.04) 71.04%), #FFFFFF",
+ downloadTopCardBackground:
+ "linear-gradient(126deg, rgba(171, 171, 171, 0.2) 9.49%, rgba(255, 255, 255, 0) 71.04%), #FFFFFF",
+ connectionIndicator: "hsl(107, 100%, 44%)",
+ standby: "hsl(47, 100%, 63%)",
+ },
+ radii: {
+ actionButton: "12px",
+ connectButton: "6px",
+ menuButton: "6px",
+ modal: "12px",
+ modalMobile: "12px",
+ },
+ shadows: {
+ connectButton: "0px 8px 32px rgba(0, 0, 0, 0.32)",
+ dialog: "0px 8px 32px rgba(0, 0, 0, 0.32)",
+ profileDetailsAction: "0px 2px 6px rgba(37, 41, 46, 0.04)",
+ selectedOption: "0px 2px 6px rgba(0, 0, 0, 0.24)",
+ selectedWallet: "0px 2px 6px rgba(0, 0, 0, 0.12)",
+ walletLogo: "0px 2px 16px rgba(0, 0, 0, 0.16)",
+ },
+ blurs: {
+ modalOverlay: "blur(0px)", // e.g. 'blur(4px)'
+ },
+ fonts: {
+ body: "...", // default
+ },
+ };
+
+ const customTheme =
+ theme === "sakura" ? sakura : theme === "tokyoNight" ? tokyoNight : nord;
+ return (
+
+ {children}
+
+ );
+};
+
+export default ThemedRainbowKitProvider;
diff --git a/ui/app/src/main.tsx b/ui/app/src/main.tsx
index 87162ca..d11746b 100644
--- a/ui/app/src/main.tsx
+++ b/ui/app/src/main.tsx
@@ -1,6 +1,6 @@
import "./polyfills";
import "@rainbow-me/rainbowkit/styles.css";
-import { getDefaultWallets, RainbowKitProvider } from "@rainbow-me/rainbowkit";
+import { getDefaultWallets } from "@rainbow-me/rainbowkit";
import { configureChains, createConfig, WagmiConfig } from "wagmi";
import { polygon, optimism, arbitrum, sepolia } from "wagmi/chains";
import { publicProvider } from "wagmi/providers/public";
@@ -12,8 +12,8 @@ import CreatePage from "./CreatePage";
import CreatorPage from "./CreatorPage";
import StreamPage from "./StreamPage";
import { ThemeProvider } from "./ThemeContext";
-
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
+import ThemedRainbowKitProvider from "./ThemedRainbowKit";
const { chains, publicClient } = configureChains(
// NOTE: Testnet deployment on Sepolia
@@ -54,7 +54,7 @@ ReactDOM.createRoot(document.getElementById("root")!).render(
-
+
} />
@@ -64,7 +64,7 @@ ReactDOM.createRoot(document.getElementById("root")!).render(
} />
-
+
,