mirror of
https://github.com/supabase/supabase.git
synced 2026-10-12 12:55:06 +03:00
* set up multiple themes in studio * set up multiple themes in studio * set up multiple themes in docs and www * update all resolvedTheme to also include deep-dark * update all resolvedTheme checks to also include deep-dark * update tailwind.config.js tokens * update tailwind.config.js tokens * update leftover scale12 token * update if resolvedTheme _doesn't_ include 'dark' * update more styling tokens * add dynamic themes to CmdK * fix nav and footer for multi theme * add data-theme selector output to transformTokens.js * update code-hike.css to target data-theme css * update tailwindcss to ^3.3.5 * ThemeImage with light and dark src for www and docs * add brand-button styling token * update old dark theme boolean * update old dark theme boolean * make homepage product visuals themeable * update product page themed images * update badge green with brand * fix roles list appearance * fix auth widget in auth page * update more dark logic * update more dark logic * add button default bg and border * update pricing page theme styling * clean up Themeimage * remove forceDark in homepage * update dark:border-dark occurrences * update dark:border-dark occurrences * fix dark mode base colors * remove foreground-strong * fix notification badge bg * remove some dark: selectors * update dark: selectors * update code-hike deep dark bg color * fix comment typo * update border-button-hover token * fix customer story logo * remove some more dark: selectors * restore forceDark in www homepage * fix auth react icon * fix homepage product visuals * remove theme * add brand-link token * fix checkbox bg * npm install * more visible EntityListItem active bg * fix --background-alternative-default css vars --------- Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
78 lines
2.7 KiB
TypeScript
78 lines
2.7 KiB
TypeScript
import Image from 'next/image'
|
|
import { useEffect, useState } from 'react'
|
|
import Link from 'next/link'
|
|
import { Button } from 'ui'
|
|
|
|
import DefaultLayout from '../components/Layouts/Default'
|
|
|
|
import { useTheme } from 'next-themes'
|
|
|
|
import * as supabaseLogoWordmarkDark from 'common/assets/images/supabase-logo-wordmark--dark.png'
|
|
import * as supabaseLogoWordmarkLight from 'common/assets/images/supabase-logo-wordmark--light.png'
|
|
|
|
const Error404 = () => {
|
|
const [show404, setShow404] = useState<boolean>(false)
|
|
const { resolvedTheme } = useTheme()
|
|
|
|
useEffect(() => {
|
|
setTimeout(() => {
|
|
setShow404(true)
|
|
}, 500)
|
|
}, [])
|
|
|
|
return (
|
|
<DefaultLayout hideHeader hideFooter>
|
|
<div className="relative mx-auto flex h-screen w-full flex-col items-center justify-center">
|
|
<div className="absolute top-0 mx-auto w-full max-w-7xl px-8 pt-6 sm:px-6 lg:px-8">
|
|
<nav className="relative flex items-center justify-between sm:h-10">
|
|
<div className="flex flex-shrink-0 flex-grow items-center lg:flex-grow-0">
|
|
<div className="flex w-full items-center justify-between md:w-auto">
|
|
<a href="/">
|
|
<Image
|
|
src={
|
|
resolvedTheme?.includes('dark')
|
|
? supabaseLogoWordmarkDark
|
|
: supabaseLogoWordmarkLight
|
|
}
|
|
alt="supabase logo"
|
|
height={24}
|
|
width={120}
|
|
/>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
<div className="absolute">
|
|
<h1
|
|
className={`text-foreground select-none text-[14rem] opacity-[5%] filter transition duration-200 sm:text-[18rem] lg:text-[28rem] ${
|
|
show404 ? 'blur-sm' : 'blur-none'
|
|
}`}
|
|
>
|
|
404
|
|
</h1>
|
|
</div>
|
|
<div
|
|
className={`flex flex-col items-center justify-center space-y-6 transition ${
|
|
show404 ? 'opacity-100' : 'opacity-0'
|
|
}`}
|
|
>
|
|
<div className="text-foreground flex w-[320px] flex-col items-center justify-center space-y-3">
|
|
<h1 className="m-2 text-2xl">Looking for something? 🔍</h1>
|
|
<p className="text-center text-sm">
|
|
We couldn't find the page that you're looking for!
|
|
</p>
|
|
</div>
|
|
<div className="flex items-center space-x-4">
|
|
<Button asChild size="small" className="text-white">
|
|
<Link href="/">Head back</Link>
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</DefaultLayout>
|
|
)
|
|
}
|
|
|
|
export default Error404
|