You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Not all features are in the caniuse database (e.g. #161). So, we have to use MDN data during detection somehow. I'm just not sure how yet, so I'm gonna dump my thoughts here. Open to any and all thoughts, feelings, comments, and etc. There's definitely more options than just these :P
Option 1: Use MDN for detection instead of caniuse. Quite a bit of work, but potentially a clean solution.
Pros:
More CSS features are tracked
Data includes information about prefixes
Data has more robust partial support info
Could potentially reduce the amount of boilerplate code needed for detection (in data/features)
Cons:
lot of work
Option 2: Convert any missing MDN data into caniuse's format and pretend it exists in caniuse-lite
Pros:
Gets us the new features from MDN with less effort (probably)
Cons:
Both datasets use a different format, and using them together could get a bit tricky. (e.g we'd have to dedupe entries, MDN compat entries are sometimes split out by value, etc.)
Potentially more work to maintain.
We'd still need MDN data to check for partial support & prefixes anyway
The text was updated successfully, but these errors were encountered:
I've been messing with a prototype offline where we read straight from the JSON. I took the reading of raw json update-features had and changed it to import JSON as an object (edit).
I'm thinking, and been messing around with, reading straight from caniuse-db and mdn's JSON files. Because it's an ESM import, it should technically be possible to tree-shake it, including only the parts of the JSON we need. That tree-shaken version is what gets published to NPM.
We don't need to pull in caniuse-lite except for whatever extra they have. The actual entire caniuse-db DB is 3MB, whereas caniuse-lite is 2.7MB. We're not saving much here. If we can get a workflow going, it can automatically update from MDN and caniuse-db as needed, as well as publish. It would dynamically change the way we code our selectors since MDN gives very fine tuned data.
That's kinda where my head is at now, but haven't had time to make the proof-of-concept.
Not all features are in the caniuse database (e.g. #161). So, we have to use MDN data during detection somehow. I'm just not sure how yet, so I'm gonna dump my thoughts here. Open to any and all thoughts, feelings, comments, and etc. There's definitely more options than just these :P
Option 1: Use MDN for detection instead of caniuse. Quite a bit of work, but potentially a clean solution.
Pros:
data/features
)Cons:
Option 2: Convert any missing MDN data into caniuse's format and pretend it exists in caniuse-lite
Pros:
Cons:
The text was updated successfully, but these errors were encountered: