Controls were everywhere and users could find nothing. I defined a quick-vs-deep model and redesigned both surfaces.

{{ st.l }} {{ st.v }}
↓ scroll
PandaDoc Contextual Menu — overview

Product Overview

{{ t }}

PandaDoc’s editor housed three parallel control surfaces: a header toolbar, a floating contextual menu, and a right properties panel — each evolved independently with overlapping responsibilities and no shared logic.

Similar actions appeared in different locations depending on element type, and some options were technically available but practically invisible. Users navigated by trial and error, not by intent.

Project timeline — 2 months
{{ t.t }} {{ t.sub }}
Weeks 1–3 Weeks 4–6 Weeks 7–8

Research methods

{{ m.t }}
{{ m.d }}
Research artifacts
01 / 04
What a document is made of
What a document is made of

The content model drawn the way it is presented: a spine from document to page to content, with blocks and fields opened out to either side. Properties belong to every entity, which is why selecting the right one is what surfaces the right controls.

How the editor was studied
How the editor was studied

Unmoderated sessions, support-queue questions and my own review notes merged into one corpus of 222 distinct observations — each coded twice, once for the object the user was touching and once for the action they were attempting.

Where the editor breaks down
Where the editor breaks down

The corpus crossed: object against task, with the count of distinct observations in every cell and one verbatim quote beneath it. Select-edit-style is the heaviest column in five rows of six — the editor failed hardest when people were correcting a document, not building one.

PoC testing
PoC testing

Seven users on a working prototype of the new selection model. All seven completed the main tasks and all seven multi-selected without help once it was offered — and the same seven sessions sent twelve improvements back into the design before any of it shipped.

Users

{{ a.name }} {{ a.roleLine }}
When{{ j.w }}
I want to{{ j.i }}
So I can{{ j.so }}
{{ j.note }}
Stage
User action
Emotion
Pain point
Design response
{{ st.num }}{{ st.name }}
{{ st.action }}
{{ st.emotion }}
{{ st.pain }}
{{ st.response }}

Problems

{{ p.n }}
{{ p.descPre }}{{ p.descHl }}{{ p.descPost }}
+
Support tickets & usability sessions

{{ q }}

Key Decisions

{{ d.fig }}
{{ d.tPre }}{{ d.tHl }}{{ d.tPost }}
+
{{ d.label }}

{{ d.d }}

Design Solutions

01 / 02
{{ im.el }}
{{ s.t }}

{{ s.d }}

The Outcomes

{{ o.n }}
{{ o.delta }} {{ o.delta2 }}
+
{{ o.t }}

{{ o.dPre }}{{ o.dHl }}{{ o.dPost }}

The Learnings

{{ l.n }}
{{ l.tPre }}{{ l.tHl }}{{ l.tPost }}
+

{{ l.d }}