Skip to content

publishing-requirements: Allow use of single svg icon instead of svg icons for each size #235

Description

@ryonakano

Problem

We explicit that third-party app developers must provide icons in size of 32px, 48px, 64px, and 128px at least in the publishing requirements:

Your app must install icons to /usr/share/icons/hicolor in 32px, 48px, 64px, and 128px. These are the icon sizes that will be displayed in the Applications menu's search, grid, and category views, Multitasking View, the dock, and in AppCenter.

And we also follow this requirement by ourselves; we provide svg icons in these sizes in our core apps.

However, most of GNOME apps only provide single scalable svg icon instead of svg icons for each size:

Flathub also does not require app icons for each size:

https://docs.flathub.org/docs/for-app-authors/requirements#icons

Proposal

Allow use of single svg icon instead of svg icons for each size.

I think developers must still provide icons for each size if in PNG format, but they don't need to provide them if in Scalable Vector Graphics format, unless they want to do so for some reason e.g. detailed design in 128px.

Prior Art (Optional)

Activity

  1. added theissue type on May 4, 2025
  2. danirabbit commented on May 4, 2025

    @danirabbit
    Member

    You're supposed to hint your icons to each size. For our icon style it's required to have icons not look blurry. GNOME icons can use a single SVG because it's a very simplified style with no strokes. We still allow people to publish without hinting their icons, most people don't do it. In fact a lot of developers just copy past their same icon to different sizes for some reason even though that doesn't do anything

  3. danirabbit commented on May 4, 2025

    @danirabbit
    Member

    See for example the music icon at 32px:

    Compared to 64px

    These are not just a single icon scaled down. They are separate icons which are hinted to be pixel perfect at that size. You'll also notice strokes are 1px at both sizes. Not 2px at 64 or 0.5px at 32 which is what you'd get if you just scaled the same image

    Scalable means scalable across display densities—hidpi vs lodipi—not scalable across display sizes

  4. ryonakano commented on May 5, 2025

    @ryonakano
    MemberAuthor

    Ah, I hadn't understood the reason why we prepare icons for each size…I understand just now. Thank you for your detailed comment!

    Should I close this issue as design conflict then?

  5. danirabbit commented on May 6, 2025

    @danirabbit
    Member

    Yeah I think unless we change our icon style to remove the outer stroke that we still need to hint. Which maybe it's worth thinking about since so few developers actually make hinted icons

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions