Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
75afedd
done the strucrure
sguming Apr 15, 2025
6f44de9
Chloe-HeroSection-v1-structure-demo-image
ChloeXiao0409 Apr 16, 2025
5d3b12c
Merge branch 'main' of https://github.com/Dispatch-AI-com/frontend in…
ChloeXiao0409 Apr 17, 2025
de32288
Chloe_Update_Hero_Page_v2
ChloeXiao0409 Apr 17, 2025
07a338d
Update_pnpm
ChloeXiao0409 Apr 17, 2025
e79ab1d
Update src/components/features/landing/HeroSection.tsx
ChloeXiao0409 Apr 21, 2025
f79b6ed
next-version-change-back
ChloeXiao0409 Apr 22, 2025
f1aef43
Merge branch 'main' of https://github.com/Dispatch-AI-com/frontend in…
ChloeXiao0409 Apr 22, 2025
95009c3
pnpm_update
ChloeXiao0409 Apr 23, 2025
d195b9c
Merge branch 'main' of https://github.com/Dispatch-AI-com/frontend in…
ChloeXiao0409 Apr 24, 2025
cade415
hero-section-with-global-theme
ChloeXiao0409 Apr 24, 2025
f60b2e6
Merge branch 'main' of https://github.com/Dispatch-AI-com/frontend in…
ChloeXiao0409 Apr 24, 2025
a7aecf3
Update-hero-styled-components
ChloeXiao0409 Apr 24, 2025
61380a8
Merge branch 'main' into DIS-27-Landing-Page-Hero-Section-Chloe
ChloeXiao0409 Apr 26, 2025
04c9631
Update-h1-responsive
ChloeXiao0409 Apr 26, 2025
8e95a2e
Merge branch 'main' into DIS-27-Landing-Page-Hero-Section-Chloe
ChloeXiao0409 Apr 28, 2025
c5b9a06
update-pnpm
ChloeXiao0409 Apr 28, 2025
364fc95
landing-page-structure-updated
ChloeXiao0409 Apr 28, 2025
3b63b22
Merge branch 'main' of https://github.com/Dispatch-AI-com/frontend in…
ChloeXiao0409 Apr 30, 2025
799b321
bugfix-merge-conflict
ChloeXiao0409 Apr 30, 2025
0688bfb
Fix ESLint import sorting issue
ChloeXiao0409 May 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added public/demo-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
135 changes: 131 additions & 4 deletions src/app/landing/components/HeroSection.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,134 @@
"use client";

import ArrowForwardIcon from '@mui/icons-material/ArrowForward';
import { styled } from '@mui/material/styles';
import * as React from 'react';

import CommonButton from '@/components/ui/CommonButton';

const StyledContainer = styled('div')`
display: flex;
flex-direction: column;
align-items: center;
padding-top: ${({ theme }) => theme.spacing(12)};
padding-bottom: ${({ theme }) => theme.spacing(12)};

@media (min-width: ${({ theme }) => theme.breakpoints.values.xs}px) {
padding-top: ${({ theme }) => theme.spacing(10)};
padding-bottom: ${({ theme }) => theme.spacing(10)};
}
`;

const StyledStack = styled('div')`
display: flex;
flex-direction: column;
align-items: center;
gap: ${({ theme }) => theme.spacing(1)};
width: 70%;

@media (min-width: ${({ theme }) => theme.breakpoints.values.sm}px) {
width: 100%;
}
`;

const StyledHeader = styled('h1')`
display: flex;
align-items: center;
color: ${({ theme }) => theme.palette.text.primary};
font-size: ${({ theme }) => theme.typography.h1.fontSize};
font-family: ${({ theme }) => theme.typography.h1.fontFamily};
font-weight: ${({ theme }) => theme.typography.h1.fontWeight};
margin: 0;

@media (min-width: ${({ theme }) => theme.breakpoints.values.sm}px) {
font-size: ${({ theme }) => theme.typography.h3.fontSize};
}

@media (min-width: ${({ theme }) => theme.breakpoints.values.md}px) {
font-size: ${({ theme }) => theme.typography.h2.fontSize};
}

@media (min-width: ${({ theme }) => theme.breakpoints.values.lg}px) {
font-size: ${({ theme }) => theme.typography.h1.fontSize};
}
`;

