Skip to content
Hi, I'm Jun
  • User Experience Design
    • Human-Centered AI
    • Business
Campus Leader
Previous Intern

Vrbo · 10 weeks

Expedia Group

Finding design-system gaps by building Vrbo’s property pages, then turning them into six component proposals.

Role
Design Builder Intern
Team
EGDS · Design + code review
Tools
Figma · Cursor · Claude

Ten weeks, in numbers

One prototype, built to find what the system was missing.

  1. 4

    reviewers, across design systems, design and code

  2. 6

    component proposals for EGDS 2: three refined, three designed

  3. 14

    Vrbo property-detail flows built in the prototype kit

The design-system challenge

EGDS is one specification that reaches designers and engineers as Figma, a prototype kit and production code. Every arrow pointed away from the spec. Nothing carried what a builder found back up to it.

Real flows find real gaps.

Could building Vrbo’s densest page in EGDS find its gaps, and carry them back to the system as proposals?

Approach

From prototype to system contribution.

  1. 1

    Prototype

    Build the Vrbo property-detail flows in the EGDS prototype kit, with existing parts only.

  2. 2

    Surface gaps

    Log what the kit couldn’t do, with the screen that exposed it.

  3. 3

    Define patterns

    Review each gap and decide which ones are reusable system patterns.

  4. 4

    Contribute

    Put the proposals into Figma, the written spec and the prototype kit, with a senior designer.

Prototyping

Build to learn.

  1. 1

    Reconcile the references

    Each flow started from the reference designs, checked against EGDS 2 components before anything was built.

  2. 2

    Build with the kit

    I built the flows in the EGDS prototype kit using Cursor and Claude, with existing kit parts only.

  3. 3

    Log every gap

    Anything the kit couldn’t do went into a shared feedback log, with the screen that exposed it.

  4. 4

    Review it in code

    Tyler’s review caught a full-screen sheet being removed before its exit animation finished. The fix keeps it mounted until the exit completes. Photo Tour then merged as PR #47.

The Vrbo property-detail page built in the EGDS kit, scrolling from the photo gallery through reviews, the host and the policies

Gaps

Every gap, pinned to the screen that exposed it.

Three Vrbo property-detail frames — reviews, house rules, and the map with filter pillsReview photos, inline.Filter cut mid-word.No label–value row.Label lost at 20% frost.

Not every gap is a missing component.

  • Reconcile

    Carousel

    Already being built elsewhere in the system, so dropped from my list.

  • Extend

    BottomSheet

    The existing sheet, with four changes.

  • Coordinate

    StickyFilterBar

    Existing parts that had to work as one pattern.

  • Adapt

    Status timeline

    An older EGDS 1 stepper, brought forward.

Review asked of each one: an existing capability, work in flight, a variant — or a genuinely missing pattern?

Six proposals for EGDS 2.

  • Refined

    StickyFilterBar

    Keeps filtering in reach.

  • Refined

    Toolbar

    Keeps the listing’s name.

  • Refined

    StepIndicator

    Shows where you are on the refund clock.

  • Designed

    ListItem

    One expands, one navigates.

  • Designed

    DataRow

    Gives a value somewhere to live.

  • Designed

    OverlayFilterPill

    Stays legible over the map.

  1. 1

    StickyFilterBar Refined

    EGDS had Tabs, PopoverSheet and ActionList, but nothing that did all three together. StickyFilterBar pins beneath the Toolbar, scrolls when the row overflows, and anchors its menu to the pill that opened it.

  2. 2

    Toolbar Refined

    Scrolling the hero away took the property name with it. A new prop on the existing Toolbar carries the title and back control into a compact header, instead of adding a second header.

  3. 3

    StepIndicator Refined

    A filled dot read as selected, so the refund schedule looked like a date picker. The EGDS 1 stepper, brought forward, labels each window Ended, Now or Upcoming.

  4. 4

    ListItem Designed

    The library only had a row that expands in place. Rows like Manage booking go somewhere else, and the affordance should say which of the two a row does.

  5. 5

    DataRow Designed

    Rooms, beds, house rules and price lines are label–value pairs. A variant on ActionList reuses its icon, label, trailing slot and divider instead of adding a new primitive.

  6. 6

    OverlayFilterPill Designed

    Faith flagged the map filters: at 20% frost the label sat on roads and water. A solid surface is predictable; a denser frost keeps more of the map. Which one stayed open.

The sticky filter bar above a ratings summary and a row of filter pills
Toolbar over a Lake Como property header, collapsed to a title and a back control
Refund status with full refund ended, partial refund current and marked now, non-refundable upcoming
The library's disclosure row, beside the proposed navigational row
The library's action row, beside the proposed row with the value on the trailing edge
Map filter pills compared — current frost at 20% scrim, beside the solid fill with a hairline outline

Try the states

Every state was exported, not described.

StickyFilterBar

StepIndicator

Refund status with Full refund current, 17 days left and marked Now; Partial refund and Non-refundable both Upcoming
Window

First window

The page was the audit.

Delivered.

A 14-flow prototype, Photo Tour merged as PR #47, and six proposals with states, written specs and renders.

Status.

Three refined, three designed, prepared for EGDS 2. Neither acceptance into a production library nor a customer-facing change is documented.

Not yet measured.

No testing with travellers, no production or adoption data, and StickyFilterBar’s keyboard behaviour is still open.

What I took away

  1. 1

    Building was the research.

    The gaps that mattered were behaviours — pinned, overflowing, current, upcoming — and none of them show up in a component inventory.

  2. 2

    Review decided more than my drafts.

    Amy’s questions are why most of the six extend something EGDS already had, instead of adding to it.

  3. 3

    Test before asking for adoption.

    Next, the two refined components go in front of travellers and keyboard and screen-reader users. The refund wording and the filter menu are the likeliest to fail.

After the summer

I sat down with Rachel Been, Expedia Group’s SVP of Design, to talk about her path as a designer and as a leader.

Jun's Portfolio