Tối ưu UI sunstech — trước / sau

sunstech.minigate.vn · 2026-11-08 · Chrome MG1 / MG2 (máy Windows 10.8.0.4, cửa sổ thật 768×730 @1.25 — không dùng, viewport + DPR giả lập theo hồ sơ). Trước = bản đang chạy (ws runtime 6f7dc7a7). Sau = bản build từ ws 4924b77f, nạp vào chính domain thật bằng --dist (CDP Fetch, API / cookie / SSO thật) — chưa deploy. Cùng tài khoản, cùng dữ liệu, flow chỉ đọc.

Kết quả

Đã sửa (không đổi nghiệp vụ / API)

Chạy lại

WS_AUTO_LOGIN=1 wsctl e2e flow ui-do-phan-giai --cdp MG1 --profile fhd,fhd125,fhd150,hd,laptop
WS_AUTO_LOGIN=1 wsctl e2e flow ui-do-phan-giai --cdp MG2 --profile tablet-ngang,tablet,mobile,mobile-hep
# ảnh "sau" trước khi deploy: thêm --dist <bản sao apps/web/dist>

Chưa làm / cần quyết

Rà soát store / thương hiệu / license: không thấy rủi ro (chỉ CSS / JS nội bộ, không thêm thư viện, không đổi quyền / dữ liệu).

Độ phân giải (15 màn) · fhd 1920×1080 @1x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)270
Kiểm khung lỗi140
cảnh báo: chữ < 12px30
cảnh báo: khối ít nội dung40

Khung lỗi (trước): eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần []

Flow lỗi (trước): 18 bước kiểm lỗi — #12 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #17 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #22 khung: tràn / cắt mép

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Độ phân giải (15 màn) · fhd125 1536×864 @1.25x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)270
Kiểm khung lỗi140
cảnh báo: chữ < 12px30
cảnh báo: khối ít nội dung40

Khung lỗi (trước): eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần []

Flow lỗi (trước): 18 bước kiểm lỗi — #12 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #17 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #22 khung: tràn / cắt mép

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Độ phân giải (15 màn) · fhd150 1280×720 @1.5x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)270
Kiểm khung lỗi140
cảnh báo: chữ < 12px30
cảnh báo: khối ít nội dung20

Khung lỗi (trước): eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần []

Flow lỗi (trước): 17 bước kiểm lỗi — #12 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #17 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #22 khung: tràn / cắt mép

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Độ phân giải (15 màn) · hd 1440×900 @2x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)270
Kiểm khung lỗi140
cảnh báo: chữ < 12px30
cảnh báo: khối ít nội dung40

Khung lỗi (trước): eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần []

Flow lỗi (trước): 18 bước kiểm lỗi — #12 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #17 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #22 khung: tràn / cắt mép

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Độ phân giải (15 màn) · laptop 1366×768 @1x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)270
Kiểm khung lỗi140
cảnh báo: chữ < 12px30
cảnh báo: khối ít nội dung30

Khung lỗi (trước): eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] · eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần []

Flow lỗi (trước): 18 bước kiểm lỗi — #12 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #17 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["thanh trên cao 64px, token --suns-topbar-h 56px"], cần [] | #22 khung: tràn / cắt mép

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Độ phân giải (15 màn) · tablet-ngang 1024×768 @2x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)240
Kiểm khung lỗi30
cảnh báo: chữ < 12px30
cảnh báo: khối ít nội dung10

Khung lỗi (trước): eval = ["mật độ comfortable, cỡ cửa sổ 1600px cần compact"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["mật độ comfortable, cỡ cửa sổ 1920px cần compact"], cần []

Flow lỗi (trước): 7 bước kiểm lỗi — #31 đo /workflow?nav=inbox: block:mainInner__ chỉ 11.9% nội dung | #36 đo /workplace?tab=home: 8 đoạn chữ < 12px | #41 đo /workplace?tab=chat: 8 đoạn chữ < 12px | …

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Độ phân giải (15 màn) · tablet 768×1024 @2x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)150
Kiểm khung lỗi30
cảnh báo: chữ < 12px30
cảnh báo: khối ít nội dung20

Khung lỗi (trước): eval = ["mật độ comfortable, cỡ cửa sổ 1600px cần compact"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["mật độ comfortable, cỡ cửa sổ 1920px cần compact"], cần []

Flow lỗi (trước): 7 bước kiểm lỗi — #31 đo /workflow?nav=inbox: block:mainInner__ chỉ 10.6% nội dung · block:wrap__ chỉ 11.4% nội dung | #36 đo /workplace?tab=home: 5 đoạn chữ < 12px | #41 đo /workplace?tab=chat: 5 đoạn chữ < 12px | …

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Độ phân giải (15 màn) · mobile 390×844 @3x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)150
Kiểm khung lỗi140
cảnh báo: chữ < 12px30

Khung lỗi (trước): eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần []

