diff --git a/components/mainmenu.module.css b/components/mainmenu.module.css deleted file mode 100644 index 85d3b03..0000000 --- a/components/mainmenu.module.css +++ /dev/null @@ -1,73 +0,0 @@ -.menu { - border: 1px solid black; - height: 100%; - width: 100%; - display: grid; - justify-items: center; - padding: 2rem; - overflow-y: auto; - max-height: 100vh; - scrollbar-width: none; - grid-row-gap: 0.5em; -} - -.menuLogo { - display: grid; - place-items: center; - cursor: pointer; -} - -.menuLogo > h2 { - margin-top: 0; -} - -.menuLogo > img { - width: 50%; - height: auto; - place-self: start center; -} - -.menu > hr { - height: 0; - width: 100%; - border: none; - border-top: 0.3rem dotted black; - margin: 2rem; -} - -.menuOption { - justify-self: start; - display: grid; - grid-template-areas: 'img title' '. subtitle'; - grid-template-columns: auto 1fr; - align-items: center; - grid-column-gap: 1em; - cursor: pointer; - padding: 0.4em 1em; - width: 100%; -} - -.menuOption:hover { - background-color: var(--color-main-base); - border-radius: 1em; -} - -.menuOption > * { - margin: 0; -} - -.menuOption > img { - width: 1.2em; - height: auto; - grid-area: img; -} - -.menuOption > h3 { - grid-area: title; - font-size: 150%; - font-weight: 600; -} - -.menuOption > p { - grid-area: subtitle; -} \ No newline at end of file diff --git a/components/mainmenu.tsx b/components/mainmenu.tsx index 08ff103..7eac8c5 100644 --- a/components/mainmenu.tsx +++ b/components/mainmenu.tsx @@ -1,75 +1,67 @@ import Link from 'next/link' -import styles from './mainmenu.module.css' +import styles from '../styles/mainmenu.module.css' +import { useRouter } from 'next/router' export default function MainMenu() { + + const router = useRouter(); + + function generateMenuOption(url: string, icon: string, title: string, subtitle?: string) { + const classActive = router.asPath === url ? styles.active : null; + return ( + +
+ +

{title}

+

{subtitle}

+
+ + ) + } + return ( +
- +

Accord's Library

-
+
- -
- -

Library

-

Browse all physical and digital media

+ {generateMenuOption("/library", "/icons/book-solid.svg", "Library", "Browse all physical and digital media")} + {generateMenuOption("/hubs", "/icons/hubs.svg", "Hubs", "Explore all content of a specific game/series")} + {generateMenuOption("/chronology", "/icons/timeline-solid.svg", "Chronology", "Follow all events in chronological order")} + +
+ + {generateMenuOption("/archive", "/icons/box-archive-solid.svg", "Archive")} + {generateMenuOption("/news", "/icons/newspaper-solid.svg", "News")} + {generateMenuOption("/gallery", "/icons/images-solid.svg", "Gallery")} + {generateMenuOption("/about-us", "/icons/circle-info-solid.svg", "About us")} + +
+ +
+

This website’s content is made available under CC-BY-SA unless otherwise noted.

+ +
+ + + +
+
+

Accord’s Library is not affiliated with or endorsed by SQUARE ENIX CO. LTD. All game assets and promotional materials belongs to © SQUARE ENIX CO. LTD.

+
+ +
- - - -
- -

Hubs

-

Explore all content of a specific game/series

-
- - - -
- -

Chronology

-

Follow all events in chronological order

-
- - -
- - -
- -

Archive

-
- - - -
- -

News

-
- - - -
- -

Gallery

-
- - - -
- -

About us

-
- - +
) } \ No newline at end of file diff --git a/components/menu.tsx b/components/menu.tsx new file mode 100644 index 0000000..974b32b --- /dev/null +++ b/components/menu.tsx @@ -0,0 +1,16 @@ +import MainMenu from './mainmenu' +import SubMenu from './submenu' +import styles from '../styles/menu.module.css' + +export default function Menu() { + return ( +
+ + +
+ ) +} + + + + diff --git a/components/submenu.tsx b/components/submenu.tsx new file mode 100644 index 0000000..191eae0 --- /dev/null +++ b/components/submenu.tsx @@ -0,0 +1,10 @@ +import Link from 'next/link' +import styles from '../styles/submenu.module.css' + +export default function MainMenu() { + return ( +
+ +
+ ) +} \ No newline at end of file diff --git a/pages/chronology/index.tsx b/pages/chronology/index.tsx new file mode 100644 index 0000000..6c6bce6 --- /dev/null +++ b/pages/chronology/index.tsx @@ -0,0 +1,20 @@ +import type { NextPage } from 'next' +import Head from 'next/head' +import Menu from '../../components/menu' + +const Chronology: NextPage = () => { + return ( + <> + + Library + + + + + + + + ) +} + +export default Chronology diff --git a/pages/index.tsx b/pages/index.tsx index 440b2a9..14867e3 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,26 +1,19 @@ import type { NextPage } from 'next' import Head from 'next/head' -import styles from '../styles/Home.module.css' -import MainMenu from '../components/mainmenu' +import Menu from '../components/menu' const Home: NextPage = () => { return ( -
+ <> - Create Next App + Accord’s Library - Discover • Analyse • Translate • Archive - - -
- -
- -
- -
+ + + ) } diff --git a/pages/library.tsx b/pages/library.tsx index 471eede..4fd938d 100644 --- a/pages/library.tsx +++ b/pages/library.tsx @@ -1,26 +1,19 @@ import type { NextPage } from 'next' import Head from 'next/head' -import styles from '../styles/Home.module.css' -import MainMenu from '../components/mainmenu' +import Menu from '../components/menu' const Home: NextPage = () => { return ( -
+ <> Library - + -
- -
- -
- -
+ ) } diff --git a/public/icons/accords.svg b/public/icons/accords.svg new file mode 100644 index 0000000..f0cea5f --- /dev/null +++ b/public/icons/accords.svg @@ -0,0 +1,138 @@ + + + + + +Created by potrace 1.16, written by Peter Selinger 2001-2019 + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/icons/archive.png b/public/icons/archive.png deleted file mode 100644 index de4c0a2..0000000 Binary files a/public/icons/archive.png and /dev/null differ diff --git a/public/icons/books.png b/public/icons/books.png deleted file mode 100644 index 6405e4c..0000000 Binary files a/public/icons/books.png and /dev/null differ diff --git a/public/icons/box-archive-solid.svg b/public/icons/box-archive-solid.svg new file mode 100644 index 0000000..0c0ad85 --- /dev/null +++ b/public/icons/box-archive-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/chronology.png b/public/icons/chronology.png deleted file mode 100644 index a7c8838..0000000 Binary files a/public/icons/chronology.png and /dev/null differ diff --git a/public/icons/circle-info-solid.svg b/public/icons/circle-info-solid.svg new file mode 100644 index 0000000..544ac66 --- /dev/null +++ b/public/icons/circle-info-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/comment.png b/public/icons/comment.png deleted file mode 100644 index e69de29..0000000 diff --git a/public/icons/creative-commons-brands.svg b/public/icons/creative-commons-brands.svg new file mode 100644 index 0000000..0ab1e8e --- /dev/null +++ b/public/icons/creative-commons-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/creative-commons-by-brands.svg b/public/icons/creative-commons-by-brands.svg new file mode 100644 index 0000000..6995901 --- /dev/null +++ b/public/icons/creative-commons-by-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/creative-commons-sa-brands.svg b/public/icons/creative-commons-sa-brands.svg new file mode 100644 index 0000000..229c271 --- /dev/null +++ b/public/icons/creative-commons-sa-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/discord-brands.svg b/public/icons/discord-brands.svg new file mode 100644 index 0000000..c5ec927 --- /dev/null +++ b/public/icons/discord-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/gallery.png b/public/icons/gallery.png deleted file mode 100644 index 5163819..0000000 Binary files a/public/icons/gallery.png and /dev/null differ diff --git a/public/icons/github-brands.svg b/public/icons/github-brands.svg new file mode 100644 index 0000000..4e057ba --- /dev/null +++ b/public/icons/github-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/hubs.svg b/public/icons/hubs.svg new file mode 100644 index 0000000..bc6fcf8 --- /dev/null +++ b/public/icons/hubs.svg @@ -0,0 +1,32 @@ + + + + + diff --git a/public/icons/images-solid.svg b/public/icons/images-solid.svg new file mode 100644 index 0000000..a23cdc6 --- /dev/null +++ b/public/icons/images-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/info.png b/public/icons/info.png deleted file mode 100644 index 83a940e..0000000 Binary files a/public/icons/info.png and /dev/null differ diff --git a/public/icons/news.png b/public/icons/news.png deleted file mode 100644 index b70d9d1..0000000 Binary files a/public/icons/news.png and /dev/null differ diff --git a/public/icons/newspaper-solid.svg b/public/icons/newspaper-solid.svg new file mode 100644 index 0000000..89ab7ad --- /dev/null +++ b/public/icons/newspaper-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/timeline-solid.svg b/public/icons/timeline-solid.svg new file mode 100644 index 0000000..6177ac2 --- /dev/null +++ b/public/icons/timeline-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/timeline.png b/public/icons/timeline.png deleted file mode 100644 index e69de29..0000000 diff --git a/public/icons/toggle-off.png b/public/icons/toggle-off.png deleted file mode 100644 index e69de29..0000000 diff --git a/public/icons/toggle-on.png b/public/icons/toggle-on.png deleted file mode 100644 index a5152fd..0000000 Binary files a/public/icons/toggle-on.png and /dev/null differ diff --git a/public/icons/translation.png b/public/icons/translation.png deleted file mode 100644 index b70d9d1..0000000 Binary files a/public/icons/translation.png and /dev/null differ diff --git a/styles/globals.css b/styles/globals.css index c007c98..6c2d558 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -1,35 +1,57 @@ +@import url('https://fonts.googleapis.com/css2?family=Vollkorn:wght@400;500;600;700;800;900&display=swap'); + +@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap'); + + :root { --color-main-light: #ffedd8; --color-main-base: #e6ccb2; --color-main-dark: #9c6644; --color-main-black: #1B1811; + --filter-color-main-dark: invert(44%) sepia(29%) saturate(806%) hue-rotate(340deg) brightness(91%) contrast(85%); } html, body { padding: 0; margin: 0; - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, - Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; background-color: var(--color-main-light); + color: var(--color-main-black); +} + +h1, h2, h3, h4, h5, h6 { + font-family: "Vollkorn"; + font-weight: 700; } a { color: inherit; - text-decoration: none; + text-decoration: underline dotted var(--color-main-dark); + transition: .1s color; + text-underline-offset: 0.15em; +} + +a:hover { + color: var(--color-main-dark); } * { box-sizing: border-box; + font-family: "Zen Maru Gothic"; + font-weight: 500; } button { + display: grid; + place-content: center; + place-items: center; border: .1rem solid var(--color-main-dark); color: var(--color-main-dark); background: var(--color-main-light); border-radius: 100vmax; padding: 0.4em 1em; cursor: pointer; + transition: .1s color, .1s background-color; } button:hover { diff --git a/styles/mainmenu.module.css b/styles/mainmenu.module.css new file mode 100644 index 0000000..10650db --- /dev/null +++ b/styles/mainmenu.module.css @@ -0,0 +1,122 @@ +.menu { + border-right: 1px solid black; + height: 100%; + width: 100%; + display: grid; + justify-items: center; + padding: 2rem; + overflow-y: auto; + max-height: 100vh; + grid-row-gap: 0.5em; + place-content: start; + scrollbar-width: none; +} + +.menu::-webkit-scrollbar { + display: none; +} + +.menu > hr { + height: 0; + width: 100%; + border: none; + border-top: 0.3rem dotted black; + margin: 2rem; +} + +.menuLogo { + display: grid; + place-items: center; + cursor: pointer; +} + +.menuLogo > h2 { + margin-top: 1rem; +} + +.menuLogo > img { + width: 50%; + height: auto; + place-self: start center; +} + +.menuOption { + justify-self: start; + display: grid; + grid-template-areas: 'img title' '. subtitle'; + grid-template-columns: auto 1fr; + align-items: center; + border-radius: 1em; + grid-column-gap: 1em; + cursor: pointer; + padding: 0.6em 1.2em; + width: 100%; + transition: .1s background-color; +} + +.menuOption:hover, .menuOption.active { + background-color: var(--color-main-base); +} + +.menuOption > * { + margin: 0; +} + +.menuOption > img { + width: 1.2em; + height: auto; + grid-area: img; +} + +.menuOption > h3 { + grid-area: title; + font-size: 150%; +} + +.menuOption > p { + grid-area: subtitle; +} + +.menuFooter { + text-align: center; +} + +.menuFooterCC { + margin-top: 1rem; + margin-bottom: 2rem; + display: grid; + height: 1rem; + grid-auto-flow: column; + place-content: center; + grid-gap: .2rem; +} + +.menuFooterCC img { + height: 1.5rem; + width: auto; +} + +.menuFooterCC:hover img { + filter: var(--filter-color-main-dark); +} + + +.menuFooterSocials { + margin-top: 3rem; + margin-bottom: 1rem; + display: grid; + height: 1rem; + grid-auto-flow: column; + place-content: center; + grid-gap: 2rem; +} + +.menuFooterSocials img { + height: 2rem; + width: auto; + transition: .1s filter; +} + +.menuFooterSocials img:hover { + filter: var(--filter-color-main-dark); +} \ No newline at end of file diff --git a/styles/Home.module.css b/styles/menu.module.css similarity index 56% rename from styles/Home.module.css rename to styles/menu.module.css index e6722bb..6d8b7a6 100644 --- a/styles/Home.module.css +++ b/styles/menu.module.css @@ -1,6 +1,6 @@ .container { display: grid; - grid-template-columns: 20rem 1fr 5fr; + grid-template-columns: 20rem 20rem 1fr; min-height: 100vh; } diff --git a/styles/submenu.module.css b/styles/submenu.module.css new file mode 100644 index 0000000..a7e2c20 --- /dev/null +++ b/styles/submenu.module.css @@ -0,0 +1,13 @@ +.menu { + border-right: 1px solid black; + height: 100%; + width: 100%; + display: grid; + justify-items: center; + padding: 2rem; + overflow-y: auto; + max-height: 100vh; + grid-row-gap: 0.5em; + place-content: start; + scrollbar-width: none; + } \ No newline at end of file