Skip to content

Support Material Symbols  #102560

Open

Description

@guidezpl

Developer documentation
Design doc

To take into consideration:

  • 3 separate variable fonts for outlined, rounded, and sharp styles
  • advantages provided by using a variable font
  • possibly not using static consts

Related issues:

Activity

  1. added
    in triagePresently being triaged by the triage team
    frameworkflutter/packages/flutter repository. See also f: labels.
    p: material_uimaterial_ui package in flutter/packages
    c: proposalA detailed proposal for a change to Flutter
    and removed
    in triagePresently being triaged by the triage team
    on Apr 26, 2022
  2. HansMuller commented on Apr 26, 2022

    @HansMuller
    Contributor
  3. self-assigned this
    on Apr 26, 2022
  4. guidezpl commented on Apr 28, 2022

    @guidezpl
    MemberAuthor

    @DanTup @stevemessick
    I have no clue as to how the Android Studio and VS Code icon integrations work so... In an ideal world, can you please describe what Material Symbol artifacts you'd like for integration in the IDEs?

    Want to make sure I take this chance to improve / simplify processes and get rid of tech debt if possible.

  5. DanTup commented on Apr 28, 2022

    @DanTup
    Contributor

    @guidezpl currently I believe VS Code and Android Studio are doing slightly different things.

    VS Code is using the data/image files from https://github.com/flutter/tools_metadata. We ship a copy of those icons inside the extension code (so they work offline), and we use regex to replace the HTML in the Flutter dartdocs (which relies on a CSS font we can't use) with markdown image tags for those images. We also locate icon references in code (using outline data) and insert icons in the gutter.

    I'm less familiar with Android Studio, but I believe it may be extracting the images itself from the font icon itself rather than using those images.

    There have been some discussions about moving more of this work into the analysis server, although it's not clear yet how that would work (would the server extract images from the font? could it support third party packages? how would it relate fields/enum values to each item). I'd definitely like to find a way to avoid shipping the icons in the extension (without them becoming broken image placeholders when offline), as with each release the number if icons climbs, and the Dart extension grows larger in size.

    There's a related issue at dart-lang/sdk#47667.

  6. stevemessick commented on Apr 28, 2022

    @stevemessick
    Member

    To support code completion of icon names, the IDEs need a class with a static variable for each named icon. The Flutter plugin gets them from tools_metadata. If you can add all the new icons to the existing Icons and CupertinoIcons classes then we won't have to change anything to support completion. Otherwise, we'll have to add checks for new classes in a couple places.

    As Danny said, the Flutter plugin for IntelliJ does have the ability to extract icons from a font, but there are reports that it does not work well, and can be slow. If you'd like to experiment, add your font package to the Flutter preferences and see if the new icons show up in the gutter. If that does not work (and even if it does, for safety I'd not rely on it), we'll plan to ship new icons with the Flutter plugin. We'd have to copy those from tools_metadata.

    It might be good to create tracking issues in both the dart-code and flutter-intellij repos.

  7. moved this to Todo in Material 3on May 23, 2022
  8. moved this from Todo to In Progress in Material 3on May 23, 2022
  9. iapicca commented on May 31, 2022

    @iapicca

    possibly not using static consts

    @guidezpl
    what problems are caused by that?
    (honest question, I thought const are more efficient)

  10. guidezpl commented on May 31, 2022

    @guidezpl
    MemberAuthor

    possibly not using static consts

    @guidezpl what problems are caused by that? (honest question, I thought const are more efficient)

    It makes migrating a huge pain. Imagine the look of all icons changes slightly because the icon font changes format (real issue). You need to be able to progressively migrate users (who have very precise screenshot tests), and thus have some time when you support both the old and new icons. If you think of a static constant as a pointer to a single spot in memory, you can see how that makes things harder.

  11. 28 remaining items

  12. added
    P3Issues that are less important to the Flutter project
    triaged-designTriaged by Design Languages team
    on Oct 10, 2024
  13. removed
    👍Issue needs retriaging to evaluate its popularity
    on Oct 10, 2024
  14. umardev500 commented on Jan 10, 2025

    @umardev500

    @mafreud The complete material symbols icon library is available in the pub.dev material_symbols_icons package with an interface that matches the official Design doc. This provides feature complete support for all of the features of the material symbols icons variable fonts.

    In the future, if/when the official material symbols icons package is available, the only change needed to migrate to it should be changing the package import statements.

    unfortunately that package make my animation janky at first run

  15. timmaffett commented on Jan 10, 2025

    @timmaffett
    Contributor

    @umardev500
    Could you provide more information/context on your comment "unfortunately that package make my animation janky at first run" ?

    The icons are implemented as fonts, which get tree-shaken to include only the glyphs (characters) used in your app, so rendering a icon is literally the same as rendering any character from any font... So I can't quite imagine how it could impact the performance of your app in any way?

  16. umardev500 commented on Jan 10, 2025

    @umardev500

    timma

    i just create the issue

    issue

  17. umardev500 commented on Jan 10, 2025

    @umardev500

    @umardev500 Could you provide more information/context on your comment "unfortunately that package make my animation janky at first run" ?

    The icons are implemented as fonts, which get tree-shaken to include only the glyphs (characters) used in your app, so rendering a icon is literally the same as rendering any character from any font... So I can't quite imagine how it could impact the performance of your app in any way?

    when i use the package to use as ListTile for the showModalBottomShett

    that firt run make janky

    if i switch back to Icons class that worked well

    this causing janky at first run:

    MenuSheetItem( title: "Play Murratal", icon: Symbols.play_circle_outline_rounded, onTap: () {}, ),

    Swith back to standart Icons class:

    MenuSheetItem( title: "Play Murratal", icon: Icons.play_circle_outline_rounded, onTap: () {}, ),

    and if i use standart icon class issue solved..

    so the issue is jank or frame skipping at first run or first open the showModalBottomSheet when use that font i dont know why

  18. muttsu-623 commented on Mar 7, 2025

    @muttsu-623

    Is there any plan to make progress on this issue 👀 ?
    "Material Symbols" is valuable, so I want the flutter team to support it officially.

  19. JS-GitRepo commented on Oct 1, 2025

    @JS-GitRepo

    I'm quite surprised "Icons()" is still the standard with Symbols still not having official support this many years after it becoming the new standard.

  20. tomas-dorda commented on Jan 19, 2026

    @tomas-dorda

    Any progress? Would be great to have that working.

  21. nagringapp commented on Jan 19, 2026

    @nagringapp
  22. added
    packageflutter/packages repository. See also p: labels.
    and removed
    frameworkflutter/packages/flutter repository. See also f: labels.
    on Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projectc: new featureNothing broken; request for a new capabilityc: proposalA detailed proposal for a change to Fluttercustomer: crowdAffects or could affect many people, though not necessarily a specific customer.p: material_uimaterial_ui package in flutter/packagespackageflutter/packages repository. See also p: labels.team-designOwned by Design Languages teamtriaged-designTriaged by Design Languages team

    Projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions