UX CONCEPTUAL PROJECT

The personals, now for people.

Ushering Craigslist’s UI into the modern era.

 
 

 

 

At a glance.

Oh Craigslist. Such a reliable old friend with such a dated user experience. Sometimes, when you see something like that, you just want to take it and make it better yourself. So that’s what I did. For 3 weeks, my partner Lauren Golden and I worked together to improve the UI, visual design, and accessibility of the internet’s trusty standby. Not only that, but we focused on creating a user-friendly design kit, all while showing off our Figma skills. Read on!

 

Duration.

3-week sprint

Team.

Me

Lauren Golden

Tools.

Sketching

Figma

Miro

Method.

Heuristic evaluation

Secondary research

Comp analysis

Collaborative design studio

Wireframing

Prototyping

THE OBJECTIVE

Complete makeover.

Giving Craigslist’s UI a much-needed facelift.

 

For this conceptual redesign of Craigslist, my partner and I had several objectives:

  • Demonstrate specific UX design skills:

    • UI design

    • Visual design

    • Building a design kit

    • Advanced Figma skills

    • Fluid grid mobile web design

  • Make it look and feel like a current mobile website

  • Address and rectify several major usability issues with the UI and visual design

  • Improve the accessibility of the site in terms of color contrast and touch targets

 

Our scope.

check.png

Due to our short time constraint, we had to narrow down our scope. We decided to focus solely on:

  • the UI

  • the visual design

  • the accessibility of the site

  • creating a design kit

 

That means that we deliberately did NOT touch upon: 

  • the business strategy

  • the brand strategy

  • core features and functionality

  • information architecture

  • user research

  • usability testing

 

Our priority use case.

The priority use case that we focused on was the experience of a non-authenticated lurker. That is, a user who is not logged in and is looking rather than posting. In order to determine what the most relevant features were, we referenced the existing mobile website and mobile app.

How we approached it.

  1. Inventory and evaluate the current patterns and styles

  2. Ideate and iterate via sketching, relying heavily on comp analysis

  3. Design our wireframes, visual design, and components

  4. Assemble our wireframes, visual design, design kit, and prototype

Assessing the scene.

Creating a comprehensive inventory and evaluation of the current state of the site.

 

Before we could set to work on improving Craigslist, we had to determine what the heck was wrong with it in the first place. In order to accomplish this in a methodical and thorough way, we systematically combed through each page and feature to create an inventory of the site as it is today. We did this by taking screenshots of all the main pages and placing them in Figma. We not only inventoried the mobile site, but the desktop site and native app as well, just to make sure that we had a comprehensive understanding of all of Craigslist's features and pages, regardless of the platform.

With all the screenshots organized in one place, we were able to catalog all of the existing features, patterns, and visual styles. This also allowed us to easily make note of the existing UX violations.

We quickly discovered that not only was the information architecture fractured and unintuitive, but there were numerous heuristic violations that plagued the navigation, UI, interaction design, and UX patterns.

categories.png
listing.png

Brainstorming solutions.

Referencing competitors and comparators to improve the site’s pages, features, and patterns.

 

Now that we had a good idea of how Craigslist currently is and what needed to change, we looked to competitors and comparators for inspiration on how to improve the UI for each page and feature. Much like the previous activity, we imported screenshots of competitors to Figma so we could easily reference how each site approached the patterns that we wanted to improve.

Let’s go element by element to see what the problem was and how we remedied it.

Element 1: Navigation.

OfferUp’s primary navigation.

Yelp’s breadcrumb navigation.

The navigation of Craigslist’s mobile website was all over the place. The location toggle, which dictated the scope of listings the user would see, was located in several portions of the home page. Additionally, the user cannot access other categories, subcategories, or other pages from any of the category, subcategory, or listing pages. The user has to go to the home page in order to navigate to another part of the site.

We examined several competitors for inspiration on how to execute the navigation of the site. The competitors that had the most applicable and user-friendly navigation patterns were OfferUp and Yelp.

For OfferUp, they had an easy-to-use vertical show/hides that were more stable and didn’t require user recall or a special way to go “back”. Additionally they used iconography and typography to distinguish first and second level navigation.

Yelp, on the other hand, was horizontally oriented but had a persistent and clean breadcrumb trail.

 

Proposed design:

nav-example.png

Element 2: Global header and categories.

headerba.png

Craigslist’s mobile website’s global header currently only contains location and category toggles in a dropdown breadcrumb format that is not found anywhere else online. While functional, it is not intuitive and doesn’t follow standard practices that would make it easy to learn. Based on the similarities we saw between competitors, we decided on a structure that follows typical mobile web layouts, and groups like with like. Namely, a header with primary navigation and primary global features. Right below the primary global header is a header that displays your current physical location, along with the option to change your location and subsequent listings.

