-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Description
Is there an existing issue for this?
- I have searched the existing issues
- I have read the guide to filing a bug
Steps to reproduce
My package material_symbols_icons provides support for the Material Symbols Icons using the variable fonts from https://github.com/google/material-design-icons. (The variable fonts are found here ).
This package addresses material symbols icon support as defined in #102560.
When building a web release of the example from this package the icon font tree-shaking is performed. (this is now the default). This breaks these variable fonts when rendering some axes variations.
- Visit https://timmaffett.github.io/material_symbols_icons_showing_tree_shake_bug/
- Select variations FILL->1 Weight->100
- Observe that icons are rendered incorrectly.
Here is the correct working example built using using --no-tree-shake-icons flag
- Visit https://timmaffett.github.io/material_symbols_icons/
- Select variations FILL->1 Weight->100
- Observe that icons are rendered correctly.
You could also checkout the material_symbols_icons and build the example using
flutter build web --release
or for working version building without icon tree shaking:
flutter build web --release --no-tree-shake-icons
Expected results
Actual results
Code sample
Code sample
[Paste your code here]Screenshots or Video
Screenshots / Video demonstration
[Upload media here]
Logs
Logs
This is the results of the release build of the web example. Note icon tree-shake is resulting in 30% savings even though the example uses every icon. This is caused by font-subset dropping the GSUB font table, which is needed for these variable fonts to properly render all variation axes.
C:\src\material_symbols_icons\example>flutter build web --release --web-renderer canvaskit --base-href "/material_symbols_icons_showing_tree_shake_bug/"
Font asset "CupertinoIcons.ttf" was tree-shaken, reducing it from 283452 to 1236 bytes (99.6% reduction). Tree-shaking
can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsSharp[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 5848492 to 4079548 bytes
(30.2% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 6944756 to 4781576 bytes(31.1% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 10808 bytes (99.3% reduction).
Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsRounded[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 9361824 to 6397020 bytes
(31.7% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Compiling lib\main.dart for the Web... 63.8s
Flutter Doctor output
Doctor output
C:\src\flutter>flutter doctor -v
[✓] Flutter (Channel master, 3.10.0-12.0.pre.38, on Microsoft Windows [Version 10.0.25336.1010], locale en-US)
• Flutter version 3.10.0-12.0.pre.38 on channel master at C:\src\flutter
• Upstream repository [email protected]:flutter/flutter.git
• Framework revision 1a51dc2131 (4 days ago), 2023-04-24 12:25:21 -0700
• Engine revision 5fbde6c0fc
• Dart version 3.1.0 (build 3.1.0-35.0.dev)
• DevTools version 2.23.1
[✓] Windows Version (Installed version of Windows is version 10 or higher)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
• Android SDK at xxxxxx\Android\sdk
• Platform android-33, build-tools 33.0.0
• Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
• Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)
• All Android licenses accepted.
[✓] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.5.4)
• Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
• Visual Studio Community 2022 version 17.5.33530.505
• Windows 10 SDK version 10.0.22621.0
[✓] Android Studio (version 2022.2)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)
[✓] Android Studio (version 4.2)
• Android Studio at C:\src\OLD_android_studios\android-studio-ide-202.7094744
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
[✓] IntelliJ IDEA Community Edition (version 2020.1)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.1
• Flutter plugin version 51.0.2
• Dart plugin version 201.7223.99
[✓] VS Code (version 1.77.3)
• VS Code at C:\Users\Tim\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.62.0
[✓] Connected device (3 available)
• Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.25336.1010]
• Chrome (web) • chrome • web-javascript • Google Chrome 112.0.5615.138
• Edge (web) • edge • web-javascript • Microsoft Edge 112.0.1722.48
[✓] Network resources
• All expected network resources are available.
• No issues found!
