Accéder au contenu principal

Adaptive GNOME Web

I started working on making GNOME Web work well on the Librem 5; to be sure it fits a phone's screen I want the windows to fit in a 360 points width, which is definitely small. To do so I started with the advices from Tobias Bernard to make Web have two modes that I named normal and narrow. The normal mode is Web as you know it, while the narrow mode moves all buttons from the header bar but the hamburger menu to a new action bar at the bottom, letting the windows reach yet unreachable widths.

Web autmatically adapting to small sizes.

And now, with device rotation on a tablet.

The code is overall ready, I still need to break it into reviewable bits before submitting it upstream.

Once this get merged:

  • we want to not show tabs in narrow mode and instead to display a popover listing the available pages,
  • we want to make the search bar shrink rather than to limit the minimum window size,
  • we consider migrating away from the application menu model.

A quick layout test of the pages popover.

P.S.: I forgot to give you a link to the unfinished code for you to play with. 😀


  1. This looks really good! Much better than I thought it would look when I read it was mobile and adaptive. I like that buttons are divided over the screen instead of being hidden. It feels akin to the more advanced UI's that were often used for the sadly forgotten PDA:s, where programs had a lot more functionality since they didn't need to accomodate giant buttons for giant fingers and small screens - not to mention having all functions visible on the screen at all times instead of hiding them beneath various random swipes, drags, etc.

    Would love it if those buttons had text under them and colorful icons though. Text so it's always obvious what each action does and in which menu to look for things and colorful icons since it's much easier to remember where to look when you have more things like color to go by. I work with helping people with various neurological impairments such as aphasia, and for most of them this would mean the whole difference of being able to use the app or not, even after loads of training. Having small things like that to "connect" your memory with is so very important, and single, grey glyphs is not enough.

  2. Hire Dedicated software developers, designers and digital marketers at Apptians Staffing. We are the best staffing company in Delhi and recruitment company in Delhi NCR. We provide dedicated react js developers, react native developers, android app developers, iOS app developers, hybrid app developers, PHP developers, UI designers, UX designers, SEO and SMM experts in the industry. You can even outsource your project to us and we will deploy a dedicated team for you and for your projects.

    We are on top of Google search with the below keywords: freelance software developer hire freelance software developer, hire software developer freelance, hire dedicated development team, hire ios developer, hire freelance ios developer, hire dedicated ios developer, hire dedicated ios developers, hire dedicated ios app developers, hire ios app developer, staffing company in Delhi, recruitment company in Delhi, recruitment consultants in Delhi, recruitment agencies in Delhi, best recruitment agencies in Delhi, recruitment agencies in Delhi NCR, hire dedicated development team, best recruitment agencies in Delhi NCR, hire reactjs developers.

  3. What an informative topic that was! But I would like to help you and shed more light on the topic. I would like to recommend a company that provides reliable and flexible online pharmacy app development solutions as per different business requirements. Alteza, a leading company that provides readymade and custom solutions for different pharmacy business ideas

  4. Thanks for sharing your experience working on making GNOME Web work with some live practical video. If you have any requirement to develop an IOS app. Please visit us to Hire Swift Developers. from us and develop your desired IOS app as per your requirement in an affordable app development cost.


Enregistrer un commentaire

Posts les plus consultés de ce blog

Moving the Blog

I am moving this blog to greener lands: . The existing articles will remain here on Blogger, and new articles will land on the Plume instance.

libhandy 0.0.10

libhandy 0.0.10 just got released, and it comes with a few new adaptive widgets for your GTK app. You can get this new version here . The View Switcher GNOME applications typically use a GtkStackSwitcher to switch between their views. This design works fine on a desktop, but not so well on really narrow devices like mobile phones, so Tobias Bernard designed a more modern and adaptive replacement — now available in libhandy as the HdyViewSwitcher . In many ways, the HdyViewSwitcher functions very similarly to a GtkStackSwitcher : you assign it a GtkStack containing your application's pages, and it will display a row of side-by-side, homogeneously-sized buttons, each representing a page. It differs in that it can display both the title and the icon of your pages, and that the layout of the buttons automatically adapts to a narrower version, depending on the available width. We have also added a view switcher bar, designed to be used at he bottom of the window: HdyView

My Name is Handy, Lib Handy

Libhandy 0.0.7 just got released! I didn't blog about this mobile and adaptive oriented GTK widget library since the release of its 0.0.4 version three months ago , so let's catch up on what has been added since. List Rows A common pattern in GNOME applications is lists , which are typically implemented via GtkListBox . More specific patterns arose, where rows have a title at the start, an optional subtitle below it, actions at the end and an icon or some other widget like a radio button as a prefix. These rows can also be expanded to reveal nested rows or anything else that fits the need. So far every application using these patterns implemented the rows by hand for each and every row. It made using these a bit cumbersome and it led to inconsistencies in sizing, even inside a single application. To make these patterns easier to use, we implemented HdyActionRow , HdyComboRow and HdyExpanderRow . HdyActionRow The action row is a simple and flexible row, it lets