diff --git a/static-site/app/not-found.tsx b/static-site/app/not-found.tsx new file mode 100644 index 000000000..b73ad8309 --- /dev/null +++ b/static-site/app/not-found.tsx @@ -0,0 +1,15 @@ +import React from "react"; + +import styles from "./styles/not-found.module.css"; + +export default function FourOhFour(): React.ReactElement { + return ( + <> +
+ Oops - that page doesn’t exist! (404). +
+ Maybe start again with our main page? +
+ + ); +} diff --git a/static-site/app/styles/globals.css b/static-site/app/styles/globals.css index 15f1e374a..45dcbdc2f 100644 --- a/static-site/app/styles/globals.css +++ b/static-site/app/styles/globals.css @@ -15,6 +15,7 @@ --blue: #5097ba; --darkGrey: #333; + --errorRed: #DE3C26; --mediumGrey: #888; --lightGrey: #ccc; diff --git a/static-site/app/styles/not-found.module.css b/static-site/app/styles/not-found.module.css new file mode 100644 index 000000000..d525cc306 --- /dev/null +++ b/static-site/app/styles/not-found.module.css @@ -0,0 +1,15 @@ +.errorContainer { + color: var(--errorRed); + font-size: 28px; + font-weight: 300; + line-height: calc(1.4 * var(--niceLineHeight)); + margin: 0 auto; + max-width: 640px; + padding: 130px 0 80px; + text-align: center; +} + +.errorContainer a { + color: var(--errorRed); + text-decoration: underline; +} diff --git a/test/requests.test.js b/test/requests.test.js index 09b24e897..43bcf1c9c 100644 --- a/test/requests.test.js +++ b/test/requests.test.js @@ -328,7 +328,7 @@ function testBase404Page(path) { the 404 page, but nextstrain.org without JS is not feasible */ test("body looks like 404 page", async () => { const res = await req; - expect((await res.text()).includes('"page":"/404"')).toBe(true) + expect((await res.text()).includes("Oops - that page doesn’t exist!")).toBe(true) }); }); }