initialized

This commit is contained in:
Rajpreet0 2026-09-26 22:46:01 +02:00
parent 684a0fcded
commit a228d2c389
25 changed files with 3580 additions and 181 deletions

BIN
app/apple-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Before After
Before After

View file

@ -1,26 +1,215 @@
@import "tailwindcss"; @import "tailwindcss";
@import "tw-animate-css";
@import "shadcn/tailwind.css";
@custom-variant dark (&:is(.dark *));
/* Ink-Skala: nur Helligkeit, kein Farbton — Basis für Text/Flächen/Borders */
:root { :root {
--background: #ffffff; --ink-0: oklch(1 0 0);
--foreground: #171717; --ink-50: oklch(0.975 0 0);
--ink-100: oklch(0.945 0 0);
--ink-200: oklch(0.885 0 0);
--ink-300: oklch(0.785 0 0);
--ink-400: oklch(0.665 0 0);
--ink-500: oklch(0.555 0 0);
--ink-600: oklch(0.45 0 0);
--ink-700: oklch(0.35 0 0);
--ink-800: oklch(0.245 0 0);
--ink-900: oklch(0.155 0 0);
--ink-950: oklch(0.085 0 0);
--ink-1000: oklch(0 0 0);
/* Monochromer Akzent: kein Farbton, Wirkung entsteht über Kontrast (Schwarz auf Grau) */
--accent-400: oklch(0.35 0 0);
--accent-500: oklch(0.145 0 0);
--accent-600: oklch(0 0 0);
--signal-error: oklch(0.63 0.21 25);
--signal-success: oklch(0.72 0.17 150);
--signal-warning: oklch(0.78 0.15 80);
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
--ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);
--duration-fast: 120ms;
--duration-base: 200ms;
--duration-slow: 320ms;
--shadow-sm: 0 1px 2px rgb(0 0 0 / 0.06);
--shadow-md: 0 4px 12px rgb(0 0 0 / 0.08);
--shadow-lg: 0 12px 32px rgb(0 0 0 / 0.12);
} }
@theme inline { @theme inline {
--color-background: var(--background); --color-background: var(--background);
--color-foreground: var(--foreground); --color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans); --font-sans: var(--font-inter);
--font-mono: var(--font-geist-mono); --font-mono: var(--font-jetbrains-mono);
--font-heading: var(--font-sans);
--color-sidebar-ring: var(--sidebar-ring);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar: var(--sidebar);
--color-chart-5: var(--chart-5);
--color-chart-4: var(--chart-4);
--color-chart-3: var(--chart-3);
--color-chart-2: var(--chart-2);
--color-chart-1: var(--chart-1);
--color-ring: var(--ring);
--color-input: var(--input);
--color-border: var(--border);
--color-destructive: var(--destructive);
--color-accent-foreground: var(--accent-foreground);
--color-accent: var(--accent);
--color-muted-foreground: var(--muted-foreground);
--color-muted: var(--muted);
--color-secondary-foreground: var(--secondary-foreground);
--color-secondary: var(--secondary);
--color-primary-foreground: var(--primary-foreground);
--color-primary: var(--primary);
--color-popover-foreground: var(--popover-foreground);
--color-popover: var(--popover);
--color-card-foreground: var(--card-foreground);
--color-card: var(--card);
--color-surface: var(--surface);
--color-surface-raised: var(--surface-raised);
--color-signal-error: var(--signal-error);
--color-signal-success: var(--signal-success);
--color-signal-warning: var(--signal-warning);
--color-accent-400: var(--accent-400);
--color-accent-500: var(--accent-500);
--color-accent-600: var(--accent-600);
--color-ink-0: var(--ink-0);
--color-ink-50: var(--ink-50);
--color-ink-100: var(--ink-100);
--color-ink-200: var(--ink-200);
--color-ink-300: var(--ink-300);
--color-ink-400: var(--ink-400);
--color-ink-500: var(--ink-500);
--color-ink-600: var(--ink-600);
--color-ink-700: var(--ink-700);
--color-ink-800: var(--ink-800);
--color-ink-900: var(--ink-900);
--color-ink-950: var(--ink-950);
--color-ink-1000: var(--ink-1000);
--text-display: clamp(2rem, 1.5rem + 3.5vw, 3rem);
--text-title: clamp(1.25rem, 1.1rem + 1.8vw, 1.75rem);
--text-lead: 1.125rem;
--text-body: 0.9375rem;
--text-small: 0.8125rem;
--text-label: 0.75rem;
--spacing-section: clamp(3rem, 2rem + 6vw, 5rem);
--container-app: 80rem;
--container-narrow: 40rem;
--radius-sm: 0.375rem;
--radius-md: 0.625rem;
--radius-lg: 1rem;
--radius-full: 999px;
} }
@media (prefers-color-scheme: dark) { :root {
:root { --background: var(--ink-0);
--background: #0a0a0a; --foreground: var(--ink-950);
--foreground: #ededed; --card: var(--ink-0);
--card-foreground: var(--ink-950);
--popover: var(--ink-0);
--popover-foreground: var(--ink-950);
--primary: var(--accent-500);
--primary-foreground: var(--ink-0);
--secondary: var(--ink-50);
--secondary-foreground: var(--ink-950);
--muted: var(--ink-50);
--muted-foreground: var(--ink-600);
--accent: var(--ink-100);
--accent-foreground: var(--ink-950);
--destructive: var(--signal-error);
--border: var(--ink-200);
--input: var(--ink-200);
--ring: var(--accent-500);
--chart-1: var(--ink-300);
--chart-2: var(--ink-400);
--chart-3: var(--ink-500);
--chart-4: var(--ink-600);
--chart-5: var(--ink-700);
--surface: var(--ink-50);
--surface-raised: var(--ink-0);
--sidebar: var(--ink-50);
--sidebar-foreground: var(--ink-950);
--sidebar-primary: var(--accent-500);
--sidebar-primary-foreground: var(--ink-0);
--sidebar-accent: var(--ink-100);
--sidebar-accent-foreground: var(--ink-950);
--sidebar-border: var(--ink-200);
--sidebar-ring: var(--accent-500);
}
.dark {
--background: var(--ink-950);
--foreground: var(--ink-0);
--card: var(--ink-800);
--card-foreground: var(--ink-0);
--popover: var(--ink-800);
--popover-foreground: var(--ink-0);
--primary: var(--ink-0);
--primary-foreground: var(--ink-950);
--secondary: var(--ink-900);
--secondary-foreground: var(--ink-0);
--muted: var(--ink-900);
--muted-foreground: var(--ink-400);
--accent: var(--ink-800);
--accent-foreground: var(--ink-0);
--destructive: var(--signal-error);
--border: var(--ink-800);
--input: var(--ink-800);
--ring: var(--ink-0);
--chart-1: var(--ink-300);
--chart-2: var(--ink-400);
--chart-3: var(--ink-500);
--chart-4: var(--ink-600);
--chart-5: var(--ink-700);
--surface: var(--ink-900);
--surface-raised: var(--ink-800);
--sidebar: var(--ink-900);
--sidebar-foreground: var(--ink-0);
--sidebar-primary: var(--accent-500);
--sidebar-primary-foreground: var(--ink-0);
--sidebar-accent: var(--ink-800);
--sidebar-accent-foreground: var(--ink-0);
--sidebar-border: var(--ink-800);
--sidebar-ring: var(--accent-500);
}
@layer base {
* {
@apply border-border outline-ring/50;
}
body {
@apply bg-background text-foreground;
line-height: 1.5;
}
html {
@apply font-sans;
}
h1, h2, h3, h4, h5, h6 {
line-height: 1.2;
}
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
outline: 2px solid var(--ring);
outline-offset: 2px;
box-shadow: 0 0 0 4px color-mix(in oklch, var(--ring) 20%, transparent);
} }
} }
body { @media (prefers-reduced-motion: reduce) {
background: var(--background); *, *::before, *::after {
color: var(--foreground); animation-duration: 0.01ms !important;
font-family: Arial, Helvetica, sans-serif; transition-duration: 0.01ms !important;
}
} }

