From: Stefan Gasser Date: Sat, 10 Jan 2026 16:47:28 +0000 (+0100) Subject: feat: Update dashboard to match design system (#16) X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=74c9202bc4934914a1fd48b2d767e415efad9279;p=sgasser-llm-shield.git feat: Update dashboard to match design system (#16) * feat: Update dashboard to match design system - Apply design system tokens (colors, typography, radius, shadows) - Add branded "Redaction Bar Loader" animation for loading/empty states - Add favicon route serving inline SVG - Update README with wordmark SVG and optimized screenshot - Move assets to assets/ folder (logo, wordmark, favicon, dashboard) * fix: Formatting and browser compatibility fixes - Fix biome formatting in favicon route (multi-line object) - Add color-mix() fallback for card hover effect (older browsers) --- diff --git a/README.md b/README.md index 15e415e..6e0732f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,13 @@ -# 🛡️ PasteGuard +

+ PasteGuard +

[![CI](https://github.com/sgasser/pasteguard/actions/workflows/ci.yml/badge.svg)](https://github.com/sgasser/pasteguard/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) Privacy proxy for LLMs. Masks personal data and secrets / credentials before sending to your provider (OpenAI, Azure, etc.), or routes sensitive requests to local LLM. -PasteGuard Dashboard +PasteGuard Dashboard ## Mask Mode (Default) diff --git a/assets/dashboard.png b/assets/dashboard.png new file mode 100644 index 0000000..1da1f02 Binary files /dev/null and b/assets/dashboard.png differ diff --git a/assets/favicon.svg b/assets/favicon.svg new file mode 100644 index 0000000..6f3e667 --- /dev/null +++ b/assets/favicon.svg @@ -0,0 +1,7 @@ + + + + diff --git a/assets/logo-dark.svg b/assets/logo-dark.svg new file mode 100644 index 0000000..e6c4262 --- /dev/null +++ b/assets/logo-dark.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/assets/logo-light.svg b/assets/logo-light.svg new file mode 100644 index 0000000..f60d8ca --- /dev/null +++ b/assets/logo-light.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/assets/wordmark-dark.svg b/assets/wordmark-dark.svg new file mode 100644 index 0000000..066e14f --- /dev/null +++ b/assets/wordmark-dark.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + PasteGuard + diff --git a/assets/wordmark-light.svg b/assets/wordmark-light.svg new file mode 100644 index 0000000..9e6a481 --- /dev/null +++ b/assets/wordmark-light.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + PasteGuard + diff --git a/docs/dashboard.png b/docs/dashboard.png deleted file mode 100644 index e1e665a..0000000 Binary files a/docs/dashboard.png and /dev/null differ diff --git a/src/index.ts b/src/index.ts index 504104f..aa0c49d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -31,6 +31,15 @@ app.use("*", requestIdMiddleware); app.use("*", cors()); app.use("*", logger()); +// Favicon +app.get("/favicon.svg", (c) => { + const svg = ``; + return c.body(svg, 200, { + "Content-Type": "image/svg+xml", + "Cache-Control": "public, max-age=86400", + }); +}); + app.route("/", healthRoutes); app.route("/", infoRoutes); app.route("/openai/v1", proxyRoutes); diff --git a/src/views/dashboard/page.tsx b/src/views/dashboard/page.tsx index a1a5124..1a99b2a 100644 --- a/src/views/dashboard/page.tsx +++ b/src/views/dashboard/page.tsx @@ -7,74 +7,124 @@ const DashboardPage: FC = () => { PasteGuard Dashboard - - - +