From d3b2fa718a7fc4e92ea98e8c5aefda8f9abddcc1 Mon Sep 17 00:00:00 2001 From: jwinterm Date: Tue, 18 Aug 2026 10:39:21 -0400 Subject: [PATCH] fix(icons): the Hash Bags # leans, as it does everywhere else I shipped it upright. It is a typographic monospace hash and it leans, which is how it renders across hash.boats (hero and every feature card) and how hash.boats/splash.svg draws it by hand: "verticals lean right". Where the upright one came from, because the wallet repo disagrees with itself. assets/images/hash_wallet_app_icon_source.svg rebuilt the glyph as paths to remove a font dependency and flattened the lean while doing it, and store/play-icon-512.png is upright too: its verticals measure x=206 and x=306 on every row, no lean at all. I took those as canonical and explicitly rejected the slanted splash.svg as wrong. That was backwards. The brand's own site is the authority on the mark; an app-store export is downstream of it. Both icons are now rebuilt from splash.svg's glyph, mapped onto a full-bleed 1024 canvas preserving its proportions exactly (glyph spans 57.5% of the tile, stroke is 8.75%). The static PNG is rendered from the same geometry as the animated SVG rather than being a separate export, so the two cannot drift: the animation ends on precisely the still icon. Measured after: the left bar's centre runs 225 -> 204 -> 182 down the tile, where the old one sat at 206 on every row. Still full-bleed, not splash.svg's inset rounded box, because the site rounds icons with a 22% CSS radius and a built-in transparent margin would show card background at the corners. --- .../images/products/hash-bags-animated.svg | 43 ++++++++++-------- apps/web/public/images/products/hash-bags.png | Bin 3066 -> 5723 bytes 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/apps/web/public/images/products/hash-bags-animated.svg b/apps/web/public/images/products/hash-bags-animated.svg index 6989ccc..eef2f96 100644 --- a/apps/web/public/images/products/hash-bags-animated.svg +++ b/apps/web/public/images/products/hash-bags-animated.svg @@ -2,33 +2,38 @@ Hash Bags - - - - - + + + + + diff --git a/apps/web/public/images/products/hash-bags.png b/apps/web/public/images/products/hash-bags.png index b971970c4570548e809acf7d89d838a48b08d3dd..5ea7b64ea07b4730258d29ae277b5594d444c5c1 100644 GIT binary patch literal 5723 zcmcIodpMNo`+sJPQ^_I8p=6e#q#VYEB}Qv$TczzFNoZvVA?GrfV%t?nTb3EbX6fMA zN>0U;Q(32ykQ_3}`FuXj{O)(y)%Uu--|w&eUDxlAxn|yZ-{-#X=YH<{^ZDFw=)nUf zYgWmuLI|z-cCXPPgz)eaj|BMOYr^mK975~mzcn&E;`es2^*a~q-s8;C?yD)R@9JYl zOG8=n-fNY5A2JS!k@t4pUKK*#vqz5dgmsp&Lzg5Ets6C&M z`Q=Dw)FMJMT_KqW5fCCmU^s*X5F*1bh*lIK8vOe2xBlVdL@>DIr{$r3TJ$f?}2@k6V4kv3j`YTe7b+g{~ zSyg51C~fH4Fgi69U{j+$S0*>xJ5ypao1PcwzCR_3sqntMyF%BZQBY{<_mdL+8qExnY@E>ay7%+vGHH?9>b@1Z}P$(Li7 zCKb20w1hSX_iGeB5^X%z-3hJ-^qa<$zd*Fdk8-r|(g=ACOh{nWau%}Tpzho98hM)QxI?6wG1DI7AVUmJch zwBE{weswTDH(=C&e9Xi_XyTU6FB}6^Q|l{|imCy%?QVgdtW$So2`!Kg71y-cPBCQ5 z-!U3c+4<7fhHn?v1(Rp-r&_t}O%B`(8(0kFHk`F7X1|QwhU(Xdhv`o)a z)4o3BX>;Oy{r(>jO09Bw*fMDG_~dYRZE)?BWHD)c2&dMavImi`AgLF*JXv1;=~Lpv z5v(#(U1(g#$Z3*e%DQ74vMQ^jD1$z_6t|su_e9abf+QJDyQt%aXfsvQ)44yQT^{zt zcT|LNPX(Fx7xP4pc2&)u_|sLHfGq6a;BK`ak&7+`IvviuEJ`f!SPul{h?&-BHakccQze#v5cbYVoB75my~ZBgvYkY*tPbe9+IcD=-YxkjC-Grj&t z4JGfR01=No)EvwEI9qja(E6JpC{1MSq0cz;%*z-&IMjv7(vn`Un1~t`NR$L`wo%8= zqSp%owy6zQMoC}K;%ytSptCB|_KNdWpN_A#<%f1%&O&^3$1zwF8DdDv`1AWSxh=*> z0TFqEDXWBOAtor=HB%ZFhLvKUCX2wdD5!Or=O(#)-4NtqauY8Gi5DPoi+xitC8QaPSl!?ADYOgim9(ZEf5+Ax zt=3mt`Tds*jqYJj)$wHiDh~aTRr!#|-SMPsyn3LIwhhw8|BPrVINLhYP{kVI?sxQ2 zJVZSJEwIVD{AHC`ATJcldA6ZlU6`7#ysm#?PC_*tge4Sf2iogL7zv*&ds|B(Bihjv zS=9JZHV!C;c9dfOAImxHhO`1hJ@(>bOCDA0QJV7g?h4gXNzP0rRgC<7;8b?;rcBlL zk#CxSG5%LJ!|3V%#Aev4&$7Nk?S8|z#w0#?1oWOMBBDv)woPNW*~+ zs%+=?7t%AoGn;;qr#WX;P#X|%R-ZlJc2djS=v{lu=$6g(GJd0#MVS{ic1@LFIs8-~ zFf^NM?i6$u0Qb&(72IdPzlLZ+(AJ%$p;S&(@uM*c557aEk(Ypuusog}r5KeqMCDuB zM4P8dNb)I-@iP13mXW2Yxh1?TyaDcovak0H4eXoF?{-VakTOyp8IKL3$6TzM3^em~ zveoSBzEzwv0H8~gr8#N7*BO7EPsP=_=Gsktyo4D{)@=yT0PYme(1>-%6K!HXDL@N* z^L1#AHa-RbwxBpB6l)|q^Jx`rxl+=isLGra0$)IS@cEz(I7g5D_tz$2q)Ak3}A4k~Bd5aRg8QUUaMNX0~*O z4pcaJysvqxE-Z--$aV-|O9mDZ*D}hZPi(e z*Ra+58Wsf-mp#csX)E@-@L>(O7w}nwi=vrG9udvJF{@zX^=0foyoCK&JEtV;YK0?X zZky05R?$L+DKi**z-LwJy+Q7TI&WZ-a7+7Lr|L}KESUtTrUP-j znE8Pcq5v4Zwx2!Fp+~UW$PN_AD1i`>{OJEVUZ~UL{JO@;S{=!_EM> zQW^#FX6+5cLEUkgRDlLs0BUI?M#BsQ*k?rg`i9O@?IK-xsJdXMSOk_0ELh;6j+!>t zv>@k_@Fhq-><+3!CtEOEnv8LM8ZOIf-kF85T~_6S!7@~Kxm3M~owOkkWvYPcFM=9meq_Z5LE;#a~ zGXYlrX{i{~C%s>M75fxpp+7KA`lb@gw+*%<8NTYgohHexu8n~Xpd@mD44&d5M+7=v z4SuOWJ9G05^Xjn$E&b~+*w_7f4=0R%V^k^&SA_wtGzXUCsL{DyUelTxa8_tWzq{rcmFja?|b`Ly|t2vkuPESoDmDdV) zuLcQdh$6Re!K1YKeVi`I8WC_bS%|3Q&kOjD`wBE7+L~ZUdN#0iaA5FFAlC3sPnX6|tls1BCv*n~~qgONJyvHPcgS z&TH}jr2eo}*{xyFJD^$+j=Te~H6!dAN@E*hn(@f5}Cv z`uHiNQg{z~nID)ZYpER-tNyn40z_l%5}0r*?h2|h?5Ttf47MMjjRMq6!b=g5v=mq2&SHnV`MP(Vskkw+ zk%|+gaAiQ@+d&_dHtW<$Z)xfygWj4jZrT;lFT#xGfUINv{lAQ2b0X9U&%t}CifH}4 zR@aJwYF?~o_Q5ovrn@iq(a`I^fiPdADDL?5i!iLP9>S7;844kDp`ckUo254 z0R)?*usWZYaCE&2iX+ioj&k;s_J|EylC1LTvYGj4PS?wJ{{n+`a+`GJNc@c-I!8{M zibR-H@ZZv(s$D3b`(a>s7%St*=FW0Uc%M*a!0s;IJ=ekyuQy)xOgtD~uQ{tTK2_5) z8r7d!dMu-OtjA5sQt5{a?gLG}tNZjB(gYOl9pu&xS3->QL4~}MCU+qIF``gP=R${( zmwxN_-$SQJLH14@tagPlXV@*bqpSHC3qEp->40b-@?Yj@>q$$B-0tWcIRY*mOjh+%HuTj*Ld{r{==rO&)UL2oUm4Qw_^QnIEVLF Yg>~Kzwp-wBF+$&dbHFHLkL{)Z0gst_bpQYW literal 3066 zcmd5;c~H|w6y5;dVpK*HW09#Sq9~|b;!hGSilGK7C@6AB$ zA+3sx<&Z0l5+N`Mh;j>wNf07pP{Y}9Ndk03b#yFK!9UvmwL81}-oE#J-@dmOzO%Jf zpSyf606-nT$I2c66*yG^vuDDgpWHYCz`PQ?)sFpSVV7u!Ee5|V>iM1K6J>Qd_d9em zf?^ErTGw1=w6EA&Prf!&m*kMQ>=G{0n|^7|5*e~MD2_0`YvAx#YnM93n}A|QZooW% zn{W>n0zic`H2`$rfC6AP_{`Qck1O+dcga+|e{}pqOdni)So>_8N>9@}p5jCd$t<## zQGNPPqS6%E`l&a0NpHJ1;?psw@a%(#3sJuesZvz~ihk3vW2&w5rTGQXeBBpa1C?06 ziS^C0XRfBD7Vg-HO7DX{Si5S!H!Pk3$5Ip+k7inWZ|iO#B~ub+%?9S>lq_AXnwsFj zlUEOXlU7hVC%AyoV^`WV;eW;H;0T4FLA7JUSZ*SP3aIXF0gnt)jfchy{QJfet5w~Y zSQy6t9nbf?Ll&mQ)?`|oYz+sMIweU=3Q+OkeZ&xr<@;WWzEg%{|fOY@<(! zFioIQdiP!?kYuBnRroa^{6?94IM&p3*wOBq#6vrQ2F!C}qg!=D+Y~7#-)l>D$cgQZ z!&`74k)i`}oD`zTi@`LHQ=#{iCe94Q8@!SBSiX}DKGP)iiZ}1!^Q5X$#0ZTF*vSw* z&%3G~V{CG*onDkb4CrrGBAeCzYP;Z5-W10 zTUu6ld#v0(QrlM6lo~Ro!g!c%!FIuzZ|&^RXLuyvVRG9?1$FJJ9ir-lzaCz0=Sb|C zm%iGHMi)9aGUHcPn>rXjb?#{lN1pmP-7?_TYYz=yN~9=;qv-3ZHIQqdflOSXWc>O) zv)wAx2)_W@3?V5Q(@>1iJq0XoRlFB}Hd}_47J*#Qx znD(IKgz(wZEkhqM^zT0#9bg{koX)5_Z~v$?o;a{QiB@b7%eMC)QT@8`zhAsXmku^ERq?ah3>1;%9$t? zrEI6yHs13!ji>bPlHQD#4P-4APmg)O$lm67rhck%-tGl_Pi@Ir%518Juz3M9(=XuW z?L&y$Dk%MY?rt?O&T?^xy=2CJz0`G3=858tSkXN~TKX>p-!HT^LCeIINSrIPPhvDr z{;EDg(=cmerflg`tEi@XFNMXG9#}iUd}-LIVs%e#)S8v%ttZRhf$7C(cCNRRiPI!> z#aEu{nM?e^Fkjog)Tv%h3y5lo5KY2X*m9pAXeAzp}nOD)4>X{TcuqxH|*r zK**;L9<;(i!znd_PYI<$!%x?y=IM*#RA%=@aVo9UsE7YMR6(d^Z1bY_PA9z;mJ zax1G6X^|icK|rpJKAK63V27T7iqQdLvWW7boF)mx#LPpXXUZAUMmZ76h3Y=|gd7<1 z`pi;2X|FTsV6qt}dE!S?%1WY9sAeGG2O1&ML=;Hkve=Y$-I^C^#O+PAn2AqGUNlx% zEYFgk(7p`s>Rk`Ji>;-KOL|W|f`b4nW1qZ}P~q-BZ~YgA?+ZmZWpZPrhRdZd+;&FK RSqbw8_+7SESv!xM`xE^MMos_#