View file

@ -1,19 +1,19 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google"; import { Inter, JetBrains_Mono } from "next/font/google";
import "./globals.css"; import "./globals.css";
const geistSans = Geist({ const inter = Inter({
variable: "--font-geist-sans", variable: "--font-inter",
subsets: ["latin"], subsets: ["latin"],
}); });
const geistMono = Geist_Mono({ const jetbrainsMono = JetBrains_Mono({
variable: "--font-geist-mono", variable: "--font-jetbrains-mono",
subsets: ["latin"], subsets: ["latin"],
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Create Next App", title: "Since3 Portal",
description: "Generated by create next app", description: "Generated by create next app",
}; };
@ -21,7 +21,7 @@ export default function RootLayout({ children }: LayoutProps<"/">) {
return ( return (
<html <html
lang="en" lang="en"
className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`} className={`${inter.variable} ${jetbrainsMono.variable} h-full antialiased`}
> >
<body className="min-h-full flex flex-col">{children}</body> <body className="min-h-full flex flex-col">{children}</body>
</html> </html>

View file

@ -1,69 +1,8 @@
import Image from "next/image";
export default function Home() { export default function Home() {
return ( return (
<div className="flex flex-col flex-1 items-center justify-center bg-zinc-50 font-sans dark:bg-black"> <div>
<main className="flex flex-1 w-full max-w-3xl flex-col items-center justify-between py-32 px-16 bg-white dark:bg-black sm:items-start">
<Image
className="dark:invert h-5 w-[100px]"
src="/next.svg"
alt="Next.js logo"
width={100}
height={20}
priority
/>
<div className="flex flex-col items-center gap-6 text-center sm:items-start sm:text-left">
<h1 className="max-w-xs text-3xl font-semibold leading-10 tracking-tight text-black dark:text-zinc-50">
To get started, edit the{" "}
<code className="rounded bg-black/[.06] px-1.5 py-0.5 font-mono text-[0.9em] dark:bg-white/[.08]">
page.tsx
</code>{" "}
file.
</h1>
<p className="max-w-md text-lg leading-8 text-zinc-600 dark:text-zinc-400">
Looking for a starting point or more instructions? Head over to{" "}
<a
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
className="font-medium text-zinc-950 dark:text-zinc-50"
>
Templates
</a>{" "}
or the{" "}
<a
href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
className="font-medium text-zinc-950 dark:text-zinc-50"
>
Learning
</a>{" "}
center.
</p>
</div>
<div className="flex flex-col gap-4 text-base font-medium sm:flex-row">
<a
className="flex h-12 w-full items-center justify-center gap-2 rounded-full bg-foreground px-5 text-background transition-colors hover:bg-[#383838] dark:hover:bg-[#ccc] md:w-[158px]"
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
<Image
className="dark:invert h-[14px] w-4"
src="/vercel.svg"
alt="Vercel logomark"
width={16}
height={14}
/>
Deploy Now
</a>
<a
className="flex h-12 w-full items-center justify-center rounded-full border border-solid border-black/[.08] px-5 transition-colors hover:border-transparent hover:bg-black/[.04] dark:border-white/[.145] dark:hover:bg-[#1a1a1a] md:w-[158px]"
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
Documentation
</a>
</div>
</main>
</div> </div>
); );
} }

25
components.json Normal file
View file

@ -0,0 +1,25 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "base-nova",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "",
"css": "app/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"rtl": false,
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"menuColor": "default",
"menuAccent": "subtle",
"registries": {}
}

35
components/ui/badge.tsx Normal file
View file

@ -0,0 +1,35 @@
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "cn"
const badgeVariants = cva(
"inline-flex w-fit shrink-0 items-center justify-center rounded-full px-2.5 py-0.5 text-label uppercase tracking-[0.02em] whitespace-nowrap",
{
variants: {
variant: {
neutral: "bg-ink-100 text-ink-700 dark:bg-ink-800 dark:text-ink-300",
error: "bg-signal-error/12 text-signal-error",
success: "bg-signal-success/12 text-signal-success",
warning: "bg-signal-warning/12 text-signal-warning",
},
},
defaultVariants: {
variant: "neutral",
},
}
)
function Badge({
className,
variant,
...props
}: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants>) {
return (
<span
data-slot="badge"
className={cn(badgeVariants({ variant, className }))}
{...props}
/>
)
}
export { Badge, badgeVariants }

48
components/ui/button.tsx Normal file
View file

@ -0,0 +1,48 @@
import { Button as ButtonPrimitive } from "@base-ui/react/button"
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "cn"
const buttonVariants = cva(
"group/button inline-flex shrink-0 items-center justify-center gap-2 rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-[background-color,border-color,color] duration-[var(--duration-fast)] ease-out outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
{
variants: {
variant: {
primary: "bg-primary text-primary-foreground hover:bg-accent-600",
secondary:
"bg-secondary text-secondary-foreground border-border hover:bg-ink-100 dark:hover:bg-ink-800",
outline:
"border-border bg-background hover:bg-surface aria-expanded:bg-surface",
ghost: "hover:bg-surface aria-expanded:bg-surface",
destructive: "bg-destructive text-white hover:opacity-90",
link: "text-primary underline-offset-4 hover:underline",
},
size: {
sm: "h-8 gap-1.5 px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
md: "h-10 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5",
lg: "h-12 gap-2 px-4 text-base has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
icon: "size-10",
},
},
defaultVariants: {
variant: "primary",
size: "md",
},
}
)
function Button({
className,
variant = "primary",
size = "md",
...props
}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {
return (
<ButtonPrimitive
data-slot="button"
className={cn(buttonVariants({ variant, size, className }))}
{...props}
/>
)
}
export { Button, buttonVariants }

66
components/ui/card.tsx Normal file
View file

@ -0,0 +1,66 @@
import { cn } from "cn"
function Card({ className, ...props }: React.ComponentProps<"div">) {
return (
<div
data-slot="card"
className={cn(
"rounded-lg border border-border bg-card p-6 text-card-foreground",
className
)}
{...props}
/>
)
}
function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
return (
<div
data-slot="card-header"
className={cn("flex flex-col gap-1.5", className)}
{...props}
/>
)
}
function CardTitle({ className, ...props }: React.ComponentProps<"h3">) {
return (
<h3
data-slot="card-title"
className={cn("text-title leading-tight font-semibold", className)}
{...props}
/>
)
}
function CardDescription({ className, ...props }: React.ComponentProps<"p">) {
return (
<p
data-slot="card-description"
className={cn("text-body text-muted-foreground", className)}
{...props}
/>
)
}
function CardContent({ className, ...props }: React.ComponentProps<"div">) {
return (
<div
data-slot="card-content"
className={cn("pt-4", className)}
{...props}
/>
)
}
function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
return (
<div
data-slot="card-footer"
className={cn("flex items-center gap-2 pt-4", className)}
{...props}
/>
)
}
export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter }

46
components/ui/input.tsx Normal file
View file

@ -0,0 +1,46 @@
import { Input as InputPrimitive } from "@base-ui/react/input"
import { Field } from "@base-ui/react/field"
import { cn } from "cn"
const inputClassName =
"flex h-10 w-full rounded-md border border-input bg-background px-3 text-body outline-none transition-colors duration-[var(--duration-fast)] ease-out placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 data-[invalid]:border-destructive"
function Input({ className, ...props }: InputPrimitive.Props) {
return (
<InputPrimitive
data-slot="input"
className={cn(inputClassName, className)}
{...props}
/>
)
}
function FieldControl({ className, ...props }: React.ComponentProps<typeof Field.Control>) {
return (
<Field.Control
data-slot="field-control"
className={cn(inputClassName, className)}
{...props}
/>
)
}
function FieldLabel({ className, ...props }: React.ComponentProps<typeof Field.Label>) {
return (
<Field.Label
className={cn("text-body font-medium", className)}
{...props}
/>
)
}
function FieldError({ className, ...props }: React.ComponentProps<typeof Field.Error>) {
return (
<Field.Error
className={cn("text-small text-signal-error", className)}
{...props}
/>
)
}
export { Input, Field, FieldControl, FieldLabel, FieldError }

84
components/ui/table.tsx Normal file
View file

@ -0,0 +1,84 @@
import { cn } from "cn"
function Table({ className, ...props }: React.ComponentProps<"table">) {
return (
<div data-slot="table-container" className="relative w-full overflow-auto">
<table
data-slot="table"
className={cn("w-full caption-bottom text-body", className)}
{...props}
/>
</div>
)
}
function TableHeader({ className, ...props }: React.ComponentProps<"thead">) {
return (
<thead
data-slot="table-header"
className={cn("[&_tr]:border-b [&_tr]:border-border", className)}
{...props}
/>
)
}
function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
return (
<tbody
data-slot="table-body"
className={cn("[&_tr:last-child]:border-0", className)}
{...props}
/>
)
}
function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
return (
<tr
data-slot="table-row"
className={cn(
"border-b border-border transition-colors duration-[var(--duration-fast)] ease-out hover:bg-surface",
className
)}
{...props}
/>
)
}
function TableHead({
className,
numeric,
...props
}: React.ComponentProps<"th"> & { numeric?: boolean }) {
return (
<th
data-slot="table-head"
className={cn(
"h-10 px-4 align-middle text-left text-small font-medium text-muted-foreground tracking-[0.01em]",
numeric && "text-right tabular-nums",
className
)}
{...props}
/>
)
}
function TableCell({
className,
numeric,
...props
}: React.ComponentProps<"td"> & { numeric?: boolean }) {
return (
<td
data-slot="table-cell"
className={cn(
"p-4 align-middle",
numeric && "text-right tabular-nums",
className
)}
{...props}
/>
)
}
export { Table, TableHeader, TableBody, TableRow, TableHead, TableCell }

1
lib/utils.ts Normal file
View file

@ -0,0 +1 @@
export { cn } from "cn"

3136
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -9,9 +9,15 @@
"lint": "eslint" "lint": "eslint"
}, },
"dependencies": { "dependencies": {
"@base-ui/react": "^1.8.0",
"class-variance-authority": "^0.7.1",
"cn": "^0.4.0",
"lucide-react": "^1.48.0",
"next": "16.3.6", "next": "16.3.6",
"react": "19.2.8", "react": "19.2.8",
"react-dom": "19.2.8" "react-dom": "19.2.8",
"shadcn": "^4.21.0",
"tw-animate-css": "^1.4.0"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/postcss": "^4", "@tailwindcss/postcss": "^4",

View file

@ -1 +0,0 @@
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>

Before

Width:  |  Height:  |  Size: 391 B

View file

@ -1 +0,0 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>

Before

Width:  |  Height:  |  Size: 1 KiB

BIN
public/icons/icon-192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/icons/icon-512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Ebene_1" x="0px" y="0px" viewBox="0 0 1617 332" style="enable-background:new 0 0 1617 332;" xml:space="preserve"><style type="text/css"> .st0{fill:#FFFFFF;}</style><path class="st0" d="M172.1,86l13.3,21.2L69.2,178.5l116.2,71.9l-14.8,20.2L45.5,192.5v-28.3L172.1,86L172.1,86z"></path><path class="st0" d="M306.1,262.5c13.3,0,23.8-2.5,31.5-7.5s11.6-11.7,11.6-20c0-5.3-1-9.8-2.9-13.7c-1.9-3.8-5.8-7.3-11.8-10.4 c-5.9-3.1-15-6.1-27.3-9.2c-12-3-22.4-6.4-31.2-10.3c-8.8-3.9-15.7-9-20.6-15.2c-4.9-6.3-7.3-14.4-7.3-24.4s2.8-18.2,8.3-25.3 c5.5-7.1,13.2-12.5,23.1-16.3s21.4-5.7,34.4-5.7c13.9,0,26.1,1.8,36.5,5.5c10.4,3.7,19.2,8.2,26.4,13.6l-12.2,18.8 c-6.6-4.5-13.8-8.2-21.7-11.1c-7.9-2.9-17.5-4.4-28.6-4.4c-13.6,0-23.3,2.1-29,6.3c-5.7,4.2-8.6,9.7-8.6,16.4 c0,5.1,1.4,9.2,4.2,12.6c2.8,3.4,7.5,6.4,14.2,9.1c6.7,2.7,15.9,5.6,27.7,8.8c11.3,3,21.2,6.5,29.5,10.7c8.4,4.2,15,9.7,19.7,16.5 c4.7,6.8,7.1,15.6,7.1,26.3c0,12.3-3.5,22.2-10.5,29.9c-7,7.6-16.1,13.2-27.2,16.6s-22.9,5.2-35.3,5.2c-15.7,0-29.1-2.3-40.1-6.8 s-20.3-10.1-27.7-16.5l15.8-18.3c6.8,5.6,14.6,10.1,23.5,13.6C286.4,260.7,295.9,262.5,306.1,262.5L306.1,262.5z"></path><path class="st0" d="M532.5,108.2v151.5h48.9v21.9H451.3v-21.9h53.5V130.1H453v-21.9L532.5,108.2L532.5,108.2z M510.4,27 c6.2,0,11.1,1.9,14.7,5.6c3.7,3.7,5.5,8.3,5.5,13.7s-1.8,10.3-5.5,14.1c-3.7,3.8-8.6,5.7-14.7,5.7c-5.8,0-10.6-1.9-14.3-5.7 s-5.6-8.5-5.6-14.1s1.9-9.9,5.6-13.7C499.8,28.9,504.6,27,510.4,27L510.4,27z"></path><path class="st0" d="M642.3,281.6V108.2h23.5l2.1,24c7-8.9,15.8-15.7,26.4-20.5c10.6-4.8,20.9-7.2,30.9-7.2c17,0,29.4,4.5,37.1,13.5 c7.7,9,11.6,21.5,11.6,37.5v125.9h-27.7V176c0-11.9-0.7-21.4-2-28.7s-4.1-12.6-8.2-16c-4.2-3.3-10.7-5-19.4-5 c-6.8,0-13.2,1.5-19.2,4.5c-6,3-11.3,6.7-16,11.1c-4.7,4.4-8.5,8.9-11.6,13.4v126.3H642.3L642.3,281.6z"></path><path class="st0" d="M918.2,261.5c8.7,0,16.8-1.4,24.3-4.3s14.5-6.5,20.8-10.9l13.5,18.1c-7.6,6.5-16.7,11.6-27.3,15.3 s-21.1,5.6-31.3,5.6c-17.2,0-31.9-3.7-44-11.1c-12.1-7.4-21.4-17.8-27.7-31.3c-6.4-13.4-9.5-29.2-9.5-47.3s3.2-32.9,9.6-46.7 c6.4-13.8,15.7-24.6,27.8-32.5c12.1-7.9,26.9-11.8,44.2-11.8c11.1,0,21.5,1.7,31.2,5c9.7,3.3,18.6,8.4,26.8,15.1L963,143.1 c-7.3-5.2-14.7-9-22.1-11.6c-7.4-2.6-15-3.9-22.6-3.9c-14.9,0-27.2,5.6-36.9,16.8c-9.7,11.2-14.5,28.3-14.5,51.2 c0,15.4,2.2,27.9,6.7,37.6c4.5,9.7,10.5,16.9,18.3,21.4C899.5,259.2,908.3,261.5,918.2,261.5L918.2,261.5z"></path><path class="st0" d="M1059.2,204.7c0.6,13.4,3.1,24.3,7.7,32.8c4.6,8.5,10.7,14.8,18.3,18.8c7.6,4,15.8,6,24.7,6s16.9-1.3,24.1-4 s14.6-6.5,22.1-11.7l13,18.3c-8.1,6.4-17.4,11.4-27.7,15c-10.4,3.6-21,5.4-31.9,5.4c-16.8,0-31.1-3.8-43-11.4s-20.9-18.1-27.1-31.7 c-6.2-13.6-9.3-29.3-9.3-47.2s3.1-33.2,9.4-46.8c6.3-13.6,15-24.3,26.3-32.1c11.3-7.8,24.6-11.7,40-11.7s27.2,3.4,37.7,10.3 c10.5,6.9,18.6,16.6,24.3,29.3c5.7,12.7,8.5,27.8,8.5,45.4c0,3-0.1,5.7-0.2,8.3c-0.1,2.6-0.3,4.9-0.5,6.8L1059.2,204.7L1059.2,204.7 z M1106.2,127.3c-12.8,0-23.6,4.6-32.2,13.7c-8.6,9.1-13.5,23.2-14.7,42.3h90.4c-0.3-18.6-4.4-32.5-12.2-41.9 C1129.7,132,1119.3,127.3,1106.2,127.3L1106.2,127.3z"></path><path class="st0" d="M1290.3,51.2c14.3,0,26.6,2.5,37,7.7s18.4,12,24.1,20.6s8.6,18.1,8.6,28.4c0,9.1-2,17.4-6.1,24.9 c-4.1,7.5-9.4,13.6-16.1,18.4c-6.7,4.8-14.1,8-22.1,9.6c8.9,0.7,17.2,3.2,25,7.5c7.8,4.3,14.2,10.5,19.1,18.4s7.4,17.8,7.4,29.6 c0,13.1-3.3,24.8-9.9,35.3c-6.6,10.5-15.8,18.7-27.6,24.8c-11.8,6-25.6,9-41.2,9c-12.6,0-25.2-2.4-37.8-7.2 c-12.6-4.8-23.2-12.5-31.9-23.1l18.6-15.1c6.5,7.6,14.2,13.2,23.1,17c8.9,3.7,18,5.6,27.2,5.6c15.8,0,28.2-4.1,37-12.4 c8.9-8.3,13.3-19.6,13.3-33.8c0-10.8-2.1-19.3-6.2-25.5c-4.1-6.3-9.7-10.7-16.7-13.4c-7-2.7-15-4-24-4h-19.1l3.5-21.9h13.3 c7.3,0,14.3-1.4,20.8-4.2c6.5-2.8,11.9-7.2,16.1-13.1s6.3-13.3,6.3-22.2c0-12.5-4.2-22.1-12.5-28.7s-18.4-9.9-30.3-9.9 c-9.9,0-18.5,1.7-25.8,5.2s-14.8,8.7-22.2,15.7l-15.3-17c9.7-9.1,19.9-15.7,30.8-19.8S1278.8,51.2,1290.3,51.2L1290.3,51.2z"></path><path class="st0" d="M1441.8,86l126.6,78.2v28.3l-125,78.2l-15-20.4l116.2-71.8l-116.2-71.6L1441.8,86L1441.8,86z"></path></svg>

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Ebene_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1617 332">
<!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) -->
<path d="M172.13,85.97l13.34,21.24-116.23,71.29,116.23,71.94-14.82,20.25-125.12-78.2v-28.32l126.6-78.2Z"/>
<path d="M306.13,262.46c13.28,0,23.79-2.5,31.53-7.49,7.74-4.99,11.61-11.66,11.61-20,0-5.27-.96-9.82-2.88-13.67-1.92-3.84-5.84-7.3-11.77-10.37-5.93-3.07-15.04-6.15-27.33-9.22-11.96-2.96-22.36-6.39-31.2-10.29-8.84-3.89-15.7-8.97-20.58-15.23-4.89-6.26-7.33-14.38-7.33-24.37s2.77-18.19,8.31-25.27c5.54-7.08,13.25-12.51,23.13-16.3s21.35-5.68,34.41-5.68c13.94,0,26.09,1.84,36.47,5.52,10.37,3.68,19.18,8.21,26.42,13.58l-12.18,18.77c-6.59-4.5-13.83-8.2-21.73-11.11-7.9-2.91-17.45-4.36-28.65-4.36-13.61,0-23.27,2.11-28.98,6.34-5.71,4.23-8.56,9.69-8.56,16.38,0,5.05,1.4,9.25,4.2,12.59,2.8,3.35,7.54,6.37,14.24,9.05,6.69,2.69,15.91,5.63,27.66,8.81,11.3,2.96,21.16,6.53,29.55,10.7,8.4,4.17,14.95,9.66,19.67,16.46,4.72,6.81,7.08,15.59,7.08,26.34,0,12.29-3.51,22.25-10.54,29.88-7.02,7.63-16.11,13.17-27.25,16.63-11.14,3.46-22.91,5.19-35.31,5.19-15.7,0-29.06-2.28-40.09-6.83-11.03-4.55-20.28-10.07-27.74-16.55l15.8-18.27c6.8,5.6,14.62,10.12,23.46,13.58,8.83,3.46,18.36,5.19,28.56,5.19Z"/>
<path d="M532.5,108.2v151.46h48.9v21.9h-130.06v-21.9h53.51v-129.57h-51.86v-21.9h79.52ZM510.44,27.04c6.15,0,11.06,1.87,14.73,5.6,3.68,3.73,5.52,8.29,5.52,13.66s-1.84,10.29-5.52,14.08c-3.68,3.79-8.59,5.68-14.73,5.68-5.82,0-10.59-1.89-14.32-5.68-3.73-3.79-5.6-8.48-5.6-14.08s1.86-9.93,5.6-13.66c3.73-3.73,8.5-5.6,14.32-5.6Z"/>
<path d="M642.31,281.56V108.2h23.54l2.14,24.04c7.02-8.89,15.83-15.72,26.42-20.5,10.59-4.77,20.88-7.16,30.87-7.16,17.01,0,29.39,4.5,37.12,13.5,7.74,9,11.61,21.51,11.61,37.54v125.94h-27.66v-105.53c0-11.85-.66-21.43-1.98-28.73-1.32-7.3-4.06-12.62-8.23-15.97-4.17-3.35-10.65-5.02-19.43-5.02-6.81,0-13.2,1.48-19.18,4.45-5.98,2.96-11.31,6.67-15.97,11.11-4.67,4.44-8.54,8.92-11.61,13.42v126.27h-27.66Z"/>
<path d="M918.23,261.47c8.67,0,16.76-1.43,24.28-4.28,7.52-2.85,14.46-6.48,20.83-10.87l13.5,18.11c-7.57,6.48-16.68,11.58-27.33,15.31-10.65,3.73-21.07,5.6-31.28,5.6-17.23,0-31.91-3.7-44.04-11.11-12.13-7.41-21.38-17.83-27.74-31.28-6.37-13.44-9.55-29.22-9.55-47.33s3.21-32.9,9.63-46.67c6.42-13.77,15.69-24.61,27.82-32.52,12.13-7.9,26.86-11.85,44.21-11.85,11.08,0,21.48,1.67,31.2,5.02,9.71,3.35,18.63,8.37,26.75,15.06l-13.5,18.44c-7.35-5.16-14.73-9.03-22.14-11.61-7.41-2.58-14.96-3.87-22.64-3.87-14.93,0-27.22,5.6-36.88,16.79-9.66,11.19-14.49,28.26-14.49,51.2,0,15.37,2.22,27.91,6.67,37.62,4.45,9.71,10.54,16.85,18.27,21.4,7.74,4.56,16.54,6.83,26.42,6.83Z"/>
<path d="M1059.15,204.67c.55,13.39,3.13,24.34,7.74,32.84,4.61,8.51,10.7,14.76,18.27,18.77,7.57,4.01,15.8,6.01,24.69,6.01s16.93-1.32,24.12-3.95c7.19-2.63,14.57-6.53,22.14-11.69l13.01,18.27c-8.12,6.37-17.37,11.36-27.74,14.98-10.37,3.62-20.99,5.43-31.86,5.43-16.79,0-31.12-3.79-42.97-11.36s-20.88-18.13-27.08-31.69c-6.2-13.55-9.3-29.28-9.3-47.17s3.13-33.15,9.38-46.76c6.26-13.61,15.04-24.31,26.34-32.1,11.3-7.79,24.64-11.69,40.01-11.69s27.17,3.43,37.7,10.29c10.54,6.86,18.63,16.63,24.28,29.3,5.65,12.68,8.48,27.8,8.48,45.36,0,2.96-.06,5.74-.16,8.31-.11,2.58-.28,4.86-.49,6.83h-116.56ZM1106.24,127.3c-12.84,0-23.57,4.56-32.19,13.66-8.62,9.11-13.53,23.21-14.73,42.31h90.38c-.33-18.55-4.39-32.51-12.18-41.9-7.79-9.38-18.22-14.08-31.28-14.08Z"/>
<path d="M1290.29,51.24c14.27,0,26.59,2.55,36.96,7.66s18.41,11.96,24.12,20.58c5.71,8.62,8.56,18.08,8.56,28.4,0,9.11-2.03,17.4-6.09,24.86-4.06,7.46-9.44,13.61-16.13,18.44-6.7,4.83-14.05,8.01-22.06,9.55,8.89.66,17.23,3.16,25.02,7.49,7.79,4.34,14.16,10.48,19.1,18.44,4.94,7.96,7.41,17.81,7.41,29.55,0,13.06-3.29,24.83-9.88,35.31-6.58,10.48-15.78,18.74-27.58,24.78-11.8,6.04-25.55,9.05-41.24,9.05-12.62,0-25.22-2.42-37.78-7.24-12.57-4.83-23.19-12.51-31.86-23.05l18.6-15.15c6.47,7.57,14.18,13.23,23.13,16.96,8.94,3.73,18.03,5.6,27.25,5.6,15.8,0,28.15-4.14,37.04-12.43,8.89-8.29,13.34-19.56,13.34-33.83,0-10.75-2.06-19.26-6.17-25.52-4.12-6.26-9.69-10.73-16.71-13.42-7.03-2.69-15.04-4.03-24.04-4.03h-19.1l3.46-21.9h13.33c7.35,0,14.29-1.4,20.83-4.2,6.53-2.8,11.88-7.16,16.05-13.09,4.17-5.93,6.26-13.34,6.26-22.23,0-12.51-4.17-22.06-12.51-28.65-8.34-6.59-18.44-9.88-30.29-9.88-9.88,0-18.5,1.73-25.85,5.19-7.35,3.46-14.76,8.7-22.22,15.72l-15.31-16.96c9.66-9.11,19.92-15.72,30.79-19.84,10.87-4.12,22.06-6.17,33.58-6.17Z"/>
<path d="M1441.75,85.97l126.6,78.2v28.32l-124.96,78.2-14.98-20.41,116.23-71.78-116.23-71.62,13.33-20.91Z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -1 +0,0 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 128 B

View file

@ -1 +0,0 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>

Before

Width:  |  Height:  |  Size: 385 B