Reorganizes and optimizes shared CSS components

Consolidates UI components into a centralized components.css file
Removes duplicate styles across multiple CSS files
Adds utility classes in a new utilities.css file
Reduces overall CSS complexity and improves maintainability

Removes quick-stats.css and redistributes its styles
Updates layout and stylesheet references accordingly
This commit is contained in:
Janus C. H. Knudsen 2026-01-13 00:09:46 +01:00
parent 15579acba8
commit 2e6207bb0b
33 changed files with 971 additions and 796 deletions

View file

@ -0,0 +1,118 @@
/**
* Utilities - Common utility classes
*
* Reusable utility classes for common patterns.
* Use sparingly - prefer semantic component styles.
*/
/* ===========================================
FLEXBOX UTILITIES
=========================================== */
.flex-center {
display: flex;
align-items: center;
justify-content: center;
}
.flex-between {
display: flex;
justify-content: space-between;
align-items: center;
}
.flex-start {
display: flex;
align-items: center;
justify-content: flex-start;
}
.flex-end {
display: flex;
align-items: center;
justify-content: flex-end;
}
.flex-column {
display: flex;
flex-direction: column;
}
.flex-1 {
flex: 1;
}
.flex-shrink-0 {
flex-shrink: 0;
}
/* ===========================================
TEXT UTILITIES
=========================================== */
.text-truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.text-secondary {
font-size: var(--font-size-sm);
color: var(--color-text-secondary);
}
.text-muted {
color: var(--color-text-muted);
}
.text-mono {
font-family: var(--font-mono);
}
/* ===========================================
SPACING UTILITIES
=========================================== */
.gap-2 { gap: var(--spacing-2); }
.gap-3 { gap: var(--spacing-3); }
.gap-4 { gap: var(--spacing-4); }
.gap-6 { gap: var(--spacing-6); }
.gap-8 { gap: var(--spacing-8); }
.mt-auto { margin-top: auto; }
.mb-0 { margin-bottom: 0; }
/* ===========================================
VISIBILITY UTILITIES
=========================================== */
.hidden {
display: none !important;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* ===========================================
WIDTH UTILITIES
=========================================== */
.w-full {
width: 100%;
}
.min-w-0 {
min-width: 0;
}