-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Time [ TIME ], or, Animation [ ANIM ] axis #152
Comments
The first of the Axis Requirements to introduce a new axis is:
We need a font (either commissioned or submitted) using the axis and already listed to be included in the Catalog to review and register a new axis. |
All of the axis proposed by Font Bureau fit the below criteria: None of axis proposed by Font Bureau fit the below criteria: What part of a variation axe = 1 second was proposed 6 years ago based on the assumption that it would be needed to sync time and motion in the simplest way, based on https://v-fonts.com/fonts/zycon, which was developed and released in 1992. As part of the same FB framework, axes supporting the tracking of movement in a variation glyph was also recommended for coordination of x and y motion against the background. With yet another change in how axes get adopted, it's, in my opinion, best for FB to quit trying to do anything about the many issues surrounding interoperable axes, of any kind, registered or not. This is also the first time I've been led to this doc: Axis Requirements, which reveals no date or authors. Thanks. |
Font project(s) using the axis
Short description of what the axis does
Providing animated icons using variable fonts
Image
Screen.Recording.2023-09-18.at.7.47.14.PM.mov
from https://ebraminio.github.io/flutter_variable_font_animation_demo/build-web-html/
Screen.Recording.2023-09-18.at.7.57.05.PM.mov
from https://simoncozens.github.io/colrv1-rocks/
Also have a look at https://ebraminio.github.io/flutter_variable_font_animation_demo/build-web-html/ that has lots of animated icons using fonts.
Why is the axis needed
"Flutter is an open source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase." (copied from https://flutter.dev). It offers static icons to developers using font icons. It even while releasing a production app, uses a tree shaking / font subsetting process to turn a general propose font icons into the only used part using harfbuzz-subset. But Flutter only offers static icons via font icons and it's currently AnimatedIcon facility uses raw dart codes, https://github.com/flutter/flutter/tree/master/packages/flutter/lib/src/material/animated_icons/data and even these raw dart codes and the facility that has created them can't be used to create custom animated icons as this line
final _AnimatedIconData iconData = icon as _AnimatedIconData;
ensures the used_AnimatedIconData
is owned by the project itself and blocks any external uses.So I was thinking what if just like use of font for static icons, we could use variable fonts font animating icons and maybe add a new axis, maybe called
TIME
, like the naming in https://github.com/Typogram/Anicons but using seconds as the value. The axis max value can be a good indication of how animations on the specific font take long. This proposal assumes all the glyphs in a specific font will have a fixed time length. For example all the stickers in whole Telegram (a messaging app with user provided sticker and emojis) have 3 seconds fixed length https://core.telegram.org/stickers#animation-requirements and in here we just have font wide fixed time length which can be changed from font to font.Another idea can be considering a global fixed length, say from 0 to 1, for all of the fonts, call the axis
ANIM
like the font in https://github.com/simoncozens/lottie2vf and then maybe having an opentype table called time that indicates how long every specific animation should take in real world time. That way there won't be font specific time length and every glyph can be configured separately. And then that choosing a specific range for time axis value can be even unnecessary as that time table can specify what is the relation between the variation axis and real world time. And maybe that time table can be done inside GDEF or something.Or maybe we can have both, having TIME for animation with time limitation and ANIM for kind of UI animation that aren't inherently time constrained like https://developer.android.com/reference/androidx/appcompat/graphics/drawable/DrawerArrowDrawable
Axis metadata fields
Or
See also flutter/flutter#134902
The text was updated successfully, but these errors were encountered: