Skip to content

Commit b20a6da

Browse files
committed
Add toDpi() and toDecimal() functions for comparing values
1 parent f98865f commit b20a6da

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

index.js

+21-4
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ function match(mediaQuery, values) {
1616

1717
// -- Utilities ----------------------------------------------------------------
1818

19-
var RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s\(\)]+)\s*and\s*)?(.+)?/i,
20-
RE_MQ_EXPRESSION = /\(\s*([^\s\:\)]+)\s*(?:\:\s*([^\s\)]+))?\s*\)/,
21-
RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,
22-
RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;
19+
var RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s\(\)]+)\s*and\s*)?(.+)?/i,
20+
RE_MQ_EXPRESSION = /\(\s*([^\s\:\)]+)\s*(?:\:\s*([^\s\)]+))?\s*\)/,
21+
RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,
22+
RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,
23+
RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
2324

2425
function parseQuery(mediaQuery) {
2526
return mediaQuery.split(',').map(function (query) {
@@ -67,3 +68,19 @@ function toPx(length) {
6768
default : return value;
6869
}
6970
}
71+
72+
function toDpi(resolution) {
73+
var value = parseFloat(length),
74+
units = String(length).match(RE_RESOLUTION_UNIT)[1];
75+
76+
switch (units) {
77+
case 'dpcm': return value / 2.54;
78+
case 'dppx': return value * 96;
79+
default : return value;
80+
}
81+
}
82+
83+
function toDecimal(ratio) {
84+
var numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
85+
return numbers[1] / numbers[2];
86+
}

0 commit comments

Comments
 (0)