Advertisement
MrPolywhirl

famfamfam-flags.less

Oct 15th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CSS 9.09 KB | None | 0 0
  1. /*
  2. If `node-spritesheet` could generate a less file...
  3.  
  4. The following less code (273 lines) produces a CSS file (753 lines) which removes redundant style rules which are present in the original (1,492 lines) `famfamfam-flags.css` stylesheet.
  5.  
  6. The resulting css is half the size of the original (unminified) and does not define the same height and width. The width is the same for every flag and the height is the same for `~98.79%`.
  7. */
  8.  
  9.  
  10. // =====================================================================
  11. // Mixins
  12. // =====================================================================
  13. .position(@col, @row, @yoff : 0) {
  14.   background-position: (@col * -16px) (@row * -11px + @yoff);
  15. }
  16.  
  17. // Extend the .position mixin by adding height.
  18. .positionWithHeight(@col, @row, @yoff : 0, @height : 11px) {
  19.   .position(@col, @row, @yoff);
  20.   height: @height;
  21. }
  22. // =====================================================================
  23. // Rules
  24. // =====================================================================
  25. .famfamfam-flags {
  26.   background: url('famfamfam-flags.png') no-repeat;
  27.   background-size: 224px 199px;
  28.   width: 16px;
  29.   height: 11px;
  30.  
  31.   // ===================================================================
  32.   // Flag positions
  33.   // ===================================================================
  34.   &.me { .positionWithHeight(0, 0, 0, 12px); }
  35.   &.kz { .position(1, 0); }
  36.   &.af { .position(0, 1, -1); }
  37.   &.ag { .position(1, 1, -1); }
  38.   &.ai { .position(2, 0); }
  39.   &.al { .position(2, 1); }
  40.   &.am { .position(0, 2, -1); }
  41.   &.an { .position(1, 2, -1); }
  42.   &.ao { .position(2, 2, -1); }
  43.   &.ar { .position(0, 3, -1); }
  44.   &.as { .position(1, 3, -1); }
  45.   &.at { .position(2, 3, -1); }
  46.   &.au { .position(3, 0); }
  47.   &.aw { .position(3, 1); }
  48.   &.ax { .position(3, 2); }
  49.   &.az { .position(3, 3); }
  50.   &.ba { .position(0, 4, -1); }
  51.   &.bb { .position(1, 4, -1); }
  52.   &.bd { .position(2, 4, -1); }
  53.   &.be { .position(3, 4, -1); }
  54.   &.bf { .position(4, 0); }
  55.   &.bg { .position(4, 1); }
  56.   &.bh { .position(4, 2); }
  57.   &.bi { .position(4, 3); }
  58.   &.bj { .position(4, 4); }
  59.   &.bm { .position(0, 5, -1); }
  60.   &.bn { .position(1, 5, -1); }
  61.   &.bo { .position(2, 5, -1); }
  62.   &.br { .position(3, 5, -1); }
  63.   &.bs { .position(4, 5, -1); }
  64.   &.bt { .position(0, 6, -1); }
  65.   &.bv { .position(1, 6, -1); }
  66.   &.bw { .position(2, 6, -1); }
  67.   &.by { .position(3, 6, -1); }
  68.   &.bz { .position(4, 6, -1); }
  69.   &.ca { .position(5, 0); }
  70.   &.catalonia { .position(5, 1); }
  71.   &.cc { .position(5, 2); }
  72.   &.cd { .position(5, 3); }
  73.   &.cf { .position(5, 4); }
  74.   &.cg { .position(5, 5); }
  75.   &.zm { .position(5, 6); }
  76.   &.ci { .position(0, 7, -1); }
  77.   &.ck { .position(1, 7, -1); }
  78.   &.cl { .position(2, 7, -1); }
  79.   &.cm { .position(3, 7, -1); }
  80.   &.cn { .position(4, 7, -1); }
  81.   &.co { .position(5, 7, -1); }
  82.   &.cr { .position(6, 0); }
  83.   &.cs { .position(6, 1); }
  84.   &.cu { .position(6, 2); }
  85.   &.cv { .position(6, 3); }
  86.   &.cx { .position(6, 4); }
  87.   &.cy { .position(6, 5); }
  88.   &.cz { .position(6, 6); }
  89.   &.de { .position(6, 7); }
  90.   &.dj { .position(0, 8, -1); }
  91.   &.dk { .position(1, 8, -1); }
  92.   &.dm { .position(2, 8, -1); }
  93.   &.do { .position(3, 8, -1); }
  94.   &.dz { .position(4, 8, -1); }
  95.   &.ec { .position(5, 8, -1); }
  96.   &.ee { .position(6, 8, -1); }
  97.   &.eg { .position(0, 9, -1); }
  98.   &.eh { .position(1, 9, -1); }
  99.   &.england { .position(2, 9, -1); }
  100.   &.er { .position(3, 9, -1); }
  101.   &.es { .position(4, 9, -1); }
  102.   &.et { .position(5, 9, -1); }
  103.   &.europeanunion { .position(6, 9, -1); }
  104.   &.fam { .position(7, 0); }
  105.   &.fi { .position(7, 1); }
  106.   &.fj { .position(7, 2); }
  107.   &.fk { .position(7, 3); }
  108.   &.fm { .position(7, 4); }
  109.   &.fo { .position(7, 5); }
  110.   &.fr { .position(7, 6); }
  111.   &.ga { .position(7, 7); }
  112.   &.gb { .position(7, 8); }
  113.   &.gd { .position(7, 9); }
  114.   &.ge { .position(0, 10, -1); }
  115.   &.gf { .position(1, 10, -1); }
  116.   &.gg { .position(2, 10, -1); }
  117.   &.gh { .position(3, 10, -1); }
  118.   &.gi { .position(4, 10, -1); }
  119.   &.gl { .position(5, 10, -1); }
  120.   &.gm { .position(6, 10, -1); }
  121.   &.gn { .position(7, 10, -1); }
  122.   &.gp { .position(8, 0); }
  123.   &.gq { .position(8, 1); }
  124.   &.gr { .position(8, 2); }
  125.   &.gs { .position(8, 3); }
  126.   &.gt { .position(8, 4); }
  127.   &.gu { .position(8, 5); }
  128.   &.gw { .position(8, 6); }
  129.   &.gy { .position(8, 7); }
  130.   &.hk { .position(8, 8); }
  131.   &.hm { .position(8, 9); }
  132.   &.hn { .position(8, 10); }
  133.   &.hr { .position(0, 11, -1); }
  134.   &.ht { .position(1, 11, -1); }
  135.   &.hu { .position(2, 11, -1); }
  136.   &.id { .position(3, 11, -1); }
  137.   &.ie { .position(4, 11, -1); }
  138.   &.il { .position(5, 11, -1); }
  139.   &.in { .position(6, 11, -1); }
  140.   &.io { .position(7, 11, -1); }
  141.   &.iq { .position(8, 11, -1); }
  142.   &.ir { .position(0, 12, -1); }
  143.   &.is { .position(1, 12, -1); }
  144.   &.it { .position(2, 12, -1); }
  145.   &.jm { .position(3, 12, -1); }
  146.   &.jo { .position(4, 12, -1); }
  147.   &.jp { .position(5, 12, -1); }
  148.   &.ke { .position(6, 12, -1); }
  149.   &.kg { .position(7, 12, -1); }
  150.   &.kh { .position(8, 12, -1); }
  151.   &.ki { .position(9, 0); }
  152.   &.km { .position(9, 1); }
  153.   &.kn { .position(9, 2); }
  154.   &.kp { .position(9, 3); }
  155.   &.kr { .position(9, 4); }
  156.   &.kw { .position(9, 5); }
  157.   &.ky { .position(9, 6); }
  158.   &.ae { .position(9, 7); }
  159.   &.la { .position(9, 8); }
  160.   &.lb { .position(9, 9); }
  161.   &.lc { .position(9, 10); }
  162.   &.li { .position(9, 11); }
  163.   &.lk { .position(9, 12); }
  164.   &.lr { .position(0, 13, -1); }
  165.   &.ls { .position(1, 13, -1); }
  166.   &.lt { .position(2, 13, -1); }
  167.   &.lu { .position(3, 13, -1); }
  168.   &.lv { .position(4, 13, -1); }
  169.   &.ly { .position(5, 13, -1); }
  170.   &.ma { .position(6, 13, -1); }
  171.   &.mc { .position(7, 13, -1); }
  172.   &.md { .position(8, 13, -1); }
  173.   &.ad { .position(9, 13, -1); }
  174.   &.mg { .position(10, 0); }
  175.   &.mh { .position(10, 1); }
  176.   &.mk { .position(10, 2); }
  177.   &.ml { .position(10, 3); }
  178.   &.mm { .position(10, 4); }
  179.   &.mn { .position(10, 5); }
  180.   &.mo { .position(10, 6); }
  181.   &.mp { .position(10, 7); }
  182.   &.mq { .position(10, 8); }
  183.   &.mr { .position(10, 9); }
  184.   &.ms { .position(10, 10); }
  185.   &.mt { .position(10, 11); }
  186.   &.mu { .position(10, 12); }
  187.   &.mv { .position(10, 13); }
  188.   &.mw { .position(0, 14, -1); }
  189.   &.mx { .position(1, 14, -1); }
  190.   &.my { .position(2, 14, -1); }
  191.   &.mz { .position(3, 14, -1); }
  192.   &.na { .position(4, 14, -1); }
  193.   &.nc { .position(5, 14, -1); }
  194.   &.ne { .position(6, 14, -1); }
  195.   &.nf { .position(7, 14, -1); }
  196.   &.ng { .position(8, 14, -1); }
  197.   &.ni { .position(9, 14, -1); }
  198.   &.nl { .position(10, 14, -1); }
  199.   &.no { .position(11, 0); }
  200.   &.za { .position(11, 1); }
  201.   &.nr { .position(11, 2); }
  202.   &.nu { .position(11, 3); }
  203.   &.nz { .position(11, 4); }
  204.   &.om { .position(11, 5); }
  205.   &.pa { .position(11, 6); }
  206.   &.pe { .position(11, 7); }
  207.   &.pf { .position(11, 8); }
  208.   &.pg { .position(11, 9); }
  209.   &.ph { .position(11, 10); }
  210.   &.pk { .position(11, 11); }
  211.   &.pl { .position(11, 12); }
  212.   &.pm { .position(11, 13); }
  213.   &.pn { .position(11, 14); }
  214.   &.pr { .position(0, 15, -1); }
  215.   &.ps { .position(1, 15, -1); }
  216.   &.pt { .position(2, 15, -1); }
  217.   &.pw { .position(3, 15, -1); }
  218.   &.py { .position(4, 15, -1); }
  219.   &.qa { .position(5, 15, -1); }
  220.   &.re { .position(6, 15, -1); }
  221.   &.ro { .position(7, 15, -1); }
  222.   &.rs { .position(8, 15, -1); }
  223.   &.ru { .position(9, 15, -1); }
  224.   &.rw { .position(10, 15, -1); }
  225.   &.sa { .position(11, 15, -1); }
  226.   &.sb { .position(0, 16, -1); }
  227.   &.sc { .position(1, 16, -1); }
  228.   &.scotland { .position(2, 16, -1); }
  229.   &.sd { .position(3, 16, -1); }
  230.   &.se { .position(4, 16, -1); }
  231.   &.sg { .position(5, 16, -1); }
  232.   &.sh { .position(6, 16, -1); }
  233.   &.si { .position(7, 16, -1); }
  234.   &.sj { .position(8, 16, -1); }
  235.   &.sk { .position(9, 16, -1); }
  236.   &.sl { .position(10, 16, -1); }
  237.   &.sm { .position(11, 16, -1); }
  238.   &.sn { .position(12, 0); }
  239.   &.so { .position(12, 1); }
  240.   &.sr { .position(12, 2); }
  241.   &.st { .position(12, 3); }
  242.   &.sv { .position(12, 4); }
  243.   &.sy { .position(12, 5); }
  244.   &.sz { .position(12, 6); }
  245.   &.tc { .position(12, 7); }
  246.   &.td { .position(12, 8); }
  247.   &.tf { .position(12, 9); }
  248.   &.tg { .position(12, 10); }
  249.   &.th { .position(12, 11); }
  250.   &.tj { .position(12, 12); }
  251.   &.tk { .position(12, 13); }
  252.   &.tl { .position(12, 14); }
  253.   &.tm { .position(12, 15); }
  254.   &.tn { .position(12, 16); }
  255.   &.to { .position(0, 17, -1); }
  256.   &.tr { .position(1, 17, -1); }
  257.   &.tt { .position(2, 17, -1); }
  258.   &.tv { .position(3, 17, -1); }
  259.   &.tw { .position(4, 17, -1); }
  260.   &.tz { .position(5, 17, -1); }
  261.   &.ua { .position(6, 17, -1); }
  262.   &.ug { .position(7, 17, -1); }
  263.   &.um { .position(8, 17, -1); }
  264.   &.us { .position(9, 17, -1); }
  265.   &.uy { .position(10, 17, -1); }
  266.   &.uz { .position(11, 17, -1); }
  267.   &.va { .position(12, 17, -1); }
  268.   &.vc { .position(13, 0); }
  269.   &.ve { .position(13, 1); }
  270.   &.vg { .position(13, 2); }
  271.   &.vi { .position(13, 3); }
  272.   &.vn { .position(13, 4); }
  273.   &.vu { .position(13, 5); }
  274.   &.wales { .position(13, 6); }
  275.   &.wf { .position(13, 7); }
  276.   &.ws { .position(13, 8); }
  277.   &.ye { .position(13, 9); }
  278.   &.yt { .position(13, 10); }
  279.   &.zw { .position(13, 11); }
  280.   &.ch { .positionWithHeight(13, 12, 0, 11px); }
  281.   &.np { .positionWithHeight(13, 13, 0, 9px); }
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement