Skip to content

Add custom scoping #245

@selrond

Description

@selrond

It would be useful to be able to define a custom selector to scope the styles generated by Typography.js under.

A case for this:
I'm building a website in React, and make a heavy use of component-scoped styles (styled-components). But I have a blog section, that contains articles with markup generated elsewhere (markdown files, external APIs...).

I have 3 options here:

  1. Style it myself - a lot of work
  2. Use Typography.js alongside my custom components - mixing cascade with component-level scoping, dealing with conflicts
  3. Use Typography.js exclusively / primarily with a few custom components overriding what I need - bearable to a degree, but gets in the way once I need to customize more stuff, ending up in point 2

I'd imagine it could work like this:

  1. add a new key to the options object - something like scopeSelector
  2. if defined, prefix all selectors with it and use it as a base instead of <body /> here

I'm aware rems might result in different sizes, since they are relative to the root element, but that's desirable when using custom scoping.

What are your thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions