No parameters set yet
PMS
A B2B property management system on Vue and PrimeVue. A token-based design system and complex interface blocks with well-designed states.
Context
A complex B2B product that has to stay predictable
PMS is a B2B property management system on Vue and PrimeVue (PrimeOne 3.1.0). I went from product support to lead designer: I own the whole UX, the design system and the design of complex interface blocks together with engineering and analytics.
- Stack
- Vue · PrimeVue
- Theme
- Light + dark
- Role
- From support to lead
- Scope
- Design system + UX
Goal
Bring order to a complex interface and make it scalable
An enterprise product quickly grows screens and edge cases. I had to build a unified visual language, reusable patterns and predictable behaviour of complex blocks — so the product could grow without chaos and rework.
What I did
Design system, patterns and well-designed states
A token-based design system
Built a design system from scratch on Figma Variables and tokens: colour, typography, light and dark themes. Wired it to PrimeVue (PrimeOne 3.1.0) so design and frontend speak the same language and new screens come together fast and consistently.
The price block: I design states, not a single screen
The key block of the product is the price calculation. I designed it as a system of five states with a manual recalculation trigger: the user changes parameters, sees that the data is stale, and consciously triggers a recalculation. No silent errors, no outdated numbers.
From support to lead designer
I started in product support and grew into the lead designer: I own the whole UX, the design system and consistency. I work closely with engineering and analytics — design solves real product problems, not just “draws screens”.
Principle
States are part of a block’s contract. For every block I design not just success but loading, empty, stale and error — which removes a lot of fixes already at the build stage.
Outcome
A scalable product with one language and predictable blocks
A token-based design system with light and dark themes, reusable patterns and well-designed states across all key blocks. New screens come together faster and without chaos.
What I’d do differently
I lacked usage analytics — with it I’d prioritise improvements by data rather than intuition; and I’d document the state patterns for engineering earlier.
Next
Next project