Skip to content
This repository has been archived by the owner on May 3, 2021. It is now read-only.

Commit

Permalink
Resolution option
Browse files Browse the repository at this point in the history
  • Loading branch information
blunt1337 committed Nov 16, 2016
1 parent 21f342e commit e57dfad
Show file tree
Hide file tree
Showing 9 changed files with 53 additions and 44 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ In production, just use the [svgo-loader](https://github.com/rpominov/svgo-loade
- [x] Pack all parts into one svg then split the texture with new PIXI.Texture(base, new PIXI.Rectangle(x, y, w, h));
- [x] Option to disable the packing / or disable when packing fails
- [ ] Onload/onerror event
- [ ] Option in the loader, to create a larger resolution
- [x] Option in the loader, to create a larger resolution
- [x] To be able to put a classname on a node
- [ ] Option to make [Phaser](https://phaser.io) Sprite that is based on PIXI
- [ ] Paintbox are not working outside of the viewbox
Expand Down
3 changes: 2 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ module.exports = function (content) {
}

// Generate and return
callback(null, buildResult(svg, this)+'')
let resolution = config.resolution ? config.resolution : 'window.devicePixelRatio || 1'
callback(null, buildResult(svg, this, resolution)+'')
}).catch(err => callback(err))
}
11 changes: 6 additions & 5 deletions lib/buildResult.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@ const BaseClass = {

/**
* Build the final js script with the parsed svg.
* @param {Object} svg Result of the parsed svg
* @param {Object} module
* @param {Object} svg Result of the parsed svg
* @param {Object} module
* @param {String|String[]} resolution Resolution to build, can be js code like 'window.devicePixelRatio || 1'
* @return {String}
*/
module.exports = (svg, module) => {
module.exports = (svg, module, resolution) => {
// Textures and children
let next_id = 0,
textures = '',
Expand All @@ -29,7 +30,7 @@ module.exports = (svg, module) => {
// Add the atlas base texture
if (svg.atlas) {
let tmp = (svg.defs ? svg.defs : '') + svg.atlas.value
textures = `var atlas = svg2baseTexture(${JSON.stringify(tmp)}, ${svg.atlas.width}, ${svg.atlas.height});\n`
textures = `var atlas = svg2baseTexture(${JSON.stringify(tmp)}, ${resolution}, ${svg.atlas.width}, ${svg.atlas.height});\n`
}
// Non atlas textures
else {
Expand Down Expand Up @@ -90,7 +91,7 @@ module.exports = (svg, module) => {
texture_id = unique[block.value]
} else {
unique[block.value] = texture_id = next_id
textures += `var texture_${next_id} = new Texture(svg2baseTexture(defs+${JSON.stringify(block.value)}, ${paintbox.width}, ${paintbox.height}, ${paintbox.x}, ${paintbox.y}));\n`
textures += `var texture_${next_id} = new Texture(svg2baseTexture(defs+${JSON.stringify(block.value)}, ${resolution}, ${paintbox.width}, ${paintbox.height}, ${paintbox.x}, ${paintbox.y}));\n`
}
}

Expand Down
12 changes: 7 additions & 5 deletions lib/commonModule.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@ var BaseTexture = PIXI.BaseTexture;

/**
* Create base texture from svg content
* @param {String} svg_element_content
* @param {Number} w
* @param {Number} h
* @param {String} svg_element_content Content of the svg
* @param {int} ratio Resolution
* @param {int} w Width
* @param {int} h Height
* @param {int?} x Position x, default 0
* @param {int?} y Position y, default 0
* @return {BaseTexture}
*/
function svg2baseTexture(svg_element_content, w, h, x, y) {
var ratio = window.devicePixelRatio || 1;
function svg2baseTexture(svg_element_content, ratio, w, h, x, y) {
x = x || 0;
y = y || 0;

Expand Down
20 changes: 11 additions & 9 deletions samples/01-origin/built.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,15 @@ var BaseTexture = PIXI.BaseTexture;

/**
* Create base texture from svg content
* @param {String} svg_element_content
* @param {Number} w
* @param {Number} h
* @param {String} svg_element_content Content of the svg
* @param {int} ratio Resolution
* @param {int} w Width
* @param {int} h Height
* @param {int?} x Position x, default 0
* @param {int?} y Position y, default 0
* @return {BaseTexture}
*/
function svg2baseTexture(svg_element_content, w, h, x, y) {
var ratio = window.devicePixelRatio || 1;
function svg2baseTexture(svg_element_content, ratio, w, h, x, y) {
x = x || 0;
y = y || 0;

Expand Down Expand Up @@ -107,15 +109,14 @@ module.exports = {

/***/ },
/* 1 */,
/* 2 */,
/* 3 */
/* 2 */
/***/ function(module, exports, __webpack_require__) {


var common = __webpack_require__(0),
svg2baseTexture = common.svg2baseTexture,
inherits = common.inherits;
var Container = PIXI.Container, Sprite = PIXI.Sprite, Texture = PIXI.Texture, Rect = PIXI.Rectangle;var atlas = svg2baseTexture("<style>.st0{fill:none;stroke:#e6e6e6;stroke-miterlimit:10}.st1,.st2,.st3,.st4,.st5{fill:#f7931e;stroke:#f15a24;stroke-width:12;stroke-miterlimit:10}.st2,.st3,.st4,.st5{fill:#736357;stroke:#534741;stroke-width:5}.st3,.st4,.st5{fill:none;stroke:#39b54a;stroke-width:4}.st4,.st5{fill:#8cc63f}.st5{fill:#b3b3b3;stroke:gray;stroke-width:5}</style><g transform=\"translate(-114 -114)\"><circle id=\"sun\" class=\"st0\" cx=\"250\" cy=\"250\" r=\"135\"/><path id=\"earth_path\" class=\"st1\" d=\"M239.9 268l-10.1-17.5 10.1-17.5h20.2l10.1 17.5-10.1 17.5z\"/></g><g transform=\"translate(225 -183)\"><path id=\"earth\" class=\"st2\" d=\"M101.8 272.5L88.7 250l13.1-22.5h26.4l13.1 22.5-13.1 22.5z\"/><path id=\"tronc\" class=\"st3\" d=\"M115 219v8\"/><path id=\"tree\" class=\"st4\" d=\"M109.5 221l-5.2-9.5 5.2-9.5H120l5.2 9.5-5.2 9.5z\"/><circle id=\"moon_path\" class=\"st0\" cx=\"115\" cy=\"250\" r=\"66.2\"/></g><g transform=\"translate(174 -167)\"><path id=\"#moon\" class=\"st5\" d=\"M108.5 327.5l-6.6-11.5 6.6-11.5h13.1l6.6 11.5-6.6 11.5z\"/></g>", 408, 273);
var Container = PIXI.Container, Sprite = PIXI.Sprite, Texture = PIXI.Texture, Rect = PIXI.Rectangle;var atlas = svg2baseTexture("<style>.st0{fill:none;stroke:#e6e6e6;stroke-miterlimit:10}.st1,.st2,.st3,.st4,.st5{fill:#f7931e;stroke:#f15a24;stroke-width:12;stroke-miterlimit:10}.st2,.st3,.st4,.st5{fill:#736357;stroke:#534741;stroke-width:5}.st3,.st4,.st5{fill:none;stroke:#39b54a;stroke-width:4}.st4,.st5{fill:#8cc63f}.st5{fill:#b3b3b3;stroke:gray;stroke-width:5}</style><g transform=\"translate(-114 -114)\"><circle id=\"sun\" class=\"st0\" cx=\"250\" cy=\"250\" r=\"135\"/><path id=\"earth_path\" class=\"st1\" d=\"M239.9 268l-10.1-17.5 10.1-17.5h20.2l10.1 17.5-10.1 17.5z\"/></g><g transform=\"translate(225 -183)\"><path id=\"earth\" class=\"st2\" d=\"M101.8 272.5L88.7 250l13.1-22.5h26.4l13.1 22.5-13.1 22.5z\"/><path id=\"tronc\" class=\"st3\" d=\"M115 219v8\"/><path id=\"tree\" class=\"st4\" d=\"M109.5 221l-5.2-9.5 5.2-9.5H120l5.2 9.5-5.2 9.5z\"/><circle id=\"moon_path\" class=\"st0\" cx=\"115\" cy=\"250\" r=\"66.2\"/></g><g transform=\"translate(174 -167)\"><path id=\"#moon\" class=\"st5\" d=\"M108.5 327.5l-6.6-11.5 6.6-11.5h13.1l6.6 11.5-6.6 11.5z\"/></g>", window.devicePixelRatio || 1, 408, 273);
var texture_1 = new Texture(atlas, new Rect(0, 0, 272, 272));
var texture_3 = new Texture(atlas, new Rect(273, 0, 134, 134));
var texture_4 = new Texture(atlas, new Rect(273, 135, 33, 28));
Expand All @@ -139,6 +140,7 @@ child_4.position.set(0.50,66.00);
inherits(UsersBluntProjectsNodejsPixiSvgLoaderSamples01OriginOriginSvg, Container);module.exports = UsersBluntProjectsNodejsPixiSvgLoaderSamples01OriginOriginSvg;

/***/ },
/* 3 */,
/* 4 */
/***/ function(module, exports, __webpack_require__) {

Expand All @@ -151,7 +153,7 @@ renderer.view.style.height = height + 'px';
document.getElementById('origin').appendChild(renderer.view)

// The SVG is now a PIXI Container, default origin of objects is 'cc' (center, center)
var Origin = __webpack_require__(3);
var Origin = __webpack_require__(2);

// Instanciate
var origin = new Origin();
Expand Down
24 changes: 13 additions & 11 deletions samples/02-color/built.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,15 @@ var BaseTexture = PIXI.BaseTexture;

/**
* Create base texture from svg content
* @param {String} svg_element_content
* @param {Number} w
* @param {Number} h
* @param {String} svg_element_content Content of the svg
* @param {int} ratio Resolution
* @param {int} w Width
* @param {int} h Height
* @param {int?} x Position x, default 0
* @param {int?} y Position y, default 0
* @return {BaseTexture}
*/
function svg2baseTexture(svg_element_content, w, h, x, y) {
var ratio = window.devicePixelRatio || 1;
function svg2baseTexture(svg_element_content, ratio, w, h, x, y) {
x = x || 0;
y = y || 0;

Expand Down Expand Up @@ -106,14 +108,16 @@ module.exports = {
};

/***/ },
/* 1 */
/* 1 */,
/* 2 */,
/* 3 */
/***/ function(module, exports, __webpack_require__) {


var common = __webpack_require__(0),
svg2baseTexture = common.svg2baseTexture,
inherits = common.inherits;
var Container = PIXI.Container, Sprite = PIXI.Sprite, Texture = PIXI.Texture, Rect = PIXI.Rectangle;var atlas = svg2baseTexture("<style>.st0{fill:#fff}.st1,.st2{fill:none;stroke:#ddd;stroke-width:20;stroke-miterlimit:10}.st2{fill:#fff}</style><g transform=\"translate(0 0)\"><path id=\"_x23_stroke\" class=\"st1\" d=\"M10 10h80v80H10z\"/></g><g transform=\"translate(-9 0)\"><path id=\"_x23_both\" class=\"st2\" d=\"M120 10h80v80h-80z\"/></g><g transform=\"translate(-10 91)\"><path id=\"_x23_fill\" class=\"st0\" d=\"M10 10h80v80H10z\"/></g>", 202, 182);
var Container = PIXI.Container, Sprite = PIXI.Sprite, Texture = PIXI.Texture, Rect = PIXI.Rectangle;var atlas = svg2baseTexture("<style>.st0{fill:#fff}.st1,.st2{fill:none;stroke:#ddd;stroke-width:20;stroke-miterlimit:10}.st2{fill:#fff}</style><g transform=\"translate(0 0)\"><path id=\"_x23_stroke\" class=\"st1\" d=\"M10 10h80v80H10z\"/></g><g transform=\"translate(-9 0)\"><path id=\"_x23_both\" class=\"st2\" d=\"M120 10h80v80h-80z\"/></g><g transform=\"translate(-10 91)\"><path id=\"_x23_fill\" class=\"st0\" d=\"M10 10h80v80H10z\"/></g>", window.devicePixelRatio*2||2, 202, 182);
var texture_0 = new Texture(atlas, new Rect(0, 101, 80, 80));
var texture_1 = new Texture(atlas, new Rect(0, 0, 100, 100));
var texture_2 = new Texture(atlas, new Rect(101, 0, 100, 100));
Expand All @@ -131,22 +135,20 @@ child_2.anchor.set(-1.10,0.00);
inherits(UsersBluntProjectsNodejsPixiSvgLoaderSamples02ColorColorSvg, Container);module.exports = UsersBluntProjectsNodejsPixiSvgLoaderSamples02ColorColorSvg;

/***/ },
/* 2 */,
/* 3 */,
/* 4 */,
/* 5 */
/***/ function(module, exports, __webpack_require__) {

// Renderer (compatible retina)
var width = 210, height = 100;
var renderer = PIXI.autoDetectRenderer(width, height, { antialias: false, resolution: window.devicePixelRatio });
var renderer = PIXI.autoDetectRenderer(width, height, { antialias: true, resolution: window.devicePixelRatio });
renderer.backgroundColor = 0xFFFFFF;
renderer.view.style.width = width + 'px';
renderer.view.style.height = height + 'px';
document.getElementById('color').appendChild(renderer.view)

// The SVG is now a PIXI Container
var Color = __webpack_require__(1);
var Color = __webpack_require__(3);

// Instanciate
var color = new Color();
Expand Down
4 changes: 2 additions & 2 deletions samples/02-color/index.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// Renderer (compatible retina)
var width = 210, height = 100;
var renderer = PIXI.autoDetectRenderer(width, height, { antialias: false, resolution: window.devicePixelRatio });
var renderer = PIXI.autoDetectRenderer(width, height, { antialias: true, resolution: window.devicePixelRatio });
renderer.backgroundColor = 0xFFFFFF;
renderer.view.style.width = width + 'px';
renderer.view.style.height = height + 'px';
document.getElementById('color').appendChild(renderer.view)

// The SVG is now a PIXI Container
var Color = require('../../index.js!svgo-loader!./color.svg');
var Color = require('../../index.js?resolution=window.devicePixelRatio*2||2!svgo-loader!./color.svg');

// Instanciate
var color = new Color();
Expand Down
20 changes: 11 additions & 9 deletions samples/03-classname/built.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,15 @@ var BaseTexture = PIXI.BaseTexture;

/**
* Create base texture from svg content
* @param {String} svg_element_content
* @param {Number} w
* @param {Number} h
* @param {String} svg_element_content Content of the svg
* @param {int} ratio Resolution
* @param {int} w Width
* @param {int} h Height
* @param {int?} x Position x, default 0
* @param {int?} y Position y, default 0
* @return {BaseTexture}
*/
function svg2baseTexture(svg_element_content, w, h, x, y) {
var ratio = window.devicePixelRatio || 1;
function svg2baseTexture(svg_element_content, ratio, w, h, x, y) {
x = x || 0;
y = y || 0;

Expand Down Expand Up @@ -106,15 +108,14 @@ module.exports = {
};

/***/ },
/* 1 */,
/* 2 */
/* 1 */
/***/ function(module, exports, __webpack_require__) {


var common = __webpack_require__(0),
svg2baseTexture = common.svg2baseTexture,
inherits = common.inherits;
var Container = PIXI.Container, Sprite = PIXI.Sprite, Texture = PIXI.Texture, Rect = PIXI.Rectangle;var atlas = svg2baseTexture("<style>.st0{fill:url(#XMLID_5_)}.st1{opacity:.3;fill:#fff}.st2{opacity:.31;fill:none;stroke:#fff;stroke-miterlimit:10}.st3{fill:#333}.st4{fill:#fff}</style><radialGradient id=\"XMLID_5_\" cx=\"5.042\" cy=\"1.681\" r=\"443.858\" gradientTransform=\"matrix(1.1316 .4328 -.5299 .8792 1.514 -1.98)\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" stop-color=\"#3862a0\"></stop><stop offset=\"1\" stop-color=\"#01073e\"></stop></radialGradient><g transform=\"translate(0 0)\"><g id=\"bg\"><path id=\"XMLID_2_\" class=\"st0\" d=\"M0 0h500v200H0z\"/><path id=\"XMLID_3_\" class=\"st1\" d=\"M0 0h500v200H0z\"/></g></g><g transform=\"translate(-101 201)\"><path id=\"XMLID_1_\" class=\"st2\" d=\"M101.5 175V-43\"/></g><g transform=\"translate(-79 37)\"><path id=\"_x23_body\" class=\"st3\" d=\"M81.9 180.6c4 2.8 8.6 4.2 12.2 4.9-2.9 1.4-6.3 3.8-9.2 8-.4.6-.3 1.5.3 2 .6.4 1.5.3 2-.3 2.9-4.1 6.1-6.2 8.8-7.4-1.6 2-3.4 5.2-4.9 10.3-.2.7.2 1.5.9 1.8.7.2 1.5-.2 1.8-.9 2.3-7.8 5.1-10.4 6.6-11.3.2.6.6 1 1 1.3 0 .2-.1.3-.1.5 0 .7.4 1.3.8 1.4l.2-1.6h.2l.2 1.6c.5-.2.8-.7.8-1.4 0-.2 0-.4-.1-.5.4-.3.8-.7 1-1.3 1.5.9 4.2 3.5 6.6 11.3.2.7 1 1.2 1.8.9.7-.2 1.2-1 .9-1.8-1.5-5-3.2-8.2-4.9-10.2 2.7 1.2 5.9 3.3 8.8 7.4.4.6 1.3.8 2 .3.6-.4.8-1.3.3-2-3-4.2-6.3-6.6-9.2-8 3.6-.7 8.2-2.1 12.2-4.9.6-.4.8-1.3.3-2-.3-.4-.7-.6-1.1-.6-.3 0-.6.1-.8.3-4 2.8-8.7 4.1-12.2 4.6 2.9-2.6 6.4-7.4 9.3-16.4.2-.7-.2-1.5-.9-1.8-.1 0-.3-.1-.4-.1-.6 0-1.1.4-1.3 1-2.6 8-5.5 12.3-7.9 14.6.2-.8.3-1.6.3-2.5 0-4.2-2.6-7.6-5.7-7.6s-5.7 3.4-5.7 7.6c0 .9.1 1.7.3 2.5-2.4-2.3-5.3-6.6-7.9-14.6-.2-.6-.7-1-1.3-1-.1 0-.3 0-.4.1-.7.2-1.1 1-.9 1.8 2.9 9.1 6.4 13.9 9.3 16.4-3.5-.6-8.2-1.8-12.2-4.6-.2-.2-.5-.3-.8-.3-.4 0-.9.2-1.1.6-.7.6-.5 1.5.1 1.9z\"/></g><g transform=\"translate(-49 35)\"><ellipse id=\"_x23_ass\" class=\"st4\" cx=\"102.4\" cy=\"174.6\" rx=\"6.6\" ry=\"7.7\"/></g>", 501, 377);
var Container = PIXI.Container, Sprite = PIXI.Sprite, Texture = PIXI.Texture, Rect = PIXI.Rectangle;var atlas = svg2baseTexture("<style>.st0{fill:url(#XMLID_5_)}.st1{opacity:.3;fill:#fff}.st2{opacity:.31;fill:none;stroke:#fff;stroke-miterlimit:10}.st3{fill:#333}.st4{fill:#fff}</style><radialGradient id=\"XMLID_5_\" cx=\"5.042\" cy=\"1.681\" r=\"443.858\" gradientTransform=\"matrix(1.1316 .4328 -.5299 .8792 1.514 -1.98)\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" stop-color=\"#3862a0\"></stop><stop offset=\"1\" stop-color=\"#01073e\"></stop></radialGradient><g transform=\"translate(0 0)\"><g id=\"bg\"><path id=\"XMLID_2_\" class=\"st0\" d=\"M0 0h500v200H0z\"/><path id=\"XMLID_3_\" class=\"st1\" d=\"M0 0h500v200H0z\"/></g></g><g transform=\"translate(-101 201)\"><path id=\"XMLID_1_\" class=\"st2\" d=\"M101.5 175V-43\"/></g><g transform=\"translate(-79 37)\"><path id=\"_x23_body\" class=\"st3\" d=\"M81.9 180.6c4 2.8 8.6 4.2 12.2 4.9-2.9 1.4-6.3 3.8-9.2 8-.4.6-.3 1.5.3 2 .6.4 1.5.3 2-.3 2.9-4.1 6.1-6.2 8.8-7.4-1.6 2-3.4 5.2-4.9 10.3-.2.7.2 1.5.9 1.8.7.2 1.5-.2 1.8-.9 2.3-7.8 5.1-10.4 6.6-11.3.2.6.6 1 1 1.3 0 .2-.1.3-.1.5 0 .7.4 1.3.8 1.4l.2-1.6h.2l.2 1.6c.5-.2.8-.7.8-1.4 0-.2 0-.4-.1-.5.4-.3.8-.7 1-1.3 1.5.9 4.2 3.5 6.6 11.3.2.7 1 1.2 1.8.9.7-.2 1.2-1 .9-1.8-1.5-5-3.2-8.2-4.9-10.2 2.7 1.2 5.9 3.3 8.8 7.4.4.6 1.3.8 2 .3.6-.4.8-1.3.3-2-3-4.2-6.3-6.6-9.2-8 3.6-.7 8.2-2.1 12.2-4.9.6-.4.8-1.3.3-2-.3-.4-.7-.6-1.1-.6-.3 0-.6.1-.8.3-4 2.8-8.7 4.1-12.2 4.6 2.9-2.6 6.4-7.4 9.3-16.4.2-.7-.2-1.5-.9-1.8-.1 0-.3-.1-.4-.1-.6 0-1.1.4-1.3 1-2.6 8-5.5 12.3-7.9 14.6.2-.8.3-1.6.3-2.5 0-4.2-2.6-7.6-5.7-7.6s-5.7 3.4-5.7 7.6c0 .9.1 1.7.3 2.5-2.4-2.3-5.3-6.6-7.9-14.6-.2-.6-.7-1-1.3-1-.1 0-.3 0-.4.1-.7.2-1.1 1-.9 1.8 2.9 9.1 6.4 13.9 9.3 16.4-3.5-.6-8.2-1.8-12.2-4.6-.2-.2-.5-.3-.8-.3-.4 0-.9.2-1.1.6-.7.6-.5 1.5.1 1.9z\"/></g><g transform=\"translate(-49 35)\"><ellipse id=\"_x23_ass\" class=\"st4\" cx=\"102.4\" cy=\"174.6\" rx=\"6.6\" ry=\"7.7\"/></g>", window.devicePixelRatio || 1, 501, 377);
var texture_0 = new Texture(atlas, new Rect(0, 0, 500, 200));
var texture_2 = new Texture(atlas, new Rect(0, 201, 1, 175));
var texture_3 = new Texture(atlas, new Rect(2, 201, 43, 36));
Expand Down Expand Up @@ -147,6 +148,7 @@ inherits(Spider, Container);module.exports = UsersBluntProjectsNodejsPixiSvgLoad
module.exports.Spider = Spider;

/***/ },
/* 2 */,
/* 3 */,
/* 4 */,
/* 5 */,
Expand All @@ -162,7 +164,7 @@ renderer.view.style.height = height + 'px';
document.getElementById('classname').appendChild(renderer.view)

// The SVG is now a PIXI Container
var MySvgScene = __webpack_require__(2);
var MySvgScene = __webpack_require__(1);

// Instanciate
var scene = new MySvgScene();
Expand Down
1 change: 0 additions & 1 deletion samples/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
<title>pixi-svg-loader samples</title>
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<style>
canvas { image-rendering: optimizeSpeed; image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor; }
a {
font-size: 1rem;
text-decoration: none;
Expand Down

0 comments on commit e57dfad

Please sign in to comment.