This article by the Baymard Institute validated our assumptions about featuring global breadcrumbs that illustrate the site’s hierarchy. Additionally, making the breadcrumbs obviously clickable gives the user an easy way to navigate amongst the hierarchical levels of the site without having to use the back button or the hamburger menu.

com-headers.png

Our main concern was designing a global header that was both functional and visually appealing, while also providing accessible touch targets and clearly labeled icons. Both Target and Home Depot inspired our final design. Both included a flyout for all account-related pages, which made sense for pages like “hidden posts”, “favorited posts”, as well as sign-in and signup. We decided that the option to create a post, while not a place or a collection of listings, should exist on the header nav outside of the “account” flyout. Furthermore, we divided the “account” flyout with a horizontal line to differentiate between hidden/favorite collections and account options like sign in and create an account.

Additionally, we decided to opt for the logotype rather than their peace sign logo, as the title is otherwise nowhere to be seen.

Element 3: Primary and secondary navigation.

nav-ba.png

Currently, the mobile website has accordion-style show/hides for their primary navigation. Despite both levels of navigation being visible at once, there are so many subcategories that it forces the user to recall which greater category they are on. Based on competitive analysis, it turns out that the Craigslist native app actually seemed to get this one right. They include a 2-level vertical flyout where both levels are clearly visible at once, which allows for easy recognition and reduces the amount of recall on the user’s end. Normally, this style of primary navigation would not work on sites with 3 or more levels of navigation, but since Craigslist only has 2, we adopted it for our design.

Element 4: Footer and miscellany.

All of the footer and tertiary content.

All of the footer and tertiary content.

For all of the miscellaneous and legal stuff that wasn’t a main feature, we decided to put it both at the bottom of the hamburger menu as well as at the bottom of every page. This worked because we opted out of doing infinite scroll. We put the footer content in 2 places for ease of access.

Since there were 15 separate footer items, we performed a quick affinity mapping exercise to place them in broader categories, which in turn made it easier to put in the hamburger menu and the global footer. If we had included user research in the scope of this project, we would have performed some card sorting with target users to get a more accurate mental mapping of the footer content.

Element 5: Location display.

Our concept was to move all the different location features into one flyout where the user can 1. ) choose or change their specific location to narrow down their listings results, and 2.) find different Craigslist sites at the continent, country, state, city and area level. The only exception to this was the neighborhood level filtering, which we discovered only applies to a handful of locations. Not only that, but the user can select multiple neighborhoods at once. Since redesigning core features mechanics was not in our scope, we decided to leave the neighborhoods option in the listing filters. Otherwise, it would be a large project unto itself.

This left us with 2 ways to select a location: 1.) using a convenient map API provided by Google, and 2.) a show/hide list option for the list of continents, countries, states, cities and areas.

 
location-flyout-gold-sm.gif

Element 6: Results refinement.

filter-menu-white-sm.gif
 

For the results refinement mechanic, we looked at a bunch of comps and articles to understand the patterns for mobile web. We also performed secondary research and found some really useful information. [1][2][3]

From the comp analysis and those articles, we discovered a number of things, namely: 1.) show/hide sections are typically open by default, but each section should be able to be collapsed, 2.) when filtering is complete, filters are shown as pills with an X icon to remove them, 3.) the number of filtered results should be displayed, and 4.) the default/selected view and the default/selected sort should be displayed as the label and corresponding icon.

We moved our results refinement tools like sort, filter, and view controls onto their respective category and subcategory pages. Since these were not global elements, but rather tools that were specific to listing results, it made more sense to feature them only on the pages in which they would be applicable.

Because Craigslist’s current search function is functionally specific to the category or subcategory, it should be visually grouped with the other result refinement features like sort, filter, and view controls.

 Element 7: Category results view.

Screen Shot 2021-08-16 at 4.28.59 PM.png
 
List Listing.png

List view.

For this list view, we largely followed Material Design standards.

 

Thumbnail view.

This is more or less the same as list view, but with the addition of a thumbnail image.

 
Gallery Listing.png

Gallery view.

This is essentially the same list view, but with a scrollable image carousel above the listing text and favorite/hide icons as an overlay.

 

For all of the listings, regardless of the view option selected, we decided to display the time posted in a way that was more tangible and relevant to the user. Instead of a timestamp, where the user would have to refer back to their current time and date and do math in their head to approximate the time between, we simply phrased it as “posted [x] minutes/hours/days ago”.

Element 8: Listing details page.

listing-details-white-sm.gif
 

Upon comparing listing details amongst competitors and comparators, we discovered that there isn’t much consistency when it comes to layout. 

What was consistent was:

  • Breadcrumbs

  • Big titles

  • Big photos

  • CTA

  • Details below

  • Thin horizontal gray lines to divide sections

Most have the image first, then the title, price, and key metadata like when and where it was posted. The CTA followed all of that.

 
layoutcomp.png

