Page MenuHomePhabricator

[XL] [Tech Debt] Replace custom navigation bar with system bar
Closed, ResolvedPublic10 Estimated Story Points

Description

We have a legacy custom navigation bar component that provides title shrinking, fading, snapping and loading behavior across all of our features. This component is difficult to maintain, and often results in UI layout quirks that cause us to spend time investigating, then patching or ignoring. We also don’t benefit from new system navigation bar changes, causing us to either lose out on new free abilities or to put in extra effort to add the abilities in manually.

iOS 11+ navigation bar supports large titles and integrated search bars, so we may be able to recreate much (but likely not all) of this functionality out-of-the-box.

This work will pave the way for a smoother navigation restructuring that we plan to do later this year.

Engineering Notes

  • Spike: determine we should use system SwiftUI navigation behavior or UIKit. A big component of this is whether embedded UIKit scroll views communicate properly up to the SwiftUI navigation bar. If not, we will need to use UIKit, as we won't have time to rewrite all existing views with SwiftUI.
  • Deploy prototype of changes to get early feedback on design choices
  • Spike on prototype branch and answer design questions: 1. Is it possible to remove the "stickyness" of hidden navigation bars on Explore and Article? 2. Is it possible to fade out navigation bar as it hides on Explore, Article, and Saved? 3. Is it possible to add sort capability to reading lists tab? 4. Can we bring back the old horizontally scrolling languages bar on Search?

Once design is good with final prototype answers, go through each of these screens and confirm all is working as expected. Push updates / bug fixes to prototype/system-nav-bar branch.

Easiest

  • EditPreviewViewController - Remove custom navigation bar and ViewController superclass. Be sure preview still works in both the editor and image recommendations flow.
  • DescriptionHelpViewController - Remove custom navigation bar and ViewController superclass.
  • Notifications Center - Remove custom navigation bar and ViewController superclass from notifications center views (main list view and detail view). Ensure loading states and empty states look good. Navigation bar hiding upon scroll can be removed.
  • On This Day list view controller - Remove custom navigation bar and ViewController superclass from on this day list view (which is pushed on from Explore feed).
  • In the News list view controller - Remove custom navigation bar and ViewController superclass from on this day list view (which is pushed on from Explore feed).
  • SinglePageWebViewController - Remove custom navigation bar and ViewController superclass.
  • URL list view controller (ArticleURLListViewController) - Remove custom navigation bar and ViewController superclass from url list view (which is pushed on from Explore feed).
  • Location list view controller (ArticleLocationCollectionViewController) - Remove custom navigation bar and ViewController superclass from url list view (which is pushed on from Explore feed). Ensure loading and empty state look good.
  • Settings detail views - Remove custom navigation bar and ViewController superclass from settings detail views (e.g. Account, Explore feed settings, etc). Navigation bar hiding upon scroll can be removed.

Maybe difficult
Maybe difficult because this view navigates to our search view controller, which is in the final category and is one of our most reused view controllers.

  • EditLinkViewController - Remove custom navigation bar and ViewController superclass. Be sure screen still works in both talk page and editor flow.

Slightly more difficult
This is a bit harder because the navigation bar needs to hide upon scroll. This is already happening in the prototype, but we need to put in additional work to ensure it doesn't get "stuck" in a hidden state. We should listen to the scroll view content offset and ensure when it is scrolled to the top, the navigation bar is always displayed.

  • ArticleViewController - Remove custom navigation bar and ViewController superclass. Navigation bar will need to hide upon scroll.
  • RandomArticleViewController - Remove custom navigation bar and ViewController superclass. Navigation bar will need to hide upon scroll.

Harder
Harder because these screens currently lean on the custom navigation bar's underbar view and extended view. We need to break these views out of the custom navigation bar and instead insert them as normal collection view cells or collection view header cells.

  • AddArticlesToReadingListViewController - Remove custom navigation bar and ViewController superclass. Ensure empty state looks good.
  • Talk Pages - Remove custom navigation bar and ViewController superclass from talk pages classes (including coffee roll and archives screens). Ensure loading states and empty states look good.
  • Article History - Remove custom navigation bar and ViewController superclass from article history views. Ensure loading states and empty states look good.
  • Diff - Remove custom navigation bar and ViewController superclass from diff views. Ensure loading states and empty states look good.
  • Insert Media classes - Remove custom navigation bar and ViewController superclass from the Insert Media classes (flow after tapping editor > insert media button). Ensure loading states and empty states look good. Be sure screens still work in both the editor and image recommendations flows.
  • ReadingListDetailViewController - Remove custom navigation bar and ViewController superclass. Ensure empty state looks good.

Hardest
Hardest because of the design dependencies. These screens will experience the most design changes so we are saving it till the end.

