Role
Product and design systems designer
Team
My product owner, front-end and back-end developers
Timeline
Jul 2024 to Feb 2026
Shipped
Search and filters on flights and cars, desktop and mobile web

    Round trip, one way or multi-destination

    What shipped

    • 4 verticalsOne search pattern for flights, cars, trains and stays.
    • 2 weeksA full flow, designed and shipped, per sprint.
    • 1 buttonThree screens of filters became one drawer.
    1. The search hides in a banner
    2. “Filters applied!” but not which
    3. Green tags on every leg
    4. Three screens of filters
    • Trade-off

      A · Keep the left panel

      Familiar to the team, but three page-lengths of filters beside the results.

    • Trade-off

      B · A band of dropdowns

      Less scrolling, but one menu at a time, and the list jumps on every change.

    • Chosen · results stay visible

      C · One Filter button and a drawer, applied in one batch

      New code, but results stay in view, and it is the pattern people already use on their phones.

    How I got the yes. Stakeholders said it added a click. I argued one extra click was worth it, in July and again in August 2025, and prototyped the drawer in Figma Make to sell it to my product owner. It shipped on flights and cars.

    1. Mobile: the same filters in a sheet
    2. Desktop: a drawer, results stay in view

    Drawer

    • For: A clean results page
    • For: Apply in one batch
    • For: Scales to many filters, and it is already the mobile pattern
    • Against: One extra open and close

    Side panel

    • For: Always visible
    • Against: Competes with the results for space
    • Against: Reloads and jumps on every click
    • Against: Collapses into a drawer on mobile anyway

    From my research board, with NN/g and Vitaly Friedman’s Smart Interface Design Patterns. The recommendation: quick filters inline, the full set in a drawer.

    Designed mobile first. I was told mobile wasn’t a priority and built for it anyway. When tracking went in, the data showed much of the use was on mobile, and the mobile screens already existed.

    1. 01

      Is it needed?

      If nobody could say why it existed, it had to earn its place.

    2. 02

      What will break?

      The back end couldn’t filter live, so you choose, then press Show results.

    3. 03

      What does the user see?

      When the back end can’t answer, the screen says so, with a reason, instead of an empty list.

    1. Change any field without leaving the page
    1. A class warning, up front
    2. Times per leg
    3. Airlines as an autocomplete
    4. Clear and Save stay at the bottom

    Then, back on the results

    1. Remove one without reopening

    Provider Adep: "0705"

    Provider Bdeparture_time: "07:05"

    Provider Ct_dep: 25500

    One shapedeparts: 07:05

    One results list
    • 07:05Direct09:50
    • 10:40Direct13:30
    • Direct means direct
    • Partner airlines show in the results
    • Empty filter groups say why
    • It worked while the back end was fixed
    1. 01

      Experts still want familiar patterns.

      A drawer people know from their phones beat a custom sidebar, even for people who book all day.

    2. 02

      A limit can become a rule.

      The back end couldn’t filter live, so “choose, then show results” became the pattern, not a workaround.

    3. 03

      Build for mobile before you’re asked.

      The data caught up, and the screens were already there.

    What I’d do next. After launch I listed the fixes from client feedback: the slider’s value while dragging, clear-all beyond the results page, travel dates on the cards. When stakeholders asked to move flight filters into a left panel to match stays, I framed three options for them to decide. My engagement ended in February 2026, so what shipped after isn’t mine to claim.

    1 button Three screens of filters became one drawer.

    1. Round trip, one way or multi-destination

    Round trip, one way or multi-destination

    This is how I’d start with your system.

    An audit, one component through the whole lifecycle, and a gate your team owns.