diff --git a/package-lock.json b/package-lock.json index d257486b3..d5bca6c14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "next14githubstarter", + "name": "next14starter", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "next14githubstarter", + "name": "next14starter", "version": "0.1.0", "dependencies": { "next": "14.0.4", diff --git a/public/about.png b/public/about.png new file mode 100644 index 000000000..eb43db841 Binary files /dev/null and b/public/about.png differ diff --git a/public/brands.png b/public/brands.png new file mode 100644 index 000000000..010adff76 Binary files /dev/null and b/public/brands.png differ diff --git a/public/contact.png b/public/contact.png new file mode 100644 index 000000000..2a1cb78fa Binary files /dev/null and b/public/contact.png differ diff --git a/public/hero.gif b/public/hero.gif new file mode 100644 index 000000000..cadda34b6 Binary files /dev/null and b/public/hero.gif differ diff --git a/public/menu.png b/public/menu.png new file mode 100644 index 000000000..b0576c68d Binary files /dev/null and b/public/menu.png differ diff --git a/public/noavatar.png b/public/noavatar.png new file mode 100644 index 000000000..f425e6705 Binary files /dev/null and b/public/noavatar.png differ diff --git a/src/app/about/about.module.css b/src/app/about/about.module.css new file mode 100644 index 000000000..4a9c0e5de --- /dev/null +++ b/src/app/about/about.module.css @@ -0,0 +1,5 @@ +.imgContainer { + position: relative; + width: 100%; + height: 500px; +} \ No newline at end of file diff --git a/src/app/about/page.jsx b/src/app/about/page.jsx new file mode 100644 index 000000000..370de3dd6 --- /dev/null +++ b/src/app/about/page.jsx @@ -0,0 +1,14 @@ +import Image from "next/image" +import styles from "./about.module.css" + +function AboutPage() { + return ( +
+
+ About +
+
+ ) +} + +export default AboutPage \ No newline at end of file diff --git a/src/app/admin/page.jsx b/src/app/admin/page.jsx new file mode 100644 index 000000000..ba2264700 --- /dev/null +++ b/src/app/admin/page.jsx @@ -0,0 +1,9 @@ +import React from 'react' + +function AdminPage() { + return ( +
AdminPage
+ ) +} + +export default AdminPage \ No newline at end of file diff --git a/src/app/blog/[slug]/page.jsx b/src/app/blog/[slug]/page.jsx new file mode 100644 index 000000000..57b18d1f9 --- /dev/null +++ b/src/app/blog/[slug]/page.jsx @@ -0,0 +1,9 @@ +import React from 'react' + +function SinglePostPage() { + return ( +
SinglePostPage
+ ) +} + +export default SinglePostPage \ No newline at end of file diff --git a/src/app/blog/blog.module.css b/src/app/blog/blog.module.css new file mode 100644 index 000000000..b90efc2cd --- /dev/null +++ b/src/app/blog/blog.module.css @@ -0,0 +1,3 @@ +.container{ + +} \ No newline at end of file diff --git a/src/app/blog/layout.js b/src/app/blog/layout.js new file mode 100644 index 000000000..a6e451042 --- /dev/null +++ b/src/app/blog/layout.js @@ -0,0 +1,10 @@ +const BlogLayout = ({children}) => { + return ( +
+

This is the Blog Layout

+ {children} +
+ ); +}; + +export default BlogLayout; \ No newline at end of file diff --git a/src/app/blog/page.jsx b/src/app/blog/page.jsx new file mode 100644 index 000000000..022b0c4a3 --- /dev/null +++ b/src/app/blog/page.jsx @@ -0,0 +1,11 @@ +import styles from './blog.module.css' + +function BlogPage() { + return ( +
+ +
+ ) +} + +export default BlogPage \ No newline at end of file diff --git a/src/app/contact/contact.module.css b/src/app/contact/contact.module.css new file mode 100644 index 000000000..cbc4a908b --- /dev/null +++ b/src/app/contact/contact.module.css @@ -0,0 +1,45 @@ +.container{ + display: flex; + gap: 100px; + align-items: center; +} + +.imgContainer{ + flex: 1; + position: relative; + height: 500px; +} + +.img{ + object-fit: contain; +} + +.formContainer{ + flex: 1; + +} + +.form{ + display: flex; + flex-direction: column; + gap: 20px; +} + +.form input, .form textarea { + padding: 20px; + border-radius: 5px; + border: none; + outline: none; + background-color: var(--bgSoft); + color: var(--text); +} + +.form button{ + padding: 20px; + background-color: var(--btn); + color: var(--text); + font-weight: bold; + border: none; + border-radius: 5px; + cursor: pointer; +} \ No newline at end of file diff --git a/src/app/contact/page.jsx b/src/app/contact/page.jsx new file mode 100644 index 000000000..59b4e3f02 --- /dev/null +++ b/src/app/contact/page.jsx @@ -0,0 +1,24 @@ +import styles from './contact.module.css' +import Image from 'next/image' + +function ContactPage() { + return ( +
+
+ +
+
+
+ + + + + +
+
+ +
+ ) +} + +export default ContactPage \ No newline at end of file diff --git a/src/app/error.jsx b/src/app/error.jsx new file mode 100644 index 000000000..9bd0730cb --- /dev/null +++ b/src/app/error.jsx @@ -0,0 +1,12 @@ +'use client' +import React from 'react'; +const Error = ({ statusCode }) => { + return ( +
+

Error {statusCode}

+

Oops! Something went wrong.

+
+ ); +}; + +export default Error; \ No newline at end of file diff --git a/src/app/globals.css b/src/app/globals.css index e69de29bb..d1d08d198 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -0,0 +1,77 @@ +:root { + --bg: #0d0c22; + --bgSoft: #2d2b42; + --text: white; + --textSoft: #e5e5e5; + --btn: #3673fd; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + } + +body { + background-color: var(--bg); + color: var(--text); +} + +a { + text-decoration: none; + color: inherit; +} + +.container { + width: 1536px; + margin: auto; + padding-left: 50px; + padding-right: 50px; + min-height: 100vh; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +@media (max-width: 1536px) { + .container { + width: 1366px; + } + } + + @media (max-width: 1366px) { + .container { + width: 1280px; + } + } + + @media (max-width: 1280px) { + .container { + width: 1024px; + padding-left: 20px; + padding-right: 20px; + } + } + + @media (max-width: 1024px) { + .container { + width: 768px; + } + } + + @media (max-width: 768px) { + .container { + width: 640px; + } + } + + @media (max-width: 640px) { + .container { + width: 475px; + } + } + @media (max-width: 475px) { + .container { + width: 380px; + } + } \ No newline at end of file diff --git a/src/app/home.module.css b/src/app/home.module.css new file mode 100644 index 000000000..805176c9f --- /dev/null +++ b/src/app/home.module.css @@ -0,0 +1,49 @@ +.container { + display: flex; + gap: 100px; +} + +.textContainer { + flex: 1; + display: flex; + flex-direction: column; + gap: 50px; +} + +.title{ + font-size: 96px; +} + +.desc{ + font-size: 20px; +} + +.buttons{ + display: flex; + gap: 20px; +} + +.button{ + padding: 20px; + min-width: 120px; + cursor: pointer; + border: none; + border-radius: 5px; +} + +.button:first-child{ + background-color: #7f3cd6; + color: white; +} + +.imgContainer { + flex: 1; + position: relative; +} + +.brands{ + width: 500px; + height: 50px; + position: relative; + filter: grayscale(100%) +} diff --git a/src/app/layout.js b/src/app/layout.js index e680e139d..cae78470f 100644 --- a/src/app/layout.js +++ b/src/app/layout.js @@ -1,5 +1,7 @@ import { Inter } from 'next/font/google' import './globals.css' +import Navbar from "@/components/navbar/Navbar" +import Footer from "@/components/footer/Footer" const inter = Inter({ subsets: ['latin'] }) @@ -11,7 +13,13 @@ export const metadata = { export default function RootLayout({ children }) { return ( - {children} + +
+ + {children} +
+ ) } \ No newline at end of file diff --git a/src/app/loading.jsx b/src/app/loading.jsx new file mode 100644 index 000000000..ae245cc66 --- /dev/null +++ b/src/app/loading.jsx @@ -0,0 +1,10 @@ +import React from 'react'; +const Loading = () => { + return ( +
+

Loading

+
+ ); +}; + +export default Loading; \ No newline at end of file diff --git a/src/app/not-found.jsx b/src/app/not-found.jsx new file mode 100644 index 000000000..358de1334 --- /dev/null +++ b/src/app/not-found.jsx @@ -0,0 +1,12 @@ +import Link from 'next/link' +const NotFound = () => { + return ( +
+

404 - Page Not Found

+

The page you are looking for does not exist.

+ Return Home +
+ ); +}; + +export default NotFound; \ No newline at end of file diff --git a/src/app/page.jsx b/src/app/page.jsx index 00b9a6a96..35189babd 100644 --- a/src/app/page.jsx +++ b/src/app/page.jsx @@ -1,5 +1,25 @@ +import styles from './home.module.css'; +import Image from 'next/image'; + const Home = () => { - return
Hello World!
; + return
+
+

Creative Thoughts Agency.

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum animi vitae quidem nostrum odit temporibus minima maiores odio numquam ullam vel provident quaerat voluptas, placeat, qui eos natus ipsa quam! +

+
+ + +
+
+ +
+
+
+ +
+
; }; export default Home; \ No newline at end of file diff --git a/src/components/footer/Footer.jsx b/src/components/footer/Footer.jsx new file mode 100644 index 000000000..e592846f3 --- /dev/null +++ b/src/components/footer/Footer.jsx @@ -0,0 +1,18 @@ +import styles from './footer.module.css' + +const Footer = () => { + return ( +
+
+
+ Test creative thoughts © All rights reserved. +
+ + + + +
+ ) +}; + +export default Footer; \ No newline at end of file diff --git a/src/components/footer/footer.module.css b/src/components/footer/footer.module.css new file mode 100644 index 000000000..4205c8e1a --- /dev/null +++ b/src/components/footer/footer.module.css @@ -0,0 +1,15 @@ +.containter{ + height: 100px; + display: flex; + align-items: center; + justify-content: space-between; + color: gray; +} + +.logo{ + font-weight: bold; +} + +.text{ + font-size: 12px; +} \ No newline at end of file diff --git a/src/components/navbar/Navbar.jsx b/src/components/navbar/Navbar.jsx new file mode 100644 index 000000000..a2343a848 --- /dev/null +++ b/src/components/navbar/Navbar.jsx @@ -0,0 +1,16 @@ +import Link from "next/link" +import styles from "./navbar.module.css" +import Links from "./link/Links" + +const NavBar = () => { + return ( +
+ Logo +
+ +
+
+ ) +}; + +export default NavBar; \ No newline at end of file diff --git a/src/components/navbar/link/Links.jsx b/src/components/navbar/link/Links.jsx new file mode 100644 index 000000000..0870fccd6 --- /dev/null +++ b/src/components/navbar/link/Links.jsx @@ -0,0 +1,66 @@ +"use client"; +import styles from './links.module.css'; +import NavLink from './navLink/NavLink'; +import React, { useState } from 'react'; + +const Links = () => { + + const [open, setOpen] = useState(false); + + const links = [ + { + title: "Homepage", + path: "/", + }, + { + title: "About", + path: "/about", + }, + { + title: "Contact", + path: "/contact", + }, + { + title: "Blog", + path: "/blog", + + }, + + ]; + const session = true; + const isAdmin = true; + + + return ( +
+
{links.map((link=>( + + )))} + {session ? ( + <> + { + isAdmin && ( + + ) + } + + + ) : ( + + ) + + } +
+ + { + open &&
+ {links.map((link) => ( + + ))} +
+ } +
+ ); +}; + +export default Links; \ No newline at end of file diff --git a/src/components/navbar/link/links.module.css b/src/components/navbar/link/links.module.css new file mode 100644 index 000000000..79d8c9ce2 --- /dev/null +++ b/src/components/navbar/link/links.module.css @@ -0,0 +1,42 @@ +.links { + display: flex; + align-items: center; + gap: 10px; +} + +.logout { + padding: 10px; + cursor: pointer; + font-weight: bold; +} + +.mobileLinks, .menuButton { + display: none; +} + + + +@media (max-width: 768px) { + .links{ + display: none; + } + + .mobileLinks { + position: absolute; + top: 100px; + right: 0; + width: 50%; + height: calc(100vh - 100px); + /* background-color: var(--bg); */ + background-color: purple; + display: flex; + flex-direction: column; + align-items: center; + gap: 10px; + } + + .menuButton { + display: block; + cursor: pointer; + } +} \ No newline at end of file diff --git a/src/components/navbar/link/navLink/navLink.jsx b/src/components/navbar/link/navLink/navLink.jsx new file mode 100644 index 000000000..4b8e8ac4d --- /dev/null +++ b/src/components/navbar/link/navLink/navLink.jsx @@ -0,0 +1,15 @@ +"use client" + +import React from 'react'; +import styles from './navLink.module.css'; +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; + +const NavLink = ({ item }) => { + const pathName = usePathname(); + return ( + {item.title} + ); +}; + +export default NavLink; \ No newline at end of file diff --git a/src/components/navbar/link/navLink/navLink.module.css b/src/components/navbar/link/navLink/navLink.module.css new file mode 100644 index 000000000..13e909ad2 --- /dev/null +++ b/src/components/navbar/link/navLink/navLink.module.css @@ -0,0 +1,12 @@ +.container { + min-width: 100px; + padding: 10px; + border-radius: 20px; + font-weight: 500; + text-align: center; +} + +.active { + background-color: var(--text); + color: var(--bg); +} \ No newline at end of file diff --git a/src/components/navbar/navbar.module.css b/src/components/navbar/navbar.module.css new file mode 100644 index 000000000..60e671b5e --- /dev/null +++ b/src/components/navbar/navbar.module.css @@ -0,0 +1,12 @@ +.container { + /* background-color: rgb(86, 86, 155); */ + height: 100px; + display: flex; + align-items: center; + justify-content: space-between; +} + +.logo { + font-size: 30px; + font-weight: bold; +} \ No newline at end of file diff --git a/src/components/postCard/postCard.jsx b/src/components/postCard/postCard.jsx new file mode 100644 index 000000000..7f00dc38f --- /dev/null +++ b/src/components/postCard/postCard.jsx @@ -0,0 +1,11 @@ + + +const PostCard = () => { + return ( +
+ {/* Your component content goes here */} +
+ ); +}; + +export default PostCard; \ No newline at end of file diff --git a/src/components/postCard/postCard.module.css b/src/components/postCard/postCard.module.css new file mode 100644 index 000000000..e69de29bb