Then wrap up views that need to use the large display title and search scopes:

  • History tab - Remove custom navigation bar and ViewController superclass. History will have system large title display type. Ensure empty states look good.
  • Saved tab - Remove custom navigation bar and ViewController superclass. Use UISearchController to display search bar. Use search scopes to add "All articles" and "Reading list" tabbed options. Both sets of data should now be searchable and sortable. Use system large title display type. Ensure empty states look good.
  • Places tab - Remove custom navigation bar and ViewController superclass Use UISearchController to display search bar. Use search scopes to add "Map" and "List" tabbed options. Ensure loading and and empty states look good.

These may need to be done in tandem because they heavily depend on each other:

  • Search tab - Remove custom navigation bar and ViewController superclass. Use UISearchController to display search bar. Try to add custom languages picker bar back in, if that fails lean on search scopes to display language search options. Confirm loading and empty states look good. Confirm searching from Article > search navigation button looks good. Confirm searching from Editor > Add or Edit link looks good.
  • Explore tab - Remove custom navigation bar and ViewController superclass. Use UISearchController to display search bar (note: this leans on SearchViewController from Search tab).

Background Information: Apps Debt

Known bugs

Add bugs here as we review, to be addressed during this work. If not addressed, create separate task

  • Mis-alignment of "Tap to go back" tooltip on "W" home icon T383458
    • Check other Tooltips on custom nav items
  • Check empty states / error states alignment
  • Settings content goes underneath tab bar when Explore feed is disabled T383455
  • Swiping back from Image Recommendations causes weird full modal state. T383456
  • Can't swipe back from Notifications T383456
  • Tapping cancel from Insert Link shows blank screen, should automatically dismiss and go back to editor
  • iPad article bounces (when TOC is closed) and causes swipe back to fail. T383456
  • Sometimes "Edit" on Reading Lists causes assertion failure T383459
  • Do an audit of all back buttons, confirm default handling for label exists, and some sort of title appears during long press. (Note: searching project for WMFNavigationBarTitleConfig(title: "" will likely give us areas with missing back long press title) T383457
  • Audit and fix any unlocalized strings (flagged as todo in code)
  • Audit and fix any Voice Over regressions T383453
  • Opening username from Revision History crashes app
  • History missing section titles T383454
  • The old ViewController class had ArticlePreviewingDelegate. It has been added it to ColumnarCollectionViewController after ViewController was deleted. Is it needed anywhere else? This would cause a bug where long presses do not show an article preview. T383459
  • Code cleanup: There's some code duplication in WMFReferencePageViewController.swift (see didFinishAnimating method) and ReferenceShowing.swift (see showReferences method). Can these be deduped? T383459
Design feedback Todo

Notes for QA

This can be tested in the latest 7.7.0 build (4821 or higher).

The looks of the navigation bar across the app has changed to the iOS system bar. While just about every UI screen had code changes, test these areas more heavily as they required larger changes:

  • Article
  • Article > Article History view
  • Article > Article History > Revision Diff view
  • Explore tab
  • Explore > On this day list view
  • Editor > Insert Link and Edit Link flows
  • Editor > Insert Media flow
  • Places tab
  • Saved Articles tab
  • Saved tab > Reading list detail view
  • Search tab
  • Talk pages

Please make a note of any bugs. Also check any bug found against T383897 to be sure we aren't already aware and tracking it.

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
HNordeenWMF raised the priority of this task from Low to Medium.Dec 9 2024, 7:07 PM
Tsevener updated the task description. (Show Details)

Answers from Spike:

  1. Is it possible to remove the "stickyness" of hidden navigation bars on Explore and Article?

    A: Yes, this is improved in the latest.
  1. Is it possible to fade out navigation bar as it hides on Explore, Article, and Saved?

    A: Unfortunately no, I cannot find an easy way to do this. We do not have easy access to the large navigation bar title for fading out while the user is scrolling.
  1. Is it possible to add sort capability to reading lists tab?

    A: Yes, this is done in the latest.
  1. Can we bring back the old horizontally scrolling languages bar on Search?

    A: Yes, this is done in the latest. Note we plan to change the search tab further in Navigation Round 2 changes, so we may need to do a final spike on that to see how SwiftUI handles it. But based on my observations in https://phabricator.wikimedia.org/T363606#9786926, we should be able to embed a SwiftUI view here with round 2 changes. The system navigation bar will still respond to scroll events in SwiftUI and shrink the navigation title as-needed.

Latest Experimental build is 7.6.3 (205). This has iPad article fixes, search tab languages bar fixes, missing toast fixes, and fixed Saved tab sorting and searching.

Seddon set the point value for this task to 10.Dec 10 2024, 2:55 PM

@scblr @HNordeenWMF

Just a heads up about some limits I'm coming across so far after investigations:

  1. I have not been able to find an easy, system way to either move the large navigation bar title up or move the navigation bar buttons down. We are limited to the buttons living up higher on their own line. The buttons will align with the title only once the content is scrolled down a little and the navigation bar switches to a compact state:


Screenshot 2024-12-10 at 3.02.19 PM.png (161×215 px, 9 KB)


Screenshot 2024-12-10 at 3.02.23 PM.png (131×217 px, 8 KB)


Screenshot 2024-12-10 at 3.02.31 PM.png (151×227 px, 9 KB)

  1. I have also not been able to find an easy, system way to hide the search bar upon scroll down, then bring it back upon scroll up. What we can do is hide it when the user scrolls down, then it is gone until the user scrolls all the way up. Our options:

    Hide search bar on scroll down, reveal again when scrolled to very top: https://drive.google.com/file/d/117ErK43za2h_6Se5eWjCCKQul-HuWotm/view?usp=sharing

    Hide entire navigation bar on scroll down, reveal again on scroll up: https://drive.google.com/file/d/1HmsFVl5470r-CglzX8y1oO5EAEZEonoB/view?usp=sharing

    Do not hide at all: https://drive.google.com/file/d/1oKMk2VatyRAv5CmVWGLDSkE2rfpx_Lsk/view?usp=sharing

I will switch to doing cleanup in other areas of this task, but wanted to give y'all a heads up in case it changes anything for you.

@Tsevener thanks for these explorations

  1. I'm fine to stick with the original design of icons above on their own line, I think the white space will look less large when viewed with the notch / camera cutout.
  1. My preference the article view is to match current behavior, which is:

Hide entire navigation bar on scroll down, reveal again on scroll up: https://drive.google.com/file/d/1HmsFVl5470r-CglzX8y1oO5EAEZEonoB/view?usp=sharing

I think we should match the scrolling behavior for other views to whatever we decide for article view.

Thoughts @scblr ?

Thanks @Tsevener for the update. I agree with @HNordeenWMF’s preferences/suggestions! 🎯

@HNordeenWMF @scblr New build incoming, Experimental #207

I have made progress standardizing the navigation bar buttons (close button, back button, profile button) and navigation bar titles. Note that for the root views, I am attempting to use a more compact approach per a suggestion from Robin, where the title is aligned to the left. This does cause some strangeness with iPadOS 18 floating tab bar. For those situations, I may be able to hide the navigation title entirely for Places, Saved, History, and Search, since it feels like duplicated info, being so close to the tab bar title. But I can't remove any extra spacing the floating tab bar causes above the search bars.

There are still some theming bugs and smaller screens where I haven't applied the new standard yet. I also intend to fix a bug where the "Back" label appears when coming from the Saved tab.

This bug is fixed: https://phabricator.wikimedia.org/T363606#10386302
I think all of these bugs are fixed: https://phabricator.wikimedia.org/T363606#10301172

Let me know what you think!

One more - #208 should fix the swipe back gesture to get back to the previous screen.

Wow, this is exciting, @Tsevener – the compact navigation bar with the big titles works well on iPhone! 🤩

This bug is fixed: https://phabricator.wikimedia.org/T363606#10386302
I think all of these bugs are fixed: https://phabricator.wikimedia.org/T363606#10301172

👍👍👍 — I left some more feedback below.


1) This is how I see Places (missing big titles, search bar, filter and tabs)

