DashboardView ("میز کار"): Rebuilt from scratch with a new structure, distinct from the old card+grid layout but visually aligned with HomeView (same blurred bar, @ink/@wine palette, staged reveal animation on mount):
Single hero card (ink→wine gradient) showing balance, gold/fiat debt, and identity — no quick-action icons inside it anymore.
Live gold rate folded into a slim inline row at the bottom instead of a titled section.
Iterated shadow/spacing on the hero card per feedback (softer, less clipped).
DialogVant / DialogVantOneButton (shared modal components, used in 7+ call sites: Dashboard, Cart, SingleProduct, Register, App): Replaced Vant's default dialog chrome with the app's own rounded-card language — circular icon badge for the illustration, pill-shaped primary/secondary buttons. No call-site markup changed.
LoginView: Rebuilt from scratch — full-bleed dark hero (brand + step copy) overlapped by a floating white form sheet, animated crossfade transition between the mobile-number and OTP steps, same staged entrance animation as Home/Dashboard. All auth logic (API check, OTP stub, session login) unchanged.
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
// Ported from legacy henza_pwa/themeConfig/themeConfig.ts — styling values only.
|
|
// (legacy also defined baseURL/coreURL for its own Laravel API here; those are
|
|
// out of scope for a presentation-only port and superseded by this app's own
|
|
// src/api/client.ts, which already talks to the new NestJS API.)
|
|
import data from './colors.json'
|
|
|
|
const colors = data
|
|
const curve = {
|
|
none: 0,
|
|
xs: 2,
|
|
sm: 4,
|
|
font: 14,
|
|
px: 'px',
|
|
}
|
|
const vars = {
|
|
prefix: 'montzar',
|
|
// headers
|
|
'font-size': curve.font + curve.px,
|
|
'h1-font-size': curve.font * 2 + curve.px,
|
|
'h2-font-size': curve.font * 1.74 + curve.px,
|
|
'h3-font-size': curve.font * 1.51 + curve.px,
|
|
'h4-font-size': curve.font * 1.32 + curve.px,
|
|
'h5-font-size': curve.font * 1.2 + curve.px,
|
|
'h6-font-size': curve.font * 1.1 + curve.px,
|
|
// headers
|
|
//ant
|
|
'primary-color': colors.secondary,
|
|
'link-color': colors.primary,
|
|
'heading-color': colors.primary,
|
|
'error-color': colors.danger,
|
|
'border-radius-base': 5 + curve.px,
|
|
'input-padding-horizontal-base': 10 + curve.px,
|
|
'input-padding-vertical-base': 10 + curve.px,
|
|
'height-lg': '42px',
|
|
'height-base': '32px',
|
|
'checkbox-size': '20px',
|
|
'checkbox-border-radius': '3px',
|
|
//ant
|
|
|
|
'transition-duration': '.5s',
|
|
'transition-delay': '.5s',
|
|
}
|
|
export const $themeLessVars = Object.assign(vars, colors)
|