@@ -16,10 +16,11 @@ function match(mediaQuery, values) {
1616
1717// -- Utilities ----------------------------------------------------------------
1818
19- var RE_MEDIA_QUERY = / (?: ( o n l y | n o t ) ? \s * ( [ ^ \s \( \) ] + ) \s * a n d \s * ) ? ( .+ ) ? / i,
20- RE_MQ_EXPRESSION = / \( \s * ( [ ^ \s \: \) ] + ) \s * (?: \: \s * ( [ ^ \s \) ] + ) ) ? \s * \) / ,
21- RE_MQ_FEATURE = / ^ (?: ( m i n | m a x ) - ) ? ( .+ ) / ,
22- RE_LENGTH_UNIT = / ( e m | r e m | p x | c m | m m | i n | p t | p c ) ? $ / ;
19+ var RE_MEDIA_QUERY = / (?: ( o n l y | n o t ) ? \s * ( [ ^ \s \( \) ] + ) \s * a n d \s * ) ? ( .+ ) ? / i,
20+ RE_MQ_EXPRESSION = / \( \s * ( [ ^ \s \: \) ] + ) \s * (?: \: \s * ( [ ^ \s \) ] + ) ) ? \s * \) / ,
21+ RE_MQ_FEATURE = / ^ (?: ( m i n | m a x ) - ) ? ( .+ ) / ,
22+ RE_LENGTH_UNIT = / ( e m | r e m | p x | c m | m m | i n | p t | p c ) ? $ / ,
23+ RE_RESOLUTION_UNIT = / ( d p i | d p c m | d p p x ) ? $ / ;
2324
2425function 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