-
- Dateien hinzufügen
-
+ Dateien hinzufügen
+
diff --git a/src/lib/components/ui/button.svelte b/src/lib/components/ui/button.svelte
new file mode 100644
index 0000000..1d5e7e7
--- /dev/null
+++ b/src/lib/components/ui/button.svelte
@@ -0,0 +1,78 @@
+
+
+
+
+{#if href}
+ img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col", className)}
+ {...restProps}
+>
+ {@render children?.()}
+
diff --git a/src/lib/components/ui/card/index.ts b/src/lib/components/ui/card/index.ts
new file mode 100644
index 0000000..4d3fce4
--- /dev/null
+++ b/src/lib/components/ui/card/index.ts
@@ -0,0 +1,25 @@
+import Root from "./card.svelte";
+import Content from "./card-content.svelte";
+import Description from "./card-description.svelte";
+import Footer from "./card-footer.svelte";
+import Header from "./card-header.svelte";
+import Title from "./card-title.svelte";
+import Action from "./card-action.svelte";
+
+export {
+ Root,
+ Content,
+ Description,
+ Footer,
+ Header,
+ Title,
+ Action,
+ //
+ Root as Card,
+ Content as CardContent,
+ Description as CardDescription,
+ Footer as CardFooter,
+ Header as CardHeader,
+ Title as CardTitle,
+ Action as CardAction,
+};
diff --git a/src/lib/nom-theme.css b/src/lib/nom-theme.css
deleted file mode 100644
index 67d7e22..0000000
--- a/src/lib/nom-theme.css
+++ /dev/null
@@ -1,108 +0,0 @@
-[data-theme='nominandum'] {
- --text-scaling: 1.067;
-
- --base-font-color: var(--color-surface-900);
- --base-font-color-dark: var(--color-surface-50);
- --base-font-family: Nunito, Helvetica Neue, sans-serif;
- --base-font-size: inherit;
- --base-line-height: 1.5;
- --base-font-weight: 400;
-
- --heading-font-color: var(--color-primary-900);
- --heading-font-color-dark: var(--color-primary-900);
- --heading-font-family: Nunito, Helvetica Neue, sans-serif;
- --heading-font-weight: 400;
-
- --anchor-font-color: var(--color-primary-600);
- --anchor-font-color-dark: var(--color-primary-300);
- --anchor-text-decoration: none;
- --anchor-text-decoration-hover: underline;
-
- --spacing: 0.25rem;
- --radius-base: 0.5rem;
- --radius-container: 24px;
-
- --default-border-width: 1px;
- --default-divide-width: 1px;
- --default-ring-width: 2px;
-
- --body-background-color: #EEF4F6;
- --body-background-color-dark: #0f172a;
-
- /* Primary: Material Blue */
- /* Very Light / Ghostly */
- --color-primary-50: oklch(96.8% 0.010 253deg);
- --color-primary-100: oklch(92.8% 0.020 253deg);
- --color-primary-200: oklch(86.5% 0.040 253deg);
- --color-primary-300: oklch(77.5% 0.060 253deg);
- --color-primary-400: oklch(68.5% 0.080 253deg);
-
- /* Mid-range / Muted Tones */
- --color-primary-500: oklch(59.5% 0.090 253deg);
- --color-primary-600: oklch(52.5% 0.095 253deg);
- --color-primary-700: oklch(45.5% 0.095 253deg);
-
- /* Dark Range (Matching your base color) */
- --color-primary-800: oklch(38.5% 0.090 253deg);
- --color-primary-900: oklch(31.5% 0.090 253deg); /* YOUR BASE COLOR */
- --color-primary-950: oklch(23.5% 0.070 253deg);
-
- --color-primary-contrast-dark: var(--color-primary-950);
- --color-primary-contrast-light: white;
- --color-primary-contrast-50: var(--color-primary-contrast-dark);
- --color-primary-contrast-100: var(--color-primary-contrast-dark);
- --color-primary-contrast-200: var(--color-primary-contrast-dark);
- --color-primary-contrast-300: var(--color-primary-contrast-dark);
- --color-primary-contrast-400: white;
- --color-primary-contrast-500: white;
- --color-primary-contrast-600: white;
- --color-primary-contrast-700: white;
- --color-primary-contrast-800: white;
- --color-primary-contrast-900: white;
- --color-primary-contrast-950: white;
-
- /* Secondary: dezentes Blau-Grau */
- --color-secondary-50: oklch(97% 0.01 250deg);
- --color-secondary-100: oklch(93.5% 0.015 250deg);
- --color-secondary-200: oklch(88.5% 0.022 250deg);
- --color-secondary-300: oklch(80% 0.035 250deg);
- --color-secondary-400: oklch(68% 0.045 250deg);
- --color-secondary-500: oklch(56% 0.055 250deg);
- --color-secondary-600: oklch(48% 0.05 250deg);
- --color-secondary-700: oklch(40% 0.045 250deg);
- --color-secondary-800: oklch(32% 0.04 250deg);
- --color-secondary-900: oklch(24% 0.035 250deg);
- --color-secondary-950: oklch(17% 0.03 250deg);
-
- --color-secondary-contrast-dark: var(--color-secondary-950);
- --color-secondary-contrast-light: white;
-
- /* Tertiary: Akzent Cyan */
- --color-tertiary-50: oklch(97% 0.025 220deg);
- --color-tertiary-100: oklch(93% 0.045 220deg);
- --color-tertiary-200: oklch(87% 0.07 220deg);
- --color-tertiary-300: oklch(78% 0.105 220deg);
- --color-tertiary-400: oklch(69% 0.135 220deg);
- --color-tertiary-500: oklch(60% 0.15 220deg);
- --color-tertiary-600: oklch(52% 0.135 220deg);
- --color-tertiary-700: oklch(44% 0.115 220deg);
- --color-tertiary-800: oklch(36% 0.09 220deg);
- --color-tertiary-900: oklch(29% 0.065 220deg);
- --color-tertiary-950: oklch(21% 0.045 220deg);
-
- /* Surface: Material-nahe kühle Grautöne */
- --color-surface-50: oklch(98.5% 0.004 255deg);
- --color-surface-100: oklch(96.5% 0.006 255deg);
- --color-surface-200: oklch(92.5% 0.01 255deg);
- --color-surface-300: oklch(86.5% 0.015 255deg);
- --color-surface-400: oklch(74% 0.02 255deg);
- --color-surface-500: oklch(62% 0.025 255deg);
- --color-surface-600: oklch(50% 0.025 255deg);
- --color-surface-700: oklch(39% 0.025 255deg);
- --color-surface-800: oklch(29% 0.025 255deg);
- --color-surface-900: oklch(21% 0.025 255deg);
- --color-surface-950: oklch(14% 0.025 255deg);
-
- --color-surface-contrast-dark: var(--color-surface-950);
- --color-surface-contrast-light: white;
-}
\ No newline at end of file
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
new file mode 100644
index 0000000..55b3a91
--- /dev/null
+++ b/src/lib/utils.ts
@@ -0,0 +1,13 @@
+import { clsx, type ClassValue } from "clsx";
+import { twMerge } from "tailwind-merge";
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs));
+}
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export type WithoutChild