diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..51387b0
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,7 @@
+{
+ "bracketSpacing": true,
+ "singleQuote": false,
+ "useTabs": true,
+ "tabWidth": 2,
+ "semi": true
+}
diff --git a/assets/logo.svg b/assets/logo.svg
new file mode 100644
index 0000000..a9ed500
--- /dev/null
+++ b/assets/logo.svg
@@ -0,0 +1,28 @@
+
+
+
+Gractwo Main Logo
+
+
+
+
+
+
diff --git a/components/Footer/Footer.tsx b/components/Footer/Footer.tsx
new file mode 100644
index 0000000..4a1f729
--- /dev/null
+++ b/components/Footer/Footer.tsx
@@ -0,0 +1,9 @@
+const Footer = () => {
+ return (
+
+
© Gractwo 2020-{new Date().getFullYear()}
+
+ );
+};
+
+export default Footer;
diff --git a/components/Navigation/Navigation.module.scss b/components/Navigation/Navigation.module.scss
new file mode 100644
index 0000000..c233eb8
--- /dev/null
+++ b/components/Navigation/Navigation.module.scss
@@ -0,0 +1,36 @@
+.nav {
+ display: flex;
+ background-color: var(--black1);
+ min-height: 4rem;
+}
+.link {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ color: inherit;
+ text-decoration: none;
+ padding: 0 2rem;
+ height: auto;
+ user-select: none;
+ &:hover {
+ background: var(--backdrop);
+ color: var(--color);
+ }
+}
+.profile {
+ margin-left: auto;
+ background: var(--color);
+ color: var(--backdrop);
+}
+.logo {
+ padding: 0 1rem;
+ transition-duration: 100ms;
+ user-select: none;
+ &:hover {
+ background: var(--backdrop);
+ cursor: pointer;
+ }
+ &:active {
+ transform: scale(1.1);
+ }
+}
diff --git a/components/Navigation/Navigation.tsx b/components/Navigation/Navigation.tsx
new file mode 100644
index 0000000..e3f514c
--- /dev/null
+++ b/components/Navigation/Navigation.tsx
@@ -0,0 +1,43 @@
+import styles from "./Navigation.module.scss";
+import GractwoLogo from "../logo";
+import Link from "next/link";
+
+const PageNavigation = () => {
+ let username: string = "";
+ return (
+ <>
+
+
+ {/*
Gractwo! */}
+
+ główna
+
+
+ o gractwie
+
+
+ cytaty
+
+
+ rankingi
+
+
+ zaloguj się
+
+
+ {username ? username : "twój profil"}
+
+
+ >
+ );
+};
+
+export default PageNavigation;
diff --git a/components/SEO.tsx b/components/SEO.tsx
new file mode 100644
index 0000000..1a915f5
--- /dev/null
+++ b/components/SEO.tsx
@@ -0,0 +1,22 @@
+import Head from "next/head";
+
+type seoprops = {
+ title?: string;
+ noatsign?: boolean; // simply add "noatsign" as property to element
+ description?: string;
+};
+
+const ComponentSEO = ({ title, noatsign, description }: seoprops) => {
+ const defaultDescription = "Witryna internetowa Gractwa.";
+ return (
+
+
+ {title ? `${title}${noatsign ? "" : " @ gractwo.pl"}` : "gractwo.pl"}
+
+
+
+
+ );
+};
+
+export default ComponentSEO;
diff --git a/components/logo.tsx b/components/logo.tsx
new file mode 100644
index 0000000..2cbc3f9
--- /dev/null
+++ b/components/logo.tsx
@@ -0,0 +1,56 @@
+import { SVGProps } from "react";
+
+type logoprops = {
+ width?: number;
+ height?: number;
+} & React.SVGProps;
+
+const GractwoLogo = ({ width, height, ...props }: logoprops) => {
+ return (
+
+ Gractwo Main Logo
+
+
+
+
+ );
+};
+
+export default GractwoLogo;
diff --git a/data/config.json b/data/config.json
new file mode 100644
index 0000000..43340e7
--- /dev/null
+++ b/data/config.json
@@ -0,0 +1,80 @@
+{
+ "splashes": [
+ {
+ "body": "ona jest narysowana debilu",
+ "author": "jamesen"
+ },
+ {
+ "body": "idą jak surykatki na śmierć puszczone",
+ "author": "mollin"
+ },
+ {
+ "body": "jak spotkam stacha będziemy się napierdalać",
+ "author": "KuOlek"
+ },
+ {
+ "body": "to nie kwestia fetyszu, to kwestia prawa izraela",
+ "author": "stachowiak"
+ },
+ {
+ "body": "czemu ten szkielet ma oczy i czilluje",
+ "author": "stachowiak"
+ },
+ {
+ "body": "decymalizacja człowieka",
+ "author": "elephant / suoń"
+ },
+ {
+ "body": "pizdeczka... z całym szacunkiem",
+ "author": "bavil gravlax"
+ },
+ {
+ "body": "mam dwunastometrowego kija w dupie",
+ "author": "stachowiak"
+ },
+ {
+ "body": "pamięć wody o jabłku",
+ "author": "maciuś"
+ },
+ {
+ "body": "właśnie piszę biblię",
+ "author": "elephant / suoń"
+ },
+ {
+ "body": "bitwa o chromosom",
+ "author": "mollin"
+ }
+ ],
+ "links": [
+ {
+ "name": "Discord",
+ "href": "https://discord.gg/NBXq95C",
+ "hrefalias": ["/discord", "/dsc", "/dc"],
+ "desc": "Nasz serwer na Discordzie!"
+ },
+ {
+ "name": "YouTube",
+ "href": "https://www.youtube.com/@gractwopl",
+ "hrefalias": ["/youtube", "/yt"],
+ "desc": "Nasz kanał na YouTubie!"
+ },
+ {
+ "name": "Twitter",
+ "href": "https://twitter.com/gractwo",
+ "hrefalias": ["/twitter", "/twt"],
+ "desc": "Nasz profil na Twitterze!"
+ },
+ {
+ "name": "GitHub",
+ "href": "https://github.com/gractwo",
+ "hrefalias": ["/github", "/gh"],
+ "desc": "Nasz org na GitHubie!"
+ },
+ {
+ "name": "Kod Źródłowy",
+ "href": "https://github.com/gractwo/gractwo-web",
+ "hrefalias": ["/source", "/oss"],
+ "desc": "Kod źródłowy naszej strony internetowej."
+ }
+ ]
+}
diff --git a/next.config.js b/next.config.js
index ae88795..ff29638 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,7 +1,21 @@
+const { links } = require("./data/config.json");
+
/** @type {import('next').NextConfig} */
const nextConfig = {
- reactStrictMode: true,
- swcMinify: true,
-}
+ reactStrictMode: true,
+ swcMinify: true,
+ async redirects() {
+ return links
+ .filter((link) => !!link.hrefalias)
+ .map((link) =>
+ link.hrefalias.map((source) => ({
+ source,
+ destination: link.href,
+ permanent: false,
+ }))
+ )
+ .flat();
+ },
+};
-module.exports = nextConfig
+module.exports = nextConfig;
diff --git a/package-lock.json b/package-lock.json
index 5fd6aa7..8678f5a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,7 @@
"next": "13.0.6",
"react": "18.2.0",
"react-dom": "18.2.0",
+ "sass": "^1.56.2",
"typescript": "4.9.4"
}
},
@@ -556,6 +557,18 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -668,6 +681,14 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -738,6 +759,43 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/client-only": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
@@ -1492,6 +1550,19 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -1723,6 +1794,11 @@
"node": ">= 4"
}
},
+ "node_modules/immutable": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz",
+ "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ=="
+ },
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -1784,6 +1860,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-boolean-object": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
@@ -2225,6 +2312,14 @@
}
}
},
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -2551,6 +2646,17 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
"node_modules/regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
@@ -2665,6 +2771,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/sass": {
+ "version": "1.56.2",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.2.tgz",
+ "integrity": "sha512-ciEJhnyCRwzlBCB+h5cCPM6ie/6f8HrhZMQOf5vlU60Y1bI1rx5Zb0vlDZvaycHsg/MqFfF1Eq2eokAa32iw8w==",
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/scheduler": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
@@ -3366,6 +3488,15 @@
"color-convert": "^2.0.1"
}
},
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -3451,6 +3582,11 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -3496,6 +3632,31 @@
"supports-color": "^7.1.0"
}
},
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
"client-only": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
@@ -4065,6 +4226,12 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -4224,6 +4391,11 @@
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz",
"integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA=="
},
+ "immutable": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz",
+ "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ=="
+ },
"import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -4270,6 +4442,14 @@
"has-bigints": "^1.0.1"
}
},
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
"is-boolean-object": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
@@ -4558,6 +4738,11 @@
"styled-jsx": "5.1.0"
}
},
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -4770,6 +4955,14 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
"regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
@@ -4836,6 +5029,16 @@
"is-regex": "^1.1.4"
}
},
+ "sass": {
+ "version": "1.56.2",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.2.tgz",
+ "integrity": "sha512-ciEJhnyCRwzlBCB+h5cCPM6ie/6f8HrhZMQOf5vlU60Y1bI1rx5Zb0vlDZvaycHsg/MqFfF1Eq2eokAa32iw8w==",
+ "requires": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ }
+ },
"scheduler": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
diff --git a/package.json b/package.json
index 3830f30..8792504 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"next": "13.0.6",
"react": "18.2.0",
"react-dom": "18.2.0",
+ "sass": "^1.56.2",
"typescript": "4.9.4"
}
}
diff --git a/pages/404.tsx b/pages/404.tsx
new file mode 100644
index 0000000..da7fe7f
--- /dev/null
+++ b/pages/404.tsx
@@ -0,0 +1,12 @@
+import SEO from "../components/SEO";
+
+const PageError404 = () => {
+ return (
+ <>
+
+ Error 404!!
+ >
+ );
+};
+
+export default PageError404;
diff --git a/pages/_app.tsx b/pages/_app.tsx
index c055f25..e8cc3de 100644
--- a/pages/_app.tsx
+++ b/pages/_app.tsx
@@ -1,6 +1,16 @@
-import '../styles/globals.css'
-import type { AppProps } from 'next/app'
+import "../styles/globals.scss";
+import type { AppProps } from "next/app";
+import Navigation from "../components/Navigation/Navigation";
+import Footer from "../components/Footer/Footer";
+import SEO from "../components/SEO";
export default function App({ Component, pageProps }: AppProps) {
- return
+ return (
+ <>
+
+
+
+
+ >
+ );
}
diff --git a/pages/api/hello.ts b/pages/api/hello.ts
index f8bcc7e..68275d6 100644
--- a/pages/api/hello.ts
+++ b/pages/api/hello.ts
@@ -1,13 +1,13 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
-import type { NextApiRequest, NextApiResponse } from 'next'
+import type { NextApiRequest, NextApiResponse } from "next";
type Data = {
- name: string
-}
+ name: string;
+};
export default function handler(
- req: NextApiRequest,
- res: NextApiResponse
+ req: NextApiRequest,
+ res: NextApiResponse
) {
- res.status(200).json({ name: 'John Doe' })
+ res.status(200).json({ name: "John Doe" });
}
diff --git a/pages/cytaty.tsx b/pages/cytaty.tsx
new file mode 100644
index 0000000..d69e07e
--- /dev/null
+++ b/pages/cytaty.tsx
@@ -0,0 +1,12 @@
+import SEO from "../components/SEO";
+
+const PageCytaty = () => {
+ return (
+ <>
+
+ Miejsce na stronkę od cytatów.
+ >
+ );
+};
+
+export default PageCytaty;
diff --git a/pages/index.tsx b/pages/index.tsx
index cdffa57..8e5f817 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -1,71 +1,35 @@
-import Head from 'next/head'
-import Image from 'next/image'
-import styles from '../styles/Home.module.css'
+import styles from "../styles/Index.module.scss";
-export default function Home() {
- return (
-
-
-
Create Next App
-
-
-
+import { useEffect, useState } from "react";
+import SEO from "../components/SEO";
+import config from "../data/config.json";
-
-
+const PageIndex = () => {
+ const [splash, setSplash] = useState("");
+ useEffect(() => {
+ setSplash(
+ config.splashes[Math.floor(Math.random() * config.splashes.length)].body
+ );
+ }, []);
+ const welcometext: string =
+ "Witamy na witrynie internetowej Gractwa. Mamy nadzieję że odnajdziesz czego szukasz, zbłąkana duszo.";
+ return (
+ <>
+
+
+
+
„{splash || "..."}”
+
{welcometext}
+
+
Warto naznaczyć, że strona jest w trakcie remontu.
+
+
+
+
Hello!
+
This is the index test page.
+
+ >
+ );
+};
-
- Get started by editing{' '}
- pages/index.tsx
-
-
-
-
-
-
-
- )
-}
+export default PageIndex;
diff --git a/pages/nextjsintro.tsx b/pages/nextjsintro.tsx
new file mode 100644
index 0000000..6fc96ce
--- /dev/null
+++ b/pages/nextjsintro.tsx
@@ -0,0 +1,71 @@
+import Head from "next/head";
+import Image from "next/image";
+import styles from "../styles/Home.module.css";
+
+export default function Home() {
+ return (
+
+
+
Create Next App
+
+
+
+
+
+
+
+
+ Get started by editing{" "}
+ pages/index.tsx
+
+
+
+
+
+
+
+ );
+}
diff --git a/pages/o-gractwie.tsx b/pages/o-gractwie.tsx
new file mode 100644
index 0000000..ac9a565
--- /dev/null
+++ b/pages/o-gractwie.tsx
@@ -0,0 +1,12 @@
+import SEO from "../components/SEO";
+
+const PageInfo = () => {
+ return (
+ <>
+
+ Miejsce na stronkę od informacji nt. Gractwa.
+ >
+ );
+};
+
+export default PageInfo;
diff --git a/pages/rankingi.tsx b/pages/rankingi.tsx
new file mode 100644
index 0000000..bebaf86
--- /dev/null
+++ b/pages/rankingi.tsx
@@ -0,0 +1,12 @@
+import SEO from "../components/SEO";
+
+const PageRankingi = () => {
+ return (
+ <>
+
+ Miejsce na stronkę od rankingów.
+ >
+ );
+};
+
+export default PageRankingi;
diff --git a/public/favicon.ico b/public/favicon.ico
deleted file mode 100644
index 718d6fe..0000000
Binary files a/public/favicon.ico and /dev/null differ
diff --git a/public/logo.svg b/public/logo.svg
new file mode 100644
index 0000000..a9ed500
--- /dev/null
+++ b/public/logo.svg
@@ -0,0 +1,28 @@
+
+
+
+Gractwo Main Logo
+
+
+
+
+
+
diff --git a/public/vercel.svg b/public/vercel.svg
deleted file mode 100644
index fbf0e25..0000000
--- a/public/vercel.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/styles/Index.module.scss b/styles/Index.module.scss
new file mode 100644
index 0000000..c388280
--- /dev/null
+++ b/styles/Index.module.scss
@@ -0,0 +1,39 @@
+.hero {
+ display: block;
+ width: 100%;
+ height: 28rem;
+ @media screen and (max-width: 800px) {
+ height: 20rem;
+ }
+ overflow: hidden;
+ position: relative;
+ border-left: none;
+ border-right: none;
+}
+.hero::before {
+ position: absolute;
+ content: "";
+ // we do a little heisenberg
+ background: url(https://media1.tenor.com/images/9e70091410c7b3dd14ecfa09e14aaed2/tenor.gif?itemid=11390952);
+ filter: blur(0.25rem) brightness(50%);
+ transform: scale(1.1);
+ background-size: cover;
+ background-position: 0 -14rem;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+.heroinside {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+}
+.stats {
+ margin: 1rem 16rem;
+}
diff --git a/styles/globals.css b/styles/globals.css
deleted file mode 100644
index 4f18421..0000000
--- a/styles/globals.css
+++ /dev/null
@@ -1,26 +0,0 @@
-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;
-}
-
-a {
- color: inherit;
- text-decoration: none;
-}
-
-* {
- box-sizing: border-box;
-}
-
-@media (prefers-color-scheme: dark) {
- html {
- color-scheme: dark;
- }
- body {
- color: white;
- background: black;
- }
-}
diff --git a/styles/globals.scss b/styles/globals.scss
new file mode 100644
index 0000000..33a736c
--- /dev/null
+++ b/styles/globals.scss
@@ -0,0 +1,59 @@
+@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@600&family=Quicksand&display=swap");
+:root {
+ --black0: #121212;
+ --black1: #1a1a1a;
+ --black2: #2c2c2c;
+ --black3: #1d1d1d;
+ --white0: #eee;
+ --accent: #61f2ea;
+ --fonts-norm: "Quicksand", -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
+ Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ --fonts-bold: "Lexend", -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
+ Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ /* */
+ --backdrop: var(--black0);
+ --color: var(--white0);
+}
+* {
+ margin: 0;
+ padding: 0;
+}
+body {
+ background-color: var(--black0);
+ color: var(--color);
+ min-height: 100vh;
+ font-family: var(--fonts-norm);
+}
+h1,
+h2,
+h3 {
+ padding: 0.5rem 0;
+ font-family: var(--fonts-bold);
+}
+
+/* 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;
+}
+
+a {
+ color: inherit;
+ text-decoration: none;
+}
+
+* {
+ box-sizing: border-box;
+}
+
+@media (prefers-color-scheme: dark) {
+ html {
+ color-scheme: dark;
+ }
+ body {
+ color: white;
+ background: black;
+ }
+} */