کسی لفظ کو منتخب کریں تو اس کے معنی اور تلفظ ساتھ نظر آئیں گے۔
{page.divan && (
diff --git a/web/src/pages/admin/audit.astro b/web/src/pages/admin/audit.astro
index 0d60edc3..804ebf26 100644
--- a/web/src/pages/admin/audit.astro
+++ b/web/src/pages/admin/audit.astro
@@ -1,6 +1,7 @@
---
// Admin: audit log of admin actions
import Base from '../../layouts/Base.astro';
+import Icon from '../../components/Icon.astro';
import AdminNav from '../../components/AdminNav.astro';
import { asUser, COOKIE } from '../../lib/auth';
import { ud } from '../../lib/urdu';
@@ -38,9 +39,9 @@ const when = (d: string) => ud(new Date(d).toISOString().slice(0, 16).replace('T
{pages > 1 && (
)}
diff --git a/web/src/pages/admin/index.astro b/web/src/pages/admin/index.astro
index 6b06abdf..df95a90d 100644
--- a/web/src/pages/admin/index.astro
+++ b/web/src/pages/admin/index.astro
@@ -1,6 +1,7 @@
---
// Admin: users. Password resets happen here on a reader's request (no email server yet).
import Base from '../../layouts/Base.astro';
+import Icon from '../../components/Icon.astro';
import AdminNav from '../../components/AdminNav.astro';
import { asUser, COOKIE } from '../../lib/auth';
import { ud } from '../../lib/urdu';
@@ -92,9 +93,9 @@ const link = (n: number) => `/admin?q=${encodeURIComponent(q)}&page=${n}`;
{pages > 1 && (
)}
diff --git a/web/src/pages/design.astro b/web/src/pages/design.astro
new file mode 100644
index 00000000..101d9c31
--- /dev/null
+++ b/web/src/pages/design.astro
@@ -0,0 +1,105 @@
+---
+// Design system reference (dev only): the real tokens and components from global.css, so it cannot drift.
+// Switch palette, light/dark and font from the header's display settings.
+import Base from '../layouts/Base.astro';
+import Icon from '../components/Icon.astro';
+if (import.meta.env.PROD) return new Response(null, { status: 404 });
+const colours = [
+ ['surfaces', ['surface-page', 'surface-raised', 'surface-poem', 'surface-sunken']],
+ ['text and lines', ['text', 'text-muted', 'link', 'heading', 'border', 'line']],
+ ['brand and accent', ['brand', 'accent', 'accent-soft', 'active', 'focus']],
+ ['roles', ['action', 'action-ink', 'ok', 'danger']],
+] as const;
+const sizes = ['xs', 'sm', 'md', 'lg', 'xl', '2xl'];
+const radii = ['sm', 'md', 'lg', 'pill'];
+---
+
رنگ، خط اور روشنی اوپر کی ترتیبات سے بدلیں
+ +--{n})}
+ --fs-{s} دل ہی تو ہے نہ سنگ و خشت درد سے بھر نہ آئے کیوں
--r-{r})}+ جمع شدہمنظور شدہ + شائع شدہواپس +
+ +دل ہی تو ہے نہ سنگ و خشت درد سے بھر نہ آئے کیوں
روئیں گے ہم ہزار بار کوئی ہمیں ستائے کیوں
دیر نہیں حرم نہیں در نہیں آستاں نہیں
بیٹھے ہیں رہ گزر پہ ہم غالب ہمیں اٹھائے کیوں
دل ہی تو ہے نہ سنگ و خشت