Compare commits
	
		
			2 Commits
		
	
	
		
			49a012dbeb
			...
			c667d7e606
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c667d7e606 | ||
|   | d6468b533e | 
							
								
								
									
										31
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								index.html
									
									
									
									
									
								
							| @@ -1,15 +1,22 @@ | ||||
| <!doctype html> | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="UTF-8" /> | ||||
|     <link rel="icon" type="image/png" href="/favicon.png" /> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|     <title>Fendi</title> | ||||
|  | ||||
|     <meta name="viewport" content="initial-scale=1, width=device-width" /> | ||||
|   </head> | ||||
|   <body> | ||||
|     <div id="root"></div> | ||||
|     <script type="module" src="/src/main.jsx"></script> | ||||
|   </body> | ||||
| </html> | ||||
| <head> | ||||
|   <meta charset="UTF-8" /> | ||||
|   <link rel="icon" type="image/png" href="/favicon.png" /> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|  | ||||
|   <link rel="preconnect" href="https://fonts.googleapis.com"> | ||||
|   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | ||||
|   <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet"> | ||||
|   <title>Fendi</title> | ||||
|  | ||||
|   <meta name="viewport" content="initial-scale=1, width=device-width" /> | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|   <div id="root"></div> | ||||
|   <script type="module" src="/src/main.jsx"></script> | ||||
| </body> | ||||
|  | ||||
| </html> | ||||
| @@ -7,7 +7,7 @@ import MenuDrawer from './MenuDrawer'; | ||||
| export default function AppHeader({ zone = 'public' }) { | ||||
|  | ||||
|   const bgColor = { | ||||
|       public: '#000000a0', | ||||
|       public: '#40120EFF', | ||||
|       restricted: '#e0e0ff', | ||||
|       private: '#d0f0e0', | ||||
|   }; | ||||
| @@ -31,15 +31,12 @@ export default function AppHeader({ zone = 'public' }) { | ||||
|           <IconButton edge="start" color="inherit" onClick={() => setMenuOpen(true)}> | ||||
|             <img src={fendiLogo} alt="Fendi logo" style={{ height: 40 }} /> | ||||
|           </IconButton> | ||||
|           <Typography variant="h6" noWrap sx={{ ml: 1 }}> | ||||
|             {isPrivate ? "Private" : isRestricted ? "Restricted" : "Fendi Casa Experience"} | ||||
|           </Typography> | ||||
|         </Box> | ||||
|  | ||||
|         {/* Search only visible for restricted or private zones */} | ||||
|         {(isRestricted || isPrivate || isPublic) && ( | ||||
|           <Box sx={{ position: 'relative', display: { xs: 'none', md: 'flex' } }}> | ||||
|             <SearchIcon sx={{ position: 'absolute', left: 10, top: '50%', transform: 'translateY(-50%)' }} /> | ||||
|             <SearchIcon sx={{ position: 'absolute', left: 10, top: '50%', transform: 'translateY(-50%)', color: '#A68A72FF' }} /> | ||||
|             <InputBase | ||||
|               placeholder="Search…" | ||||
|               sx={{ | ||||
| @@ -48,7 +45,7 @@ export default function AppHeader({ zone = 'public' }) { | ||||
|                 py: 0.5, | ||||
|                 borderRadius: 1, | ||||
|                 bgcolor: '#000000a0', | ||||
|                 color: 'gray', | ||||
|                 color: '#A68A72FF', | ||||
|                 width: { md: '300px', lg: '400px' } | ||||
|               }} | ||||
|             /> | ||||
| @@ -59,7 +56,7 @@ export default function AppHeader({ zone = 'public' }) { | ||||
|         {isPublic && ( | ||||
|           <Box> | ||||
|             <IconButton color="inherit"> | ||||
|               <Typography variant="button" color="inherit"> | ||||
|               <Typography variant="button" color="#A68A72FF"> | ||||
|                 Login | ||||
|               </Typography> | ||||
|             </IconButton> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| :root { | ||||
|   font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; | ||||
|   font-family: "Montserrat", sans-serif !important;  | ||||
|   line-height: 1.5; | ||||
|   font-weight: 400; | ||||
|   font-weight: 100 !important; | ||||
|  | ||||
|   color-scheme: light dark; | ||||
|   color: rgba(255, 255, 255, 0.87); | ||||
|   | ||||
							
								
								
									
										11
									
								
								src/main.jsx
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/main.jsx
									
									
									
									
									
								
							| @@ -1,16 +1,15 @@ | ||||
| import { StrictMode } from 'react' | ||||
| import { createRoot } from 'react-dom/client' | ||||
|  | ||||
| import '@fontsource/roboto/300.css'; | ||||
| import '@fontsource/roboto/400.css'; | ||||
| import '@fontsource/roboto/500.css'; | ||||
| import '@fontsource/roboto/700.css'; | ||||
|  | ||||
| import { ThemeProvider } from '@mui/material/styles'; | ||||
| import theme from './theme'; | ||||
| import './index.css' | ||||
| import App from './App.jsx' | ||||
|  | ||||
| createRoot(document.getElementById('root')).render( | ||||
|   <StrictMode> | ||||
|     <App /> | ||||
|     <ThemeProvider theme={theme}> | ||||
|       <App /> | ||||
|     </ThemeProvider> | ||||
|   </StrictMode>, | ||||
| ) | ||||
|   | ||||
| @@ -8,25 +8,26 @@ import EditIcon from '@mui/icons-material/Edit'; | ||||
| import DeleteIcon from '@mui/icons-material/Delete'; | ||||
|  | ||||
| import '../App.css'; | ||||
| import { Visibility } from '@mui/icons-material'; | ||||
|  | ||||
| const columnsBase = [ | ||||
|     { field: 'id', headerName: 'ID', width: 70 }, | ||||
|     { field: 'id', headerName: 'ID', width: 70, hide: false }, | ||||
|     { field: 'company', headerName: 'Company', flex: 1 }, | ||||
|     { field: 'name', headerName: 'Name', flex: 1 }, | ||||
|     { field: 'price', headerName: '$', width: 100, type: 'number' }, | ||||
|     { field: 'price', headerName: '$', width: 120, type: 'number' }, | ||||
|     { field: 'provider', headerName: 'Provider', flex: 1 }, | ||||
|     { field: 'stock', headerName: 'Stock', width: 100, type: 'number' }, | ||||
|     { field: 'stock', headerName: 'Stock', width: 120, type: 'number' }, | ||||
|     { field: 'category', headerName: 'Category', flex: 1 }, | ||||
|     { | ||||
|         field: 'representation', | ||||
|         headerName: 'Representation', | ||||
|         width: 120, | ||||
|         width: 200, | ||||
|         renderCell: (params) => ( | ||||
|             <Box display="flex" justifyContent="center" width="100%"> | ||||
|                 <Avatar | ||||
|                     variant="rounded" | ||||
|                     src={params.value} | ||||
|                     sx={{ width: 100, height: 48 }} | ||||
|                     sx={{ width: 180, height: 48 }} | ||||
|                     imgProps={{ | ||||
|                         style: { | ||||
|                             objectFit: 'contain', // or 'cover' if you want it to fill and crop | ||||
| @@ -104,7 +105,7 @@ export default function Admin({ children, maxWidth = 'lg', sx = {} }) { | ||||
|  | ||||
|     return ( | ||||
|         <SectionContainer sx={{ width: '100%' }}> | ||||
|             <Typography variant="h6" gutterBottom> | ||||
|             <Typography variant="h6" gutterBottom color='#26201AFF'> | ||||
|                 Product Catalog | ||||
|             </Typography> | ||||
|  | ||||
|   | ||||
							
								
								
									
										67
									
								
								src/theme.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								src/theme.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| // src/theme.js | ||||
| import { colors } from '@mui/material'; | ||||
| import { createTheme } from '@mui/material/styles'; | ||||
|  | ||||
| const theme = createTheme({ | ||||
|   typography: { | ||||
|     fontFamily: 'Montserrat, sans-serif', | ||||
|   }, | ||||
|  | ||||
|   palette: { | ||||
|     text: { | ||||
|       primary: '#40120EFF', | ||||
|     }, | ||||
|   }, | ||||
|  | ||||
|   components: { | ||||
|     MuiDataGrid: { | ||||
|       styleOverrides: { | ||||
|         row: { | ||||
|           '&:hover': { | ||||
|             backgroundColor: '#f0eae3', | ||||
|           }, | ||||
|           '&.Mui-selected': { | ||||
|             backgroundColor: '#DFCCBCFF', | ||||
|             color: '#26201A', | ||||
|           }, | ||||
|           '&.Mui-selected:hover': { | ||||
|             backgroundColor: '#d0b9a8', | ||||
|           }, | ||||
|           color: '#26201A', | ||||
|         }, | ||||
|         cell: { | ||||
|           '&:focus-within': { | ||||
|             outline: '2px solid #DFCCBCFF', // custom Fendi focus | ||||
|             outlineOffset: '-2px', // tighten the outline | ||||
|             backgroundColor: '#f5f0eb', // optional subtle highlight | ||||
|           }, | ||||
|         }, | ||||
|       }, | ||||
|     }, | ||||
|     MuiButton: { | ||||
|       styleOverrides: { | ||||
|         root: { | ||||
|           /* your current styles... */ | ||||
|           '&:focus': { | ||||
|             outline: '2px solid #DFCCBCFF', | ||||
|           }, | ||||
|           '&:focusVisible': { | ||||
|             outline: '2px solid #DFCCBCFF', | ||||
|           }, | ||||
|         }, | ||||
|       }, | ||||
|     }, | ||||
|     MuiIconButton: { | ||||
|       styleOverrides: { | ||||
|         root: { | ||||
|           '&:focus, &:focus-visible': { | ||||
|             outline: '2px solid #DFCCBCFF', | ||||
|             outlineOffset: '2px', | ||||
|           }, | ||||
|         }, | ||||
|       }, | ||||
|     }, | ||||
|   } | ||||
| }); | ||||
|  | ||||
| export default theme; | ||||
		Reference in New Issue
	
	Block a user