design: upgrade typography, shadows, spacing, empty states, 404 page, focus rings, noise overlay
This commit is contained in:
@@ -92,13 +92,16 @@ function AppThemeInner({ children }: PropsWithChildren) {
|
||||
shape: { borderRadius: 12 },
|
||||
typography: {
|
||||
fontFamily: '"Outfit", "Segoe UI", system-ui, sans-serif',
|
||||
h4: { fontWeight: 700, letterSpacing: '-0.5px' },
|
||||
h5: { fontWeight: 600, letterSpacing: '-0.25px' },
|
||||
h6: { fontWeight: 600 },
|
||||
h1: { fontWeight: 700, letterSpacing: '-1px', lineHeight: 1.1, textWrap: 'balance' },
|
||||
h2: { fontWeight: 700, letterSpacing: '-0.75px', lineHeight: 1.15, textWrap: 'balance' },
|
||||
h3: { fontWeight: 700, letterSpacing: '-0.5px', lineHeight: 1.2, textWrap: 'balance' },
|
||||
h4: { fontWeight: 700, letterSpacing: '-0.5px', textWrap: 'balance' },
|
||||
h5: { fontWeight: 600, letterSpacing: '-0.25px', textWrap: 'balance' },
|
||||
h6: { fontWeight: 600, textWrap: 'balance' },
|
||||
subtitle1: { fontWeight: 600 },
|
||||
subtitle2: { fontWeight: 500 },
|
||||
body1: { fontSize: '0.875rem' },
|
||||
body2: { fontSize: '0.75rem' },
|
||||
body1: { fontSize: '0.875rem', lineHeight: 1.6 },
|
||||
body2: { fontSize: '0.75rem', lineHeight: 1.5 },
|
||||
button: { textTransform: 'none', fontWeight: 600 },
|
||||
},
|
||||
components: {
|
||||
@@ -109,30 +112,34 @@ function AppThemeInner({ children }: PropsWithChildren) {
|
||||
borderRadius: 12,
|
||||
fontWeight: 600,
|
||||
transition: 'all 0.2s ease-in-out',
|
||||
'&:focus-visible': {
|
||||
outline: '2px solid currentColor',
|
||||
outlineOffset: 2,
|
||||
},
|
||||
},
|
||||
contained: {
|
||||
boxShadow: '0 4px 14px 0 rgba(0,0,0,0.15)',
|
||||
boxShadow: '0 4px 14px 0 rgba(0,0,0,0.12)',
|
||||
'&:hover': {
|
||||
boxShadow: '0 6px 20px 0 rgba(0,0,0,0.25)',
|
||||
boxShadow: '0 6px 20px 0 rgba(0,0,0,0.18)',
|
||||
transform: 'translateY(-2px)',
|
||||
},
|
||||
'&:active': {
|
||||
boxShadow: '0 2px 8px 0 rgba(0,0,0,0.15)',
|
||||
transform: 'translateY(0)',
|
||||
boxShadow: '0 2px 8px 0 rgba(0,0,0,0.12)',
|
||||
transform: 'translateY(0) scale(0.98)',
|
||||
},
|
||||
},
|
||||
outlined: {
|
||||
border: '1px solid',
|
||||
'&:hover': {
|
||||
boxShadow: '0 2px 8px 0 rgba(0,0,0,0.1)',
|
||||
boxShadow: '0 2px 8px 0 rgba(0,0,0,0.08)',
|
||||
},
|
||||
'&:active': {
|
||||
boxShadow: 'none',
|
||||
transform: 'scale(0.98)',
|
||||
},
|
||||
},
|
||||
text: {
|
||||
'&:hover': {
|
||||
boxShadow: '0 1px 3px 0 rgba(0,0,0,0.1)',
|
||||
backgroundColor: 'action.hover',
|
||||
},
|
||||
'&:active': {
|
||||
@@ -147,12 +154,48 @@ function AppThemeInner({ children }: PropsWithChildren) {
|
||||
transition: 'all 0.2s ease-in-out',
|
||||
'&:hover': {
|
||||
backgroundColor: 'action.hover',
|
||||
transform: 'scale(1.1)',
|
||||
transform: 'scale(1.08)',
|
||||
},
|
||||
'&:active': {
|
||||
backgroundColor: 'action.selected',
|
||||
transform: 'scale(0.95)',
|
||||
},
|
||||
'&:focus-visible': {
|
||||
outline: '2px solid currentColor',
|
||||
outlineOffset: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
MuiCard: {
|
||||
styleOverrides: {
|
||||
root: {
|
||||
'&:focus-visible': {
|
||||
outline: '2px solid currentColor',
|
||||
outlineOffset: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
MuiLink: {
|
||||
styleOverrides: {
|
||||
root: {
|
||||
'&:focus-visible': {
|
||||
outline: '2px solid currentColor',
|
||||
outlineOffset: 2,
|
||||
borderRadius: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
MuiInputBase: {
|
||||
styleOverrides: {
|
||||
root: {
|
||||
'&.Mui-focused': {
|
||||
'& .MuiOutlinedInput-notchedOutline': {
|
||||
borderWidth: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user