Giter VIP home page Giter VIP logo

Comments (6)

JeremieHornus avatar JeremieHornus commented on May 2, 2024

Thanks for pointing to this @Lorp
Indeed these should be unified, we don't need two ways of representing the same thing.

Note: we came up here with a 'center of transformations' instead of a 'center of rotation' only.

I don't have strong feeling about how we should proceed but since they are very similar things, they should be described only once.

from variable-components-spec.

justvanrossum avatar justvanrossum commented on May 2, 2024

Ugh, the fact that COLRv1 adds it's own way of doing component transformations completely escaped me.

I currently have a hard time to understand why this is even part of the COLRv1 proposal, as "better component transformations" should be completely orthogonal to "better color capabilities".

from variable-components-spec.

justvanrossum avatar justvanrossum commented on May 2, 2024

Starting to understand a bit more: a color glyph can (should?) be seen as a composite, where each component has paint properties, as well as a transformation. But conceptually COLR (at least v0) is an alternative to glyf: "enable color, use the COLR table instead of glyf or CFF or CFF2.

I now better understand "sanctioning COLR table as glyf2 for component use" comment, but that implies COLR should become the default, even if no color is requested.

Our proposal works differently, as it adds information to the existing glyf component structure.

If COLRv1 would add local designspaces for components, it would be a functional superset of our proposed VarC table. (Ignoring possible differences in how transformations work for now.) With the added benefit that it would then also be compatible with CFF and CFF2, which VarC currently isn't.

from variable-components-spec.

rsheeter avatar rsheeter commented on May 2, 2024

I currently have a hard time to understand why this is even part of the COLRv1 proposal

Because emoji repeat composite colored parts basically :)

If COLRv1 would add local designspaces for components, it would be a functional superset of our proposed VarC table. (Ignoring possible differences in how transformations work for now.)

After a first skim through it looks to me like the transform capabilities of COLR would be sufficient. I don't yet adequately understand what "add local designspaces for components" concretely means.

from variable-components-spec.

justvanrossum avatar justvanrossum commented on May 2, 2024

I don't yet adequately understand what "add local designspaces for components" concretely means.

Very roughly, it means that a component can set the variation space location for the glyph it is referencing. So if the referenced glyph implements variations for some (possibly hidden) axes, the component can specify the axis values for those axes (or any axis really).

from variable-components-spec.

JeremieHornus avatar JeremieHornus commented on May 2, 2024

it means that a component can set the variation space location for the glyph it is referencing

@rsheeter This is actually the main point of our proposal: variablity is not accessible at font level only, but composite glyphs can become "users" of other variable glyphs; these other ('base') glyphs (glyphs the component is referencing to) have their own local designspace independant of font variation axes.

from variable-components-spec.

Related Issues (8)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.