@@ -133,11 +136,15 @@ export default function StandardModal({ standard, onClose }) {
{messages.map((m, i) => (
+ {m.role === "ai" && (
+
✦
+ )}
{m.text}
))}
{asking && (
+ ✦
diff --git a/web/client/src/pages/Categories.jsx b/web/client/src/pages/Categories.jsx
index 9e83ed5..6eb4012 100644
--- a/web/client/src/pages/Categories.jsx
+++ b/web/client/src/pages/Categories.jsx
@@ -4,6 +4,33 @@ import { useTranslation } from "react-i18next";
import { fetchCategories } from "../api/standards";
import "./Categories.css";
+const CATEGORY_ICONS = {
+ "Adhesives": "🧲",
+ "Bitumen and Tar Products": "🛣️",
+ "Builder's Hardware": "🔩",
+ "Building Limes": "🪨",
+ "Cement and Concrete": "🏗️",
+ "Concrete Reinforcement": "⚙️",
+ "Doors, Windows and Shutters": "🚪",
+ "Electrical Installations": "⚡",
+ "Floor, Wall, Roof Coverings and Finishes": "🏛️",
+ "Gypsum Building Materials": "🏺",
+ "Light Metal and Their Alloys": "🔧",
+ "Paints, Varnishes and Allied Products": "🎨",
+ "Pipes and Fittings": "🔧",
+ "Sanitary Appliances and Water Fittings": "🚿",
+ "Stones": "🪨",
+ "Structural Shapes": "📐",
+ "Structural Steels": "🏗️",
+ "Thermal Insulation Materials": "🌡️",
+ "Threaded Fasteners and Rivets": "🔩",
+ "Timber": "🪵",
+ "Water Proofing and Damp Proofing Materials": "💧",
+ "Welding Electrodes and Wires": "🔌",
+ "Wire Ropes and Wire Products": "🪢",
+ "Wood Products": "🪵",
+ "Wood Products for Building": "🏠",
+};
export default function Categories() {
const { t } = useTranslation();
@@ -49,6 +76,9 @@ export default function Categories() {
role="listitem"
onClick={() => navigate(`/standards?category=${encodeURIComponent(cat.name)}`)}
>
+
+ {CATEGORY_ICONS[cat.name] || "📋"}
+
{cat.name}
{t("categories.standardCount", { count: cat.count })}
→
diff --git a/web/client/src/pages/Home.jsx b/web/client/src/pages/Home.jsx
index 8433618..5cd8a0c 100644
--- a/web/client/src/pages/Home.jsx
+++ b/web/client/src/pages/Home.jsx
@@ -23,10 +23,10 @@ export default function Home() {
};
const PILLARS = [
- { titleKey: "home.pillar_instantRetrieval_title", bodyKey: "home.pillar_instantRetrieval_body" },
- { titleKey: "home.pillar_sectionDetail_title", bodyKey: "home.pillar_sectionDetail_body" },
- { titleKey: "home.pillar_categories_title", bodyKey: "home.pillar_categories_body" },
- { titleKey: "home.pillar_officialSource_title", bodyKey: "home.pillar_officialSource_body" },
+ { icon: "⚡", titleKey: "home.pillar_instantRetrieval_title", bodyKey: "home.pillar_instantRetrieval_body" },
+ { icon: "📐", titleKey: "home.pillar_sectionDetail_title", bodyKey: "home.pillar_sectionDetail_body" },
+ { icon: "🗂", titleKey: "home.pillar_categories_title", bodyKey: "home.pillar_categories_body" },
+ { icon: "🔒", titleKey: "home.pillar_officialSource_title", bodyKey: "home.pillar_officialSource_body" },
];
return (
@@ -116,8 +116,9 @@ export default function Home() {
- {PILLARS.map(({ titleKey, bodyKey }) => (
+ {PILLARS.map(({ icon, titleKey, bodyKey }) => (
+
{icon}
{t(titleKey)}
{t(bodyKey)}
diff --git a/web/client/src/pages/Recommend.jsx b/web/client/src/pages/Recommend.jsx
index 409b211..bb4f101 100644
--- a/web/client/src/pages/Recommend.jsx
+++ b/web/client/src/pages/Recommend.jsx
@@ -128,8 +128,8 @@ export default function Recommend() {
{loading && (
)}
@@ -232,9 +232,10 @@ function LatencyBadge({ label, ms, accent, bold }) {
);
}
-function LoadingStep({ label, delay }) {
+function LoadingStep({ icon, label, delay }) {
return (
+ {icon}
{label}
);
@@ -250,7 +251,7 @@ function SearchIcon() {
}
function SpinIcon() {
- return
;
+ return
⟳;
}
function standardsFullRecord(s) {
diff --git a/web/client/src/pages/Standards.jsx b/web/client/src/pages/Standards.jsx
index afd1469..e7366dc 100644
--- a/web/client/src/pages/Standards.jsx
+++ b/web/client/src/pages/Standards.jsx
@@ -98,7 +98,9 @@ export default function Standards() {
type="button"
onClick={handleClearSearch}
aria-label={t("standards.clearSearch")}
- />
+ >
+ ✕
+
)}
@@ -129,7 +131,7 @@ export default function Standards() {
{loading
? t("standards.searching")
: t("standards.found", { count: meta.total })}
- {!loading && meta.total > 0 && ` -- ${t("standards.page", { page: meta.page, total: meta.totalPages })}`}
+ {!loading && meta.total > 0 && ` — ${t("standards.page", { page: meta.page, total: meta.totalPages })}`}
)}