-
+
-
+
+
The Open Source
Firebase Alternative
@@ -128,7 +47,7 @@ const Hero = () => {
diff --git a/www/components/index_sections/BuiltWithSupabase.tsx b/www/components/index_sections/BuiltWithSupabase.tsx
index f2d056f5654..5432468df58 100644
--- a/www/components/index_sections/BuiltWithSupabase.tsx
+++ b/www/components/index_sections/BuiltWithSupabase.tsx
@@ -1,15 +1,22 @@
import React from 'react'
import ArticleThumb from './../ArticleThumb'
import ProjectExamples from "./../../data/ProjectExamples.json"
+import SectionHeader from '../UI/SectionHeader'
const BuiltExamples = () => {
return (
-
+
-
+
+
+
+ {/*
Built with supabase
@@ -20,6 +27,8 @@ const BuiltExamples = () => {
atque, ducimus sed.
+ */}
+
{
onClick={() => handleClick(id)}
className={
'm-1 mb-4 rounded-md border border-gray-200 px-4 py-2 text-base font-medium text-gray focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-transparent sm:w-auto sm:text-sm' +
- (example === id ? ' border-brand-100 bg-brand-100 text-brand' : ' hover:bg-gray-200')
+ (example === id ? ' border-gray-900 bg-gray-900 text-white' : ' hover:bg-gray-200')
}
>
{
diff --git a/www/components/index_sections/MadeForDevelopers.tsx b/www/components/index_sections/MadeForDevelopers.tsx
index 2776a30cf55..c54c94bc5fe 100644
--- a/www/components/index_sections/MadeForDevelopers.tsx
+++ b/www/components/index_sections/MadeForDevelopers.tsx
@@ -1,3 +1,4 @@
+import SectionHeader from '../UI/SectionHeader'
import Badge from './../badge'
import CodeExamples from './CodeExamples'
@@ -6,17 +7,11 @@ const MadeForDevelopers = () => {
return (
-
-
- MADE FOR DEVELOPERS
-
- Supafast easy-to-use APIs that do the hard work for you
-
-
- We inspect your database and provide APIs instantly so you can stop building
- repetitive CRUD endpoints and focus on your product.
-
-
+
+
+
+
+
diff --git a/www/components/layout.tsx b/www/components/layout.tsx
index 07679ce0618..8ef13c308d9 100644
--- a/www/components/layout.tsx
+++ b/www/components/layout.tsx
@@ -12,7 +12,7 @@ const Layout = ({ preview, children }: Props) => {
<>
-
+
{children}
diff --git a/www/components/nav.tsx b/www/components/nav.tsx
index c8ce77d3ac7..e84701ab4aa 100644
--- a/www/components/nav.tsx
+++ b/www/components/nav.tsx
@@ -1,49 +1,163 @@
+import React, { useState, useLayoutEffect } from 'react'
import Link from 'next/link'
import FlyOut from './nav/FlyOut'
+import Solutions from './../data/Solutions.json'
+import Badge from './badge'
+import Transition from '../lib/Transition'
+
const Nav = () => {
+ const [open, setOpen] = useState(false)
+
+ function toggleOpen() {
+ console.log('toggleOpen')
+ setOpen(!open)
+ }
+
+ React.useEffect(() => {
+ if(open) {
+ console.log('open if')
+ // Prevent scrolling on mount
+ document.body.style.overflow = 'hidden';
+ } else {
+ document.body.style.overflow = 'auto';
+ }
+ }, [open]);
+
+ const iconSections = Object.values(Solutions).map((solution) => {
+ const { name, description, icon, label, url } = solution
+
+ const content = (
+
+
+
+ {/* */}
+
+
+
+
+
+
+ {name} {label && {label} }
+
+ {description}
+
+ {url && (
+
+ Learn more
+
+ )}
+
+
+ )
+ return url ? (
+
+ {content}
+
+ ) : (
+
+ {content}
+
+ )
+ })
+
return (
-
-
+
-
+
*/}
+
{
onClick={() => handleClick(id)}
className={
'm-1 mb-4 rounded-md border border-gray-200 px-4 py-2 text-base font-medium text-gray focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-transparent sm:w-auto sm:text-sm' +
- (example === id ? ' border-brand-100 bg-brand-100 text-brand' : ' hover:bg-gray-200')
+ (example === id ? ' border-gray-900 bg-gray-900 text-white' : ' hover:bg-gray-200')
}
>
{
diff --git a/www/components/index_sections/MadeForDevelopers.tsx b/www/components/index_sections/MadeForDevelopers.tsx
index 2776a30cf55..c54c94bc5fe 100644
--- a/www/components/index_sections/MadeForDevelopers.tsx
+++ b/www/components/index_sections/MadeForDevelopers.tsx
@@ -1,3 +1,4 @@
+import SectionHeader from '../UI/SectionHeader'
import Badge from './../badge'
import CodeExamples from './CodeExamples'
@@ -6,17 +7,11 @@ const MadeForDevelopers = () => {
return (
+
+
+ {/*
Built with supabase
+ @@ -20,6 +27,8 @@ const BuiltExamples = () => { atque, ducimus sed.
-
-
+
+
- MADE FOR DEVELOPERS
-
+
+ - Supafast easy-to-use APIs that do the hard work for you -
-- We inspect your database and provide APIs instantly so you can stop building - repetitive CRUD endpoints and focus on your product. -
-
+
diff --git a/www/components/layout.tsx b/www/components/layout.tsx
index 07679ce0618..8ef13c308d9 100644
--- a/www/components/layout.tsx
+++ b/www/components/layout.tsx
@@ -12,7 +12,7 @@ const Layout = ({ preview, children }: Props) => {
<>
-
+
{children}
diff --git a/www/components/nav.tsx b/www/components/nav.tsx
index c8ce77d3ac7..e84701ab4aa 100644
--- a/www/components/nav.tsx
+++ b/www/components/nav.tsx
@@ -1,49 +1,163 @@
+import React, { useState, useLayoutEffect } from 'react'
import Link from 'next/link'
import FlyOut from './nav/FlyOut'
+import Solutions from './../data/Solutions.json'
+import Badge from './badge'
+import Transition from '../lib/Transition'
+
const Nav = () => {
+ const [open, setOpen] = useState(false)
+
+ function toggleOpen() {
+ console.log('toggleOpen')
+ setOpen(!open)
+ }
+
+ React.useEffect(() => {
+ if(open) {
+ console.log('open if')
+ // Prevent scrolling on mount
+ document.body.style.overflow = 'hidden';
+ } else {
+ document.body.style.overflow = 'auto';
+ }
+ }, [open]);
+
+ const iconSections = Object.values(Solutions).map((solution) => {
+ const { name, description, icon, label, url } = solution
+
+ const content = (
+
+
+ )
+ return url ? (
+
+ {content}
+
+ ) : (
+
+
+
+ {/* */}
+
+
+
+
+
+
+ {url && (
+
+ {name} {label &&
{description}
++ Learn more +
+ )} +
+ {content}
+
+ )
+ })
+
return (
-
-