@@ -22,6 +22,8 @@ import Layout from '@theme/Layout';
2222import HomepageFeatures from '@site/src/components/HomepageFeatures' ;
2323import HomepageIntroduce from '@site/src/components/HomepageIntroduce' ;
2424import Heading from '@theme/Heading' ;
25+ import { useEffect , useLayoutEffect } from 'react' ;
26+ import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment' ;
2527
2628import styles from './index.module.css' ;
2729
@@ -70,16 +72,81 @@ function HomepageHeader() {
7072
7173export default function Home ( ) : JSX . Element {
7274 const { siteConfig} = useDocusaurusContext ( ) ;
75+
76+ // Add class to body for homepage-specific navbar styling using useLayoutEffect for immediate execution
77+ useLayoutEffect ( ( ) => {
78+ if ( ExecutionEnvironment . canUseDOM ) {
79+ document . body . classList . add ( 'homepage' ) ;
80+ }
81+ return ( ) => {
82+ if ( ExecutionEnvironment . canUseDOM ) {
83+ document . body . classList . remove ( 'homepage' ) ;
84+ }
85+ } ;
86+ } , [ ] ) ;
87+
7388 return (
74- < Layout
75- // leave empty to just display "Apache Fluss (Incubating)" in tab on landing page
76- title = ""
77- description = "Streaming Storage for Real-Time Analytics" >
78- < HomepageHeader />
79- < main >
80- < HomepageIntroduce />
81- < HomepageFeatures />
82- </ main >
83- </ Layout >
89+ < >
90+ { /* Inline styles for homepage navbar - ensures it loads immediately */ }
91+ < style dangerouslySetInnerHTML = { { __html : `
92+ .navbar {
93+ background-color: transparent !important;
94+ backdrop-filter: none !important;
95+ box-shadow: none !important;
96+ }
97+ .navbar__link,
98+ .navbar__brand,
99+ .navbar__brand b,
100+ .navbar__brand strong,
101+ .navbar__title {
102+ color: white !important;
103+ text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
104+ }
105+ .navbar__brand * {
106+ color: white !important;
107+ }
108+ .navbar__logo {
109+ content: url('/img/logo/svg/white_color_logo.svg') !important;
110+ }
111+ .navbar__search-input {
112+ background-color: rgba(255, 255, 255, 0.9) !important;
113+ color: #1d1d1d !important;
114+ }
115+ .navbar__search-input::placeholder {
116+ color: #666 !important;
117+ opacity: 1 !important;
118+ }
119+ .DocSearch-Button {
120+ background-color: rgba(255, 255, 255, 0.9) !important;
121+ }
122+ .DocSearch-Button-Placeholder {
123+ color: #666 !important;
124+ }
125+ .DocSearch-Search-Icon {
126+ color: #666 !important;
127+ }
128+ .navbar__toggle {
129+ color: white !important;
130+ }
131+ .navbar__toggle svg {
132+ color: white !important;
133+ fill: white !important;
134+ }
135+ .header-github-link::before {
136+ background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat !important;
137+ }
138+ ` } } />
139+ < Layout
140+ // leave empty to just display "Apache Fluss (Incubating)" in tab on landing page
141+ title = ""
142+ description = "Streaming Storage for Real-Time Analytics"
143+ wrapperClassName = { styles . homepageWrapper } >
144+ < HomepageHeader />
145+ < main >
146+ < HomepageIntroduce />
147+ < HomepageFeatures />
148+ </ main >
149+ </ Layout >
150+ </ >
84151 ) ;
85152}
0 commit comments