iPhone 15 Pro with iOS 18.1.1iPad Mini with iOS 18.2
image.png (2×1 px, 2 MB)
image.png (2×1 px, 2 MB)

2)

I may be able to hide the navigation title entirely for Places, Saved, History, and Search since it feels like duplicated info, being so close to the tab bar title. But I can't remove any extra spacing the floating tab bar causes above the search bars.

CleanShot 2024-12-16 at 13.27.03.png (2×1 px, 893 KB)

The additional space looks off even if the titles are removed next to the floating tab bar. And I guess the titles like that won’t work in more character-heavy languages.

If feasible, we show the titles at the original spot on iPad, as it looks more balanced and screen estate isn’t that limited:

ImplementationvsSuggestion
image.png (2×1 px, 775 KB)
image.png (2×1 px, 775 KB)

I still really LOVE the compact iPhone view:

image.png (2×1 px, 1 MB)

Can we combine the concepts with minimal hacking? 🫶

3) Examples of instances where < Back could indicate the user’s origin:

3.1. < History

image.png (2×1 px, 508 KB)
image.png (2×1 px, 1 MB)

3.2. < Saved`

Probably this:

I also intend to fix a bug where the "Back" label appears when coming from the Saved tab.

image.png (2×1 px, 1 MB)
image.png (2×1 px, 2 MB)

3.3. < Explore

Featured article

image.png (2×1 px, 1 MB)
image.png (2×1 px, 1 MB)

Top read

image.png (2×1 px, 519 KB)
image.png (2×1 px, 2 MB)

Places

image.png (2×1 px, 444 KB)
image.png (2×1 px, 286 KB)

In the news

image.png (2×1 px, 1005 KB)
image.png (2×1 px, 1 MB)

On this day

image.png (2×1 px, 297 KB)
image.png (2×1 px, 410 KB)

Random article

image.png (2×1 px, 1 MB)
image.png (2×1 px, 1 MB)

4) Replace X with Done in Settings. To be consistent, I favor replacing X with Done in all full sheets in the app.

Rules:

  1. If there’s no navigation bar title, show Done on the top left side of the screen (see example #1)
  2. If there’s a navigation bar title, show Done on the top right side of the screen (see example #2)
1.2.
image.png (2×1 px, 198 KB)
image.png (2×1 px, 201 KB)

5) In the floating tab bar, can we use the magnifying glass icon instead of the Search label?

CleanShot 2024-12-16 at 16.50.23.png (2×1 px, 1 MB)

@scblr New build, Experimental 209

1.

This is how I see Places (missing big titles, search bar, filter and tabs)

This is hopefully fixed now

2.

Modified iPadOS18 to use the large style, everything else still uses compact leading style. Let me know how it feels.

3.

Back buttons now use default system handling (shows a specific title when possible, and "Back" when there's not enough room for the title).

4.

Replace X with Done in Settings. To be consistent, I favor replacing X with Done in all full sheets in the app.

I have pushed a commit replacing the shared X buttons I have so far with "Done". I have not adjusted their alignment yet according to your rule.

5.

In the floating tab bar, can we use the magnifying glass icon instead of the Search label?

TBD - I made progress with the switch, but it broke our programmatic navigation from search results (tapping no longer did anything). For now I reverted it and will revisit if there's time at the end.

Great updates @Tsevener 👏 🥰👏

1.

This is how I see Places (missing big titles, search bar, filter, and tabs)

This is hopefully fixed now

It works well now! 👍

2.

Modified iPadOS18 to use the large style, everything else still uses compact leading style. Let me know how it feels.

Yeah, it feels good in general!

a) Can we only make the search bars sticky when scrolling (not the tabs) on iOS and iPadOS? It feels too heavy (the UI takes away too much space).

iPadOS:

BeforevsAfter
image.png (2×1 px, 1 MB)
image.png (2×1 px, 1019 KB)

iOS:

BeforevsAfter
image.png (1×786 px, 538 KB)
image.png (1×786 px, 529 KB)

Alternative thought if this is not an option: Should all main view headers be hidden entirely on scroll down (same as Explore currently)?

c) Decrease the tabs spacing in Saved and Places so it feels coherent with the dense spacing in the headers. The space is currently 17px, and I decreased it to 10px

Example from Saved

BeforevsAfter
image.png (1×786 px, 538 KB)
image.png (1×786 px, 538 KB)

c) Left align the Wikipedia logo on iPadOS:

IMG_EFF67FE13050-1.jpeg (2×1 px, 484 KB)

3.

Back buttons now use default system handling (shows a specific title when possible, and "Back" when there's not enough room for the title).

Perfect – yeah, let’s keep it that way!

4.

Replace X with Done in Settings. To be consistent, I favor replacing X with Done in all full sheets in the app.

I have pushed a commit replacing the shared X buttons I have so far with "Done". I have not adjusted their alignment yet according to your rule.

Ok, thanks — I can create an inventory of all instances later if that’s helpful.

5.

In the floating tab bar, can we use the magnifying glass icon instead of the Search label?

TBD - I made progress with the switch, but it broke our programmatic navigation from search results (tapping no longer did anything). For now, I reverted it and will revisit if there's time at the end.

Ok, that makes sense.

6) Can we use a white background (paper color) in the home bar area on iPadOS? I'm not sure if it’s related to the changes for nav.

Saved.jpeg (2×1 px, 412 KB)

7) Labels:

a) Align the Places search label with the other search labels:

image.png (3×393 px, 569 KB)

b) Update search label copy to use sentence case:

  • Explore: Search Wikipedia
  • Places Search places
  • Saved:
    • Search saved articles
    • Search reading lists
  • Search: Search Wikipedia

Hi @scblr:

Here's an audit so far of Done and how they're looking in the latest build. Please let me know if you need any changes. A couple of them are problematic. I haven't addressed your latest feedback yet, I will look at that tomorrow.

  1. Year in Review > Donate via Other Payment Method

Screenshot 2024-12-19 at 4.43.39 PM.png (1×559 px, 247 KB)

  1. Article > Editor

Screenshot 2024-12-19 at 4.44.17 PM.png (1×559 px, 311 KB)

  1. Article > Editor > Insert Media

Screenshot 2024-12-19 at 4.44.29 PM.png (1×559 px, 344 KB)

  1. Explore Feed > 3 dot button on a card > Customize Explore Feed

Screenshot 2024-12-19 at 4.46.41 PM.png (1×559 px, 308 KB)

  1. Settings > About the app > Libraries Used

Screenshot 2024-12-19 at 4.47.25 PM.png (1×559 px, 212 KB)

  1. Profile > Log in

Screenshot 2024-12-19 at 4.48.05 PM.png (1×559 px, 203 KB)

  1. Profile > Log in > Create account

Screenshot 2024-12-19 at 4.48.25 PM.png (1×559 px, 240 KB)

  1. Profile > Log in > Forgot Password

Screenshot 2024-12-19 at 4.48.49 PM.png (1×559 px, 204 KB)

  1. Profile > Log in > Two factor triggered upon login

Screenshot 2024-12-19 at 4.50.37 PM.png (1×559 px, 195 KB)

  1. Profile > Log in > Change temp password triggered upon login

Screenshot 2024-12-19 at 4.51.57 PM.png (1×559 px, 211 KB)

  1. Article > Article Description Edit

Screenshot 2024-12-19 at 4.52.41 PM.png (1×559 px, 229 KB)

  1. Article > Article Description Edit > Learn More

Screenshot 2024-12-19 at 4.53.14 PM.png (1×559 px, 276 KB)

  1. Article talk page > New topic button

Screenshot 2024-12-19 at 4.53.51 PM.png (1×559 px, 200 KB)

  1. Developer Settings

Screenshot 2024-12-19 at 4.54.27 PM.png (1×559 px, 219 KB)

  1. Year in Review > Donate > Donate with Apple Pay

Screenshot 2024-12-19 at 4.56.32 PM.png (1×559 px, 297 KB)

  1. Profile

Screenshot 2024-12-19 at 4.56.48 PM.png (1×559 px, 216 KB)

  1. Explore card > Save article > Add to Reading list > Pick reading list > Tap toast that says "Article added to {reading list name}":

Screenshot 2024-12-19 at 4.57.25 PM.png (1×559 px, 268 KB)

This one seems like a problem because you can tap "Edit", which then switches to edit mode and shows Cancel:

Screenshot 2024-12-19 at 4.58.33 PM.png (1×559 px, 272 KB)

But maybe it will be fine if we bury Sort and Edit in a More menu.

  1. Reading list detail > Edit > Pick articles > Move to... / Add to...

Screenshot 2024-12-19 at 4.58.53 PM.png (1×559 px, 190 KB)

Screenshot 2024-12-19 at 4.59.58 PM.png (1×559 px, 190 KB)

  1. Saved > Edit > Choose article > Add to list > Create new list

Screenshot 2024-12-19 at 5.01.07 PM.png (1×559 px, 193 KB)

  1. Article Editor > Link button in formatting toolbar > de-focus search bar:

Screenshot 2024-12-19 at 5.01.58 PM.png (1×559 px, 182 KB)

(This is probably a bug on my side, I don't think a user should be able to see this blank screen).

  1. Article Editor > put cursor in link > Link button in formatting toolbar:

Screenshot 2024-12-19 at 5.03.08 PM.png (1×559 px, 195 KB)

This is an issue - One "Done" will essentially cancel the edit link operation, the other "Done" will update the link.

  1. Article > Page issues:

Screenshot 2024-12-19 at 5.05.10 PM.png (1×559 px, 197 KB)

  1. Settings:

Screenshot 2024-12-19 at 5.05.46 PM.png (1×559 px, 260 KB)

  1. Settings > My Languages:

Screenshot 2024-12-19 at 5.06.08 PM.png (1×559 px, 217 KB)

  1. Settings > My Languages > Add another language:

Screenshot 2024-12-19 at 5.06.40 PM.png (1×559 px, 229 KB)

I still kept some X's, some I tweaked to use an SFSymbol, others I left as-is:

Screenshot 2024-12-19 at 5.08.10 PM.png (1×559 px, 298 KB)

Screenshot 2024-12-19 at 5.08.15 PM.png (1×559 px, 243 KB)

Screenshot 2024-12-19 at 5.10.15 PM.png (1×559 px, 288 KB)

Screenshot 2024-12-19 at 5.08.55 PM.png (1×559 px, 264 KB)

This may not be entirely comprehensive 😅 let me know if there are any that I missed!

@scblr Here's a couple of more screenshots that I haven't changed but wanted to point them out to you. "Cancel" feels similar to "X" / "Done", so if they need a particular treatment let me know.

YiR survey:

Screenshot 2024-12-19 at 5.20.08 PM.png (1×559 px, 214 KB)

Article History > Compare:

Screenshot 2024-12-19 at 5.20.26 PM.png (1×559 px, 271 KB)

New experimental build #211 kicked off.

New experimental build #212 kicked off. Updated task description with "Known Bugs" and "Design feedback Todo" sections.

New experimental build #214 kicked off @scblr. These are the design updates:

  1. All root view condensed headers auto-hide upon scroll now.
  2. Saved tab More button added
  3. Fixed bottom gray area on iPad
  4. Restored Article magnifying glass search button

You can see my list of remaining things to do in the description. I may have missed documenting some design feedback asks so feel free to add to the list if I missed anything.

A couple of things I'm blocked on:

Finalize Done button styles / behavior on all screens (see https://phabricator.wikimedia.org/T363606#10417646)

I need to know how you'd like me to change each of those screenshots - some of them are definitely buggy (double-done button, etc).

Left align iPad Wikipedia logo on Explore https://phabricator.wikimedia.org/T363606#10409759

I'm not having luck with left aligning the image unfortunately, the system nav bar reserves that space for only large title text labels. We may be able to get close if I just used the system large title label with a particular font (see screenshot example here with Georgia). Let me know what you think and if you have a particular font file handy.

example.jpeg (2×1 px, 1010 KB)

Hi @scblr:

Here's an audit so far of Done and how they're looking in the latest build. Please let me know if you need any changes. A couple of them are problematic. I haven't addressed your latest feedback yet, I will look at that tomorrow.

  1. Year in Review > Donate via Other Payment Method

Screenshot 2024-12-19 at 4.43.39 PM.png (1×559 px, 247 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Article > Editor

Screenshot 2024-12-19 at 4.44.17 PM.png (1×559 px, 311 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Article > Editor > Insert Media

Screenshot 2024-12-19 at 4.44.29 PM.png (1×559 px, 344 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Explore Feed > 3 dot button on a card > Customize Explore Feed

Screenshot 2024-12-19 at 4.46.41 PM.png (1×559 px, 308 KB)

⬅️ Move Done to the top left side

  1. Settings > About the app > Libraries Used

Screenshot 2024-12-19 at 4.47.25 PM.png (1×559 px, 212 KB)

⬅️ Move Done to the top left side

  1. Profile > Log in

Screenshot 2024-12-19 at 4.48.05 PM.png (1×559 px, 203 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Profile > Log in > Create account

Screenshot 2024-12-19 at 4.48.25 PM.png (1×559 px, 240 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Profile > Log in > Forgot Password

Screenshot 2024-12-19 at 4.48.49 PM.png (1×559 px, 204 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Profile > Log in > Two factor triggered upon login

Screenshot 2024-12-19 at 4.50.37 PM.png (1×559 px, 195 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Profile > Log in > Change temp password triggered upon login

Screenshot 2024-12-19 at 4.51.57 PM.png (1×559 px, 211 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Article > Article Description Edit

Screenshot 2024-12-19 at 4.52.41 PM.png (1×559 px, 229 KB)

ℹ️ Use Cancel instead of Done — move it to the top left side

  1. Article > Article Description Edit > Learn More

Screenshot 2024-12-19 at 4.53.14 PM.png (1×559 px, 276 KB)

✅ Keep it as is

  1. Article talk page > New topic button

Screenshot 2024-12-19 at 4.53.51 PM.png (1×559 px, 200 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is.

  1. Developer Settings

Screenshot 2024-12-19 at 4.54.27 PM.png (1×559 px, 219 KB)

⬅️ Move Done to the top left side

  1. Year in Review > Donate > Donate with Apple Pay

Screenshot 2024-12-19 at 4.56.32 PM.png (1×559 px, 297 KB)

ℹ️ Use Cancel instead of Done and move it to the top left side

  1. Profile

Screenshot 2024-12-19 at 4.56.48 PM.png (1×559 px, 216 KB)

⬅️ Move Done to the top left side

  1. Explore card > Save article > Add to Reading list > Pick reading list > Tap toast that says "Article added to {reading list name}":

Screenshot 2024-12-19 at 4.57.25 PM.png (1×559 px, 268 KB)

ℹ️ Use Cancel instead of Done — otherwise, keep it as is

This one seems like a problem because you can tap "Edit", which then switches to edit mode and shows Cancel:

Screenshot 2024-12-19 at 4.58.33 PM.png (1×559 px, 272 KB)

But maybe it will be fine if we bury Sort and Edit in a More menu.

ℹ️ Hide all buttons except the top right Cancel button in edit mode. And yeah, you’re right; we discussed that new pattern here.

  1. Reading list detail > Edit > Pick articles > Move to... / Add to...

Screenshot 2024-12-19 at 4.58.53 PM.png (1×559 px, 190 KB)

Screenshot 2024-12-19 at 4.59.58 PM.png (1×559 px, 190 KB)

ℹ️ Use Cancel instead of Done and move it to the top left side

  1. Saved > Edit > Choose article > Add to list > Create new list

Screenshot 2024-12-19 at 5.01.07 PM.png (1×559 px, 193 KB)

ℹ️ Use Cancel instead of Done and move it to the top left side

  1. Article Editor > Link button in formatting toolbar > de-focus search bar:

Screenshot 2024-12-19 at 5.01.58 PM.png (1×559 px, 182 KB)

(This is probably a bug on my side, I don't think a user should be able to see this blank screen).

ℹ️ Use Cancel instead of Done and move it to the top left side

  1. Article Editor > put cursor in link > Link button in formatting toolbar:

Screenshot 2024-12-19 at 5.03.08 PM.png (1×559 px, 195 KB)

This is an issue - One "Done" will essentially cancel the edit link operation, the other "Done" will update the link.

ℹ️ Change top left Done to Cancel and top right Done to Submit

  1. Article > Page issues:

Screenshot 2024-12-19 at 5.05.10 PM.png (1×559 px, 197 KB)

✅ Keep it as is

  1. Settings:

Screenshot 2024-12-19 at 5.05.46 PM.png (1×559 px, 260 KB)

✅ Keep it as is

  1. Settings > My Languages:

Screenshot 2024-12-19 at 5.06.08 PM.png (1×559 px, 217 KB)

✅ Keep it as is

  1. Settings > My Languages > Add another language:

Screenshot 2024-12-19 at 5.06.40 PM.png (1×559 px, 229 KB)

✅ Keep it as is

I still kept some X's, some I tweaked to use an SFSymbol, others I left as-is:

Screenshot 2024-12-19 at 5.08.10 PM.png (1×559 px, 298 KB)

🤔 Can you use the Done label instead of X at the top left?

Screenshot 2024-12-19 at 5.08.15 PM.png (1×559 px, 243 KB)

🤔 This one looks particularly off. Is there any chance of getting a Done label in this position? 👇

CleanShot 2025-01-09 at 19.37.17.png (2×1 px, 358 KB)

Screenshot 2024-12-19 at 5.10.15 PM.png (1×559 px, 288 KB)

🤔 Can you use the Cancel label instead of X at the top right?

Screenshot 2024-12-19 at 5.08.55 PM.png (1×559 px, 264 KB)

🤔 Can you use the Done label instead of X at the top right?

This may not be entirely comprehensive 😅 let me know if there are any that I missed!

It was! Thanks for all your work listing this.

@scblr Here's a couple of more screenshots that I haven't changed but wanted to point them out to you. "Cancel" feels similar to "X" / "Done", so if they need a particular treatment let me know.

YiR survey:

Screenshot 2024-12-19 at 5.20.08 PM.png (1×559 px, 214 KB)

✅ Keep it as is (with Cancel)

Article History > Compare:

Screenshot 2024-12-19 at 5.20.26 PM.png (1×559 px, 271 KB)

✅ Keep it as is (with Cancel)

@Tsevener

One of the things to note in the future:

  • Whenever users are in edit flow, make changes or need to take an action on the current screen -- we should use Cancel instead of Done. In these cases, the top right action should then be reserved for things like Submit, Update, Continue, Next
  • If the view is for information purposes only, we should use the Done label

I tried to apply these rules to the list of Done buttons you shared. Let me know what u think.

Great updates @Tsevener 👏👏👏

All root view condensed headers auto-hide upon scroll now.

I feel like this was the correct route to go!

Saved tab More button added

I love it. Also, the edit interaction with Cancel works well.

Fixed bottom gray area on iPad

👍👍👍

Restored Article magnifying glass search button

👍👍👍


Some more feedback for both iOS and iPadOS 👇

1) [iPadOS] Logo alignmnent

Left align iPad Wikipedia logo on Explore https://phabricator.wikimedia.org/T363606#10409759

I'm not having luck with left aligning the image unfortunately, the system nav bar reserves that space for only large title text labels. We may be able to get close if I just used the system large title label with a particular font (see screenshot example here with Georgia). Let me know what you think and if you have a particular font file handy.

example.jpeg (2×1 px, 1010 KB)

Using just a typeface instead of a logo is not an option. In the worst case, we will leave it center-aligned on the iPad for now 🥺.

2) [iOS] Can the top UI be shown on any scroll-up interaction? Currently, it only shows up with a fast scroll-up gesture. Example video from the Instagram app.

3) [iOS] Can you slow the animation speed for the header slide-up? The animation, e.g., Explore, feels more natural in the current production (compared to build #214). It’s too fast currently. You mentioned that the animation setting will affect other areas (such as the search active search bar animation), but that’s worth trying. It may be good to know the current ms setting to tweak it together.

4) [iOS] If the list content is short (as in this video example from the Search tab), the header area should likely stay fixed and not disappear. Likely, only the list content should be pushed up (not the header).

5) [iPadOS] Similar observations on iPad, see this video.

6) [iOS] FYI, this still exists and is not listed in the task’s description yet.

c) Decrease the tabs spacing in Saved and Places so it feels coherent with the dense spacing in the headers. The space is currently 17px, and I decreased it to 10px

Example from Saved

BeforevsAfter
image.png (1×786 px, 538 KB)
image.png (1×786 px, 538 KB)

7) [iPadOS] Scroll up behavior and Wikipedia logo doesn’t feel too smooth yet (video). E.g. when users scroll and hold, the logo persists and overlaps with the content.

IMG_12A5BF3B9FF9-1.jpeg (2×1 px, 425 KB)

7) [iPadOS] I will provide more precise designs next week, but we should add a white background to the entire width of the floating tab bar at the top to avoid overlapping the content weirdly. Could you apply the same background as the status bar on scroll? (transparent white). Here’s an example video from Books for reference. They also applied a bit of top and bottom padding to the floating tab bar (likely 8px top and bottom)

IMG_34BABD107277-1.jpeg (2×1 px, 467 KB)

Tsevener updated the task description. (Show Details)

Latest Experimental build is 7.6.3 (215).

Final PR for code review is here: https://github.com/wikimedia/wikipedia-ios/pull/5121

All remaining bugs / design review feedback has been split off into other tasks and documented in this task description. @scblr If there are any I missed, feel free to make a new task, thanks!

@scblr sorry, I didn't see your most recent feedback.

Using just a typeface instead of a logo is not an option. In the worst case, we will leave it center-aligned on the iPad for now 🥺.

I realize Georgia is not a good option, but could we try using the same font as the logo? I'll need a font file in that case. If we do that, it might also fix your Scroll up behavior and Wikipedia logo doesn’t feel too smooth yet bug as well. T383471

Can the top UI be shown on any scroll-up interaction? Currently, it only shows up with a fast scroll-up gesture. Example video from the Instagram app.

I might be able to do some extra handling to trigger the show animation upon any scroll up. I can't do the slow reveal like Instagram (and our current custom navigation bar). T383468

If the list content is short (as in this video example from the Search tab), the header area should likely stay fixed and not disappear. Likely, only the list content should be pushed up (not the header).

Yeah good callout, I think we might be able to disable navigation bar hiding if the scroll content isn't very large. T383469

Decrease the tabs spacing in Saved and Places so it feels coherent with the dense spacing in the headers.

Unfortunately I can't tweak the spacing in that area of the custom navigation bar, I don't have access to adjustments like that :/

I will provide more precise designs next week, but we should add a white background to the entire width of the floating tab bar at the top to avoid overlapping the content weirdly.

Sounds good T383470

Added these as separate tasks so that code review can commence.

@Tsevener

@scblr sorry, I didn't see your most recent feedback.

Using just a typeface instead of a logo is not an option. In the worst case, we will leave it center-aligned on the iPad for now 🥺.

I realize Georgia is not a good option, but could we try using the same font as the logo? I'll need a font file in that case. If we do that, it might also fix your Scroll up behavior and Wikipedia logo doesn’t feel too smooth yet bug as well. T383471

Ok! I created a font file with the Wikipedia logo:

https://www.dropbox.com/scl/fo/1lpyo6vptwvshapfho585/ACuohamcS7ZJqiCRFyQyK8I?rlkey=vfhuwz42njqos0xe6vhtqahq9&dl=0

I'm unsure what format you need, so I added eot, svg, ttf, woff to the folder.

Once added to the code library, you could copy and paste the logo from the demo.html (also in the folder).

Let me know if it works to left-align it!

Thanks

@ABorbaWMF You can test this one in the latest 7.7.0 build.

We did rounds of design review during development. @scblr will review this task as well and document any design review feedback I may have missed in a separate Phab task. Moving to QA!

@Tsevener thanks. I just reviewed this, and it looks like you captured them all.

iPhone
✅ Article
✅Article > Article History view
✅Article > Article History > Revision Diff view
✅ Explore tab
✅ Explore > On this day list view (starting at bottom for me in 7.7.0 and 7.6.4, could be related to T284839)
✅ Editor > Insert Link and Edit Link flows
✅ Editor > Insert Media flow
✅ Places tab
✅ Saved Articles tab
✅ Saved tab > Reading list detail view
✅ Search tab
✅ Talk pages
✅ Notifications

iPad
✅ Article
✅ Article > Article History view
✅ Article > Article History > Revision Diff view
✅ Explore tab
✅ Explore > On this day list view (starting at bottom for me in 7.7.0 and 7.6.4, could be related to T284839)
✅Editor > Insert Link and Edit Link flows
✅ Editor > Insert Media flow
✅ Places tab
✅Saved Articles tab
✅Saved tab > Reading list detail view
✅ Search tab
✅ Talk pages
✅ Notifications