diff --git a/.prettierignore b/.prettierignore index 57d0389..54ad965 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,4 @@ .next out -pnpm-lock.yaml \ No newline at end of file +pnpm-lock.yaml +node_modules diff --git a/README.md b/README.md index be54d92..649f220 100644 --- a/README.md +++ b/README.md @@ -49,5 +49,7 @@ A general list for any contributors. If you make a contribution add yourself her - Quite a Fancy Emerald - sexyduceduce - mdoryammilwalrus +- Crllect +- xmb9 If you wish to support TitaniumNetwork please check out our Discord! diff --git a/package.json b/package.json index 4f8c133..8d7e3e7 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "homepage": "https://titaniumnetwork.org", "scripts": { "dev": "next dev", - "build": "next build --webpack", + "build": "next build", "start": "next start", "format": "prettier --write .", "lint": "next lint" diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..6d38f1f --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +allowBuilds: + sharp: true diff --git a/prettier.config.js b/prettier.config.js index b8b614a..5749b39 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -6,6 +6,7 @@ const config = { useTabs: true, semi: true, singleQuote: false, + tabWidth: 4, }; export default config; diff --git a/src/app/error.tsx b/src/app/error.tsx index 63843ab..a31f936 100644 --- a/src/app/error.tsx +++ b/src/app/error.tsx @@ -9,7 +9,9 @@ export default function Error() {
-

{disabled("TitaniumNetwork")}

+

+ {disabled("TitaniumNetwork")} +

Something went wrong

diff --git a/src/app/globals.css b/src/app/globals.css index e7546cd..d665353 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -40,7 +40,11 @@ body { color: var(--text); font-family: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif; background: - radial-gradient(circle at 86% 14%, rgba(211, 70, 68, 0.08), transparent 36%), + radial-gradient( + circle at 86% 14%, + rgba(211, 70, 68, 0.08), + transparent 36% + ), linear-gradient(180deg, var(--bg) 0%, var(--bg-deep) 100%); } @@ -58,10 +62,13 @@ h1, h2, h3 { color: var(--text); - font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif; + font-family: + var(--font-raleway), "Avenir Next", "Segoe UI", "Helvetica Neue", + sans-serif; font-weight: 600; letter-spacing: -0.02em; line-height: 0.98; + font-style: normal; } code { @@ -82,17 +89,23 @@ code { justify-content: center; padding: 0.34rem 0.62rem; color: var(--muted); - font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif; + font-family: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif; font-size: 0.95rem; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; - transition: color 0.1s ease, text-shadow 0.1s ease, transform 0.1s ease; + transition: + color 0.1s ease, + text-shadow 0.1s ease, + transform 0.1s ease; } .nav-link-label { display: inline-block; - transition: color 0.1s ease, text-shadow 0.1s ease, transform 0.1s ease; + transition: + color 0.1s ease, + text-shadow 0.1s ease, + transform 0.1s ease; } .nav-link-plain:hover, @@ -101,13 +114,51 @@ code { text-shadow: 0 0 1px color-mix(in oklab, var(--primary) 58%, white 42%); } +.mobile-nav-link { + display: flex; + align-items: center; + min-height: 2.6rem; + padding: 0.5rem 0.72rem; + border: 1px solid rgba(255, 255, 255, 0.12); + border-radius: 10px; + background: rgba(255, 255, 255, 0.04); + color: var(--muted); + font-family: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif; + font-size: 0.92rem; + font-weight: 500; + letter-spacing: 0.08em; + text-transform: uppercase; + transition: + color 0.1s ease, + background-color 0.1s ease, + border-color 0.1s ease, + text-shadow 0.1s ease; +} + +.mobile-nav-link:hover, +.mobile-nav-link:focus-visible { + border-color: color-mix(in oklab, var(--primary) 68%, white 32%); + background: color-mix(in oklab, var(--primary) 12%, transparent); + color: color-mix(in oklab, var(--primary) 72%, white 28%); + text-shadow: 0 0 1px color-mix(in oklab, var(--primary) 58%, white 42%); +} + +.mobile-nav-link-active { + border-color: rgba(255, 255, 255, 0.25); + background: rgba(255, 255, 255, 0.1); + color: rgba(255, 248, 251, 0.95); + text-shadow: 0 0 1px rgba(255, 248, 251, 0.3); +} + .dock-brand-icon { display: flex; align-items: center; justify-content: center; transform: scale(1); color: rgba(255, 248, 251, 0.78); - filter: drop-shadow(0 0 0 color-mix(in oklab, var(--primary) 58%, white 42%)); + filter: drop-shadow( + 0 0 0 color-mix(in oklab, var(--primary) 58%, white 42%) + ); transition: color 0.1s ease, filter 0.1s ease, @@ -119,13 +170,17 @@ code { .dock-brand-button:focus-visible .dock-brand-icon { transform: scale(1.03); color: color-mix(in oklab, var(--primary) 72%, white 28%); - filter: drop-shadow(0 0 0.5px color-mix(in oklab, var(--primary) 58%, white 42%)); + filter: drop-shadow( + 0 0 0.5px color-mix(in oklab, var(--primary) 58%, white 42%) + ); } .dock-brand-button:active .dock-brand-icon { transform: scale(0.97); color: color-mix(in oklab, var(--primary) 64%, white 36%); - filter: drop-shadow(0 0 1px color-mix(in oklab, var(--primary) 52%, white 48%)); + filter: drop-shadow( + 0 0 1px color-mix(in oklab, var(--primary) 52%, white 48%) + ); } .content-frame { @@ -174,7 +229,7 @@ code { .legacy-stack { display: grid; gap: 1rem; - font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif; + font-family: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif; font-weight: 400; } @@ -206,7 +261,9 @@ code { .service-source, .service-name { color: var(--text); - transition: color 0.18s ease, text-shadow 0.18s ease; + transition: + color 0.18s ease, + text-shadow 0.18s ease; } .legacy-stack a:hover, @@ -293,6 +350,7 @@ code { .service-source { color: var(--muted); font-size: 0.9rem; + white-space: nowrap; } .social-badge { @@ -329,17 +387,27 @@ code { display: block; font-size: clamp(2.7rem, 12vw, 4rem); } - - .nav-link-plain { - font-size: 0.84rem; - padding: 0.28rem 0.5rem; - } } @media (max-width: 720px) { .service-row-legacy, .social-row-legacy { - flex-direction: column; - align-items: flex-start; + flex-direction: row; + align-items: center; + justify-content: space-between; + flex-wrap: nowrap; + padding: 0.78rem 0.82rem; + gap: 0.75rem; + } + + .service-name, + .social-name { + min-width: 0; + flex: 1 1 auto; + } + + .service-meta, + .social-badge { + flex: 0 0 auto; } } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 60c602f..2b71d1c 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,7 +1,14 @@ import { Metadata, Viewport } from "next"; +import { Raleway } from "next/font/google"; import Nav from "../components/Nav"; import "./globals.css"; +const raleway = Raleway({ + subsets: ["latin"], + weight: ["600"], + variable: "--font-raleway", +}); + export const metadata: Metadata = { title: "TitaniumNetwork", description: @@ -28,7 +35,10 @@ export default function RootLayout({ children: React.ReactNode; }) { return ( - +