refactor: convert admin panel to Tailwind CSS

- Convert admin layout, sidebar, and navigation to Tailwind classes
- Convert dashboard components (StatusCard, DiagnosticRow, etc.) to Tailwind
- Convert all ~48 admin page files from admin CSS classes to Tailwind
- Remove unused admin CSS from globals.css (973 → 712 lines)
- Convert developers page badges to Tailwind
- Remove <style jsx> block from OnlineUsersWidget
This commit is contained in:
remco committed 2026-07-02 15:23:07 +02:00
1 parent 64f50b2dde
commit bd299be55d
52 files changed
+277 -644

No files matched your search

+4 -4
View File
@@ -53,7 +53,7 @@ export default async function AdminRadioEmbedPage() {
<Link href="/admin/radio/history">History</Link>
</nav>
<section className="admin-section">
<section className="mt-6">
<h1>Radio Embed</h1>
<p className="muted" style={{ marginTop: '-0.4rem' }}>
Copy-ready embed code for the live stream. Read-only — nothing here
@@ -62,7 +62,7 @@ export default async function AdminRadioEmbedPage() {
<code>radio_stream_url</code>).
</p>
<div className="admin-stats">
<div className="grid grid-cols-[repeat(auto-fit,minmax(180px,1fr))] gap-3.5 mb-6">
<StatusCard
label="Stream URL"
value={hasStream ? 'Configured' : 'Missing'}
@@ -80,7 +80,7 @@ export default async function AdminRadioEmbedPage() {
</section>
{!hasStream ? (
<section className="admin-section">
<section className="mt-6">
<h2>No stream URL configured</h2>
<p className="muted">
There is no <code>radio_stream_url</code> set, so there is nothing to
@@ -98,7 +98,7 @@ export default async function AdminRadioEmbedPage() {
</section>
) : (
<>
<section className="admin-section">
<section className="mt-6">
<h2>Live preview</h2>
<p className="muted" style={{ marginTop: '-0.4rem' }}>
This is the bare <code>&lt;audio&gt;</code> player as visitors will