const StyledTypographyBody = styled('p')`
text-align: center;
color: ${({ theme }) => theme.palette.text.primary};
margin: 32px 0;
font-size: ${({ theme }) => theme.typography.body1.fontSize};
font-family: ${({ theme }) => theme.typography.fontFamily};

@media (min-width: ${({ theme }) => theme.breakpoints.values.sm}px) {
font-size: ${({ theme }) => theme.typography.body2.fontSize};
min-width: 1000px;
}
`;

const ButtonStack = styled('div')`
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: ${({ theme }) => theme.spacing(7)};
padding-top: ${({ theme }) => theme.spacing(2)};

@media (min-width: ${({ theme }) => theme.breakpoints.values.sm}px) {
flex-direction: row;
width: 100%;
}
`;

const StyledDemoBox = styled('div')`
align-self: center;
background-color: ${({ theme }) => theme.palette.background.default};
border-radius: ${({ theme }) => theme.shape.borderRadius};
border: 1px solid ${({ theme }) => theme.palette.grey[200]};
box-shadow: 0 0 12px 8px hsla(220, 25%, 80%, 0.2);
background-image: url('/demo-image.png');
background-size: cover;
background-position: center;

@media (min-width: ${({ theme }) => theme.breakpoints.values.sm}px) {
width: 900px;
height: 530px;
margin-top: ${({ theme }) => theme.spacing(10)};
}

@media (max-width: ${({ theme }) => theme.breakpoints.values.xs}px) {
width: 700px;
height: 530px;
}
`;

export default function HeroSection() {
return (
<>
<p>hero section</p>
</>
<StyledContainer>
<StyledStack>
<StyledHeader>
Let&nbsp;AI&nbsp;Handle&nbsp;Your&nbsp;Calls
</StyledHeader>
<StyledHeader>
Focus&nbsp;on&nbsp;Growing&nbsp;Your&nbsp;Business
</StyledHeader>
<StyledTypographyBody>
SmartAgent is your 24/7 virtual phone assistant for rental managers, plumbers, contractors,
and small businesses.<br />
Answer calls, schedule follow-ups, and automate workflows&nbsp;—&nbsp;no human effort needed.
</StyledTypographyBody>
<ButtonStack>
<CommonButton buttonVariant="black" endIcon={<ArrowForwardIcon />}>
Start Your Free Trial
</CommonButton>
<CommonButton buttonVariant="green" endIcon={<ArrowForwardIcon />}>
Request a Demo
</CommonButton>
</ButtonStack>
</StyledStack>
<StyledDemoBox />
</StyledContainer>
);
}
}


2 changes: 1 addition & 1 deletion src/components/providers/ThemeProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ export default function ThemeProvider({ children }: { children: React.ReactNode
{children}
</MuiThemeProvider>
);
}
}
2 changes: 1 addition & 1 deletion src/components/ui/CommonButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export default function CommonButton({
buttonVariant = 'black',
sx,
...rest
}: CommonButtonProps) {
}: CommonButtonProps) {
return (
<StyledButton
variant="contained"
Expand Down
12 changes: 6 additions & 6 deletions src/theme/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
import { createTheme, responsiveFontSizes } from '@mui/material/styles';

let theme = createTheme({
spacing: 8,
spacing: 8,

shape: {
borderRadius: 12,
borderRadius: 12,
},

palette: {
background: {
default: '#ffffff',
paper: '#fafafa',
default: '#ffffff', // white
paper: '#fafafa', // light grey
},
text: {
primary: '#060606',
secondary: '#6d6d6d',
primary: '#060606', // black
secondary: '#6d6d6d', // grey
},
},

Expand Down