some error debugging and for frontend thicker lines around blocks
This commit is contained in:
@@ -62,7 +62,7 @@ export default async function CountryPlayersPage({
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="panel divide-y divide-base-border">
|
||||
<div className="panel row-divide">
|
||||
{players.map((p) => (
|
||||
<Link
|
||||
key={p.steamid}
|
||||
|
||||
@@ -22,7 +22,7 @@ export default async function CountriesPage() {
|
||||
{countries.length === 0 ? (
|
||||
<div className="panel p-6 text-sm text-ink-muted">No countries recorded yet.</div>
|
||||
) : (
|
||||
<div className="panel divide-y divide-base-border">
|
||||
<div className="panel row-divide">
|
||||
<div className="grid grid-cols-[1fr_auto_auto] gap-6 px-4 py-2 text-xs text-ink-faint uppercase tracking-wide">
|
||||
<div>Country</div>
|
||||
<div className="text-right w-24">Total playtime</div>
|
||||
|
||||
@@ -45,4 +45,12 @@
|
||||
.row-interactive:hover {
|
||||
background-color: rgba(63, 211, 122, 0.05);
|
||||
}
|
||||
|
||||
/* Clearly visible separation between stacked list rows — a plain 1px
|
||||
divide-y read as almost invisible once rows have very different
|
||||
heights (e.g. a session with 15 map names next to one with 2). */
|
||||
.row-divide > * + * {
|
||||
border-top-width: 2px;
|
||||
border-top-color: theme('colors.base.divider');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ export default async function MapPeriodsPage({
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="panel divide-y divide-base-border">
|
||||
<div className="panel row-divide">
|
||||
<div className="grid grid-cols-[1fr_auto_auto] gap-4 px-4 py-2 text-xs text-ink-faint uppercase tracking-wide">
|
||||
<div>Session</div>
|
||||
<div className="text-right w-16">Players</div>
|
||||
|
||||
@@ -107,7 +107,7 @@ export default async function MapPeriodDetailPage({
|
||||
{players.length === 0 ? (
|
||||
<div className="text-sm text-ink-muted">No recorded players during this period.</div>
|
||||
) : (
|
||||
<div className="divide-y divide-base-border">
|
||||
<div className="row-divide">
|
||||
{players.map((p, i) => (
|
||||
<Link
|
||||
key={`${p.steamid}-${i}`}
|
||||
@@ -145,7 +145,7 @@ export default async function MapPeriodDetailPage({
|
||||
</div>
|
||||
<div className="text-sm text-accent">Result: {event.result ?? '—'}</div>
|
||||
</div>
|
||||
<div className="divide-y divide-base-border">
|
||||
<div className="row-divide">
|
||||
{event.choices.map((c, i) => (
|
||||
<Link
|
||||
key={`${c.steamid}-${i}`}
|
||||
|
||||
@@ -123,7 +123,7 @@ export default async function PlayerDetailPage({
|
||||
{sessions.length === 0 ? (
|
||||
<div className="text-sm text-ink-muted">No recorded sessions yet.</div>
|
||||
) : (
|
||||
<div className="divide-y divide-base-border">
|
||||
<div className="row-divide">
|
||||
<div className="grid grid-cols-[1fr_1fr_100px] gap-4 pb-2 text-xs text-ink-faint uppercase tracking-wide">
|
||||
<div>Started</div>
|
||||
<div>Map(s)</div>
|
||||
|
||||
@@ -366,7 +366,7 @@ export default function MapPopulationChart() {
|
||||
)}
|
||||
|
||||
{selectedMap && (
|
||||
<div className="mt-4 pt-4 border-t border-base-border">
|
||||
<div className="mt-4 pt-4 border-t-2 border-base-divider">
|
||||
<div className="stat-label mb-1">
|
||||
Players during{' '}
|
||||
<Link href={`/maps/period/${selectedMap.map_id}`} className="text-accent hover:underline">
|
||||
|
||||
@@ -38,7 +38,7 @@ export default function MapSearch() {
|
||||
className="w-full bg-base-panel border border-base-border rounded-lg px-4 py-3 text-ink placeholder:text-ink-faint focus:border-accent/50 transition-colors"
|
||||
/>
|
||||
|
||||
<div className="panel divide-y divide-base-border">
|
||||
<div className="panel row-divide">
|
||||
{loading ? (
|
||||
<div className="p-4 text-sm text-ink-faint font-mono">loading…</div>
|
||||
) : maps.length === 0 ? (
|
||||
|
||||
@@ -52,7 +52,7 @@ export default function PlayerSearch() {
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div className="panel divide-y divide-base-border">
|
||||
<div className="panel row-divide">
|
||||
{loading ? (
|
||||
<div className="p-4 text-sm text-ink-faint font-mono">loading…</div>
|
||||
) : players.length === 0 ? (
|
||||
|
||||
@@ -370,7 +370,7 @@ export default function PopulationChart() {
|
||||
return (
|
||||
<div className="panel p-6">
|
||||
{/* Currently online — always visible, always live, not tied to the date range below */}
|
||||
<div className="mb-6 pb-6 border-b border-base-border">
|
||||
<div className="mb-6 pb-6 border-b-2 border-base-divider">
|
||||
<div className="flex items-center justify-between mb-3">
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="relative flex w-2 h-2">
|
||||
@@ -553,7 +553,7 @@ export default function PopulationChart() {
|
||||
</div>
|
||||
|
||||
{selectedPoint && (
|
||||
<div className="mt-4 pt-4 border-t border-base-border">
|
||||
<div className="mt-4 pt-4 border-t-2 border-base-divider">
|
||||
<div className="stat-label mb-3">
|
||||
Online at {new Date(selectedPoint.t).toLocaleString()}
|
||||
{selectedPoint.mapName && (
|
||||
|
||||
@@ -279,7 +279,7 @@ export default function RecurringWindowChart() {
|
||||
)}
|
||||
|
||||
{selected && (
|
||||
<div className="mt-4 pt-4 border-t border-base-border">
|
||||
<div className="mt-4 pt-4 border-t-2 border-base-divider">
|
||||
<div className="stat-label mb-3">
|
||||
{new Date(`${selected.date}T00:00:00Z`).toLocaleDateString(undefined, { weekday: 'long', month: 'short', day: 'numeric' })}, {startTime}–{endTime} — {selectedPlayers.length} player
|
||||
{selectedPlayers.length === 1 ? '' : 's'}, sorted by time spent in the window
|
||||
|
||||
@@ -11,6 +11,7 @@ module.exports = {
|
||||
DEFAULT: '#0B0F0E', // near-black, slight green cast — server-ops feel
|
||||
panel: '#121715',
|
||||
border: '#1F2723',
|
||||
divider: '#3C4A44', // brighter, deliberately higher-contrast — for separating list rows, not just outlining a panel
|
||||
},
|
||||
accent: {
|
||||
DEFAULT: '#3FD37A', // "server online" green
|
||||
|
||||
Reference in New Issue
Block a user