Overall layout.

Based on secondary research from this article, we discovered that users typically overlook information kept in tabs. Therefore, we opted to keep all the information on the listing page as vertically stacked show/hides. In order for this layout to be optimally effective, we ensured to give each section a descriptive header, and to have it expanded by default. This way, users can easily navigate the listing details, while reducing the chance of overlooking a section.

According to this article, thumbnail images ensure that the user knows how many images there are, and gives them a preview of each image. This increases navigability and visibility of the images, which are incredibly important when deciding whether or not to purchase an item. Therefore, in addition to the carousel dots, we included thumbnail images below the main gallery image.

Element 9: Home page.

homepage-gold-sm.gif

For the home page layout, we had to get creative due to the lack of true direct competitors to Craigslist. Additionally, since Craigslist’s information architecture is inconsistent and unintuitive, it was a challenge to create a home page design that was both visually attractive and afforded ease-of-use.

In the end, we opted for vertically stacked main categories, with horizontally scrollable subcategories that the user can choose to expand. This allows the user to visually see all of the main categories at once, while having the power to browse the subcategories as well. This eliminates the need for the user to have to recall which categories there are, and which subcategories exist within them, which would have been the problem with fully vertical show/hide subcategories.

Furthermore, due to how we grouped and streamlined the site’s features and pages via the global header and hamburger menu, it was much easier to keep the home page free of clutter.

Lastly, we decided to make the user’s location the title of the home page to further illustrate what kind of listings the user will be seeing. Additionally, we included the option to change their location right next to the location title for high visibility.

Applying it to Figma.

Setting up our file.

Before getting into the nitty gritty of  translating our sketched designs to Figma, we sat down together to determine the parameters, constraints, and specifications of the project.

We decided on a few things:

  • The viewport would be at default 360px wide, which is the most common “small” size amongst phone’s today. Despite 320px being the actual smallest phone screen width, we designed at 360px since there is only a small percentage of users who have a phone that is smaller than 360px. We made sure to stress test our designs from 320px to 480px, which encompasses the widths of phones on the market today. 

  • We set up our grid as follows:

    • Soft 8pt grid

    • 4 column fluid grid

    • 16 pt margins

    • 8 pt gutters

    • We chose to design based on the 8pt grid system because it makes scaling for a wide variety of devices much easier, and more consistent.

  • We wanted to prioritize accessibility of design by following Material Design guidelines.

  • We wanted to be thoughtfully preemptive about styles, components, variants, and auto-layout. We therefore combed through our sketches and audited all of the instances of styles, components, variants, and any elements that could benefit from auto-layout.

Collaboration strategy.

 
tomato.png
 

In order to maximize efficiency, we decided to work together in the following way:

  • Work solo in pomodoros (or in other words, timed sprints of 25 minutes)

  • Completely hold off on talking, troubleshooting, or asking questions until the pomodoro was complete

This method of collaboration worked really well for us since we were able to get a lot of work done without constantly interrupting each other with minor questions or feedback.

 Creating our component library.

Next, we set to work cranking out wireframe components of recurring elements in our design. We built our design atomically, starting with the smallest elements first, working our way up to more molecular, nested components, and finally landing on larger page layout components.

Additionally, we continuously made micro-adjustments to our components since moving our designs from sketches to pixels presented us with more fine-detail decisions, such as the placement and orientation of icons like carets, chevrons, and the magnifying glass.

We split up the components that we would work on, with each teammate taking half of the components. This eliminated tandem decision-making and allowed us to create components on our own for more efficient discussion later on.

 Determining the new branding.

Screen Shot 2021-08-17 at 12.31.31 PM.png

In order to select a new brand color palette and type, we first laid out a list of descriptors that evoke Craigslist’s brand mission, ethos, and personality.

 

We selected a preliminary set of colors and tested them for contrast accessibility. Every time we adjusted colors, we also retested contrast.

For the typography, we visually compared several slab and sans typefaces. We rejected several for being too futuristic and trendy. In the end, Roboto Slab and Inter were the finalists. We examined all combinations of Roboto Slab and Inter and agreed that an all Inter approach looked clean, readable, and modern, without looking old-fashioned or too futuristic.

 Visual styling.

For the visual styling, we wanted to emulate the brand keywords laid out in the previous section. We decided to approach the visual styling element by element, performing a collaborative design studio on each and reconvening to narrow down on which iteration we liked the best.

We knew right off the bat that we wanted a flat visual styling, as opposed to a flashy graphic styling like glassmorphism. We wanted to convey a sense of simpleness and approachability that Craigslist is known for.

We went in a global, top-down order, starting with the header nav, and primarily explored color, spacing, and shapes. After narrowing down each visual treatment to ones we both thought worked well, we put components in context and tweaked from there. For example, for the search bar, I explored the shape and orientation of the search bar while Lauren explored the possible color combinations. We then discussed each iteration together to decide on which version was most visually appealing and communicated Craigslist’s brand personality. 


