From 93eac1f9d3448b3004cc7b8b4767f665eab579d7 Mon Sep 17 00:00:00 2001 From: Chad Little Date: Mon, 28 Jan 2013 15:56:29 -0800 Subject: [PATCH] Add Conpherence sprites. Summary: Let's see if I did this right. This adds on and off state icons (1 and 2x) for conpherence. I think I need to tweak and add more CSS to have the off hover state be the on icon. Will check. Test Plan: spritegen Reviewers: epriestley, btrahan Reviewed By: epriestley CC: aran, Korvin Maniphest Tasks: T2400 Differential Revision: https://secure.phabricator.com/D4709 --- resources/sprite/conpher_1x/calendar_off.png | Bin 0 -> 263 bytes resources/sprite/conpher_1x/calendar_on.png | Bin 0 -> 272 bytes resources/sprite/conpher_1x/files_off.png | Bin 0 -> 886 bytes resources/sprite/conpher_1x/files_on.png | Bin 0 -> 895 bytes resources/sprite/conpher_1x/list_off.png | Bin 0 -> 177 bytes resources/sprite/conpher_1x/list_on.png | Bin 0 -> 199 bytes resources/sprite/conpher_1x/more_off.png | Bin 0 -> 385 bytes resources/sprite/conpher_1x/more_on.png | Bin 0 -> 410 bytes resources/sprite/conpher_1x/people_off.png | Bin 0 -> 1005 bytes resources/sprite/conpher_1x/people_on.png | Bin 0 -> 965 bytes resources/sprite/conpher_1x/settings_off.png | Bin 0 -> 1025 bytes resources/sprite/conpher_1x/settings_on.png | Bin 0 -> 1126 bytes resources/sprite/conpher_2x/calendar_off.png | Bin 0 -> 418 bytes resources/sprite/conpher_2x/calendar_on.png | Bin 0 -> 421 bytes .../sprite/conpher_2x/conversation_off.png | Bin 0 -> 1771 bytes .../sprite/conpher_2x/conversation_on.png | Bin 0 -> 1592 bytes resources/sprite/conpher_2x/files_off.png | Bin 0 -> 1706 bytes resources/sprite/conpher_2x/files_on.png | Bin 0 -> 1596 bytes resources/sprite/conpher_2x/list_off.png | Bin 0 -> 306 bytes resources/sprite/conpher_2x/list_on.png | Bin 0 -> 295 bytes resources/sprite/conpher_2x/more_off.png | Bin 0 -> 776 bytes resources/sprite/conpher_2x/more_on.png | Bin 0 -> 923 bytes resources/sprite/conpher_2x/people_off.png | Bin 0 -> 1668 bytes resources/sprite/conpher_2x/people_on.png | Bin 0 -> 1548 bytes resources/sprite/conpher_2x/settings_off.png | Bin 0 -> 1885 bytes resources/sprite/conpher_2x/settings_on.png | Bin 0 -> 1489 bytes resources/sprite/manifest/conph.json | 71 ++++++++++++++++++ scripts/celerity/generate_sprites.php | 1 + .../celerity/CeleritySpriteGenerator.php | 36 +++++++++ webroot/rsrc/css/sprite-conph.css | 67 +++++++++++++++++ webroot/rsrc/image/sprite-conph-X2.png | Bin 0 -> 11685 bytes webroot/rsrc/image/sprite-conph.png | Bin 0 -> 5527 bytes 32 files changed, 175 insertions(+) create mode 100644 resources/sprite/conpher_1x/calendar_off.png create mode 100644 resources/sprite/conpher_1x/calendar_on.png create mode 100644 resources/sprite/conpher_1x/files_off.png create mode 100644 resources/sprite/conpher_1x/files_on.png create mode 100644 resources/sprite/conpher_1x/list_off.png create mode 100644 resources/sprite/conpher_1x/list_on.png create mode 100644 resources/sprite/conpher_1x/more_off.png create mode 100644 resources/sprite/conpher_1x/more_on.png create mode 100644 resources/sprite/conpher_1x/people_off.png create mode 100644 resources/sprite/conpher_1x/people_on.png create mode 100644 resources/sprite/conpher_1x/settings_off.png create mode 100644 resources/sprite/conpher_1x/settings_on.png create mode 100644 resources/sprite/conpher_2x/calendar_off.png create mode 100644 resources/sprite/conpher_2x/calendar_on.png create mode 100644 resources/sprite/conpher_2x/conversation_off.png create mode 100644 resources/sprite/conpher_2x/conversation_on.png create mode 100644 resources/sprite/conpher_2x/files_off.png create mode 100644 resources/sprite/conpher_2x/files_on.png create mode 100644 resources/sprite/conpher_2x/list_off.png create mode 100644 resources/sprite/conpher_2x/list_on.png create mode 100644 resources/sprite/conpher_2x/more_off.png create mode 100644 resources/sprite/conpher_2x/more_on.png create mode 100644 resources/sprite/conpher_2x/people_off.png create mode 100644 resources/sprite/conpher_2x/people_on.png create mode 100644 resources/sprite/conpher_2x/settings_off.png create mode 100644 resources/sprite/conpher_2x/settings_on.png create mode 100644 resources/sprite/manifest/conph.json create mode 100644 webroot/rsrc/css/sprite-conph.css create mode 100644 webroot/rsrc/image/sprite-conph-X2.png create mode 100644 webroot/rsrc/image/sprite-conph.png diff --git a/resources/sprite/conpher_1x/calendar_off.png b/resources/sprite/conpher_1x/calendar_off.png new file mode 100644 index 0000000000000000000000000000000000000000..d4bbae5dfe50a4a3d1a22fae19dab21b7ff44ed9 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dymH|E?uK)l4udHoYuw=#3m1`F+ zUAb!Artbbp>o#u(iqti>Y}&rNy}NJ5oCW=pr%j$dYs!q-bxo~nH*MRvZCBc7gE>G$ zm`j5Ef*Ibw7goI@0_0YCx;TbZ#69i1&DCPSK1V6A|ljX`7M zcmdj^6dDjpsly1KgZ^76*U#!gO7qN1XjnwmjDL3(<6o}QjS#eso=A|fI-Ha1VitU7^4 zF_#4S1v9*VFRXe+1jw!Rba4!+h++hb<>Ny!&4k(b_5NaZPH5S$Aed2mh>T!gb62D?tun N@O1TaS?83{1OOB@VY>hT literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_1x/files_off.png b/resources/sprite/conpher_1x/files_off.png new file mode 100644 index 0000000000000000000000000000000000000000..0eb7e3996dbc4f241df3fe7632597474d3056584 GIT binary patch literal 886 zcmV-+1Bv{JP)DFBy}rGZ^wo`C zdaQe=q+5}pRS{Hqcw2lBEW@3`mQv(;s5VTuA`MQBa{aj@qk`Ds&zXvzF{n1%1`JsU z){0{!ex#|4_g>rW#=7Qy9Vf)Pho5)UNKkaJ( zr5|FpRi2)W_|b6~R4K>_>!wiBXk?}Vm$Ks(D8fKMBO0HxNM}r$oR_~ZYrCHxvW#)#;oQC`i500ebR=H!18AfiDaoM#x3@PHsKvJG;? z4g}ycjycBg3K(iqnYtQqC38fO2exk#qLFG$F1KT@lT@a|5C(CqfRal&7TuR?A>S%M z``4Ky%<4*`y)x@+f;#>X7pE?+qa5-|mAW-efvtvv-@J~e0ni5k1cTv<%klCePVAcl zxB?P~O(5)xSGj^<7IMl5SJP9D5rq%{f7c6zK^o<)gfNUu#DGm+}Ha50Pmo9a7cCKH){?n&V ze0+RBhMb%nP*zY-@Xeby5)u-#XV2#6=Wl3em_L8MkdTmtg@vi9X?}h_&_-EV+1ra*Gc(h~#Khj--p$R;!^1;gU*Fi+SW{C|U0r?q z_U+Ej&U$)!Kwn(EcoFExojZ4mii#E&7h79fM@L8Z^z@XLmKqru9X)zfSXekLEKEsB z$=uvLAt3=6p1XGK%F4!1H%z5db%cb)Cxz=Wae>Eakt5qI`fs6Vr#MC-$RD^{=Rx+10J zKoGfhxAePrdi68Se9Z*Xsy!>#`+bu6F+Vl5rp;+L>rJCI?{<~DNVw(y&rqxKepZ%{ zef+)swU6h7n$)#xVbgymY}&Rxa~{8v%JYwYp7_LO?ZX4tID8*1oU{5&nEBmT z4{ixr1XnVoqe$RIAPs>>9yj}mQFy^4V5~5By85}Sb4q9e E09M?7umAu6 literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_1x/list_off.png b/resources/sprite/conpher_1x/list_off.png new file mode 100644 index 0000000000000000000000000000000000000000..5f64e19b7453fd94f7c8673c0a35788d4c47bc5e GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)*Z=?j7nN1iHMMTqzPqZf zVaklzQ)kXuxOC;hWh+B>NE-r`F_i@Q1vAM1o_*jfkmu~_;uum9clP{lP6h=57f0rL z)`-R%jg2cK8fWHmC~ec1k&b=$uw}MQnC+#kjtLnOcja!Fta)iX<-Yc;aGv!RFZG@D Y4qR7FKlozqPM~oNp00i_>zopr0Fuu^od5s; literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_1x/list_on.png b/resources/sprite/conpher_1x/list_on.png new file mode 100644 index 0000000000000000000000000000000000000000..5f104f217d3f9abafeaa02a2e7e0de301e6db276 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvl>na**Z*L^#>OTpDjF0N#Lv&K zr>7?%AOIA$wY9agv(wkt|FL$;L!f%*k|4ie26_2iD#y11x&EFmjv*CsXU}isJfI-Z znkelWdyrAa;m!fIxeu7ODxv8$Pue7+MsH~NloUF05gNBKqq^PK^v4x0>mzG`O}|1H@QcvlOrs3Sos00000NkvXXu0mjf{zAFC literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_1x/more_on.png b/resources/sprite/conpher_1x/more_on.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c1c6b12a1dba49b903b235938137f02105786e GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy>jHd2T>rxW3kwS~Gc%AUA|fIn zARsF%%gV~i&dwek9Ss!Rv}u!)k`faWlb@d-kZWXQBrh+27v~)l~fP;gBzP|q9!-s)}*x1;#wze7@8&8}# z(b3Uy!h{LFzP@&LcFoPrQc_Y27cTVn_6FJ_BO|kB%^Ej1H+y?~cXxL_i^(BCm&=v} z`2{oh@3+_I|8RaOzyACF%TM{A=l}d)D*xk@z~ z2sk`6ap>K3TP5OZ?7RAn%bfQoRyFHX%&!03Qu=hK-)DdJrCLir?~QosrV%=Ce_7)9 z^yV{Jw#*hS$sxJR7JW9mcjJLJg9lqi!JE#9mv$sM|K$=`zxT>o^87unbVzJnN9)#h&7e!V{@4@+L6DCZ zK@dR%zp#MvQ9cAk5JYX=54NOs>8gEKoBf#U!aD0*vo_SGn`yI*9kb-T_nzG6+~+*! zxo_XeCN?#hh^9%kts$lJKH)Wy1xGQ zj!rnVPk3z(m&4^%b@z12m0c=zpV=yvt2(=s8l6F_?}IDGfk9x?8_gmKaBHC$0=fgL z?KLXY+HRe}7m7^JCS%E~v-8)0$~QR;lHjg&^s>6Ax3yi=V=zG&%~p>;|02DNM1L1Hq9-CVX&BTEx3Q1%ZsO1iY7+w%M z9M|9a93JvQ2e;`I?1+Xigm|zB5W!1l5CLZvgiSl3eH6-x>W7Z~_0?^aRosKDVn^%Qo7Y9#zMYn4k5fnf=BpZN zygi@XZsOi~;t`yuQv?de-(Sitwfv)b4%G+<5)+wpQPDyF>fc&>VR}cMeJ50Lz zc(tdpCGS8ICpMOtZdEP6>?K(qf6BBRC_ngWQAM0>alfm(zp=IF+#Y6aHrG_pyieaK zkEQu{7Ppj)*z?VT`e%Xy`Ue=ffH86#bAR`h+o=0COU;OqbZ literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_1x/people_on.png b/resources/sprite/conpher_1x/people_on.png new file mode 100644 index 0000000000000000000000000000000000000000..87fd8859510668539f4bc4813d2d0acb6689d587 GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V4NM`6XN>+|9_weBO@ad6B8dF zpQxxPGcz+A8yh=2I|~a7KR-Vg7ng*D1W+6(0^|w_2?4bL0gwSy$;!&g!^6YP%`Ge} zEFd5N6c-T@(bCci3=E8pj*g0ol9ZGL8VfWeHa1pDN=i^rP(wols2FIbn3&kQb?fZy z?SZ=V_4R=&f#w7S1p&E{k&!@Sy}Z1DB0!ZuAS){?EiHZN(j}lQ1hllYaB^}2b;-%e zDJUo?D=PyPdwO~TRjyvWnwOUsXfM!4pgXOtt&bl+&cVUa+1Uvc*Vfk7)YJqrfOgs1 z+5(;G?(Pm$+9?9?;j8l0Cbh3qobRf8_;A`RaKy;92^{+ot>?$taNpCZES2T zEG$%1RE&&_TwGj$rp=o-59n(T4-a*9^$Qm+7#JA5c<};gk)@?2(0L{%CT3=4eSLj? zetyl(&A^b+)6-kAVuh=#tGT&3(3`;EH8eC#O-%&`4$yabd3lYEjTyJQd4O>fQWE4B z45Y!po}a<~VLZe6_xAY={0t2J=NaZR+B+fhx81=25E{-7;aaSjWma8ZV zxZOTh`{>;}z1Q#fww&5={BG{s^yRbDCV6iAZoAVz^r-EJgN?hmFNpP6PqFZCxx-V- ztz@w8Z4*Q5p>6#e#hcDHbub9E3QoUR`RY(-!QACRAH-Y|l;R3ZVlT&?N-bWxa~9V^ zPlpHxC;7AAWL_Fg`udgs&DIAE2biof!l$R*(lC|XA|AId>fqBz@3ngmY@KMcHm-VM zV$7kZ{{jwg4Jg$~cC=fU#2g*AHs$x+aHsSs$C>2U{@obmav*D(^^Hvj?0l0HZ`xj+ zJ*BaA&C%l$N>iKQioHFqr-)5H;a;nyQ>TNb|`z}1cuwuit6Oq;-=g*{hw4M2L zDCsft=Xs9~y9=JnOiP&m!#i`{ohE;Mdv2R}qg_|H&mEQ6o^a>u&pCb5J2#2e|4n<$ zul4MH)tT}N@!OhS93dOx@7(?K!*j|N-~Z`t%j#5JS@N1(-ab0b8Svxsjd1m;VF&hW z7%Y-pv}D>VO^!DK`&U{_nD?`vVZZaI#ufL!1%w~1eITUpVqL-ie!2OeSoU=Fb6Mw< G&;$U=d~2xy literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_1x/settings_off.png b/resources/sprite/conpher_1x/settings_off.png new file mode 100644 index 0000000000000000000000000000000000000000..d75b0f1fb7e0d9a3bb374416f801316abfd70f8b GIT binary patch literal 1025 zcmV+c1pfPpP)R+QGokh?t&@>w%$B+4K@CvEaG4-wllXLCH?%9NmQC zpmgRDuY2?0<@SpP_f#w{nqUS31*fGSFFM*%AwIw4(Rs@Hx0KhUaDH`LLrtY7h0}6H zr*?B1mQ+gxgWA1`TvTqIuNz6pe9_gGAajMH9i5#M7nM8xtQU*{@*p~Lv+Fn|(;0@s zq+&ah*O`1lcWmJD`rgDcND~q-m|qGEMcNujXY-PZ^)aVx?PQg2)P51c;qkd-*#(AB zSq9O`Wu+f^lBg~VrS5iBE0m?xb%(~B;<2Dy-Tlys#V>YOSs=3fVM!w{ng+T;&{Mg; zzX7tt@Ytk4#J#Q!%)}Ft)rXqUY_W~hj%H{zrn9PE0W9*QaGo^)|Eqq}7;Yk? zlc$2|fP2~20J<)O$oJC->z=R;Rl@}|negdTw@qVWX(dE%C;6E-g9!1kXD7GSe(}T@ zE*za|W~<{$#AK0dA{bSEOcad_j*fT6iGVHm=H0!5F_6maRe6td*>Nubfnqk8YQ_c# z)IT+o>lYMaAU;kz|K9+>01}&vf>g(*q9J77W+K@kC@%{;Py`g@Q3o6*UkyO8Dq(Vj z3#C)dL66a7Du{he;Wb;7OoJxz050@tcuX{|SzQAFFG{qv$Ic@c2D8y`YnHQ3;Wf|r z8z(w-*N_jR5O1)2A_J z6#u_WMrW%-qZ6Vl0LZa`SF&zdH=#zFgue_(>iE~c89CMhqM>kY^V`2?)YO|WA-oGS zEsTWw$O}%xG_rWk;zpO~sTnK$CR7XnRUd#x8Wi{G`Q=r`dLd!8YUfu4kaZ5L<;RdK v0wII)+rQ`E$m+WdBQT~qy#j|&d!dRnVE@+Y3I(JK*8A9*!=wbB}jPB^3JTiT*i=?lIypJ5Ter^C)D&nVQ17*C*BToepFDXYD=RA}CkIpsbil)h5B2o) zR8>`hB2rRPLPA2kyu7TetU$K4wKdS$X=!Od20J^uiHQl2tD~dy_U+r0l$3ygfavIG zd3kv&D=RK8E=ftrz`(%z`ub_prWqL-UAS<;)zuZ~1t7V4^=btL1)%d}WMqIg0yPE& z1w}+eL`Fsext~9O{_x?$&6_uYY@oP@hX>FcKR-WTUtgd~Pft%nLqnjy+}+)Q-t_YF z^7r@m_VxyP(AnA9$HzxkSGTvf*Uilh=p^+O-Sl;Qs!8pnH;& zlYt=&v=r#tq@<+d$B)mNHEZ_l*+Az39oE;^2MnbN6DGWP@j^mE;>(vW&z?O?O-%** z9q344$d{Lw&zLboU0q#UTRSr|^W3>}z;M_*(f$Q6Ddd#|`2{oZ%RlVD|3S9?{zskp z^8QQtxll|K0Tdi~Pes$N%ZvwwM28^|5^? ze|*N$kLT~-KhLlKUSH=k|DX4tmwx}NGyk7{f7s{uUS6O1pNBoHzrX(H@1H-T zUes>xJz(lv@9E+gQW1CdOz>tEM}fA7Yi7-KPVT?9E%)}ewK`j?dy@5Y|D5d=-YhOF zdiVS9m|DS~ZioIa*(-Z1PM1BSt>EkGw740mQQm3ge(T!}X8)gI&o(ocZ~w^)6BbCO z)qE{(`^2Nxd${;{y2lcixy4pQDSH;pd%81ssl8gyRaC}ID-^}r_ElIv5xE6Ix*Z+-AM zyY=0|PxBrx{uOtH$?CrA!z;e$b_F)ROS+H~pRb%ARvH?*^{B-rQSGe@ib|yd4b>+X z&TyKNecd$o1_xux<=uAtI}2hDUVQy~Lu=04`)rQEFZyKuCBMJ3wfg*q-1!v5S)SrcQN##ao;2_d0O6EIz+Ad&~Y+D_S*< TN6nZEOf(Fhu6{1-oD!Mt<7U)R*SaOukK{z*$$ zuFWkds;+A+DX%K8u5It`1Cn`#B|vUnV@qvAGf=9axODdX#p^e3pTA@|Q2n~i+acOF zZQl(vVcw!;3zn?tn=}omxT>yU%8c2w<}C#3-MDSnJKvvQfR>7s1o;I6X&`v-zy3Xh z#Ss7geCMr@Rv_<+r;B4q#jUqjZ*w&p@UT4ydHd|#@+((1fBq|9)VhiL;+iT$HRb!h z2M+LGOmJ9pzU=dvS6^1C%hc!#YXX+A=Z#`Z8T-G@yGywo$Ouw)I literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/calendar_on.png b/resources/sprite/conpher_2x/calendar_on.png new file mode 100644 index 0000000000000000000000000000000000000000..b60e94dc0246c6f11eb78b5a76118b857ca4af86 GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!@&kNAT>t<7FDfbutgL)}eSz8o0s?^AgMxxg zO-+Fc^z`)j`S~?8G$JD-fw~eB5`ac+*|H@tFz{VQU? literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/conversation_off.png b/resources/sprite/conpher_2x/conversation_off.png new file mode 100644 index 0000000000000000000000000000000000000000..5c50e5ccfdafbb5047d24cef9dcf516e04e045dd GIT binary patch literal 1771 zcmX9-2~bm46n!9ZG=Py-QLz%8ao6&3sg|+?#RVNU5k@VRAZ~RdAcQ0=34|S$pb)kI zAwqya$R~gV0Vg1XrC=x6sbi<8ao2H+b)#q3Cs+ zI3+jlJfghQe6ch`tG^^pO|MX?1qsPjHTB4++d3L_EqLXN5>wJL&*m4@Y3X=TQc_A< zT4qjkEWfFx9krzuDm(yLl$?SbRjmg2SWz*t054WlO42ga4Z0eQHYQF`U9Z)*cM1}d zqvPUb1w}x{N|H!LNfMN6^=+BC=g=DMipnanRZU@uLZ#L~ zLP>emL{qgUIVJ79yp%6YK$ocr^ zg$ZdAX=+9`LdXZ_iTs?i3S~726cj7K4TWf(o_z-Sh{9610fCLpZOxZ1g8=xzL)0Q4 zCW8;?PljMJBp?JnXoNvbIsiF%1>p%ai8Q~k7?L$QJvhK*3;qtNywWcZi ztPEn&0!`sOxZauevvu1iNqQvHG~|^@}~BmbF8_uWSjHbeBKvz;Z5*?B-6y!v6x zA8T`h77eZznZm<;QvKg|glIO~xq6bo50`Vh#J>JE{sys}={9%z!X2i&?F(F*qyBzk z%UZ`AaCj6Tovs}TttUsAe6R5;QLk#-Y&WvbK5%_QmYY@emyL^huB#mVT=lGI=k>Ry zp30x$`mWyV^p}^I?x$hxqCap$ zzvaCRJVEnyE`LeJ1I~Uhq_Z_^MvbR2enbKW$l`&_h{~^I;Va~i`Q|9b< zoOh*nHr;sZq{fc9|6Xa`m%Fb&+3y)w2*<(z<| zqE_K!6IkQXF9;K;PLJriet N$JT%?y3G;N{{WR+V@?17 literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/conversation_on.png b/resources/sprite/conpher_2x/conversation_on.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1bf1435d352f5c689f8d948c11ce8fbec78385 GIT binary patch literal 1592 zcmX9-3pCVO82@_=Lm0;Uk-^9-jPaZbV;FD7BV!dIvS(^HuWh#(DX*+G>$#JSPN-0; zNuxy)H7aMtXpL$dg+|42NW;+CRayHv?m7Q^zx(?h_xJto|CUD50@YQGR1pMG4-TS6 z!|JpBp%q}R?=JX&AoA6bVKM$&TU$y>N&qS=D}%i=NqhYI}qB1ct zp`)XttE-E_V2q880R#hPO-)UCdHG$tc0oLBcjDF5)D#pHR8>{6SS)~G^LRYiLYRSp z0fWJSFcTA#*49=H4GnE=Z7P)tHhA6L-64Me{{0ZVwzfv6(}5uzBo>PShiVW5DYmw@ zAt51seSL5=l!D^`1TUM-*3;8dR8%xHGz4P%_U!|3rxA!59UX<)!omXj1xhlRtfi&J z+}s>0+t}DZWqo~pFxuPOV`F0vA3p5o=Lg(?Nql^~y1F{#0u!i4p-?~>7yyD4AP(RO z2?-#My}doC1e}3`m6a8^BoawjSQxkfiHwX44Go0~adC0L)5pgrC@2U>LJF{j7J`F= zqoSh1!^5Maqaz|BXfzt6KsuRB1~Q-$C<7_}{{CiWW9Mh~%*@Qv(o$DfR|0_mBEVf_ zXJ>=vF)=YcJw4xahD5>dSaK?wb`VyCPrxDMBn*P&Au`xLZ{%n2kvy_ENxJRDU}7_n zm2PrpBL;c)w(?132w{aoCJ&DCd3^5ki6IOcI zOB;*)JZWPF50{PMBdcVb6vq$~kagVZ6DfI~gKXlmxt|FL!mef!2jIPo22&|9%*5py zQT${i63FRnanL=cb6TlPCDpjByr*}22+GG%r%%`S_I^p~_$k-0+->ftI5DR|D)pS5 zwGxsamtb({UsbA&J(eCzXeuwtOXE7@D%NRLI&Ej@YfYlnjo?)OlZOVoyE|MY>%LBB zqffLp^+!fiuPV~6TzK^d{}78{KN(74%E~l2#qzbr`HYXJ;=0q<0%pjISBJ_{O%Ty~ z+CQdQ1$m9R_<~hmJ+H36we^HwUVodfQgHWzl>@b-mnI4e);jcnSu>gE&A9a`-ZdGi=mu5p-LF8HIZoaSC-_q zY!B&ay%NSF`PyvT+=pHPX9@dq(`W#-U^U+0Sm|NKP-fyM2C>39%I3LyJW7I3c-qG^ z!yYF~HWQI3$`JGVl^cC~j&P02*vpR`3{$1C4R(`U`Z?tkEs3An)G+6>2rGJ;FnZ?e z?K0a;Led5D!FT#Aq8AOhnySPsLWCYKuC)fmWLEwAN%I#}lV=p)$tCgbY{g8mGog6G zNzimXt!{B(&b`+sT!5;`r<*SSnO;z&8y!zKmmW#PWF^-G#xJ@zx6;{F2JyX{0o`9; zbxn#+E<56*?iAsZFAkP>jn^Ol?FdD++;#C8E~VM8=G>)QGGDb$lYCOUK;h=lQLox8 zbOnZnR?EhcY)G;4H!M$7(5rucpCH%mc}1gL97dXwIe|WxlE{Z*one~X}HS?fb zbm)>TVzrXyl9Kg|5f^*q=td?VDWq EKP(}EP5=M^ literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/files_off.png b/resources/sprite/conpher_2x/files_off.png new file mode 100644 index 0000000000000000000000000000000000000000..b593b1437fc363dceb124a8d6f82047e4c56cc65 GIT binary patch literal 1706 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 literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/list_off.png b/resources/sprite/conpher_2x/list_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a9add168df36aa2491d60036e25e3608608fcb25 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!TmyVUT>t<7pIcB=*VJ0q*s@^B ziptssASx^=&nqmhZ*E<Cpdrt$RT$ zOI^h|Owy;in(WqoEGx)+*}{)mLA<{8&+{1L(Ch;r|C#Vc9-dR0ZdXwCg_o!J)?B7d zxen9WC)Jq+?9y&XsXxj!&13JqbJ_wEozG^nDhd6V-ME8w+X1l~hZ57dgKqB=Q@MRk lY|_6R?wrQ*#`1^1JK}6beE;@X-^l_w($m$?Wt~$(699qBemnpG literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/list_on.png b/resources/sprite/conpher_2x/list_on.png new file mode 100644 index 0000000000000000000000000000000000000000..0214b6b0caca95cbbbebd5ff4d8c0b6185ae4b34 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!>;rs4T>t<74`hmnhyWSh$jAsJfr8D=&9=6-o}QjSaa~>Apr9a#VmmuKJw3gsl{d`}aVC zfuCP?y-rvakk#$!;uum9_x9>(zC#8)E`ipWx0uc?KJdR@d$Vd#p`wse#<^47Sz&v- zY?K#eYNyV2`O`22*qb_vr-gS+63vrQS&IHv)2N#OwC6R_tyqbm4bC V=kr-i-pvl=LQhvemvv4FO#tt3XH@_I literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/more_off.png b/resources/sprite/conpher_2x/more_off.png new file mode 100644 index 0000000000000000000000000000000000000000..ce90ebc722eb576d827f4b8e5f708ee32694edb8 GIT binary patch literal 776 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+yeRz!(h}pnDdtfSL)^0yJUG#w{%!-9Xv-OO^wz13Is( zZ(`4c$v_tZ9kX=Ry1K@ex~A6Vwoah3H5<3C-L!4}mK{JY&|hs`y+B(a>U$?n0a`a< z>I|TnK#Qi%nmcXQJc!qTjs&_5;z6J-3zx2h7!Gs^#DhRvAie;)bH&Fv{eR%tXD~pUoZnd5XggpJ`~u4fj*55Fo~A$pt_-$_rzS2EA3yATYSQvC zBi;Dxr_bL@FE)Lwyzn#aUfn;tbF+4Q`Mj&`$nvG?$62Htf95UB__KjU!QScsM?2%R zi#J(YTU&pwJh&>OrqbZP8QUrTNk>-2YuPLp;NhC|_TrB+g?&ygdQ;|Sv|eR+yM(Eu z>ChgHvXD9z;R*Q@m>xfGOEz^-XV!|3n4r*hs$ZP-)7i}r{zR-{dy#fXL`1D{!6)IF zjWvgJEbRGKGhX75mc96cPhp?ZA=Ya*k`J=IOE)#yCp6Kb*8)J>r4+-|b)m8^c|;R$H#` SJI@0Hp25@A&t;ucLK6UDHh^pZ literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/more_on.png b/resources/sprite/conpher_2x/more_on.png new file mode 100644 index 0000000000000000000000000000000000000000..9b2b0f43213e724a71378106c5a5d9b686ab15c9 GIT binary patch literal 923 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+yeRz_>8LC&cyt|NlS{Mn*;^CMITP zW=>8{pa>fq8<2zp4h{}hR#pg?ot<3}4B)btFJBfC65{9Q2Py+HfO_TR`iJhHYczC#*o14A8y|=fwzrVk{ynI4Jg0;0Z(2qc)0s;a&Jw07r zT}@3*qobpN?)UQY0y+lhcx7c}pw&Bf?sRu|kBW*aFE8)v>RPvMT}4HOmX?->hsT8r z7qqptJ3BjVZEcSpJ!)oVmYSNXuC6XADQRM2a_7z+X=!OcKfgb#%bI{O6j&1E7Yw9< zK%c?CK3=}we!qSEd+4~e1DaosW*(cj*_(6Woc!yXM8CfJu6g@iX+!Ws zz6+l9@9!F|cyzn&22Wz>>dD#i2UhM`6xn#Ahe?Z7R&M&?S0`)NZD;g5tUULToJ`Z+ zL-WE9^c}UhzMf%upS|HCXLErq*IV)~oWGyI{a}Ut4%wcl3w%Ge^-Esl+u|P6&#|bZGd0bv;YN?i(eKyl~A)BO&05E+1hbJ|1JyBV69u#e!u6{1-oD!M< Dttn_i literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/people_off.png b/resources/sprite/conpher_2x/people_off.png new file mode 100644 index 0000000000000000000000000000000000000000..ad51a2427d1bed651b4a368dc7310bef48d8f55d GIT binary patch literal 1668 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 X+>W>HiM>&(00000NkvXXu0mjf>mPC+ literal 0 HcmV?d00001 diff --git a/resources/sprite/conpher_2x/settings_on.png b/resources/sprite/conpher_2x/settings_on.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa6501876a6c2c8215b5241d6aa7c868fccf8b2 GIT binary patch literal 1489 zcmV;?1upuDP)^**2-Yq)Br*IY$Q0jAc$4qSJ0N5EU1lOoszI z|7?h0*sKhutf*tm4VE8uOb{t#h|^ZWm|Mk7YFZUKk!L@era5U^+os1~eb1ldJLi1w z^L_92JAyDJQ!*vvkYp*Hd8CtUdVxx(dy@2nzbzNnQcW?9zQK`c`Xnu3W|}fO7Lpy% zg%RrRTT!rJ2@d?%>E{LJGuN*(XaumVyBH%y}Y}j4G%0R z$Vd^Fi@x0Kk2@~mKtiSg=gkBG9tO6@Rk4Xy?m-WJ=;Ao8IM2vz= zCpR!NW@Ra+WxdrnRW)(v!^!A`#l;V6P^aQ1N-;2}MHhz9iF)5sDsjXV<#Mup2?H2< zE3geKMs`fBBA0CDk&OY7^)c!dT$ou!dP{-;`}=Kin+_LNYB5rckvf{P_+L#0iAq-B34l;JZBLmTV)pdugNR3OD{5 z>@1f&&f{fPUYJN28U|`Vp7UcuaB!=4Ao?$F9n1pDx0Pb1mZJWI%(3@d>lgqUIP#hx z2tukjKa?3v^Q3w*J62#uL86-6V5(QAPw~tSCXYWq+5=-b7t~=pCJ4!f#l6L>rGR`& zA|17jO7b!ADyvz_?C~NLVn@Nnaqe)2eUadFvzIpRunQRlGfe?OIJB+=d-%u}eTZ|? zNF8RHFj8}UoB+4jgT$xcL&S^!Eo2lVKIz9#Gh!&P0|_skmjwaC$Ipoy3qQ7xyDH%C zgh+Pt_DLw%IMqHFF~9xZ0c`_LyS>vsDu6U%Yxf+8q2DLln^0)r%I+w{@T7AMMc5+= z=`dZuJz67iBx7QMC(%0TVL*m8o-+(9&l$reaPbASAqoNpygx(`>Z!XfXd|=t<4FK>EJQH>{ClzEx*;y~H2_JN1n)wBKG;+j1 zizTea%yQ7X=j2k?Hc9Nm5 z`Og{CJ=M_2(3t#G({IXod#XmQ1uiPdk~9Rkbj%s|)6P(1yPkbVGz37r*0-7C+@Y1N zQ7D^e;U~7>}bH3BAr;ldq!7a0W?A3+a3JOpoR>w>Xz`mO^78*NwPRn-?D*ADq; r<+RqDK5A#}#XERLn35@(lF{UUJHQ4!3TH $generator->buildIconSheet(), 'menu' => $generator->buildMenuSheet(), 'apps' => $generator->buildAppsSheet(), + 'conph' => $generator->buildConpherenceSheet(), 'apps-large' => $generator->buildAppsLargeSheet(), // TODO: @chad: should we actually remove this? // 'apps-xlarge' => $generator->buildAppsXLargeSheet(), diff --git a/src/infrastructure/celerity/CeleritySpriteGenerator.php b/src/infrastructure/celerity/CeleritySpriteGenerator.php index c6b2ac23d0..bc25743b83 100644 --- a/src/infrastructure/celerity/CeleritySpriteGenerator.php +++ b/src/infrastructure/celerity/CeleritySpriteGenerator.php @@ -176,6 +176,42 @@ final class CeleritySpriteGenerator { return $sheet; } + public function buildConpherenceSheet() { + $icons = $this->getDirectoryList('conpher_1x'); + $scales = array( + '1x' => 1, + '2x' => 2, + ); + $template = id(new PhutilSprite()) + ->setSourceSize(32, 32); + + $sprites = array(); + foreach ($icons as $icon) { + $color = preg_match('/_on/', $icon) ? 'on' : 'off'; + + $prefix = 'conpher_'; + + $sprite = id(clone $template) + ->setName($prefix.$icon); + + $sprite->setTargetCSS($prefix.$icon); + + foreach ($scales as $scale_key => $scale) { + $path = $this->getPath($prefix.$scale_key.'/'.$icon.'.png'); + $sprite->setSourceFile($path, $scale); + } + $sprites[] = $sprite; + } + + $sheet = $this->buildSheet('conpher', true); + $sheet->setScales($scales); + foreach ($sprites as $sprite) { + $sheet->addSprite($sprite); + } + + return $sheet; + } + public function buildGradientSheet() { $gradients = $this->getDirectoryList('gradients'); diff --git a/webroot/rsrc/css/sprite-conph.css b/webroot/rsrc/css/sprite-conph.css new file mode 100644 index 0000000000..6b02619ebf --- /dev/null +++ b/webroot/rsrc/css/sprite-conph.css @@ -0,0 +1,67 @@ +/** + * @provides sprite-conpher-css + * @generated + */ + +.sprite-conpher { + background-image: url(/rsrc/image/sprite-conpher.png); + background-repeat: no-repeat; +} + +@media +only screen and (min-device-pixel-ratio: 1.5), +only screen and (-webkit-min-device-pixel-ratio: 1.5) { + .sprite-conpher { + background-image: url(/rsrc/image/sprite-conpher-X2.png); + background-size: 99px 132px; + } +} + + +conpher_calendar_off { + background-position: 0px 0px; +} + +conpher_calendar_on { + background-position: -33px 0px; +} + +conpher_files_off { + background-position: -66px 0px; +} + +conpher_files_on { + background-position: 0px -33px; +} + +conpher_list_off { + background-position: -33px -33px; +} + +conpher_list_on { + background-position: -66px -33px; +} + +conpher_more_off { + background-position: 0px -66px; +} + +conpher_more_on { + background-position: -33px -66px; +} + +conpher_people_off { + background-position: -66px -66px; +} + +conpher_people_on { + background-position: 0px -99px; +} + +conpher_settings_off { + background-position: -33px -99px; +} + +conpher_settings_on { + background-position: -66px -99px; +} diff --git a/webroot/rsrc/image/sprite-conph-X2.png b/webroot/rsrc/image/sprite-conph-X2.png new file mode 100644 index 0000000000000000000000000000000000000000..df789c68efa849394c3c62e208df3cc8c122404e GIT binary patch literal 11685 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 z z!SBnhw~-yrqy=O}O3(D>f6PXX`=2?MeXV!nxYch2Me-|fIel!aKd5@-FxFoD(3qG$ z>dqwCj$I{~^tignO?1#sM+NFII#>=|PA}XT9Ir~!1ouAuxj{o(Jhe&(2eVRrBvLW{ zX1YY1{xCtvOtg|-_sHr+|$br8;$jBaM4HL{*Hd-ZAAS5iqFxhOy3qH;WJPP zQ5GKf(H9;g>ZTE(xhMmV&xFp4!mACQ6kAZ*mRK&#tnXInMN$h{t33qXU0;1d!YdVQ zSiXq{8ja&==B|9~h=_?JytVsukjy!L!W@3V!8k3>EJ+qmAC zwqQ+4BxSksTKAwhTKEzmBAiAWn!-Uhm1Q5r1M+oh+CT(fTCLE8t2GL!e>!)*^26h6&!+mE%r()7l1ORq%j*Zn^&VfLw3>$wz?ZgEuhfRiulODI|g^v z3HXQ!?NkTc0v{XEURjs;;g13ZTu?Wffk}uBB1Xk0pP19|LAEv7wc)D{0TY`?mICi>uS&3!D z#lrm7@yDQX2UNv;!np)2OCD1u$S7|*#w@uIzFESN#?3$3&VjY1;vg;o-6^N(rmE#I z?u*-puq(67a$W=}{;ViG?PP)?^2IY7q5bwXlj|bpT@|*nnBWj?;R9*c)vkI{==yJK z+OJ7ZsHI0mCTb56+(xU=jZUyY@idH@*}Jz!FHhwVh& z%-!rbknqJ%y6$=m2>M^mAHP?Ja3JU|D_L$!d1yNktCP91R% z^sdA+Lv2+5>3afF%Ri{hiGg1>AEbcY09C0ynt+~ou|FA0|A+75$GspaBFq6N(xmKn z9gNft`0PSaNZy;LB?L}${V`ukIb6b1OfZ1486hXEzRj%|9)_ke0)^w=6BAE2P9sLB zczAg3oLctk;|kps%vZ$YY}?#c48Ywhw*E z9-Tr`|I8OYYt^MMs+)yJ2{@FMwdJROLP-VrZPm$B9{$pWQP5d3BbvwSInJpz2S~lP&%6J*4U`oG|c8ultdZ-30&LXqAMVxOY zR5+H4i_M^NeD<*@j8cWK9*^C~1>=ITpGDa%i?qLQxvvJ?yq*>Q$Gj%s=KPHP95t^^ zP4^bw!H}OZK~^(>;87hbNTuyQ02>-f8uI~t&h?dI2kfRPs2VG67OfnzoZo3(s?)t+ z#Wl#*wU~XMDwO1yF&5$nc&C=K4w`FR%}_dEWa+6+b!t1)KX~+KkFv6}1FGd8t?-Qr zJ@vjKue`!DS<#|DRJ9RDD*{<)YR4zcjNNjZghG9*Nw}JcmU-iH$xwJ0IUm&X)aG)V z{#170G=q8!>bBni7e-8v=JZhSLbD5xB$B1HM|i*MO=)fy~8A zgS01`TbWQ2dHtM>gQb8A6XQUKH(BkB3d-%2+7RQHy#8t@dO?Q^?&FWYSyMX6=0U_U zutOGRCvKX0sP&i1*iZ*bDIV*u7$<4y32wn6Su+~GKwA0X50|USrB0+HB~nGX5W5bd zV0Tw_jm3p~9N0Q-$WNv$gtI<15ql{y-Vhk;$-P7mIU;FPGZp9htSGeNpe~ zUG3%!Ck!~x0x$&Z0qXw6+NR%d;2UarFBb}t8d0ggQ~N$B{g=OsY`o1)Ti?JFC)SmW zK*_h6#!*!{MI#b^$W%WBR%vTV|JHSBWiOEbL)#x0ETwc^+bM0wO^K~r9Cwnv&IqED z&&D{D;ndcz4R@}(DT_-5^Xe_$2@gNTgrUqANgKihlvN`IhtEoZ>k39fnLe*X@uAE< zp|n)m_-rYiy}?RXGfQgeoSu~tfIn9gitsM2cmW(8&Mgu)!kL2i2!}!;dqqMF(y^e9 zI~R01;=3sEx6tGU?T4}5CA2OcyX`8Z8(nm(+>4E2lgtM25{g6ULbII18nldQsg-hUeos`nXkJq45-+ZO<$J$I;8 z09{`1R;CABZx_>-1*5lF6o4Fwdo_z$xY4-{w>WR5YZ!jkDyXe&Jbt*MDJy8mSIE8% F`5&5ps<8k7 literal 0 HcmV?d00001