Flow lỗi (trước): 17 bước kiểm lỗi — #12 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["bị cắt mép: Tài khoản"], cần [] | #17 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["bị cắt mép: Tài khoản"], cần [] | #22 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["bị cắt mép: Tà

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Độ phân giải (15 màn) · mobile-hep 360×800 @2.625x

Chỉ sốTrướcSau
Kết quả flowFAILPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)150
Kiểm khung lỗi140
cảnh báo: chữ < 12px30

Khung lỗi (trước): eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần [] · eval = ["bị cắt mép: Tài khoản"], cần []

Flow lỗi (trước): 17 bước kiểm lỗi — #12 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["bị cắt mép: Tài khoản"], cần [] | #17 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["bị cắt mép: Tài khoản"], cần [] | #22 khung: tràn / cắt mép / thanh trên / mật độ: eval = ["bị cắt mép: Tà

Ảnh trước / sau (19 màn)
portal
admin tab members
admin tab rbac
crm nav lead
hrm nav employee
workflow nav inbox
workplace tab home
workplace tab chat
workplace tab calendar
org nav org chart
notifications
account setting
workspace settings
customs nav declaration
transport nav vehicles
doi co 1024
doi co 1600
doi co 390
doi co 1920

Rà soát 82 màn · laptop 1366×768 @1x

Chỉ sốTrướcSau
Kết quả flowPASSPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)1102
cảnh báo: chữ < 12px122
cảnh báo: dải trống dọc98104
cảnh báo: khối ít nội dung1616
cảnh báo: lề trống33
Ảnh trước / sau (83 màn)
admin tab members
admin tab rbac
admin tab modules
admin tab custom fields
admin tab integrations
workspace settings
crm nav dashboard
crm nav lead
crm nav opportunity
crm nav customer
crm nav activity
crm nav supplier
crm nav report
customs
customs nav declaration
customs nav manifest
customs nav bill of lading
customs nav certificate
customs nav hs code
no permission
khong ton tai trang thu
hrm nav employee
hrm nav contract
hrm nav attendance
hrm nav leave
hrm nav salary
hrm nav job position
hrm nav program
hrm nav kpi okr
hrm nav appraisal
icd job
icd document
icd customs
icd equipment
icd finance
icd report
catalog
dat
report
rfcard
shexchange
teacher nav teachers
training
trungtam
tuition
vehicle nav vehicles
zalochat
module chua co
account setting
notifications
transport nav vehicles
transport nav maintenance
transport nav routes
transport nav drivers
transport nav dispatch
transport nav cargo
app settings
workflow nav inbox
workflow nav workflows
workflow nav connectors
workflow nav dashboard
workflow nav related
workflow nav templates
workflow nav all tickets
workflow nav reports
workplace tab home
workplace tab feed
workplace tab announcements
workplace tab directory
workplace tab groups
workplace tab library
workplace tab chat
workplace tab mailbox
workplace tab attendance
workplace tab requests
workplace tab calendar
portal
org nav org chart
org nav position
account setting tab security
account setting tab tokens
account setting tab notifications
app settings tab store

Rà soát 82 màn · tablet 768×1024 @2x

Chỉ sốTrướcSau
Kết quả flowPASSPASS
Màn tràn ngang00
Đoạn chữ < 12px (tổng)600
cảnh báo: chữ < 12px120
cảnh báo: dải trống dọc110110
cảnh báo: khối ít nội dung1313
cảnh báo: lề trống22
Ảnh trước / sau (83 màn)
admin tab members
admin tab rbac
admin tab modules
admin tab custom fields
admin tab integrations
workspace settings
crm nav dashboard
crm nav lead
crm nav opportunity
crm nav customer
crm nav activity
crm nav supplier
crm nav report
customs
customs nav declaration
customs nav manifest
customs nav bill of lading
customs nav certificate
customs nav hs code
no permission
khong ton tai trang thu
hrm nav employee
hrm nav contract
hrm nav attendance
hrm nav leave
hrm nav salary
hrm nav job position
hrm nav program
hrm nav kpi okr
hrm nav appraisal
icd job
icd document
icd customs
icd equipment
icd finance
icd report
catalog
dat
report
rfcard
shexchange
teacher nav teachers
training
trungtam
tuition
vehicle nav vehicles
zalochat
module chua co
account setting
notifications
transport nav vehicles
transport nav maintenance
transport nav routes
transport nav drivers
transport nav dispatch
transport nav cargo
app settings
workflow nav inbox
workflow nav workflows
workflow nav connectors
workflow nav dashboard
workflow nav related
workflow nav templates
workflow nav all tickets
workflow nav reports
workplace tab home
workplace tab feed
workplace tab announcements
workplace tab directory
workplace tab groups
workplace tab library
workplace tab chat
workplace tab mailbox
workplace tab attendance
workplace tab requests
workplace tab calendar
portal
org nav org chart
org nav position
account setting tab security
account setting tab tokens
account setting tab notifications
app settings tab store