11import React from 'react' ;
22
33import { AutoFixHighOutlined , MonitorHeart , Person , PestControlOutlined } from '@mui/icons-material' ;
4- import { BottomNavigation , BottomNavigationAction } from '@mui/material' ;
4+ import { BottomNavigation , BottomNavigationAction , Tooltip } from '@mui/material' ;
55import { styled } from '@mui/material/styles' ;
66import { appColors } from '@root/src/theme/palette' ;
77
@@ -16,7 +16,7 @@ interface NavigationSection {
1616 ariaLabel : string ;
1717}
1818
19- const StyledBottomNavigation = styled ( BottomNavigation ) ( ( { theme } ) => ( {
19+ const StyledBottomNavigation = styled ( BottomNavigation ) ( ( ) => ( {
2020 position : 'fixed' ,
2121 bottom : 0 ,
2222 width : '100%' ,
@@ -26,13 +26,25 @@ const StyledBottomNavigation = styled(BottomNavigation)(({ theme }) => ({
2626 alignItems : 'center' ,
2727 gap : '0.625rem' , // 10px (Figma spec)
2828 padding : '0.75rem 1rem' , // 12px top/bottom, 16px left/right (Figma spec)
29- backgroundColor : theme . palette . background . default ,
30- backdropFilter : 'blur(13.3px)' , // 13.3px - Figma blur value
31- WebkitBackdropFilter : 'blur(13.3px)' , // Safari support
29+ backgroundColor : 'transparent' , // Transparent to show blur behind
30+ borderTop : '1px solid rgba(255, 255, 255, 0.5)' ,
31+ boxShadow : '0 -4px 20px rgba(0, 0, 0, 0.08)' ,
3232 cursor : 'pointer' ,
3333 transition : 'none' ,
34+ zIndex : 1000 ,
35+ isolation : 'isolate' , // Create stacking context
36+ // Blur background using pseudo-element
37+ '&::before' : {
38+ content : '""' ,
39+ position : 'absolute' ,
40+ inset : 0 ,
41+ backgroundColor : 'rgba(233, 232, 237, 0.4)' ,
42+ backdropFilter : 'blur(80px) saturate(200%)' ,
43+ WebkitBackdropFilter : 'blur(80px) saturate(200%)' ,
44+ zIndex : - 1 ,
45+ } ,
3446 '&:hover' : {
35- boxShadow : 'none ' ,
47+ boxShadow : '0 -4px 20px rgba(0, 0, 0, 0.08) ' ,
3648 transform : 'none' ,
3749 } ,
3850} ) ) ;
@@ -45,10 +57,12 @@ const StyledBottomNavigationAction = styled(BottomNavigationAction)<{
4557 paddingBlock : theme . spacing ( 1.5 ) ,
4658 backgroundColor : isSelected ? appColors . common . colors . accent : 'transparent' ,
4759 borderRadius : theme . spacing ( 0.5 ) ,
48- transition : 'none' ,
4960 '&.Mui-selected' : {
5061 color : appColors . common . white ,
5162 } ,
63+ '&:hover' : {
64+ backgroundColor : isSelected ? 'appColors.common.colors.accent' : 'rgba(136, 72, 249, 0.1)' , // Light accent color on hover
65+ } ,
5266} ) ) ;
5367
5468const navigationSections : NavigationSection [ ] = [
@@ -80,13 +94,14 @@ export const BottomNav = ({ value, onChange }: BottomNavProps): JSX.Element => {
8094 { navigationSections . map ( section => {
8195 const isSelected = value === section . route ;
8296 return (
83- < StyledBottomNavigationAction
84- key = { section . route }
85- value = { section . route }
86- icon = { section . icon }
87- isSelected = { isSelected }
88- aria-label = { section . ariaLabel }
89- />
97+ < Tooltip key = { section . route } title = { section . ariaLabel } placement = "top" arrow >
98+ < StyledBottomNavigationAction
99+ value = { section . route }
100+ icon = { section . icon }
101+ isSelected = { isSelected }
102+ aria-label = { section . ariaLabel }
103+ />
104+ </ Tooltip >
90105 ) ;
91106 } ) }
92107 </ StyledBottomNavigation >
0 commit comments