Refactored homepage layout: Replaced box positioning with grid layout for improved structure.

This commit is contained in:
hardik 2025-02-12 04:23:41 +05:30
parent 58a5e42566
commit 2f15b0b8e5
11 changed files with 496 additions and 436 deletions

63
package-lock.json generated
View File

@ -19,9 +19,11 @@
"@types/node": "^16.7.13", "@types/node": "^16.7.13",
"@types/react": "^18.0.0", "@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0", "@types/react-dom": "^18.0.0",
"framer-motion": "^12.4.2",
"react": "^19.0.0", "react": "^19.0.0",
"react-dom": "^19.0.0", "react-dom": "^19.0.0",
"react-scripts": "5.0.1", "react-scripts": "5.0.1",
"swiper": "^11.2.2",
"typescript": "^4.4.2", "typescript": "^4.4.2",
"web-vitals": "^2.1.0" "web-vitals": "^2.1.0"
} }
@ -9145,6 +9147,33 @@
"url": "https://github.com/sponsors/rawify" "url": "https://github.com/sponsors/rawify"
} }
}, },
"node_modules/framer-motion": {
"version": "12.4.2",
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.2.tgz",
"integrity": "sha512-pW307cQKjDqEuO1flEoIFf6TkuJRfKr+c7qsHAJhDo4368N/5U8/7WU8J+xhd9+gjmOgJfgp+46evxRRFM39dA==",
"license": "MIT",
"dependencies": {
"motion-dom": "^12.0.0",
"motion-utils": "^12.0.0",
"tslib": "^2.4.0"
},
"peerDependencies": {
"@emotion/is-prop-valid": "*",
"react": "^18.0.0 || ^19.0.0",
"react-dom": "^18.0.0 || ^19.0.0"
},
"peerDependenciesMeta": {
"@emotion/is-prop-valid": {
"optional": true
},
"react": {
"optional": true
},
"react-dom": {
"optional": true
}
}
},
"node_modules/fresh": { "node_modules/fresh": {
"version": "0.5.2", "version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@ -12367,6 +12396,21 @@
"mkdirp": "bin/cmd.js" "mkdirp": "bin/cmd.js"
} }
}, },
"node_modules/motion-dom": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.0.0.tgz",
"integrity": "sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==",
"license": "MIT",
"dependencies": {
"motion-utils": "^12.0.0"
}
},
"node_modules/motion-utils": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz",
"integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==",
"license": "MIT"
},
"node_modules/ms": { "node_modules/ms": {
"version": "2.1.3", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@ -16729,6 +16773,25 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/swiper": {
"version": "11.2.2",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.2.tgz",
"integrity": "sha512-FmAN6zACpVUbd/1prO9xQ9gKo9cc6RE2UKU/z4oXtS8fNyX4sdOW/HHT/e444WucLJs0jeMId6WjdWM2Lrs8zA==",
"funding": [
{
"type": "patreon",
"url": "https://www.patreon.com/swiperjs"
},
{
"type": "open_collective",
"url": "http://opencollective.com/swiper"
}
],
"license": "MIT",
"engines": {
"node": ">= 4.7.0"
}
},
"node_modules/symbol-tree": { "node_modules/symbol-tree": {
"version": "3.2.4", "version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",

View File

@ -14,9 +14,11 @@
"@types/node": "^16.7.13", "@types/node": "^16.7.13",
"@types/react": "^18.0.0", "@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0", "@types/react-dom": "^18.0.0",
"framer-motion": "^12.4.2",
"react": "^19.0.0", "react": "^19.0.0",
"react-dom": "^19.0.0", "react-dom": "^19.0.0",
"react-scripts": "5.0.1", "react-scripts": "5.0.1",
"swiper": "^11.2.2",
"typescript": "^4.4.2", "typescript": "^4.4.2",
"web-vitals": "^2.1.0" "web-vitals": "^2.1.0"
}, },

View File

@ -19,6 +19,10 @@ import loopgreenback from "../components/imageandgif/loopgreenbackground.png"
import OurTeam from "./ourteam"; import OurTeam from "./ourteam";
import mobileLogo from "../components/imageandgif/loopsMoblogo.png" import mobileLogo from "../components/imageandgif/loopsMoblogo.png"
import { createTheme, ThemeProvider } from "@mui/material/styles"; import { createTheme, ThemeProvider } from "@mui/material/styles";
import newbackground from "../components/imageandgif/full.png"
import newbackgroundtwo from "../components/imageandgif/newbacktwo.png"
const HomePage: React.FC = () => { const HomePage: React.FC = () => {
@ -112,40 +116,31 @@ const HomePage: React.FC = () => {
</ul> </ul>
</Box> </Box>
</Grid> </Grid>
</Grid>
{/* Grid 2 */} {/* Grid 2 */}
<Grid <Box
item
xs={12}
sx={{ sx={{
height: { xs: "900px", md: "965px" }, // Increased height for mobile view height: { xl: 1800, lg: 2000 , xs:2500 },
backgroundColor: "white", width: '100%',
position: "relative", backgroundImage:{lg: `url(${newbackground})`, xs:null},
backgroundImage: {
xs: null,
md: `url(${backone})`,
},
backgroundSize: "contain", backgroundSize: "contain",
backgroundPositionX: "50.5%", backgroundPosition: "center",
backgroundPositionY: "60%",
backgroundRepeat: "no-repeat", backgroundRepeat: "no-repeat",
display: "flex", paddingBottom: 20
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
textAlign: 'center',
padding: { xs: "20px", md: "0" },
}} }}
> >
<Box <Grid
ref={mineRef} container
sx={{ sx={{
position: "absolute",
top: { xs: "15%", lg: "4%" }, width: '100%',
left: { lg: "10%" }, }}
transform: "translateY(-50%)", >
height: { xs: "332px", lg: "200px" }, {/* ROW 1 */}
width: { xs: "80%", lg: "470px" }, <Grid item xs={12} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '328px' }, display: "flex", justifyContent: "center", alignItems: "center" }}>
<Box ref={mineRef} sx={{
height: { xs: "495px", lg: "215px" },
width: { xs: "80%", lg: "870px" },
zIndex: 1, zIndex: 1,
display: "flex", display: "flex",
flexDirection: { xs: "column", lg: "row" }, flexDirection: { xs: "column", lg: "row" },
@ -153,27 +148,25 @@ const HomePage: React.FC = () => {
alignItems: "center", alignItems: "center",
padding: "10px", padding: "10px",
textAlign: 'center', textAlign: 'center',
marginBottom: { xs: "20px", md: "0" }, // Add margin bottom for spacing marginBottom: { xs: "20px", md: "0" },
}} }}>
>
<Box sx={{ width: { xs: "60%", md: "100%" } }}> <Box sx={{ width: { xs: "60%", md: "100%" } }}>
<img src={gifone} alt="Gif" style={{ width: "100%" }} /> <img src={gifone} alt="Gif" style={{ width: "100%" }} />
</Box> </Box>
<Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" } }}> <Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" }, textAlign: {lg:'left' , xs:'center'} }}>
<Typography variant="h4">Mine from nature</Typography> <Typography variant="h4">Mine from nature</Typography>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis doloremque architecto eos provident et deserunt temporibus non iusto quis inventore expedita neque</p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. </p>
</Box> </Box>
</Box> </Box>
</Grid>
<Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '221px' } , display: { xs: 'none', sm: 'block' } }}></Grid>
<Box {/* ROW 2 */}
ref={manufactureRef} <Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '221px' } , display: { xs: 'none', sm: 'block' } }}></Grid>
sx={{ <Grid item xs={12} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '221px' }, display: "flex", justifyContent: { lg: "flex-start" ,xs:"center" }, alignItems: "center" }}>
position: "relative", <Box ref={mineRef} sx={{
top: { xs: "11%", lg: "-10%" }, // Adjust top for mobile height: { xs: "472px", lg: "215px" },
right: { lg: "-22%" }, width: { xs: "80%", lg: "552px" },
height: { xs: "300px", md: "215px" },
width: { xs: "80%", md: "560px" },
backgroundColor: "white",
zIndex: 1, zIndex: 1,
display: "flex", display: "flex",
flexDirection: { xs: "column-reverse", lg: "row" }, flexDirection: { xs: "column-reverse", lg: "row" },
@ -181,276 +174,194 @@ const HomePage: React.FC = () => {
alignItems: "center", alignItems: "center",
padding: "10px", padding: "10px",
textAlign: 'center', textAlign: 'center',
marginBottom: { xs: "20px", md: "0" }, // Add margin bottom for spacing marginBottom: { xs: "20px", md: "0" },
}} }}>
> <Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" }, textAlign: {lg:'left' , xs:'center'} }}>
<Box sx={{ width: "60%", paddingLeft: { xs: "0", md: "10px" } }}> <Typography variant="h4">Manufacturing</Typography>
<Typography variant="h4">Manufacture</Typography> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry...</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis doloremque architecto eos provident et deserunt temporibus non iusto</p>
</Box>
<Box sx={{ width: "45%" }}>
<img src={giftwo} alt="Gif" style={{ width: "70%", height: "auto" }} />
</Box> </Box>
<Box sx={{ width: { lg: '50%' } }}>
<img src={giftwo} alt="Gif" style={{ width: "100%" }} />
</Box> </Box>
<Box </Box>
ref={assembleRef} </Grid>
sx={{
position: "absolute", {/* ROW 3 */}
top: { xs: "74%", lg: "66%" }, <Grid item xs={12} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '401px' }, display: "flex", justifyContent: { lg: 'flex-end' ,xs:'center' }, alignItems: "center" }}>
left: { lg: "12%" }, <Box ref={mineRef} sx={{
height: { xs: "300px", md: "167px" }, height: { xs: "332px", lg: "215px" },
width: { xs: "80%", md: "534px" }, width: { xs: "80%", lg: "595px" },
backgroundColor: "white", zIndex: 1,
display: "flex", display: "flex",
flexDirection: { xs: "column-reverse", lg: "row" }, flexDirection: { xs: "column", lg: "row" },
justifyContent: "center", justifyContent: "center",
alignItems: "center", alignItems: "center",
padding: "10px", padding: "10px",
textAlign: 'center', textAlign: 'center',
zIndex: 1, marginBottom: { xs: "20px", md: "0" },
}} }}>
>
<Box sx={{ width: "70%", paddingLeft: { xs: "0", md: "10px" } }}> <Box sx={{ width: { xs: "60%", md: "100%" } }}>
<img src={gifthree} alt="Gif" style={{ width: "100%" }} />
</Box>
<Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" }, textAlign: {lg:'left' , xs:'center'} }}>
<Typography variant="h4">Assemble</Typography> <Typography variant="h4">Assemble</Typography>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis!</p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry...</p>
</Box>
<Box sx={{ width: "70%" }}>
<img src={gifthree} alt="Gif" style={{ width: "85%", height: "auto" }} />
</Box> </Box>
</Box> </Box>
</Grid> </Grid>
<Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '221px' } ,display: { xs: 'none', sm: 'block' } }}></Grid>
{/* Grid 3 */} {/* ROW 4 */}
<Grid <Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '221px' } , display: { xs: 'none', sm: 'block' }}}></Grid>
item <Grid item xs={12} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '221px' }, display: "flex", justifyContent: { lg: 'flex-start' ,xs:'center' }, alignItems: "center" }}>
xs={12} <Box ref={mineRef} sx={{
sx={{ height: { xs: "332px", lg: "215px" },
height: { xs: "600px", lg: "615px" }, width: { xs: "80%", lg: "550px" },
backgroundColor: "white", zIndex: 1,
position: "relative", display: "flex",
backgroundImage: {
xs: null,
md: `url(${backtwo})`,
},
backgroundSize: "contain",
backgroundPositionX: "41.5%",
backgroundPositionY: "60%",
backgroundRepeat: "no-repeat",
display: { xs: "flex" },
flexDirection: { xs: "column-reverse", lg: "row" }, flexDirection: { xs: "column-reverse", lg: "row" },
justifyContent: { xs: "center" }, justifyContent: "center",
alignItems: { xs: "center" },
textAlign: { xs: 'center' }
}}>
<Box
ref={useRefBox}
sx={{
position: "absolute",
top: { xs: "65%", lg: "17%" },
right: { xs: "8%", md: "25%" },
transform: "translateY(-50%)",
height: { xs: "150px", md: "167px" },
width: { xs: "80%", md: "523px" },
backgroundColor: "white",
zIndex: 1,
display: "flex",
flexDirection: { xs: "column-reverse", lg: 'row' },
justifyContent: "flex-start",
alignItems: "center", alignItems: "center",
padding: "10px", padding: "10px",
}} textAlign: 'center',
> marginBottom: { xs: "20px", md: "0" },
<Box sx={{ width: "70%", paddingLeft: "10px" }}> }}>
<Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" }, textAlign: {lg:'left' , xs:'center'} }}>
<Typography variant="h4">Use</Typography> <Typography variant="h4">Use</Typography>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis !</p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry...</p>
</Box> </Box>
<Box sx={{ width: "70%" }}> <Box sx={{ width: { xs: "60%", md: "100%" } }}>
<img src={giffour} alt="Gif" style={{ width: "69%", height: "auto" }} /> <img src={giffour} alt="Gif" style={{ width: "100%" }} />
</Box> </Box>
</Box> </Box>
</Grid> </Grid>
{/* new2 */}
<Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '221px' } , display: { xs: 'none', sm: 'block' } }}></Grid>
{/* Grid 4 */}
<Grid <Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '221px' }, display: { xs: 'none', sm: 'block' } }}></Grid>
item {/* newnew */}
xs={12} <Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '421px' }, display: "flex", justifyContent: { lg: 'center' }, alignItems: "center" }}>
sx={{ <Box ref={mineRef} sx={{
height: { xs: "707px", md: "830px" }, height: { xs: "332px", lg: "115px" },
backgroundColor: "white", width: { xs: "80%", lg: "250px" },
position: "relative",
backgroundImage: { lg: `url(${backthree})`, xs: null },
backgroundSize: "contain",
backgroundPosition: "46.2% 50%",
backgroundRepeat: "no-repeat",
}}>
<Box
ref={reuseRef}
sx={{
position: "absolute",
top: { xs: "5%", md: "7%" },
left: { xs: "-1%", md: "17%" },
transform: "translateY(-23%)",
height: { xs: "150px", md: "167px" },
width: { xs: "49%", md: "388px" },
backgroundColor: "white",
zIndex: 1, zIndex: 1,
display: "flex", display: "flex",
flexDirection: { xs: 'column', md: 'row-reverse' }, // Reverse for mobile flexDirection: { xs: "column", lg: "column" },
justifyContent: "center",
alignItems: "center", alignItems: "center",
justifyContent: "center", // Center vertically
padding: "10px", padding: "10px",
}} textAlign: 'center',
> marginBottom: { xs: "20px", md: "0" },
<Box }}>
sx={{ <Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" }, textAlign: {lg:'left' , xs:'center'} }}>
width: "80%",
paddingLeft: "10px",
backgroundColor: { xs: 'green', md: 'transparent' }, // Green background for mobile
display: 'flex', // Make the text box a flex container to center content vertically
flexDirection: 'column', // Align text content vertically
justifyContent: 'center', // Vertically center the text
}}
>
<Typography variant="h4">Reuse</Typography> <Typography variant="h4">Reuse</Typography>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendisss !</p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry...</p>
</Box>
<Box sx={{
width: "80%",
display: 'flex',
justifyContent: 'center', // Center the gif horizontally
alignItems: 'center', // Center the gif vertically
}}>
<img src={gifsix} alt="Gif" style={{ width: "132%", height: "110%" }} />
</Box> </Box>
<Box sx={{ width: { xs: "60%", md: "100%" } }}>
<img src={giffive} alt="Gif" style={{ width: "100%" }} />
</Box> </Box>
<Box
ref={repairRef}
sx={{
position: "absolute",
top: { xs: "1%", md: "20%" },
right: { xs: "1%", md: "13%" },
transform: "translateY(-23%)",
height: { xs: "150px", md: "167px" },
width: { xs: "47%", md: "390px" },
backgroundColor: "white",
zIndex: 1,
display: "flex",
flexDirection: { xs: 'column', md: 'row-reverse' }, // Reverse for mobile
alignItems: "center",
justifyContent: "center", // Center vertically
padding: "10px",
}}
>
<Box
sx={{
width: "80%",
paddingLeft: "10px",
backgroundColor: { xs: 'green', md: 'transparent' },
display: 'flex',
flexDirection: 'column',
justifyContent: 'center',
}}
>
<Typography variant="h4">Repair</Typography>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis !</p>
</Box>
<Box sx={{ width: "80%" }}>
<img src={giffive} alt="Gif" style={{ width: "100%", height: "100%" }} />
</Box>
</Box>
<Box
ref={disintegrateRef}
sx={{
position: "absolute",
top: { xs: "61%", md: "61%" },
left: { xs: "-2%", md: "6%" },
transform: "translateY(-23%)",
height: { xs: "150px", md: "167px" },
width: { xs: "51%", md: "409px" },
backgroundColor: "white",
zIndex: 1,
display: "flex",
flexDirection: { xs: 'column-reverse', md: 'row-reverse' }, // Reverse for mobile
alignItems: "center",
justifyContent: "center", // Center vertically
padding: "10px",
}}
>
<Box
sx={{
width: "80%",
paddingLeft: "10px",
backgroundColor: { xs: 'green', md: 'transparent' },
display: 'flex',
flexDirection: 'column',
justifyContent: 'center',
}}
>
<Typography variant="h4" sx={{fontSize:'2rem'}}>Disintegrate</Typography>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis !</p>
</Box>
<Box sx={{ width: "70%" }}>
<img src={gifseven} alt="Gif" style={{ width: "100%", height: "auto" }} />
</Box>
</Box>
<Box
ref={remineRef}
sx={{
position: "absolute",
top: { xs: "60%", md: "65%" },
right: { xs: "-3%", md: "8%" },
transform: "translateY(-23%)",
height: { xs: "150px", md: "167px" },
width: { xs: "50%", md: "309px" },
backgroundColor: "white",
zIndex: 1,
display: "flex",
flexDirection: { xs: 'column', md: 'row-reverse' }, // Reverse for mobile
alignItems: "center",
justifyContent: "center", // Center vertically
padding: "10px",
}}
>
<Box
sx={{
width: "80%",
paddingLeft: "10px",
}}
>
<img src={gifeight} alt="Gif" style={{ width: "100%", height: "auto" }} />
</Box>
<Box sx={{ width: "70%", paddingLeft: "10px", backgroundColor: { xs: 'green', md: 'transparent' },
display: 'flex',
flexDirection: 'column',
justifyContent: 'center', }}>
<Typography variant="h4">Remine</Typography>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis !</p>
</Box>
</Box> </Box>
</Grid> </Grid>
<Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '421px' }, display: "flex", justifyContent: { lg: 'center' }, alignItems: "center" }}>
<Box ref={mineRef} sx={{
height: { xs: "332px", lg: "115px" },
width: { xs: "80%", lg: "250px" },
zIndex: 1,
display: "flex",
flexDirection: { xs: "column", lg: "column" },
justifyContent: "center",
alignItems: "center",
padding: "10px",
textAlign: 'center',
marginBottom: { xs: "20px", md: "0" },
}}>
<Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" }, textAlign: {lg:'left' , xs:'center'} }}>
<Typography variant="h4">Repair</Typography>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry...</p>
</Box>
<Box sx={{ width: { xs: "60%", md: "100%" } }}>
<img src={gifsix} alt="Gif" style={{ width: "100%" }} />
</Box>
{/* Grid 5 */} </Box>
<Grid </Grid>
item {/* newnewnwe */}
xs={12} <Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '421px' }, display: "flex", justifyContent: { lg: 'center' }, alignItems: "center" }}>
ref={mineRef} <Box ref={mineRef} sx={{
height: { xs: "332px", lg: "115px" },
width: { xs: "80%", lg: "250px" },
zIndex: 1,
display: "flex",
flexDirection: { xs: "column", lg: "column" },
justifyContent: "center",
alignItems: "center",
padding: "10px",
textAlign: 'center',
marginBottom: { xs: "20px", md: "0" },
}}>
<Box sx={{ width: { xs: "60%", md: "100%" } }}>
<img src={gifseven} alt="Gif" style={{ width: "100%" }} />
</Box>
<Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" }, textAlign: {lg:'left' , xs:'center'} }}>
<Typography variant="h4">Disintegrate</Typography>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry...</p>
</Box>
</Box>
</Grid>
<Grid item xs={6} sx={{ background: '#ffffff00', height: { xl: "500px", lg: '421px' }, display: "flex", justifyContent: { lg: 'center' }, alignItems: "center" }}>
<Box ref={mineRef} sx={{
height: { xs: "332px", lg: "115px" },
width: { xs: "80%", lg: "250px" },
zIndex: 1,
display: "flex",
flexDirection: { xs: "column", lg: "column" },
justifyContent: "center",
alignItems: "center",
padding: "10px",
textAlign: 'center',
marginBottom: { xs: "20px", md: "0" },
}}>
<Box sx={{ width: { xs: "60%", md: "100%" } }}>
<img src={gifeight} alt="Gif" style={{ width: "100%" }} />
</Box>
<Box sx={{ width: "100%", paddingLeft: { xs: "0", md: "10px" }, textAlign: {lg:'left' , xs:'center'} }}>
<Typography variant="h4">Remine</Typography>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry...</p>
</Box>
</Box>
</Grid>
</Grid>
</Box>
{/* <Grid
container
sx={{ sx={{
height: { xs: "200px", md: "300px" }, height: { xl: 1800, lg: 188 },
backgroundImage: `url(${loopgreen})`, width: '100%',
position: "relative", backgroundImage: `url(${newbackgroundtwo})`,
backgroundSize: "contain", backgroundSize: "contain",
backgroundPosition: "center", backgroundPosition: "center",
backgroundRepeat: "no-repeat", backgroundRepeat: "no-repeat",
}}> }}
</Grid> >
<Grid item>
</Grid> </Grid>
</Grid> */}
<PartnerWork /> <PartnerWork />
<OurTeam /> <OurTeam />
<Footer /> <Footer />

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -1,7 +1,19 @@
import React from "react"; import React, { useState } from "react";
import { Grid, Typography, Card, CardContent, CardMedia, Divider } from "@mui/material"; import {
import color from "../components/imageandgif/color.png" Grid,
import robert from "../components/imageandgif/robert.png" Typography,
Card,
CardContent,
CardMedia,
Divider,
IconButton,
Box,
} from "@mui/material";
import { motion } from "framer-motion";
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
import ExpandLessIcon from "@mui/icons-material/ExpandLess";
import robert from "../components/imageandgif/robert.png";
interface TeamMember { interface TeamMember {
name: string; name: string;
@ -19,34 +31,45 @@ const teamMembers: TeamMember[] = [
]; ];
const OurTeam: React.FC = () => { const OurTeam: React.FC = () => {
const [showTeam, setShowTeam] = useState(false);
return ( return (
<Grid <Grid
container container
direction="column"
justifyContent="center" justifyContent="center"
alignItems="center" alignItems="center"
sx={{ sx={{
position: "relative", minHeight: showTeam ? "100vh" : "auto",
minHeight: "100vh", background: "white",
backgroundImage: `url(${color})`,
backgroundSize: "contain",
backgroundPosition: "center",
backgroundRepeat: "no-repeat",
}}
>
<Typography
variant="h4"
sx={{
textAlign: "center", textAlign: "center",
fontWeight: "bold", padding: "40px 20px",
color: "#333",
marginBottom: "30px",
}} }}
> >
{/* Title with Expand Icon */}
<Box
display="flex"
alignItems="center"
gap={1}
sx={{ cursor: "pointer" }}
onClick={() => setShowTeam(!showTeam)}
>
<Typography variant="h5" sx={{ fontWeight: "bold" }}>
Our Team Our Team
</Typography> </Typography>
<IconButton sx={{ color: "black" }}>
{showTeam ? <ExpandLessIcon /> : <ExpandMoreIcon />}
</IconButton>
</Box>
<Grid container spacing={1} justifyContent="center"> {/* Expanding Team Section */}
<motion.div
initial={{ opacity: 0, height: 0 }}
animate={{ opacity: showTeam ? 1 : 0, height: showTeam ? "auto" : 0 }}
transition={{ duration: 0.5, ease: "easeInOut" }}
style={{ overflow: "hidden", width: "100%" }}
>
<Grid container spacing={2} justifyContent="center" sx={{ marginTop: "20px" }}>
{teamMembers.map((member, index) => ( {teamMembers.map((member, index) => (
<Grid item xs={12} sm={6} md={4} key={index}> <Grid item xs={12} sm={6} md={4} key={index}>
<Card <Card
@ -70,26 +93,26 @@ const OurTeam: React.FC = () => {
</Typography> </Typography>
</CardContent> </CardContent>
{/* Divider Line */} {/* Divider */}
<Divider sx={{ width: "80%", margin: "0 auto 10px auto" }} /> <Divider sx={{ width: "80%", margin: "0 auto 10px auto" }} />
<CardMedia <CardMedia
component="img" component="img"
height="140" // Reduced height slightly height="140"
image={member.image} image={member.image}
alt={member.name} alt={member.name}
sx={{ sx={{
objectFit: "contain", // Ensure the entire image is visible objectFit: "contain",
width: "80%", // Make the image width smaller width: "80%",
margin: "0 auto", // Center the image margin: "0 auto",
padding: "10px", // Add some spacing around the image padding: "10px",
}} }}
/> />
</Card> </Card>
</Grid> </Grid>
))} ))}
</Grid> </Grid>
</motion.div>
</Grid> </Grid>
); );
}; };

View File

@ -1,9 +1,13 @@
import React from "react"; import React from "react";
import { Box, Card, CardContent, CardMedia, Typography, Button, Grid } from "@mui/material"; import { Box, Card, CardContent, CardMedia, Typography, Button, Grid } from "@mui/material";
import loopgreenback from "../components/imageandgif/loopgreenbackground.png" import { Swiper, SwiperSlide } from "swiper/react";
import { Autoplay, Pagination } from "swiper/modules";
import "swiper/css";
import "swiper/css/pagination";
import loopgreenback from "../components/imageandgif/loopgreenbackground.png";
import { useMediaQuery, createTheme, ThemeProvider } from "@mui/material"; import { useMediaQuery, createTheme, ThemeProvider } from "@mui/material";
// Define Data
const data = [ const data = [
{ img: "https://s3-alpha-sig.figma.com/img/8e1a/c73a/f4e18134521c4a2ef1c70e0ba02fa636?Expires=1739750400&Key-Pair-Id=APKAQ4GOSFWCW27IBOMQ&Signature=iKYXVc~k5~LoiM0ep167AJSywxHpPueTEeheiHfxA-TT8SrzhLb0CZIR08zl9nMDz4gBOqlnKavcTEs~h3tu9gRAyIDMIgcFHIeFQ6IBSoeHabuJxmyP0qcdnWXNYJXze0oO8B~VDFHG0lOagJW~fnb8j8gB2W7M4oL2QPPQFsY3oFzEKW3Gydq7ijohnCXdQP5CPgJ2MPhMFQ59DDQsxv5YihKByOgVx3boAx1ABL05w25ab0DFrcPmSgx93rHzikBmmPNVoiLWW6-rYijbFaxZ~2wEbK4zwGZNtIYw~YGR9EG~h595FJDl1XeCaoMWVJFkfqqHcYDD2-1fLu3JFA__", title: "Lorem Ipsum Heading" }, { img: "https://s3-alpha-sig.figma.com/img/8e1a/c73a/f4e18134521c4a2ef1c70e0ba02fa636?Expires=1739750400&Key-Pair-Id=APKAQ4GOSFWCW27IBOMQ&Signature=iKYXVc~k5~LoiM0ep167AJSywxHpPueTEeheiHfxA-TT8SrzhLb0CZIR08zl9nMDz4gBOqlnKavcTEs~h3tu9gRAyIDMIgcFHIeFQ6IBSoeHabuJxmyP0qcdnWXNYJXze0oO8B~VDFHG0lOagJW~fnb8j8gB2W7M4oL2QPPQFsY3oFzEKW3Gydq7ijohnCXdQP5CPgJ2MPhMFQ59DDQsxv5YihKByOgVx3boAx1ABL05w25ab0DFrcPmSgx93rHzikBmmPNVoiLWW6-rYijbFaxZ~2wEbK4zwGZNtIYw~YGR9EG~h595FJDl1XeCaoMWVJFkfqqHcYDD2-1fLu3JFA__", title: "Lorem Ipsum Heading" },
{ img: "https://s3-alpha-sig.figma.com/img/7cf1/0d68/a23d760a5c95fc2a5ab5fb4e6e59deec?Expires=1739750400&Key-Pair-Id=APKAQ4GOSFWCW27IBOMQ&Signature=LJgcQKDXC323lViIWgemZBwZ2jUeEQY3t~y9XKfH3Fpg3njl0njNtFQFMCiwEjwXxS4Fl711FZGY-f-qf~m7pn60FtcOLNyigwNzabHL-a7AIg9Y0aivbsRyy-Lpe-HsV33-QpPENtci8SWvTZrOQkZ0lRIiwmybKiLv3twuexnx-jlGvUKsdKuX8WxT0jYxIfQcn93FFQaaHKyHH2ZlgwTj~~R4MJO8-K0oO-JX7EVTlLwK3V2~-WUS400GiThR4~-iqmCPVnvoUI2uHW29BpZFV48wfCcreOJVG3AKbQXlSWe23HWzprUWqiGHDlDOKlkfeJEErDMqCYvqnKPxmQ__", title: "Lorem Ipsum Heading" }, { img: "https://s3-alpha-sig.figma.com/img/7cf1/0d68/a23d760a5c95fc2a5ab5fb4e6e59deec?Expires=1739750400&Key-Pair-Id=APKAQ4GOSFWCW27IBOMQ&Signature=LJgcQKDXC323lViIWgemZBwZ2jUeEQY3t~y9XKfH3Fpg3njl0njNtFQFMCiwEjwXxS4Fl711FZGY-f-qf~m7pn60FtcOLNyigwNzabHL-a7AIg9Y0aivbsRyy-Lpe-HsV33-QpPENtci8SWvTZrOQkZ0lRIiwmybKiLv3twuexnx-jlGvUKsdKuX8WxT0jYxIfQcn93FFQaaHKyHH2ZlgwTj~~R4MJO8-K0oO-JX7EVTlLwK3V2~-WUS400GiThR4~-iqmCPVnvoUI2uHW29BpZFV48wfCcreOJVG3AKbQXlSWe23HWzprUWqiGHDlDOKlkfeJEErDMqCYvqnKPxmQ__", title: "Lorem Ipsum Heading" },
@ -17,21 +21,15 @@ const workImages = [
"https://s3-alpha-sig.figma.com/img/2b3c/e165/b717d5a80e0f35b7422343ef37fa73eb?Expires=1739750400&Key-Pair-Id=APKAQ4GOSFWCW27IBOMQ&Signature=YgPY40uIT20P0C9JDcCBJeLLAtQU1HTvgO2EmlA3yWVHKcaOIA5UNmFYcxHF5Je5s8nRl9ReC5f2Vh5LNvAG0Q86gV6OTt3JJwgTixaR6YNFBvYeJY5qZlchheys92XgMkvDntrzWQ-dRNK72fDBbPjR8tR31XBt6lGbjoj0HySI9lKXg5x9yF0y~hqC7qtkTfwYJlHHScFXaQnbicMzKZUjTMa5BHwlmGOSG6IFHhmovKJKAZtW5BY0xWiEPXnq19XDnvSdLf3OY-tpG-itRPfA02ztThrqdBv5XWQpCQN4CWn4qNZRdnEYB8BsSKFXKVocAPnqKNziTXDDJvdVgQ__", "https://s3-alpha-sig.figma.com/img/2b3c/e165/b717d5a80e0f35b7422343ef37fa73eb?Expires=1739750400&Key-Pair-Id=APKAQ4GOSFWCW27IBOMQ&Signature=YgPY40uIT20P0C9JDcCBJeLLAtQU1HTvgO2EmlA3yWVHKcaOIA5UNmFYcxHF5Je5s8nRl9ReC5f2Vh5LNvAG0Q86gV6OTt3JJwgTixaR6YNFBvYeJY5qZlchheys92XgMkvDntrzWQ-dRNK72fDBbPjR8tR31XBt6lGbjoj0HySI9lKXg5x9yF0y~hqC7qtkTfwYJlHHScFXaQnbicMzKZUjTMa5BHwlmGOSG6IFHhmovKJKAZtW5BY0xWiEPXnq19XDnvSdLf3OY-tpG-itRPfA02ztThrqdBv5XWQpCQN4CWn4qNZRdnEYB8BsSKFXKVocAPnqKNziTXDDJvdVgQ__",
]; ];
// Theme for responsiveness
const theme = createTheme({ const theme = createTheme({
breakpoints: { breakpoints: {
values: { values: { xs: 0, sm: 600, md: 1000, lg: 1400, xl: 1800 },
xs: 0, // Default
sm: 600, // Tablets
md: 1000, // Laptops
lg: 1400, // Desktops
xl: 1800, // Large Screens
},
}, },
}); });
const PartnerWork = () => { const PartnerWork = () => {
const isMobile = useMediaQuery(theme.breakpoints.down("sm")); // Below 600px const isMobile = useMediaQuery(theme.breakpoints.down("sm")); // Below 600px
const isTablet = useMediaQuery(theme.breakpoints.down("md")); // Below 1000px
return ( return (
<ThemeProvider theme={theme}> <ThemeProvider theme={theme}>
@ -45,34 +43,33 @@ const PartnerWork = () => {
backgroundRepeat: "no-repeat", backgroundRepeat: "no-repeat",
}} }}
> >
{/* Why Partner with Us? Section */} {/* Why Partner with Us? */}
<Typography variant="h4" gutterBottom> <Typography variant="h4" gutterBottom>
Why Partner with Us? Why Partner with Us?
</Typography> </Typography>
<Grid container spacing={4} justifyContent="center" sx={{ paddingTop: 5 }}>
{/* Swiper for Mobile View */}
{isMobile ? (
<Swiper
modules={[Autoplay, Pagination]}
autoplay={{ delay: 3000, disableOnInteraction: false }}
pagination={{ clickable: true }}
loop={true}
spaceBetween={10}
slidesPerView={1}
style={{ width: "100%", maxWidth: 350 }}
>
{data.map((item, index) => ( {data.map((item, index) => (
<Grid item key={index} xs={12} sm={6} md={4}> <SwiperSlide key={index}>
<Card <Card
sx={{ sx={{
maxWidth: isMobile ? "100%" : 350, maxWidth: 350,
mx: "auto", mx: "auto",
boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.36)", boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.36)",
borderRadius: 4, borderRadius: 4,
p: 2, p: 2,
background: "linear-gradient(to bottom, #ffffff, #fff5e6)", background: "linear-gradient(to bottom, #ffffff, #fff5e6)",
overflow: "visible",
border: "1px solid rgba(0, 0, 0, 0.1)", border: "1px solid rgba(0, 0, 0, 0.1)",
"&:after": {
content: '""',
position: "absolute",
bottom: 0,
left: 0,
right: 0,
height: "10px",
background: "rgb(255, 255, 255)",
borderRadius: "0 0 4px 4px",
zIndex: -1,
},
}} }}
> >
<CardContent sx={{ textAlign: "left" }}> <CardContent sx={{ textAlign: "left" }}>
@ -85,7 +82,46 @@ const PartnerWork = () => {
</CardContent> </CardContent>
<CardMedia <CardMedia
component="img" component="img"
height={isMobile ? "150" : "200"} height="150"
image={item.img}
alt={item.title}
sx={{ borderRadius: 2, marginX: "auto" }}
/>
<CardContent>
<Button variant="text" sx={{ textTransform: "none", fontWeight: "bold", color: "black" }}>
Learn more
</Button>
</CardContent>
</Card>
</SwiperSlide>
))}
</Swiper>
) : (
<Grid container spacing={4} justifyContent="center" sx={{ paddingTop: 5 }}>
{data.map((item, index) => (
<Grid item key={index} xs={12} sm={6} md={4}>
<Card
sx={{
maxWidth: 350,
mx: "auto",
boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.36)",
borderRadius: 4,
p: 2,
background: "linear-gradient(to bottom, #ffffff, #fff5e6)",
border: "1px solid rgba(0, 0, 0, 0.1)",
}}
>
<CardContent sx={{ textAlign: "left" }}>
<Typography variant="h6" sx={{ fontWeight: "bold" }}>
{item.title}
</Typography>
<Typography variant="body2" color="text.secondary" sx={{ mb: 2 }}>
Lorem Ipsum subheading
</Typography>
</CardContent>
<CardMedia
component="img"
height="200"
image={item.img} image={item.img}
alt={item.title} alt={item.title}
sx={{ borderRadius: 2, marginX: "auto" }} sx={{ borderRadius: 2, marginX: "auto" }}
@ -99,22 +135,21 @@ const PartnerWork = () => {
</Grid> </Grid>
))} ))}
</Grid> </Grid>
)}
{/* Our Work Section */} {/* Our Work Section */}
<Typography variant="h4" sx={{ mt: 10, mb: 6 }}> <Typography variant="h4" sx={{ mt: 10, mb: 6 }}>
Our Work Our Work
</Typography> </Typography>
<Grid container spacing={3} justifyContent="center"> <Grid container spacing={3} justifyContent="center">
{workImages.map((img, index) => ( {[1, 2, 3].map((_, index) => (
<Grid item key={index}> <Grid item key={index}>
<Box <Box
sx={{ sx={{
width: isMobile ? 100 : 140, width: isMobile ? 100 : 140,
height: isMobile ? 100 : 140, height: isMobile ? 100 : 140,
borderRadius: "50%", borderRadius: "50%",
backgroundImage: `url(${img})`, backgroundColor: "gray",
backgroundSize: "cover",
backgroundPosition: "center",
boxShadow: 3, boxShadow: 3,
}} }}
/> />

View File

@ -5041,6 +5041,15 @@ fraction.js@^4.3.7:
resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
framer-motion@^12.4.2:
version "12.4.2"
resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.2.tgz"
integrity sha512-pW307cQKjDqEuO1flEoIFf6TkuJRfKr+c7qsHAJhDo4368N/5U8/7WU8J+xhd9+gjmOgJfgp+46evxRRFM39dA==
dependencies:
motion-dom "^12.0.0"
motion-utils "^12.0.0"
tslib "^2.4.0"
fresh@0.5.2: fresh@0.5.2:
version "0.5.2" version "0.5.2"
resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
@ -6961,6 +6970,18 @@ mkdirp@~0.5.1:
dependencies: dependencies:
minimist "^1.2.6" minimist "^1.2.6"
motion-dom@^12.0.0:
version "12.0.0"
resolved "https://registry.npmjs.org/motion-dom/-/motion-dom-12.0.0.tgz"
integrity sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==
dependencies:
motion-utils "^12.0.0"
motion-utils@^12.0.0:
version "12.0.0"
resolved "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz"
integrity sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==
ms@^2.1.1, ms@^2.1.3, ms@2.1.3: ms@^2.1.1, ms@^2.1.3, ms@2.1.3:
version "2.1.3" version "2.1.3"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
@ -9325,6 +9346,11 @@ svgo@^2.7.0:
picocolors "^1.0.0" picocolors "^1.0.0"
stable "^0.1.8" stable "^0.1.8"
swiper@^11.2.2:
version "11.2.2"
resolved "https://registry.npmjs.org/swiper/-/swiper-11.2.2.tgz"
integrity sha512-FmAN6zACpVUbd/1prO9xQ9gKo9cc6RE2UKU/z4oXtS8fNyX4sdOW/HHT/e444WucLJs0jeMId6WjdWM2Lrs8zA==
symbol-tree@^3.2.4: symbol-tree@^3.2.4:
version "3.2.4" version "3.2.4"
resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"
@ -9516,7 +9542,7 @@ tslib@^1.8.1:
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.0.3: tslib@^2.0.3, tslib@^2.4.0:
version "2.8.1" version "2.8.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==