@@ -9,6 +9,7 @@ interface ShellLayoutProps {
99 companyName : string ;
1010 productName : string ;
1111 companyLogo ?: CompanyLogo ;
12+ backgroundMode ?: string ;
1213}
1314
1415function DarkGradientBackground ( ) {
@@ -275,17 +276,119 @@ export function ShellLayout({
275276 companyName,
276277 productName,
277278 companyLogo,
279+ backgroundMode = "flat" ,
278280} : PropsWithChildren < ShellLayoutProps > ) {
279281 return (
280- < div className = "h-screen overflow-hidden flex bg-sidebar" >
282+ < div className = "h-screen pl-3 overflow-hidden flex gap-2 bg-sidebar" >
281283 < Sidebar
282284 companyName = { companyName }
283285 productName = { productName }
284286 companyLogo = { companyLogo }
285287 />
286- < main className = "flex-1 flex flex-col overflow-hidden relative" >
287- < GradientBackground />
288- < div className = "flex-1 overflow-y-auto custom-scrollbar" >
288+ < main
289+ className = "flex-1 flex flex-col overflow-hidden relative"
290+ style = { {
291+ backgroundColor : backgroundMode === "expressive" ? "#190D33" : undefined ,
292+ } }
293+ >
294+ { /* Gradient Background for flat mode */ }
295+ { backgroundMode === "flat" && < GradientBackground /> }
296+
297+ { /* Expressive Background Elements */ }
298+ { backgroundMode === "expressive" && (
299+ < >
300+ { /* Bg container */ }
301+ < div
302+ className = "absolute overflow-hidden pointer-events-none transition-opacity duration-300"
303+ style = { {
304+ width : '2184.47px' ,
305+ height : '1494.44px' ,
306+ left : '-208px' ,
307+ top : '-252px' ,
308+ opacity : backgroundMode === "expressive" ? 1 : 0 ,
309+ } }
310+ >
311+ { /* Vector 210 */ }
312+ < div
313+ className = "absolute transition-opacity duration-300"
314+ style = { {
315+ width : '807px' ,
316+ height : '789px' ,
317+ left : '650px' ,
318+ top : '257px' ,
319+ background : 'rgba(78, 9, 77, 0.6)' ,
320+ filter : 'blur(90px)' ,
321+ opacity : backgroundMode === "expressive" ? 1 : 0 ,
322+ transitionDelay : '0ms' ,
323+ } }
324+ />
325+
326+ { /* Vector 212 */ }
327+ < div
328+ className = "absolute transition-opacity duration-300"
329+ style = { {
330+ width : '1309px' ,
331+ height : '737px' ,
332+ left : '-70px' ,
333+ top : '-46px' ,
334+ background : '#223045' ,
335+ filter : 'blur(60px)' ,
336+ opacity : backgroundMode === "expressive" ? 1 : 0 ,
337+ transitionDelay : '50ms' ,
338+ } }
339+ />
340+
341+ { /* Vector 211 */ }
342+ < div
343+ className = "absolute transition-opacity duration-300"
344+ style = { {
345+ width : '1260px' ,
346+ height : '800px' ,
347+ left : '-208px' ,
348+ top : '0px' ,
349+ background : 'rgba(244, 66, 35, 0.27)' ,
350+ filter : 'blur(90px)' ,
351+ transform : 'rotate(23.94deg)' ,
352+ opacity : backgroundMode === "expressive" ? 1 : 0 ,
353+ transitionDelay : '100ms' ,
354+ } }
355+ />
356+
357+ { /* Vector 213 */ }
358+ < div
359+ className = "absolute transition-opacity duration-300"
360+ style = { {
361+ width : '1408px' ,
362+ height : '523.77px' ,
363+ left : '484px' ,
364+ top : '-252px' ,
365+ background : 'linear-gradient(257.56deg, rgba(152, 166, 184, 0.5) 36.7%, rgba(68, 74, 82, 0.5) 88.5%)' ,
366+ filter : 'blur(100px)' ,
367+ transform : 'rotate(-13.86deg)' ,
368+ opacity : backgroundMode === "expressive" ? 1 : 0 ,
369+ transitionDelay : '150ms' ,
370+ } }
371+ />
372+ </ div >
373+
374+ { /* CoverLayer */ }
375+ < div
376+ className = "absolute pointer-events-none transition-opacity duration-300"
377+ style = { {
378+ width : '1440px' ,
379+ height : '813px' ,
380+ left : '0px' ,
381+ top : '0px' ,
382+ background : 'rgba(25, 13, 51, 0.79)' ,
383+ mixBlendMode : 'overlay' ,
384+ opacity : backgroundMode === "expressive" ? 1 : 0 ,
385+ transitionDelay : '200ms' ,
386+ } }
387+ />
388+ </ >
389+ ) }
390+
391+ < div className = "flex-1 overflow-y-auto custom-scrollbar relative z-10" >
289392 { children }
290393 </ div >
291394 </ main >
0 commit comments