refactor: split admin.css monolith, standardize CSS architecture
- Split admin.css (3228 lines) into 12 focused files: variables, base, forms, buttons, layout, components, tables, skeleton, datepicker, filemanager, pagination, responsive - Extracted shared styles from offers.css and dashboard.css into components.css and forms.css (offers-* → admin-* prefix) - Standardized naming: dash-kpi-* → admin-kpi-*, session-* → dash-session-*, rich-editor → admin-rich-editor - Deleted duplicate offers-tabs (using admin-tabs everywhere) - Deduplicated DatePicker and FileManager CSS (~360 lines removed) - Added 16 utility classes to base.css (font sizes, widths, gaps, margins) - Deleted empty admin.css Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -334,7 +334,7 @@ export default function Invoices() {
|
||||
style={{ width: "140px", borderRadius: "8px" }}
|
||||
/>
|
||||
</div>
|
||||
<div className="dash-kpi-grid dash-kpi-4">
|
||||
<div className="admin-kpi-grid admin-kpi-4">
|
||||
{[0, 1, 2, 3].map((i) => (
|
||||
<div key={i} className="admin-stat-card">
|
||||
<div
|
||||
@@ -497,15 +497,15 @@ export default function Invoices() {
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="offers-tabs mb-4" style={{ justifyContent: "center" }}>
|
||||
<div className="admin-tabs mb-4" style={{ justifyContent: "center" }}>
|
||||
<button
|
||||
className={`offers-tab ${activeTab === "issued" ? "active" : ""}`}
|
||||
className={`admin-tab ${activeTab === "issued" ? "active" : ""}`}
|
||||
onClick={() => setActiveTab("issued")}
|
||||
>
|
||||
Vydané
|
||||
</button>
|
||||
<button
|
||||
className={`offers-tab ${activeTab === "received" ? "active" : ""}`}
|
||||
className={`admin-tab ${activeTab === "received" ? "active" : ""}`}
|
||||
onClick={() => setActiveTab("received")}
|
||||
>
|
||||
Přijaté
|
||||
@@ -522,7 +522,7 @@ export default function Invoices() {
|
||||
<Suspense
|
||||
fallback={
|
||||
<div
|
||||
className="dash-kpi-grid dash-kpi-4"
|
||||
className="admin-kpi-grid admin-kpi-4"
|
||||
style={{ marginBottom: "1.5rem" }}
|
||||
>
|
||||
{[0, 1, 2, 3].map((i) => (
|
||||
@@ -569,7 +569,7 @@ export default function Invoices() {
|
||||
>
|
||||
{!hasLoadedOnce.current && statsLoading ? (
|
||||
<div
|
||||
className="dash-kpi-grid dash-kpi-4"
|
||||
className="admin-kpi-grid admin-kpi-4"
|
||||
style={{ marginBottom: "1.5rem" }}
|
||||
>
|
||||
{[0, 1, 2, 3].map((i) => (
|
||||
@@ -607,7 +607,7 @@ export default function Invoices() {
|
||||
>
|
||||
<motion.div
|
||||
key={slideKey}
|
||||
className="dash-kpi-grid dash-kpi-4"
|
||||
className="admin-kpi-grid admin-kpi-4"
|
||||
custom={slideDirection.current}
|
||||
variants={{
|
||||
enter: (dir: number) => ({
|
||||
@@ -740,11 +740,11 @@ export default function Invoices() {
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.25, delay: 0.12 }}
|
||||
>
|
||||
<div className="offers-tabs mb-6">
|
||||
<div className="admin-tabs mb-6">
|
||||
{STATUS_FILTERS.map((f) => (
|
||||
<button
|
||||
key={f.value}
|
||||
className={`offers-tab ${statusFilter === f.value ? "active" : ""}`}
|
||||
className={`admin-tab ${statusFilter === f.value ? "active" : ""}`}
|
||||
onClick={() => {
|
||||
setStatusFilter(f.value);
|
||||
setPage(1);
|
||||
|
||||
Reference in New Issue
Block a user