Skip to content
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

Allow font-size to be em units #6

Open
green-arrow opened this issue Mar 23, 2016 · 4 comments
Open

Allow font-size to be em units #6

green-arrow opened this issue Mar 23, 2016 · 4 comments

Comments

@green-arrow
Copy link

I'm not even sure if this is possible with the methodology backing this project, but there are many times in my projects that I like to control sections of my application separately, with separate scaling. To do this, I normally use rem sizing at the section level, and em sizing for everything else, that way I can individually scale sections based on various conditions, like breakpoints. Is it possible to allow em for the typeset mixing, in addition to px and rem?

@tbredin
Copy link
Contributor

tbredin commented Mar 25, 2016

Hi green-arrow,
I'm interested to hear more about your intention here. Are you wanting the em-scaled content to snap to a local grid, or are you just concerned about measuring from cap height when setting your spacing? (ie; are you working with $baseline-scaling on or off?)

I think the idea of a local grid is an interesting idea but my concern is that we would need to add additional parameters to the typeset mixin so we can know the local font-size context, and tell it to output in em's.

Another option would be to assume the rootsize as the context and rely on tweaking the sizing of your sections with the font-size of a parent element (which I assume you're doing already), which would give you a number of local grids. However we still need either a per-mixin parameter to tell it to output in rems, or perhaps a global setting might be more appropriate? That way we wouldn't clutter up the typeset mixin with too many extra parameters.

@green-arrow
Copy link
Author

Hi @tbredin

After thinking more about this, I think what I'm interested in is a local grid.

About the extra parameters: would it be possible to create another mixin wrapper like min-width that could be used to store information about the container font size? That way, you could always have access to the root size, kind of like you always have access now to the breakpoint via existing mixins.

@tbredin
Copy link
Contributor

tbredin commented Mar 29, 2016

I like the concept. I'll have to spend a bit more time investigating whether this is viable, but something like this seems like it might work:

.parent {
    @include with-rootsize(14px) {
        .child {
            @include typeset($sans, 16px, 2, 1, 2);
        }
    }
}

I'm thinking that this would apply the typeset mixin to .child in em so that we can then scale this locally based on the font-size we give to .parent (applied by the wrapper mixin).

I'll try find some time soon to give this a go; I do think it would make a pretty cool feature but just so long we can figure out a way to do it that doesn't overcomplicate existing mixins or result in any unexpected behaviour in edge cases (eg: I'm not sure how far we should go to support the use case of having something on a global grid that switches to a local one at a given breakpoint..).

@green-arrow
Copy link
Author

Yeah, something like that is exactly what I was thinking. It would also be awesome if the with-rootsize accepted rem as well.

I don't think we want to overcomplicate existing mixins either, and I don't think the switching from global > local grid based on breakpoint would be necessary. I feel like exactly what you have above, a root container sized in px or rem, with all typeset mixins inside resolving to em is perfect.

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

No branches or pull requests

3 participants