97 lines
2.7 KiB
TypeScript
97 lines
2.7 KiB
TypeScript
'use client';
|
||
|
||
import React from 'react';
|
||
import { Container, Typography, Button, Box, useMediaQuery } from '@mui/material';
|
||
import { useTheme } from '@mui/material/styles';
|
||
import { ArrowBack } from '@mui/icons-material';
|
||
import Link from 'next/link';
|
||
import ClientLayout from './components/ClientLayout';
|
||
|
||
const NotFoundPage: React.FC = () => {
|
||
const theme = useTheme();
|
||
const isMobile = useMediaQuery(theme.breakpoints.down('sm'));
|
||
const isMedium = useMediaQuery(theme.breakpoints.down('md'));
|
||
|
||
return (
|
||
<Container maxWidth="md" sx={{ py: { xs: 8, md: 16 }, textAlign: 'center' }}>
|
||
<Box
|
||
sx={{
|
||
display: 'flex',
|
||
flexDirection: 'column',
|
||
alignItems: 'center',
|
||
justifyContent: 'center',
|
||
minHeight: '60vh',
|
||
gap: { xs: 4, md: 6 },
|
||
}}
|
||
>
|
||
{/* 404 大号数字 */}
|
||
<Typography
|
||
variant={isMobile ? 'h1' : 'h1'}
|
||
component="h1"
|
||
sx={{
|
||
fontWeight: 700,
|
||
fontSize: isMobile ? '5rem' : isMedium ? '8rem' : '10rem',
|
||
color: theme.palette.primary.main,
|
||
opacity: 0.8,
|
||
lineHeight: 1,
|
||
letterSpacing: '-0.05em',
|
||
textShadow: '2px 2px 4px rgba(0,0,0,0.1)',
|
||
}}
|
||
>
|
||
404
|
||
</Typography>
|
||
|
||
{/* 错误标题 */}
|
||
<Typography
|
||
variant={isMobile ? 'h5' : 'h4'}
|
||
component="h2"
|
||
sx={{
|
||
fontWeight: 600,
|
||
color: theme.palette.text.primary,
|
||
mb: 2,
|
||
}}
|
||
>
|
||
页面未找到
|
||
</Typography>
|
||
|
||
{/* 错误描述 */}
|
||
<Typography
|
||
variant="body1"
|
||
sx={{
|
||
maxWidth: '600px',
|
||
color: theme.palette.text.secondary,
|
||
mb: 6,
|
||
fontSize: isMobile ? '1rem' : '1.125rem',
|
||
}}
|
||
>
|
||
抱歉,您访问的页面不存在或已被移除。请检查您的链接是否正确,或返回首页继续浏览。
|
||
</Typography>
|
||
|
||
{/* 返回首页按钮 */}
|
||
<Button
|
||
component={Link}
|
||
href="/"
|
||
variant="contained"
|
||
startIcon={<ArrowBack />}
|
||
sx={{
|
||
px: { xs: 4, md: 6 },
|
||
py: { xs: 1.5, md: 2 },
|
||
borderRadius: '9999px',
|
||
fontSize: { xs: '0.9rem', md: '1rem' },
|
||
fontWeight: 600,
|
||
textTransform: 'none',
|
||
transition: 'all 0.3s ease',
|
||
'&:hover': {
|
||
transform: 'translateY(-2px)',
|
||
boxShadow: '0 10px 20px rgba(0,0,0,0.1)',
|
||
},
|
||
}}
|
||
>
|
||
返回首页
|
||
</Button>
|
||
</Box>
|
||
</Container>
|
||
);
|
||
};
|
||
|
||
export default NotFoundPage; |