Main hamburger menu.

We felt that adding color to the hamburger menu was a little too much, so instead we opted for adding icons to the main categories, which helped distinguish those options from the footer options. Additionally, to make it less overwhelming, we added grey lines to separate the menu items.


Location flyout.

We made this flyout more consistent with the other flyout styles, while adding tabs to conserve space.

location flyout.png

Reply modal.

Reply Modal.png

Since the reply modal is much simpler than the other flyouts, menus, and overlays, we decided to go for a simple composition and visual styling. For instance, unlike the filter menu, there is no confirmation or multiple inputs needed.


View options.

For the various view options, we experimented with displaying the listings as cards vs. as a list. We found, through creating and comparing several iterations side by side, that cards with a slight elevation made the listings cleaner, more distinct, and more visually attractive. Furthermore, for gallery view, we adopted Airbnb’s use of transparent icon overlays for our secondary actions. We also made the gallery images a 16:9 aspect ratio because that is the common proportions of cell phone cameras nowadays.

viewoptions.png

Listing details layout.

While cards worked well for the category and subcategory results pages, they looked too cramped when we attempted to apply them to the various sections of the listing details page. To remedy this, we eliminated the cards and decided instead to separate each section with a thin grey line.

Listing Layout.png

Home page.

Lastly, for the home page, we came to sort of an impasse with Craigslist’s existing IA. Since there are so many subcategories within certain main categories, it was not possible to create a design that both kept the current IA and eliminated recall strain. The options for us were to either fix the IA or not, and we chose not to due to time constraints.

Since most of our competitors sell new items, they focused on promoting specific items on their home page, whereas Craigslist’s content is all user-uploaded. We therefore needed a way to display the categories and subcategories without promoting any category, subcategory, or listing in particular. 

We experimented with color and hierarchy and landed on this design:

Making the design kit.

 Now that we had completed our components, styles, and page layouts, it was time to create a design kit so that designers and engineers can easily navigate our design file and make consistent designs of their own. 

You can view our design kit file here.

Screen Shot 2021-08-17 at 1.47.52 PM.png

Before we shifted into high gear, we collected several examples of good design kits from Figma Community. The design kits we found most easy-to-navigate, comprehensive, and aesthetically appealing were: The Pegasus Design System, a sticker sheet file from Config 2021 made by Angela Pinzón and Santiago Camargo, the Material Baseline Design Kit, and the design system from Atlassian.

Screen Shot 2021-08-17 at 1.42.06 PM.png
Screen Shot 2021-08-17 at 1.43.42 PM.png
Screen Shot 2021-08-17 at 1.43.09 PM.png

 

Despite all the comps we had gathered, we didn’t really see any that we felt had sufficient explanations for how colors and fonts should be used, so we added in descriptions ourselves.

 
90%Black.png

 

Additionally, we also performed affinity mapping in order to categorize all of our components into groups that made sense.

This was also when we created our various states for our icons, buttons, and forms fields. 

Once we had our variant states and component groups, we then went systematically through each layer of each component to ensure that all colors and text were attached to an existing text and color style. In doing this, we also audited how many text and color styles were being used. We noticed that there were several color styles and text styles that were redundant or too similar, so we combined them. This simplified our total list of color and text styles, and also made our design more consistent.


We then took our components and made them into layout sticker sheets for each page type: home page, category page, subcategory page, and listing details page. We put the sticker sheets on a separate page to differentiate them from their more atomic components. 

After this, we went through each component to ensure that there were no unnecessary overrides. When we encountered them, we reset that specific override to the main component property. This ensured that any changes made to the main component would be reflected in their instances. 


Lastly, we ensured that each component was fluid by stretching the component horizontally to see if it would retain its proportions. This ensures that whenever the component is used in a fluid grid design, they will behave correctly regardless of the screen width.

Results and reflections.

 

An incomplete picture

It was frustrating to exclude strategy and structure, and not follow a truly user-centered process. But, in order to stay tightly focused on our portfolio goals, we had to keep the scope extremely limited. We deliberately avoided major changes to features, functionality, and information architecture. And, as painful as it was, we did not do user research and testing. 

Mini-sprints are the way to go

Having worked with Lauren for almost a year, it wasn’t surprising that our collaboration was exceptionally smooth. I’m particularly delighted by our mini technique, and plan to use that going forward. The overall project delivered exactly what I wanted for my portfolio, and we had a lot of fun doing it. 

We not only dramatically improved UI factors, but we did it in a way that deeply considered the current functionality and IA, and didn’t require any changes to that underlying structure.

 

Get in touch.

Let’s build something together.

jamesrothbart[at]gmail[dot]com

Oakland, San Francisco Bay Area