landing and nav (hopefully) done

This commit is contained in:
Noah Swerhun 2023-07-24 22:14:18 -05:00
parent 1a3f46ea31
commit 2babbc167d
25 changed files with 149 additions and 15 deletions

View file

@ -1,5 +1,5 @@
const Accupuncture = () => { const Accupuncture = () => {
return <div>Accupuncture</div>; return <main>Accupuncture</main>;
}; };
export default Accupuncture; export default Accupuncture;

View file

@ -1,5 +1,5 @@
const Articles = () => { const Articles = () => {
return <div>Articles</div>; return <main>Articles</main>;
}; };
export default Articles; export default Articles;

View file

@ -13,4 +13,7 @@
@apply text-primary-500; @apply text-primary-500;
@apply font-abel; @apply font-abel;
} }
main {
@apply text-lg;
}
} }

View file

@ -3,7 +3,7 @@ import "./globals.css";
import type { Metadata } from "next"; import type { Metadata } from "next";
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Dr. Richard Feely", title: "Dr. Richard Feely | Home",
description: `Dr. Feely is a highly accomplished physician with over 25 years description: `Dr. Feely is a highly accomplished physician with over 25 years
of experience in osteopathic medicine, acupuncture, herbal medicine, and of experience in osteopathic medicine, acupuncture, herbal medicine, and
family practice. He specializes in the treatment of neuromusculoskeletal family practice. He specializes in the treatment of neuromusculoskeletal

View file

@ -1,5 +1,5 @@
const NeuroOcularRelease = () => { const NeuroOcularRelease = () => {
return <div>NeuroOcularRelease</div>; return <main>NeuroOcularRelease</main>;
}; };
export default NeuroOcularRelease; export default NeuroOcularRelease;

View file

@ -1,5 +1,5 @@
const Osteopathy = () => { const Osteopathy = () => {
return <div>Osteopathy</div>; return <main>Osteopathy</main>;
}; };
export default Osteopathy; export default Osteopathy;

View file

@ -1,5 +1,15 @@
import Accomplishments from "./views/Accomplishments";
import Bio from "./views/Bio";
import Landing from "./views/Landing";
const Home = () => { const Home = () => {
return <div>Home</div>; return (
<main>
<Landing></Landing>
<Bio></Bio>
<Accomplishments></Accomplishments>
</main>
);
}; };
export default Home; export default Home;

View file

@ -0,0 +1,17 @@
const Accomplishments = () => {
return (
<section className="text-primary-500">
<div className="h-screen w-full bg-primary-300 flex items-center">
<div className="w-11/12 lg:w-5/6 mx-auto flex items-center flex-col md:flex-row">
<div className="lg:basis-60">
<h1 className="z-[45] text-7xl lg:text-9xl font-cormorant pb-10">
Richard A. Feely, DO
</h1>
</div>
</div>
</div>
</section>
);
};
export default Accomplishments;

17
app/views/Bio.tsx Normal file
View file

@ -0,0 +1,17 @@
const Bio = () => {
return (
<section className="text-primary-500">
<div className="h-screen w-full bg-primary-100 flex items-center">
<div className="w-11/12 lg:w-5/6 mx-auto flex items-center flex-col md:flex-row">
<div className="basis-2/5">
<h1 className="z-[45] text-7xl lg:text-9xl font-cormorant pb-10">
Richard A. Feely, DO
</h1>
</div>
</div>
</div>
</section>
);
};
export default Bio;

35
app/views/Landing.tsx Normal file
View file

@ -0,0 +1,35 @@
const Landing = () => {
return (
<section className="text-primary-100">
<div className="min-h-screen w-full bg-primary-500 flex items-center relative z-[-2] overflow-hidden">
<div className="w-11/12 lg:w-5/6 mt-32 my-14 md:mt-12 md:my-0 mx-auto flex items-center flex-col gap-12 md:gap-4 md:flex-row md:justify-around">
<div className="basis-6/12">
<div className="relative">
<div className="before:absolute before:-left-52 before:-top-44 before:z-[-1] before:content-textAccent">
<h1 className="text-7xl lg:text-7xl font-cormorant pb-10">
Richard A. Feely, DO
</h1>
</div>
</div>
<h2 className="text-2xl">
Dr. Feely is a highly accomplished physician with over 25 years of
experience in osteopathic medicine, acupuncture, herbal medicine,
and family practice. He specializes in the treatment of
neuromusculoskeletal pain&mdash;especially back pain, neck pain
and headaches.
</h2>
</div>
<div className="basis-4/12 flex justify-center">
<img
className="shadow-superPortrait shadow-secondary-500 rounded-3xl max-w-sm w-full"
src="/dr_feely_cutout_headshot_2.png"
alt="Picture of Dr. Feely"
/>
</div>
</div>
</div>
</section>
);
};
export default Landing;

View file

