Files
certctl/web/src/index.css
T
shankar0123 9e6756d02f Implement M5: hardening, input validation, and Vite+React+TS dashboard
Backend hardening:
- Fix 6 nginx.go non-constant format string build errors
- Add validation.go with hostname, PEM, and enum validators
- Apply input validation to all POST/PUT handlers (certificates,
  agents, CSR, policies, teams, owners, targets, issuers)
- Fix unchecked JSON decode in TriggerDeployment handler

Frontend (Vite + React + TypeScript):
- Migrate from single-file SPA to proper build pipeline
- 7 pages: Dashboard, Certificates (list+detail), Agents, Jobs,
  Notifications, Policies, Audit Trail
- TanStack Query for server state with auto-refetch intervals
- Certificate detail with version history and renewal trigger
- Job cancellation, status/type filtering, expiry countdowns
- Reusable components: DataTable, StatusBadge, ErrorState, PageHeader
- Dark theme with Tailwind CSS, sidebar nav via React Router

Server integration:
- Go server serves web/dist/ (Vite output) with SPA fallback
- Falls back to web/index.html for legacy mode
- .gitignore updated for web/node_modules/ and web/dist/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 01:19:19 -04:00

31 lines
1.0 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
body {
@apply bg-slate-900 text-slate-100 antialiased;
}
}
@layer components {
.badge {
@apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}
.badge-success { @apply bg-emerald-500/10 text-emerald-400 border border-emerald-500/20; }
.badge-warning { @apply bg-amber-500/10 text-amber-400 border border-amber-500/20; }
.badge-danger { @apply bg-red-500/10 text-red-400 border border-red-500/20; }
.badge-info { @apply bg-blue-500/10 text-blue-400 border border-blue-500/20; }
.badge-neutral { @apply bg-slate-500/10 text-slate-400 border border-slate-500/20; }
.card {
@apply bg-slate-800 border border-slate-700 rounded-lg;
}
.btn {
@apply inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors;
}
.btn-primary { @apply bg-blue-600 hover:bg-blue-500 text-white; }
.btn-ghost { @apply hover:bg-slate-700 text-slate-300; }
}