- Stripe-style theme: single indigo (#635BFF) brand, 6px radius, Inter scale; rewritten themePrimitives + MUI customizations (solid primary, near-black secondary, severity-aware Alert) - Sticky Header (brand-left nav, theme toggle, mobile drawer), inline Footer, route fade-in, per-route document.title - Home hero + feature cards (dead /dashboard,/reports links replaced) - Split-panel AuthPage with validation and password visibility - Data pages: PageHeader/EmptyState, breadcrumbed Fetch Request pages, admin table polish (numeric alignment, row-hover actions, skeletons, empty states), single-accent admin SideMenu - Global ToastProvider wired into app shell - New /expenses page: month-grouped feed, single-open accordion with inline detail (account, tags, amount, timestamps)
40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import { Theme, alpha, Components } from '@mui/material/styles';
|
|
import { gray } from '../themePrimitives';
|
|
|
|
/* eslint-disable import/prefer-default-export */
|
|
export const feedbackCustomizations: Components<Theme> = {
|
|
MuiAlert: {
|
|
styleOverrides: {
|
|
root: ({ theme }) => ({
|
|
borderRadius: (theme.vars || theme).shape.borderRadius,
|
|
...theme.applyStyles('dark', {
|
|
backgroundColor: alpha((theme.vars || theme).palette.background.paper, 0.6),
|
|
}),
|
|
}),
|
|
},
|
|
},
|
|
MuiDialog: {
|
|
styleOverrides: {
|
|
root: ({ theme }) => ({
|
|
'& .MuiDialog-paper': {
|
|
borderRadius: (theme.vars || theme).shape.borderRadius,
|
|
border: '1px solid',
|
|
borderColor: (theme.vars || theme).palette.divider,
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
MuiLinearProgress: {
|
|
styleOverrides: {
|
|
root: ({ theme }) => ({
|
|
height: 8,
|
|
borderRadius: 8,
|
|
backgroundColor: gray[200],
|
|
...theme.applyStyles('dark', {
|
|
backgroundColor: gray[800],
|
|
}),
|
|
}),
|
|
},
|
|
},
|
|
};
|