In this tutorial, we will see create 404 error page in react mantine core. We will see 404 error page, mantine 404 page not found with image using react mantine.
Install & Setup Vite + React + Typescript + Mantine UI
How to Use Mantine in Next.JS 13
React Mantine 404 Error Page Example
1. react mantine simple 404 not found error page.
import {
createStyles,
Title,
Text,
Button,
Container,
Group,
} from "@mantine/core";
const useStyles = createStyles((theme) => ({
root: {
paddingTop: 80,
paddingBottom: 80,
},
label: {
textAlign: "center",
fontWeight: 900,
fontSize: 220,
lineHeight: 1,
marginBottom: theme.spacing.xl * 1.5,
color:
theme.colorScheme === "dark"
? theme.colors.dark[4]
: theme.colors.gray[2],
[theme.fn.smallerThan("sm")]: {
fontSize: 120,
},
},
title: {
fontFamily: `Greycliff CF, ${theme.fontFamily}`,
textAlign: "center",
fontWeight: 900,
fontSize: 38,
[theme.fn.smallerThan("sm")]: {
fontSize: 32,
},
},
description: {
maxWidth: 500,
margin: "auto",
marginTop: theme.spacing.xl,
marginBottom: theme.spacing.xl * 1.5,
},
}));
export default function NotFoundTitle() {
const { classes } = useStyles();
return (
<Container className={classes.root}>
<div className={classes.label}>404</div>
<Title className={classes.title}>You have found a secret place.</Title>
<Text
color="dimmed"
size="lg"
align="center"
className={classes.description}
>
Unfortunately, this is only a 404 page. You may have mistyped the
address, or the page has been moved to another URL.
</Text>
<Group position="center">
<Button variant="subtle" size="md">
Take me back to home page
</Button>
</Group>
</Container>
);
}
2. react mantine responsive 404 page with image.
import { createStyles, Image, Container, Title, Text, Button, SimpleGrid } from '@mantine/core';
const useStyles = createStyles((theme) => ({
root: {
paddingTop: 80,
paddingBottom: 80,
},
title: {
fontWeight: 900,
fontSize: 34,
marginBottom: theme.spacing.md,
fontFamily: `Greycliff CF, ${theme.fontFamily}`,
[theme.fn.smallerThan('sm')]: {
fontSize: 32,
},
},
control: {
[theme.fn.smallerThan('sm')]: {
width: '100%',
},
},
mobileImage: {
[theme.fn.largerThan('sm')]: {
display: 'none',
},
},
desktopImage: {
[theme.fn.smallerThan('sm')]: {
display: 'none',
},
},
}));
export default function NotFoundImage() {
const { classes } = useStyles();
return (
<Container className={classes.root}>
<SimpleGrid spacing={80} cols={2} breakpoints={[{ maxWidth: 'sm', cols: 1, spacing: 40 }]}>
<Image src="https://ui.mantine.dev/_next/static/media/image.11cd6c19.svg" className={classes.mobileImage} />
<div>
<Title className={classes.title}>Something is not right...</Title>
<Text color="dimmed" size="lg">
Page you are trying to open does not exist. You may have mistyped the address, or the
page has been moved to another URL. If you think this is an error contact support.
</Text>
<Button variant="outline" size="md" mt="xl" className={classes.control}>
Get back to home page
</Button>
</div>
<Image src="https://ui.mantine.dev/_next/static/media/image.11cd6c19.svg" className={classes.desktopImage} />
</SimpleGrid>
</Container>
);
}