diff --git a/README.md b/README.md index fe91ea611..c974be546 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ Each feature folder typically contains: `*Page.tsx` (list), `*DetailPage.tsx`, ` `DashboardLayout` provides the sidebar + header shell shared across all freight and passenger web apps: -- **Sidebar** — brand-tinted, icon-led navigation; the brand color (`#33578D`) marks the active item. +- **Sidebar** — brand-tinted, icon-led navigation. Main brand color: `#10B981` (`rgb(16, 185, 129)` — emerald-500). Icon containers use the filled style: brand-color background with a white icon. - **Header** — language picker, notifications, user dropdown (click-driven, click-outside / Escape close); host apps opt into a light/dark theme toggle via `enableThemeToggle` (Tailwind class-based, persisted in `localStorage`). ### Auth integration (planned) diff --git a/apps/edr-freight-web/portal/index.css b/apps/edr-freight-web/portal/index.css index 241330c15..22fe63dad 100644 --- a/apps/edr-freight-web/portal/index.css +++ b/apps/edr-freight-web/portal/index.css @@ -22,7 +22,7 @@ } *::-webkit-scrollbar-thumb:hover { - background-color: rgb(51 87 141 / 0.5); + background-color: rgb(16 185 129 / 0.5); } *::-webkit-scrollbar-corner { @@ -38,5 +38,5 @@ } .dark *::-webkit-scrollbar-thumb:hover { - background-color: rgb(51 87 141 / 0.7); + background-color: rgb(16 185 129 / 0.7); } diff --git a/apps/edr-freight-web/portal/src/components/Breadcrumbs.tsx b/apps/edr-freight-web/portal/src/components/Breadcrumbs.tsx index 159d7eead..2d756b096 100644 --- a/apps/edr-freight-web/portal/src/components/Breadcrumbs.tsx +++ b/apps/edr-freight-web/portal/src/components/Breadcrumbs.tsx @@ -20,7 +20,7 @@ export default function Breadcrumbs({ items }: BreadcrumbsProps) { {/* */} Dashboard @@ -36,7 +36,7 @@ export default function Breadcrumbs({ items }: BreadcrumbsProps) { {item.href && !isLast ? ( {item.label} diff --git a/apps/edr-freight-web/portal/src/components/ui/input.tsx b/apps/edr-freight-web/portal/src/components/ui/input.tsx index 311be213b..9980c9f59 100644 --- a/apps/edr-freight-web/portal/src/components/ui/input.tsx +++ b/apps/edr-freight-web/portal/src/components/ui/input.tsx @@ -10,7 +10,7 @@ function Input({ className, type, ...props }: React.ComponentProps<"input">) { className={cn( "flex h-10 w-full min-w-0 rounded-md border border-slate-200 bg-white px-3 py-1 text-sm text-slate-700 shadow-xs outline-none transition placeholder:text-slate-400 file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", "hover:border-slate-300", - "focus:border-[#33578D]/50 focus:ring-2 focus:ring-[#33578D]/20", + "focus:border-[#10B981]/50 focus:ring-2 focus:ring-[#10B981]/20", "aria-invalid:border-red-500 aria-invalid:ring-2 aria-invalid:ring-red-500/20", className, )} diff --git a/apps/edr-freight-web/portal/src/components/ui/textarea.tsx b/apps/edr-freight-web/portal/src/components/ui/textarea.tsx index 2e6c1f849..10fd9d657 100644 --- a/apps/edr-freight-web/portal/src/components/ui/textarea.tsx +++ b/apps/edr-freight-web/portal/src/components/ui/textarea.tsx @@ -9,7 +9,7 @@ function Textarea({ className, ...props }: React.ComponentProps<"textarea">) { className={cn( "field-sizing-content flex min-h-16 w-full rounded-md border border-slate-200 bg-white px-3 py-2 text-sm text-slate-700 shadow-xs outline-none transition placeholder:text-slate-400 disabled:cursor-not-allowed disabled:opacity-50", "hover:border-slate-300", - "focus:border-[#33578D]/50 focus:ring-2 focus:ring-[#33578D]/20", + "focus:border-[#10B981]/50 focus:ring-2 focus:ring-[#10B981]/20", "aria-invalid:border-red-500 aria-invalid:ring-2 aria-invalid:ring-red-500/20", className, )} diff --git a/apps/edr-freight-web/portal/src/pages/admin/DropdownSettingsPage.tsx b/apps/edr-freight-web/portal/src/pages/admin/DropdownSettingsPage.tsx index 6d63067a5..1b50ca786 100644 --- a/apps/edr-freight-web/portal/src/pages/admin/DropdownSettingsPage.tsx +++ b/apps/edr-freight-web/portal/src/pages/admin/DropdownSettingsPage.tsx @@ -72,14 +72,14 @@ export default function DropdownSettingsPage() { value={query} onChange={(e) => setQuery(e.target.value)} placeholder="Search by code, label, description..." - className="h-10 w-full rounded-2xl border border-slate-200 bg-white pl-10 pr-4 text-sm text-slate-700 outline-none transition placeholder:text-slate-400 focus:border-[#33578D]/50 focus:ring-2 focus:ring-[#33578D]/20" + className="h-10 w-full rounded-2xl border border-slate-200 bg-white pl-10 pr-4 text-sm text-slate-700 outline-none transition placeholder:text-slate-400 focus:border-[#10B981]/50 focus:ring-2 focus:ring-[#10B981]/20" /> @@ -157,11 +157,11 @@ export default function DropdownSettingsPage() { filtered.map((setting) => (
-
+
@@ -183,7 +183,7 @@ export default function DropdownSettingsPage() {
- + {setting.children.length} @@ -214,7 +214,7 @@ export default function DropdownSettingsPage() { (setting.meta?.permissions ?? []).map((p) => ( {p} @@ -229,7 +229,7 @@ export default function DropdownSettingsPage() { @@ -285,7 +285,7 @@ function BehaviorChip({ className={ muted ? "rounded-full bg-slate-100 px-2 py-0.5 text-xs font-medium text-slate-600" - : "rounded-full bg-[#33578D]/10 px-2 py-0.5 text-xs font-medium text-[#33578D]" + : "rounded-full bg-[#10B981]/10 px-2 py-0.5 text-xs font-medium text-[#10B981]" } > {label} @@ -303,13 +303,13 @@ function StatCard({ icon: React.ReactNode; }) { return ( -
+

{title}

{value}

-
+
{icon}
diff --git a/apps/edr-freight-web/portal/src/pages/admin/EditDropdownSettingDialog.tsx b/apps/edr-freight-web/portal/src/pages/admin/EditDropdownSettingDialog.tsx index 8b28b69e1..2bea74fbf 100644 --- a/apps/edr-freight-web/portal/src/pages/admin/EditDropdownSettingDialog.tsx +++ b/apps/edr-freight-web/portal/src/pages/admin/EditDropdownSettingDialog.tsx @@ -97,7 +97,7 @@ export default function EditDropdownSettingDialog({
@@ -144,7 +144,7 @@ export default function EditDropdownSettingDialog({
-
@@ -168,15 +168,15 @@ function ToggleChip({
- @@ -227,11 +227,11 @@ export default function BillingPage() { paginated.map((invoice) => (
-
+
@@ -270,7 +270,7 @@ export default function BillingPage() { @@ -291,7 +291,7 @@ export default function BillingPage() { > @@ -364,7 +364,7 @@ function Pagination({ id="invoice-page-size" value={pageSize} onChange={(e) => onPageSizeChange(Number(e.target.value))} - className="h-9 rounded-xl border border-slate-200 bg-white px-3 text-sm text-slate-700 outline-none transition focus:border-[#33578D]/50 focus:ring-2 focus:ring-[#33578D]/20" + className="h-9 rounded-xl border border-slate-200 bg-white px-3 text-sm text-slate-700 outline-none transition focus:border-[#10B981]/50 focus:ring-2 focus:ring-[#10B981]/20" > {PAGE_SIZE_OPTIONS.map((size) => (