Initial commit
This commit is contained in:
commit
7002d81bb8
12 files changed
+3134
No files matched your search
@@ -0,0 +1,2 @@
|
|||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
||||||
+41
@@ -0,0 +1,41 @@
|
|||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.*
|
||||||
|
.yarn/*
|
||||||
|
!.yarn/patches
|
||||||
|
!.yarn/plugins
|
||||||
|
!.yarn/releases
|
||||||
|
!.yarn/versions
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# next.js
|
||||||
|
/.next/
|
||||||
|
/out/
|
||||||
|
|
||||||
|
# production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# debug
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
.pnpm-debug.log*
|
||||||
|
|
||||||
|
# env files (can opt-in for committing if needed)
|
||||||
|
.env*
|
||||||
|
|
||||||
|
# vercel
|
||||||
|
.vercel
|
||||||
|
|
||||||
|
# typescript
|
||||||
|
*.tsbuildinfo
|
||||||
|
next-env.d.ts
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Lncvrt
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { dirname } from "path";
|
||||||
|
import { fileURLToPath } from "url";
|
||||||
|
import { FlatCompat } from "@eslint/eslintrc";
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = dirname(__filename);
|
||||||
|
|
||||||
|
const compat = new FlatCompat({
|
||||||
|
baseDirectory: __dirname,
|
||||||
|
});
|
||||||
|
|
||||||
|
const eslintConfig = [
|
||||||
|
...compat.extends("next/core-web-vitals", "next/typescript"),
|
||||||
|
];
|
||||||
|
|
||||||
|
export default eslintConfig;
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import type { NextConfig } from "next";
|
||||||
|
|
||||||
|
const nextConfig: NextConfig = {
|
||||||
|
images: {
|
||||||
|
remotePatterns: [
|
||||||
|
{
|
||||||
|
protocol: 'https',
|
||||||
|
hostname: 'www.jenkins.io',
|
||||||
|
port: '',
|
||||||
|
pathname: '/favicon.ico',
|
||||||
|
search: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default nextConfig;
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"name": "links",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"dev": "next dev --turbopack",
|
||||||
|
"build": "next build",
|
||||||
|
"start": "next start",
|
||||||
|
"lint": "next lint"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-svg-core": "^6.7.2",
|
||||||
|
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
||||||
|
"@fortawesome/free-solid-svg-icons": "^6.7.2",
|
||||||
|
"@fortawesome/react-fontawesome": "^0.2.2",
|
||||||
|
"next": "15.2.5",
|
||||||
|
"react": "19.1.0",
|
||||||
|
"react-dom": "19.1.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@eslint/eslintrc": "3.3.1",
|
||||||
|
"@tailwindcss/postcss": "4.1.3",
|
||||||
|
"@types/node": "22.14.0",
|
||||||
|
"@types/react": "19.1.0",
|
||||||
|
"@types/react-dom": "19.1.1",
|
||||||
|
"eslint": "9.24.0",
|
||||||
|
"eslint-config-next": "15.2.5",
|
||||||
|
"tailwindcss": "4.1.3",
|
||||||
|
"typescript": "5.8.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
const config = {
|
||||||
|
plugins: ["@tailwindcss/postcss"],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
@import "tailwindcss";
|
||||||
|
|
||||||
|
body {
|
||||||
|
@apply text-[#e0e0e0] bg-[#121212] select-none m-0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center-box {
|
||||||
|
@apply w-fit min-w-[20%] max-w-[95%] border shadow-[0px_0px_8px_8px_rgba(15,15,15,0.8)] rounded-2xl border-solid border-[#323232];
|
||||||
|
@apply bg-[#1e1e1e] p-5 backdrop-blur-sm shadow-lg text-center mx-auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
@apply transition-all duration-[0.5s] hover:scale-105 text-white border shadow-[0px_0px_8px_8px_rgba(30,30,30,0.8)] rounded-2xl border-solid border-[#464646] bg-[#323232] p-5 flex flex-row items-center text-center text-xl;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover {
|
||||||
|
@apply bg-[#3c3c3c] p-5 flex flex-row items-center text-center border shadow-[0px_0px_8px_8px_rgba(50,50,50,0.8)] rounded-2xl border-solid border-[#646464];
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-icon {
|
||||||
|
@apply mr-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.space-y-4 {
|
||||||
|
@apply space-y-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-container {
|
||||||
|
@apply space-y-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center-box h1 {
|
||||||
|
@apply text-2xl text-white font-semibold mb-6;
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import { Lexend } from "next/font/google";
|
||||||
|
import "./globals.css";
|
||||||
|
|
||||||
|
const lexend = Lexend({
|
||||||
|
variable: "--font-geist-sans"
|
||||||
|
});
|
||||||
|
|
||||||
|
export default function RootLayout({
|
||||||
|
children,
|
||||||
|
}: Readonly<{
|
||||||
|
children: React.ReactNode;
|
||||||
|
}>) {
|
||||||
|
return (
|
||||||
|
<html lang="en">
|
||||||
|
<body className={lexend.className}>
|
||||||
|
{children}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
import Link from "next/link";
|
||||||
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||||
|
import { faFolderOpen, faHouse, faSignal } from '@fortawesome/free-solid-svg-icons';
|
||||||
|
import { faDiscord, faGithub, faJenkins } from '@fortawesome/free-brands-svg-icons';
|
||||||
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: "Lncvrt's Websites & Links"
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function Home() {
|
||||||
|
return (
|
||||||
|
<div className="flex items-center justify-center min-h-screen">
|
||||||
|
<div className="center-box">
|
||||||
|
<h1 className="text-center">Lncvrt's Websites & Links</h1>
|
||||||
|
<p className="text-center mb-6">Some of my websites & socials can be found here</p>
|
||||||
|
<div className="button-container">
|
||||||
|
<Link href="https://ci.lncvrt.xyz/" target="_blank" rel="noopener noreferrer" className="button">
|
||||||
|
<FontAwesomeIcon icon={faJenkins} width={24} height={24} className="button-icon" />
|
||||||
|
Jenkins
|
||||||
|
</Link>
|
||||||
|
<Link href="https://repo.lncvrt.xyz/#/" target="_blank" rel="noopener noreferrer" className="button">
|
||||||
|
<FontAwesomeIcon icon={faFolderOpen} width={24} height={24} className="button-icon" />
|
||||||
|
Code Repository
|
||||||
|
</Link>
|
||||||
|
<Link href="https://status.lncvrt.xyz/" target="_blank" rel="noopener noreferrer" className="button">
|
||||||
|
<FontAwesomeIcon icon={faSignal} width={24} height={24} className="button-icon" />
|
||||||
|
Status Page
|
||||||
|
</Link>
|
||||||
|
<Link href="https://lncvrt.xyz/" target="_blank" rel="noopener noreferrer" className="button">
|
||||||
|
<FontAwesomeIcon icon={faHouse} width={24} height={24} className="button-icon" />
|
||||||
|
Main Website
|
||||||
|
</Link>
|
||||||
|
<Link href="https://github.com/Lncvrt" target="_blank" rel="noopener noreferrer" className="button">
|
||||||
|
<FontAwesomeIcon icon={faGithub} width={24} height={24} className="button-icon" />
|
||||||
|
GitHub
|
||||||
|
</Link>
|
||||||
|
<Link href="https://lncvrt.xyz/discord" target="_blank" rel="noopener noreferrer" className="button">
|
||||||
|
<FontAwesomeIcon icon={faDiscord} width={24} height={24} className="button-icon" />
|
||||||
|
Discord
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "ES2017",
|
||||||
|
"lib": ["dom", "dom.iterable", "esnext"],
|
||||||
|
"allowJs": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"strict": true,
|
||||||
|
"noEmit": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"module": "esnext",
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"jsx": "preserve",
|
||||||
|
"incremental": true,
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"name": "next"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["./src/*"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
|
}
|
||||||
Reference in new issue
Block a user