From 01982964bb86fc4cc23ac2e01589e40301a0fc06 Mon Sep 17 00:00:00 2001 From: opencode Date: Thu, 6 Aug 2026 07:08:01 +0200 Subject: [PATCH] feat(design): neon/AI look with gradient loading states --- .../toolrate/src/components/compare-bar.tsx | 2 +- .../toolrate/src/components/tool-card.tsx | 2 +- .../toolrate/src/components/ui/button.tsx | 4 +- .../toolrate/src/components/ui/input.tsx | 2 +- .../toolrate/src/components/ui/progress.tsx | 26 +- .../toolrate/src/components/ui/skeleton.tsx | 2 +- .../toolrate/src/components/ui/spinner.tsx | 5 +- .../toolrate/src/components/ui/textarea.tsx | 2 +- artifacts/toolrate/src/index.css | 91 + artifacts/toolrate/src/pages/home.tsx | 6 +- artifacts/toolrate/src/pages/login.tsx | 2 +- docs/releases/v0.9.3.de.md | 39 + docs/releases/v0.9.3.en.md | 37 + .../v0.9.3/handbook/administration.de.md | 104 + .../v0.9.3/handbook/administration.en.md | 104 + docs/releases/v0.9.3/handbook/analytics.de.md | 29 + docs/releases/v0.9.3/handbook/analytics.en.md | 29 + docs/releases/v0.9.3/handbook/bewerten.de.md | 39 + docs/releases/v0.9.3/handbook/bewerten.en.md | 39 + .../v0.9.3/handbook/datenmodell.de.md | 70 + .../v0.9.3/handbook/datenmodell.en.md | 70 + .../v0.9.3/handbook/getting-started.de.md | 53 + .../v0.9.3/handbook/getting-started.en.md | 53 + docs/releases/v0.9.3/handbook/index.de.md | 53 + docs/releases/v0.9.3/handbook/index.en.md | 52 + docs/releases/v0.9.3/handbook/index.json | 138 + docs/releases/v0.9.3/handbook/konto.de.md | 53 + docs/releases/v0.9.3/handbook/konto.en.md | 52 + docs/releases/v0.9.3/handbook/kosten.de.md | 35 + docs/releases/v0.9.3/handbook/kosten.en.md | 35 + .../releases/v0.9.3/handbook/papierkorb.de.md | 41 + .../releases/v0.9.3/handbook/papierkorb.en.md | 40 + docs/releases/v0.9.3/handbook/plaene.de.md | 42 + docs/releases/v0.9.3/handbook/plaene.en.md | 42 + docs/releases/v0.9.3/handbook/redundanz.de.md | 38 + docs/releases/v0.9.3/handbook/redundanz.en.md | 38 + docs/releases/v0.9.3/handbook/tastatur.de.md | 36 + docs/releases/v0.9.3/handbook/tastatur.en.md | 36 + .../v0.9.3/handbook/tool-anlegen.de.md | 46 + .../v0.9.3/handbook/tool-anlegen.en.md | 46 + .../v0.9.3/handbook/tool-bearbeiten.de.md | 33 + .../v0.9.3/handbook/tool-bearbeiten.en.md | 32 + .../v0.9.3/handbook/tools-finden.de.md | 67 + .../v0.9.3/handbook/tools-finden.en.md | 66 + .../v0.9.3/handbook/vergleichen.de.md | 42 + .../v0.9.3/handbook/vergleichen.en.md | 42 + docs/releases/v0.9.3/handbook/watchlist.de.md | 34 + docs/releases/v0.9.3/handbook/watchlist.en.md | 33 + docs/releases/v0.9.3/reference.json | 2854 +++++++++++++++++ 49 files changed, 4811 insertions(+), 25 deletions(-) create mode 100644 docs/releases/v0.9.3.de.md create mode 100644 docs/releases/v0.9.3.en.md create mode 100644 docs/releases/v0.9.3/handbook/administration.de.md create mode 100644 docs/releases/v0.9.3/handbook/administration.en.md create mode 100644 docs/releases/v0.9.3/handbook/analytics.de.md create mode 100644 docs/releases/v0.9.3/handbook/analytics.en.md create mode 100644 docs/releases/v0.9.3/handbook/bewerten.de.md create mode 100644 docs/releases/v0.9.3/handbook/bewerten.en.md create mode 100644 docs/releases/v0.9.3/handbook/datenmodell.de.md create mode 100644 docs/releases/v0.9.3/handbook/datenmodell.en.md create mode 100644 docs/releases/v0.9.3/handbook/getting-started.de.md create mode 100644 docs/releases/v0.9.3/handbook/getting-started.en.md create mode 100644 docs/releases/v0.9.3/handbook/index.de.md create mode 100644 docs/releases/v0.9.3/handbook/index.en.md create mode 100644 docs/releases/v0.9.3/handbook/index.json create mode 100644 docs/releases/v0.9.3/handbook/konto.de.md create mode 100644 docs/releases/v0.9.3/handbook/konto.en.md create mode 100644 docs/releases/v0.9.3/handbook/kosten.de.md create mode 100644 docs/releases/v0.9.3/handbook/kosten.en.md create mode 100644 docs/releases/v0.9.3/handbook/papierkorb.de.md create mode 100644 docs/releases/v0.9.3/handbook/papierkorb.en.md create mode 100644 docs/releases/v0.9.3/handbook/plaene.de.md create mode 100644 docs/releases/v0.9.3/handbook/plaene.en.md create mode 100644 docs/releases/v0.9.3/handbook/redundanz.de.md create mode 100644 docs/releases/v0.9.3/handbook/redundanz.en.md create mode 100644 docs/releases/v0.9.3/handbook/tastatur.de.md create mode 100644 docs/releases/v0.9.3/handbook/tastatur.en.md create mode 100644 docs/releases/v0.9.3/handbook/tool-anlegen.de.md create mode 100644 docs/releases/v0.9.3/handbook/tool-anlegen.en.md create mode 100644 docs/releases/v0.9.3/handbook/tool-bearbeiten.de.md create mode 100644 docs/releases/v0.9.3/handbook/tool-bearbeiten.en.md create mode 100644 docs/releases/v0.9.3/handbook/tools-finden.de.md create mode 100644 docs/releases/v0.9.3/handbook/tools-finden.en.md create mode 100644 docs/releases/v0.9.3/handbook/vergleichen.de.md create mode 100644 docs/releases/v0.9.3/handbook/vergleichen.en.md create mode 100644 docs/releases/v0.9.3/handbook/watchlist.de.md create mode 100644 docs/releases/v0.9.3/handbook/watchlist.en.md create mode 100644 docs/releases/v0.9.3/reference.json diff --git a/artifacts/toolrate/src/components/compare-bar.tsx b/artifacts/toolrate/src/components/compare-bar.tsx index 1221601..b3fd0c1 100644 --- a/artifacts/toolrate/src/components/compare-bar.tsx +++ b/artifacts/toolrate/src/components/compare-bar.tsx @@ -23,7 +23,7 @@ export function CompareBar({ if (tools.length === 0) return null; return (
-
+
diff --git a/artifacts/toolrate/src/components/tool-card.tsx b/artifacts/toolrate/src/components/tool-card.tsx index e49d3e4..c079f3f 100644 --- a/artifacts/toolrate/src/components/tool-card.tsx +++ b/artifacts/toolrate/src/components/tool-card.tsx @@ -16,7 +16,7 @@ export function ToolCard({ watchlist?: { watched: boolean; onToggle: () => void }; }) { return ( - +
diff --git a/artifacts/toolrate/src/components/ui/button.tsx b/artifacts/toolrate/src/components/ui/button.tsx index 16eb95d..fc34b83 100644 --- a/artifacts/toolrate/src/components/ui/button.tsx +++ b/artifacts/toolrate/src/components/ui/button.tsx @@ -12,14 +12,14 @@ const buttonVariants = cva( variant: { default: // @replit: no hover, and add primary border - "bg-primary text-primary-foreground border border-primary-border", + "bg-primary text-primary-foreground border border-primary-border hover:neon-glow-primary focus-visible:neon-glow-primary transition-shadow", destructive: "bg-destructive text-destructive-foreground shadow-sm border-destructive-border", outline: // @replit Shows the background color of whatever card / sidebar / accent background it is inside of. // Inherits the current text color. Uses shadow-xs. no shadow on active // No hover state - " border [border-color:var(--button-outline)] shadow-xs active:shadow-none ", + " border [border-color:var(--button-outline)] shadow-xs active:shadow-none hover:neon-glow focus-visible:neon-glow transition-shadow", secondary: // @replit border, no hover, no shadow, secondary border. "border bg-secondary text-secondary-foreground border border-secondary-border ", diff --git a/artifacts/toolrate/src/components/ui/input.tsx b/artifacts/toolrate/src/components/ui/input.tsx index 69b64fb..08d3e72 100644 --- a/artifacts/toolrate/src/components/ui/input.tsx +++ b/artifacts/toolrate/src/components/ui/input.tsx @@ -8,7 +8,7 @@ const Input = React.forwardRef>( , React.ComponentPropsWithoutRef >(({ className, value, ...props }, ref) => ( - - - + + + )) Progress.displayName = ProgressPrimitive.Root.displayName diff --git a/artifacts/toolrate/src/components/ui/skeleton.tsx b/artifacts/toolrate/src/components/ui/skeleton.tsx index d7e45f7..f7a70e8 100644 --- a/artifacts/toolrate/src/components/ui/skeleton.tsx +++ b/artifacts/toolrate/src/components/ui/skeleton.tsx @@ -6,7 +6,7 @@ function Skeleton({ }: React.HTMLAttributes) { return (
) diff --git a/artifacts/toolrate/src/components/ui/spinner.tsx b/artifacts/toolrate/src/components/ui/spinner.tsx index a70e713..0647025 100644 --- a/artifacts/toolrate/src/components/ui/spinner.tsx +++ b/artifacts/toolrate/src/components/ui/spinner.tsx @@ -7,7 +7,10 @@ function Spinner({ className, ...props }: React.ComponentProps<"svg">) { ) diff --git a/artifacts/toolrate/src/components/ui/textarea.tsx b/artifacts/toolrate/src/components/ui/textarea.tsx index e56b0af..97c16c2 100644 --- a/artifacts/toolrate/src/components/ui/textarea.tsx +++ b/artifacts/toolrate/src/components/ui/textarea.tsx @@ -9,7 +9,7 @@ const Textarea = React.forwardRef< return (