diff --git a/DebugProbe.AspNetCore/Assets/css/debugprobe.css b/DebugProbe.AspNetCore/Assets/css/debugprobe.css index e411cfe..6fd2089 100644 --- a/DebugProbe.AspNetCore/Assets/css/debugprobe.css +++ b/DebugProbe.AspNetCore/Assets/css/debugprobe.css @@ -20,7 +20,7 @@ a { } h2 { - margin-bottom: 10px; + margin: 0 0 4px; } h3 { @@ -41,6 +41,7 @@ h4 { } .toolbar, +.index-header, .topbar, .accordion-header, .accordion-meta, @@ -51,12 +52,81 @@ h4 { } .toolbar, +.index-header, .topbar, .accordion-header, .details-item { justify-content: space-between; } +.index-header { + gap: 16px; + margin-bottom: 14px; +} + +.muted { + margin: 0; + color: #666; + font-size: 13px; +} + +.filters { + display: grid; + grid-template-columns: minmax(220px, 1fr) minmax(130px, 170px) minmax(130px, 170px) auto auto; + gap: 10px; + margin-bottom: 14px; +} + +.stats-bar { + display: grid; + grid-template-columns: repeat(4, minmax(150px, 1fr)); + gap: 10px; + margin-bottom: 14px; +} + +.stat-tile { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + min-height: 52px; + padding: 0 16px; + background: #fff; + border: 1px solid #e9e9e9; + border-radius: 8px; + text-align: center; +} + +.stat-tile strong { + color: #1f2937; + font-size: 22px; + line-height: 1; +} + +.stat-tile span { + color: #666; + font-size: 13px; + font-weight: 700; + text-transform: uppercase; +} + +.filters input, +.filters select { + min-height: 36px; + padding: 0 10px; + background: #fff; + border: 1px solid #ddd; + border-radius: 4px; + color: #222; + font: inherit; +} + +.filters input:focus, +.filters select:focus { + outline: 2px solid rgba(108, 92, 231, 0.18); + border-color: #6c5ce7; +} + .topbar { padding: 18px; background: #1b1b1b; @@ -140,6 +210,13 @@ table { border-collapse: collapse; } +.table-wrap { + overflow-x: auto; + background: #fff; + border: 1px solid #e9e9e9; + border-radius: 8px; +} + th, td { padding: 10px; @@ -149,16 +226,43 @@ td { th { background: #fafafa; + color: #555; + font-size: 12px; + font-weight: 700; + text-transform: uppercase; } tr:hover { background: #f1f1f1; } +tbody tr:last-child td { + border-bottom: none; +} + .clickable-row { cursor: pointer; } +.method-pill { + display: inline-flex; + min-width: 54px; + justify-content: center; + padding: 4px 8px; + background: #f3f4f6; + border-radius: 999px; + color: #333; + font-size: 12px; + font-weight: 700; +} + +.empty-state, +.empty-row td { + padding: 24px; + color: #777; + text-align: center; +} + /* ========================= Section Titles ========================= */ @@ -245,6 +349,19 @@ tr:hover { padding: 14px; } + .index-header { + align-items: flex-start; + flex-direction: column; + } + + .filters { + grid-template-columns: 1fr; + } + + .stats-bar { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .payload-group { padding: 14px; } @@ -373,13 +490,14 @@ pre { .copy-btn, .btn-clear, +.btn-secondary, .trace-id-button { border-radius: 4px; cursor: pointer; } .copy-btn, -.btn-clear { +.btn-secondary { background: #2d2d2d; border: 1px solid #444; color: #ccc; @@ -394,16 +512,41 @@ pre { } .copy-btn:hover, - .btn-clear:hover { + .btn-secondary:hover { background: #3a3a3a; } -.btn-clear { +.btn-secondary { padding: 6px 12px; color: #fff; font-size: 13px; } +.btn-secondary { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 6px; + min-height: 36px; + background: #fff; + border-color: #ddd; + color: #333; +} + +.btn-secondary:hover { + background: #f3f3f3; +} + +.btn-clear svg { + width: 15px; + height: 15px; + stroke: currentColor; + stroke-width: 2; + stroke-linecap: round; + stroke-linejoin: round; + fill: none; +} + .trace-id-button { padding: 6px 10px; background: #f3f4f6; diff --git a/DebugProbe.AspNetCore/Assets/html/index.html b/DebugProbe.AspNetCore/Assets/html/index.html index dd3cefc..cbe0fa1 100644 --- a/DebugProbe.AspNetCore/Assets/html/index.html +++ b/DebugProbe.AspNetCore/Assets/html/index.html @@ -1,21 +1,72 @@ -