mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 21:31:46 +00:00
cf21c718fa
Second styling pass over the components and pages: move conditional theme colors into className ternaries (bg-accent / bg-surface-hover etc.), turn reused CSSProperties constants into className constants, and express static hardcoded hex/rgba colors as Tailwind arbitrary values so the exact rendered colour is preserved. Truly dynamic styling (computed geometry, gradients, multi-part shadows, data-driven colours, the undefined --sidebar/--nav layout vars) stays inline as it cannot be expressed as a static class. Updated three component tests that asserted the old inline active-state styles to assert the equivalent utility class instead. Verified: client typecheck 0, full client suite green, and a live light/dark render check in the dev server confirms the semantic theme tokens resolve correctly (the earlier 'transparent popups' were a stale dev server that pre-dated the tailwind.config token addition, not a code issue).
23 lines
703 B
TypeScript
23 lines
703 B
TypeScript
import React from 'react'
|
|
import type { LucideIcon } from 'lucide-react'
|
|
|
|
interface SectionProps {
|
|
title: string
|
|
icon: LucideIcon
|
|
children: React.ReactNode
|
|
}
|
|
|
|
export default function Section({ title, icon: Icon, children }: SectionProps): React.ReactElement {
|
|
return (
|
|
<div className="rounded-xl border overflow-hidden bg-surface-card border-edge" style={{ marginBottom: 24 }}>
|
|
<div className="px-6 py-4 border-b flex items-center gap-2 border-edge-secondary">
|
|
<Icon className="w-5 h-5 text-content-secondary" />
|
|
<h2 className="font-semibold text-content">{title}</h2>
|
|
</div>
|
|
<div className="p-6 space-y-4">
|
|
{children}
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|