@ -2,11 +2,16 @@ import { useState } from "react";
import NavLink from "./NavLink"; import NavLink from "./NavLink";
interface Props { interface Props {
currentPage: string;
setCurrentPage: (page: string) => void;
currentPageClasses: string; currentPageClasses: string;
} }
const NavPages = ({ currentPageClasses }: Props) => { const NavPages = ({
const [currentPage, setCurrentPage] = useState("/"); currentPage,
setCurrentPage,
currentPageClasses,
}: Props) => {
return ( return (
<> <>
<NavLink <NavLink

View file

@ -1,16 +1,44 @@
"use client"; "use client";
import { useState } from "react"; import { useEffect, useState } from "react";
import { Bars3Icon, XMarkIcon } from "@heroicons/react/24/solid"; import { Bars3Icon, XMarkIcon } from "@heroicons/react/24/solid";
import NavPages from "./NavPages"; import NavPages from "./NavPages";
const Navbar = () => { const Navbar = () => {
const [currentPage, setCurrentPage] = useState("/");
const [isTopOfPage, setIsTopOfPage] = useState(true);
const [menuActive, setMenuActive] = useState(false); const [menuActive, setMenuActive] = useState(false);
useEffect(() => {
const handleScroll = () => {
if (window.scrollY === 0) {
setIsTopOfPage(true);
} else {
setIsTopOfPage(false);
}
};
window.addEventListener("scroll", handleScroll);
return () => window.removeEventListener("scroll", handleScroll);
}, []);
return ( return (
<nav className="bg-primary-500 text-primary-100"> <nav
className={
"bg-primary-500 text-primary-100 fixed top-0 w-full " +
(isTopOfPage
? "bg-transparent"
: "z-40 bg-opacity-60 backdrop-blur-sm drop-shadow")
}
>
<div className="mx-auto w-11/12 lg:w-5/6 flex justify-between items-center"> <div className="mx-auto w-11/12 lg:w-5/6 flex justify-between items-center">
<div className="font-cormorant text-2xl p-5">Richard A. Feely, DO</div> <div
className={
"font-cormorant text-2xl p-5 " +
(isTopOfPage ? "text-transparent select-none" : "")
}
>
Richard A. Feely, DO
</div>
{/* Burger icon */} {/* Burger icon */}
<div className="md:hidden w-[30px] text-tertiary-300"> <div className="md:hidden w-[30px] text-tertiary-300">
@ -18,7 +46,7 @@ const Navbar = () => {
</div> </div>
{/* Burger menu */} {/* Burger menu */}
{menuActive ? ( {menuActive ? (
<div className="text-lg animate-fadeIn fixed bottom-0 right-0 z-50 h-full bg-secondary-500 drop-shadow-lg "> <div className="text-lg animate-fadeIn z-50 fixed top-0 right-0 h-screen bg-secondary-500 drop-shadow-lg ">
<div className="px-12 py-5 flex flex-col gap-6 text-primary-500 text-right"> <div className="px-12 py-5 flex flex-col gap-6 text-primary-500 text-right">
<div className="pb-3 flex justify-end "> <div className="pb-3 flex justify-end ">
<XMarkIcon <XMarkIcon
@ -26,7 +54,11 @@ const Navbar = () => {
onClick={() => setMenuActive((e) => !e)} onClick={() => setMenuActive((e) => !e)}
></XMarkIcon> ></XMarkIcon>
</div> </div>
<NavPages currentPageClasses="text-primary-100"></NavPages> <NavPages
currentPage={currentPage}
setCurrentPage={setCurrentPage}
currentPageClasses="text-primary-100"
></NavPages>
</div> </div>
</div> </div>
) : ( ) : (
@ -34,8 +66,17 @@ const Navbar = () => {
)} )}
{/* Nav Bar */} {/* Nav Bar */}
<div className="hidden md:flex font-abel tems-center gap-6 p-5 text-lg text-tertiary-300"> <div
<NavPages currentPageClasses="text-secondary-500"></NavPages> className={
"hidden md:flex font-abel tems-center gap-6 text-lg text-tertiary-300 " +
(isTopOfPage ? "px-5 py-24" : "p-5")
}
>
<NavPages
currentPage={currentPage}
setCurrentPage={setCurrentPage}
currentPageClasses="text-secondary-500"
></NavPages>
</div> </div>
</div> </div>
</nav> </nav>

BIN
public/dr_feely_cutout.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 MiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
public/feelycenter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
public/franciscan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
public/malta.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 KiB

BIN
public/tcm_tests.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
public/text_accent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
public/womack.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View file

@ -47,6 +47,12 @@ module.exports = {
fadeIn: "fadeIn 75ms ease-in", fadeIn: "fadeIn 75ms ease-in",
fadeOut: "fadeOut 500ms ease-out", fadeOut: "fadeOut 500ms ease-out",
}, },
boxShadow: {
superPortrait: "75px 75px 250px 0px",
},
content: {
textAccent: "url('/text_accent.png')",
},
}, },
}, },
plugins: [], plugins: [],