From 258bdad06b402a8f6b1078dac3258f63b88ee64f Mon Sep 17 00:00:00 2001 From: Berkan Date: Wed, 17 Apr 2024 17:20:39 +0300 Subject: [PATCH] Initialize project --- .eslintrc.json | 3 + .gitignore | 36 ++++ README.md | 36 ++++ app/favicon.ico | Bin 0 -> 15086 bytes app/globals.css | 5 + app/layout.tsx | 24 +++ app/page.tsx | 19 ++ bun.lockb | Bin 0 -> 147346 bytes .../ui/background-gradient-animation.tsx | 182 ++++++++++++++++++ components/ui/hover-border-gradient.tsx | 99 ++++++++++ index.ts | 1 + lib/utils/cn.ts | 6 + next.config.mjs | 4 + package.json | 33 ++++ postcss.config.mjs | 8 + public/logo.svg | 22 +++ public/next.svg | 1 + public/vercel.svg | 1 + tailwind.config.ts | 59 ++++++ tsconfig.json | 29 +++ 20 files changed, 568 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 README.md create mode 100755 app/favicon.ico create mode 100644 app/globals.css create mode 100644 app/layout.tsx create mode 100644 app/page.tsx create mode 100755 bun.lockb create mode 100644 components/ui/background-gradient-animation.tsx create mode 100644 components/ui/hover-border-gradient.tsx create mode 100644 index.ts create mode 100644 lib/utils/cn.ts create mode 100644 next.config.mjs create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 public/logo.svg create mode 100644 public/next.svg create mode 100644 public/vercel.svg create mode 100644 tailwind.config.ts create mode 100644 tsconfig.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fd3dbb5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/README.md b/README.md new file mode 100644 index 0000000..c403366 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/app/favicon.ico b/app/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..c13b069547293a01626b41064ccfa89d0b570efa GIT binary patch literal 15086 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 KU*+UCEdLM2KY88& literal 0 HcmV?d00001 diff --git a/app/globals.css b/app/globals.css new file mode 100644 index 0000000..bcf21eb --- /dev/null +++ b/app/globals.css @@ -0,0 +1,5 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + + diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..75fb648 --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,24 @@ +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; +import "./globals.css"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: "Netinternet - Kotasız, Taahhütsüz Fiber İnternet ve Sunucu Hizmetleri", + description: "Hosting, alan adı (domain) , kiralık sunucu, vds sunucu, yönetilen sunucu, sunucu barındırma, kabin kiralama ihtiyaçlarınız için size özel çözümler sunan hızlı ve kaliteli hizmet sunan,7/24 Müşterilerine profesyonel destek ve hizmet vermekteyiz.", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 0000000..3344308 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,19 @@ +import Image from "next/image" +import { BackgroundGradientAnimation } from "@/components/ui/background-gradient-animation" +import { HoverBorderGradient } from "@/components/ui/hover-border-gradient" +import niLogo from "@/public/logo.svg" + +export default function Home() { + return ( + <> + +

Netinternet

+
+ + {""} + +
+
+ + ); +} diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..f8ff5a22472923757990a88a4e79d69d0aa83850 GIT binary patch literal 147346 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 { + const interactiveRef = useRef(null); + + const [curX, setCurX] = useState(0); + const [curY, setCurY] = useState(0); + const [tgX, setTgX] = useState(0); + const [tgY, setTgY] = useState(0); + useEffect(() => { + document.body.style.setProperty( + "--gradient-background-start", + gradientBackgroundStart + ); + document.body.style.setProperty( + "--gradient-background-end", + gradientBackgroundEnd + ); + document.body.style.setProperty("--first-color", firstColor); + document.body.style.setProperty("--second-color", secondColor); + document.body.style.setProperty("--third-color", thirdColor); + document.body.style.setProperty("--fourth-color", fourthColor); + document.body.style.setProperty("--fifth-color", fifthColor); + document.body.style.setProperty("--pointer-color", pointerColor); + document.body.style.setProperty("--size", size); + document.body.style.setProperty("--blending-value", blendingValue); + }, [blendingValue, fifthColor, firstColor, fourthColor, gradientBackgroundEnd, gradientBackgroundStart, pointerColor, secondColor, size, thirdColor]); + + useEffect(() => { + function move() { + if (!interactiveRef.current) { + return; + } + setCurX(curX + (tgX - curX) / 20); + setCurY(curY + (tgY - curY) / 20); + interactiveRef.current.style.transform = `translate(${Math.round( + curX + )}px, ${Math.round(curY)}px)`; + } + + move(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [tgX, tgY]); + + const handleMouseMove = (event: React.MouseEvent) => { + if (interactiveRef.current) { + const rect = interactiveRef.current.getBoundingClientRect(); + setTgX(event.clientX - rect.left); + setTgY(event.clientY - rect.top); + } + }; + + const [isSafari, setIsSafari] = useState(false); + useEffect(() => { + setIsSafari(/^((?!chrome|android).)*safari/i.test(navigator.userAgent)); + }, []); + + return ( +
+ + + + + + + + + +
{children}
+
+
+
+
+
+
+ + {interactive && ( +
+ )} +
+
+ ); +}; diff --git a/components/ui/hover-border-gradient.tsx b/components/ui/hover-border-gradient.tsx new file mode 100644 index 0000000..90bc92f --- /dev/null +++ b/components/ui/hover-border-gradient.tsx @@ -0,0 +1,99 @@ +"use client"; +import React, { useState, useEffect, useRef } from "react"; + +import { motion } from "framer-motion"; +import { cn } from "@/lib/utils/cn"; + +type Direction = "TOP" | "LEFT" | "BOTTOM" | "RIGHT"; + +export function HoverBorderGradient({ + children, + containerClassName, + className, + as: Tag = "button", + duration = 1, + clockwise = true, + ...props +}: React.PropsWithChildren< + { + as?: React.ElementType; + containerClassName?: string; + className?: string; + duration?: number; + clockwise?: boolean; + } & React.HTMLAttributes +>) { + const [hovered, setHovered] = useState(false); + const [direction, setDirection] = useState("TOP"); + + const rotateDirection = (currentDirection: Direction): Direction => { + const directions: Direction[] = ["TOP", "LEFT", "BOTTOM", "RIGHT"]; + const currentIndex = directions.indexOf(currentDirection); + const nextIndex = clockwise + ? (currentIndex - 1 + directions.length) % directions.length + : (currentIndex + 1) % directions.length; + return directions[nextIndex]; + }; + + const movingMap: Record = { + TOP: "radial-gradient(20.7% 50% at 50% 0%, hsl(0, 0%, 100%) 0%, rgba(255, 255, 255, 0) 100%)", + LEFT: "radial-gradient(16.6% 43.1% at 0% 50%, hsl(0, 0%, 100%) 0%, rgba(255, 255, 255, 0) 100%)", + BOTTOM: + "radial-gradient(20.7% 50% at 50% 100%, hsl(0, 0%, 100%) 0%, rgba(255, 255, 255, 0) 100%)", + RIGHT: + "radial-gradient(16.2% 41.199999999999996% at 100% 50%, hsl(0, 0%, 100%) 0%, rgba(255, 255, 255, 0) 100%)", + }; + + const highlight = + "radial-gradient(75% 181.15942028985506% at 50% 50%, #3275F8 0%, rgba(255, 255, 255, 0) 10%)"; + + useEffect(() => { + if (!hovered) { + const interval = setInterval(() => { + setDirection((prevState) => rotateDirection(prevState)); + }, duration * 1000); + return () => clearInterval(interval); + } + }, [hovered]); + return ( + ) => { + setHovered(true); + }} + onMouseLeave={() => setHovered(false)} + className={cn( + "relative flex rounded-full border content-center bg-black/20 hover:bg-black/10 transition duration-500 dark:bg-white/20 items-center flex-col flex-nowrap gap-10 h-min justify-center overflow-visible p-px decoration-clone w-fit", + containerClassName + )} + {...props} + > +
+ {children} +
+ +
+ + ); +} diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..f67b2c6 --- /dev/null +++ b/index.ts @@ -0,0 +1 @@ +console.log("Hello via Bun!"); \ No newline at end of file diff --git a/lib/utils/cn.ts b/lib/utils/cn.ts new file mode 100644 index 0000000..d83ac21 --- /dev/null +++ b/lib/utils/cn.ts @@ -0,0 +1,6 @@ +import { ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 0000000..4678774 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {}; + +export default nextConfig; diff --git a/package.json b/package.json new file mode 100644 index 0000000..b7434b5 --- /dev/null +++ b/package.json @@ -0,0 +1,33 @@ +{ + "name": "ni-link", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@tabler/icons-react": "^3.2.0", + "clsx": "^2.1.0", + "framer-motion": "^11.1.3", + "next": "14.2.1", + "react": "^18", + "react-dom": "^18", + "tailwind-merge": "^2.2.2" + }, + "devDependencies": { + "typescript": "^5", + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "eslint": "^8", + "eslint-config-next": "14.2.1", + "@types/bun": "latest" + }, + "module": "index.ts", + "type": "module" +} \ No newline at end of file diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 0000000..1a69fd2 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..82b496b --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/next.svg b/public/next.svg new file mode 100644 index 0000000..5174b28 --- /dev/null +++ b/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg new file mode 100644 index 0000000..d2f8422 --- /dev/null +++ b/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..e7d6347 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,59 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + "./lib/**/*.{ts,tsx}", + ], + darkMode: "class", + theme: { + extend: { + animation: { + first: "moveVertical 30s ease infinite", + second: "moveInCircle 20s reverse infinite", + third: "moveInCircle 40s linear infinite", + fourth: "moveHorizontal 40s ease infinite", + fifth: "moveInCircle 20s ease infinite", + }, + keyframes: { + moveHorizontal: { + "0%": { + transform: "translateX(-50%) translateY(-10%)", + }, + "50%": { + transform: "translateX(50%) translateY(10%)", + }, + "100%": { + transform: "translateX(-50%) translateY(-10%)", + }, + }, + moveInCircle: { + "0%": { + transform: "rotate(0deg)", + }, + "50%": { + transform: "rotate(180deg)", + }, + "100%": { + transform: "rotate(360deg)", + }, + }, + moveVertical: { + "0%": { + transform: "translateY(-50%)", + }, + "50%": { + transform: "translateY(50%)", + }, + "100%": { + transform: "translateY(-50%)", + }, + }, + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..bbb6a2e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + }, + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + // "moduleResolution": "bundler", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +}