From 1777e9b556fc4d9a2b2fac89471d8909fb7b2445 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sat, 6 Sep 2025 22:00:48 +0200 Subject: [PATCH] chore: Embed branding (#10109) * Remove InVision from embed menu, company shut down * Update Instagram logo Improve dark mode styling * Optimised images with calibre/image-actions --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- public/images/instagram.png | Bin 4910 -> 4879 bytes shared/editor/embeds/index.tsx | 26 ++++++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/public/images/instagram.png b/public/images/instagram.png index 3ec15d5863f2c9a7ffdedf17244968eea292ae96..89a915af1e9cb910681dd43e18c5229c3a7860ae 100644 GIT binary patch literal 4879 zcmV+q6Y%VbP)J-O)Om|94fqHgVoG?)_0{>NfNLWMlg|@~dbzlqh@UYDnoe?CUpr z_%_PXP*htVr2p?x_d09%wnFDiP5(`ZbtM1FZ!+^e#PB}8``1e8LA>li)8$BP=rnO^ zFw62ooPRzr`Cm-@}enIeJs+=tv>oy zW%HOn`=&wYqebsae)FSA=RTt7NL#llUcW4D_-8oLHj(j7TCOMZ$2zXSQa|ZaH1|ZT zmN4~O8h*Vl@a#L*{EB^l?q%Txg^&;@vph^LIMd zE%|aL;-Eaq>wq}eKI`^-Sn`BOejw!3FyZPmV(K)k_|Qi9%|+@nuNKe5Gh}8S z_4(6BY#{dQMq2ANrS`u;aw7Hj$wcZkpzAiA_QXSaCH3kwd+IcR>obMxQB3MIcIq>W z`PNA5LtpK5LFz(f>NA(?RYvMFk;N+6z9`!2GiCCmJL)rP?t4D#OjGo@KkG(R@sv06 zoH^@BOzJ&(>pX$&ZbRxna_wqF^s+whf<5X$YxAo->N9ccGP~7 zLg_TY>}WdhjW*{qaMv!#wkF-|V?FM4H{~*`?QS{iQ99~8W9(i&?}IbrF|w2&+UhxO z>|ROgI%)5SHs3M6>Q*!CWk>2djqiOk>0vDIc`}$Q`2Ibl>02-AJBOVi*lZf@{X5*y zEYPeZ-QO{{>Srw4FTr{s@uwr!fEwJ69oz16F6>xN={R)NF3xxv;OReI+cwmP9NgzK zo$OIl{XD?zZ7riB+;to2$202BG~=u<_kSJfuqD^YE7P?w^Z%hj*EZefI<@_QJHImS z{@O|XkUfPS|q{Bt_OHT;Yp;rU@h0q^Vi0001TbW%=J0RH~t z{s{R${QWdU;{N?p{CeU3{`veeN3rhN{#ZHw=k5IX`<&m+^{%e4?@`)f zH6T@j-2A$^Rmgxw)?M`?Wfu5hJ)(n(_-Y&>Cou>v8T`O&q&DS;r_RQ z{m;d<_43uyJW&7u010qNS#tmY3ljhU3ljkVnw%H_01r1wL_t(|+O^vWTvXK_2k-+r zbMFi@@c;>lT@ejML{usDPpi>c#lPqt|@Wy+Lya88rR*l#F% z9*3w8UW0s%vlHj1pT>?I`$U&W6TF+ClNAMI?D1q9D$3N;bydQWVy|73SnBS)^*+wB zpF&=le9vmMyyh34JIM-qsx}qK>j! z-+>{ z?%Fw`URM+=S8sd;xzfzvMbU65-e{vhr%Z>GVifWxM4_HKhjSfg=j~hUuyU2TUyWzx@{A9cRN$ z>P1Vh3suHe9v2aj&XVY^mf@mi1w-a`cvp398Jc z6`wt852`PNt3anue-BccSL)?;+?(V@npYrCusozpGn~+HNN8y2)+cxq!CksMM zn|iF*aj!Re434o_jV6OA3i_^jqQPXeS|SGz=+Z1a^oqRRvu8_6?EZDGW1=xnsY0ba zVhreS#o#}nS*Ww#10@GQR$jqHls8?;4vK;QJ`(NdV8>3UbGNiBDsYrL4s7U#DXh$+9g+GJ7vKw z^x^$W=$J=PVDs|4O`dWE=@Xem*|}R-SR2XyZP0tf#5vv(2_C8unJg9)KRE;x6wO>8 zAD^}a5v<4aqzpoy=~o8i-!0s34<8cA-cUsGlm)oVVI(j1V5paum$y;$P)BZW|Cq$y zp3BB)a3?{%K4mk5$xDO0ut_r7GYt)HG<84Djb^fd;tMAcxU8(~W&DcCo3mctF&-+| zpVgb2o15ZGyAl%2j!9|ME$eQA*E$}j>ha@VFM8+*qamCHcu!m248A^TX)|YHI4u$% z;^R_!c<8h>*qNG}0gPa)I&(|K!-Zv#TH`?AUArdJ^ zmUxMsIKHs0^m0GuW@OkbDCX{O9DY*=YfSKUOk_!s^k{p6RYr>zJ7Xt~AMfy&nqvSh zHzOm%&x{7&{f*`BVE1giFT53`o}FSJVv$Zp5hdg@c2ccu#*t)W?i{})^yY689OLG) zZ%BwP950KK-eYesasy=FLgG5)Gaa*yx*2ok1fw2z|6mzwaeWyKvJ-9+i?eWkKvSF( zb`e?PeH{+pc*V_w#m3kiJT@?EyD}#2JI<~ z$wul;C-A?2<_R^pavgJq8)F!&J`+}X|1zka9L`g=1`t3P-10o0kYwC83ThihhipJ<)pdn+J zu=6l{h2`638Y59qEtuPQ7IzOqik^!HjUeANW|FQ@8>G>{Ugz$-4idcMN;8cMmSdYU zhi&}?LFKLluR*=!*BLu+a|iT*ly2$;_aoq8_<-1gv=&f;96nONpH}H4rA9&z^DlA%TL_B)gdKo|Zju;K0q2wyFhp zI($-!&BZDimvOI$UKp=BQGT4Un^$%~H$R47kdm8fuxPabn0+!k8-Du*xtfJSYuA?1 zz7J6^`Ely5T)DC_y2(;ls0O3{+0OJsZq_4VhCx{v@cXNM$>ZE5FgfvIrv0+od--K& zuV?XdH|rLK?o1`qIYAv>xst-;$K%fE13gg%7R(a6KD&kc8CejY%mHjxuXrVgX@9^M z2o)G5e#o=Fwfox)5p}039`F0B!jxUUyfK=!Z5BOI4|h`e%GMulWN=`xp1E)EEXKlo zP7UVn@>B#SR-y0KhXrHnjXbUOJlhaWbaI2odz-2LL2klbfQgAumu!`a&DDz_1a7YH zCZiK$=gjd_Imk`83ot>~<37|xrR5eZV$s*q@EuE~X;rW)OxWe)QW5L6a1>SGXBUuQ z*sSlq%Irtk^z=E;s=&*c3ou1LgvL~X`%IlWmD<%-oi~a$KC6P+jZ2uK8=)u__=Tx7 z3l@avT*-ym4WHgL*MP@CQd1FA7cE-wlnT5SLg)}tFU)6EZefB#rfR{&{!1{OW~jsC zXi^bHA#2s(tgO`#p!GNPY(BeDgU4|<6>)a08aylu2iqY=eX!L}n%(qq4O0}7r2@Y? zH!Eu{kweV-mJ7_;U|xcc&GVkshEoA%DntbyxP30o>Z=2FUO?7g!hzvW?UK_(atWM8 z^GN+K45-<@gwZePgPUV^@1?za_Xe6>!%WTEzWouEL84{}gur3?28q^td8&2+{TEh2M->6UiB7cWYK3hhl+}diDj zR&3wF>k=)(u3p81CyaFDW0c1Jo>ttYFkz1#eO_b51pT*w$R9wk+_h=4a`7cOtmY~X zn=`Cko2a$;5=dZhKW&a)I>FqdcQpIW(9a8;_6L|AInZo1K#b;r!@_DVUc4&FtJlUp zrP%`mdBre28AjEkN6!>!FR)b=Ko*j)y1RC5N>Wo(Tzrv))3MrDI71*Scpilbd*)1q zL3^~TDp*xeuxep}WPd=q8l)J9(q#CI4bxuCG*ojKCf%QY3f>k677b*&u z=wc?ja*?T;HS}y)M17U9Km1VPYS~yAx?$CkRjXvWYT0wcTx}RJR`Y@xe1^hSmm@&$ zs<$?5*dV9tmA#}U%H?x@D~0FHo(&7-1JBTUf4FeR&7*}Wjp09O-H#Nzbt_= zIGMW_DgxY$wnFdnw>HReMb%rnMj70U*k*ugSe$#H$3hV+d~ z4$!~nvsLOofbk)QhngaWF?-}lxu+iEYJ3-5xc2QO1!vgcd&baqKC*jvRfOmFyeMwy z0(Ws3uQ0_OWA5(#ai~F)xQoEBF0&0kst>5(?*3j#Y&cd#A-h<`C;i}ovtX)XZhn4w zL${37SRhZ>sfA7m4HMCjsh1Z~7?x}4 zhOU4r?yeg?!PF2X3!)L`-LNQ1U_Z9|M?}3Syl&mP6~iY8VgtBBSS(Dp0p1Ak%lvo> zoin)$X(u$mX2G!7)oZ1SgPaGxS3YquylF){qi1^NUO%DmRDkO|MG{T#4(IL~$h0+;kM@lCyW5=2aZS78 z1r)MIN87sY!yG|~m^R!APs4e)vSp**J(B_=@WyU~uA>eQwGDV70!Zz#hEcIKs=NL5t@zP}_Z3A|*u zp?fA|l-efx&NF20G|G}pP-Mmg`YQRK;jhHsk(0A&(~1>vVq|9K=kMRY`^b?3D$7c~ z8XGc7{l^9(DmTgNb+T{2Jpq1^z#oV%*^H+03L+Eun6u<9wB*>Z2(9P*rgm#`l=V&^ zY~4sQqY0eD;Y`(%@%pdU)fisyU8$&7&Q6A33VT8w*;#VFqGYl#=;nS7n!DYMHCUFr zK=Qmzek;mW${I)c{v#1?)+3>hJzB|N>PqP3`A%O}G(FCB`&OZiIoaxG|~KFNXPeEdIx4+b?tOPE6e`chfG8;xTFZgDmk?MF0K%ursdcKwA2cGv+&A z-CI+{F@;xK&g3>^s5P@@SIKWaz1S~4oHFo{6O|3PVOJ>#n zz+0L&v$!yu#WIhCLc?@U#%D;v_~-J0JFHP)((-*X{H8(u_xYkVu!uUR`<6_=GK`Qq zzxm+o{_5iHbvXUFVE@*5kvXBeG>7?yMxZvh!7iE6Fo(P|lbAQW{>5OMIGpZZN24~D z>sU_eZ9&&9d3H*^^@lY4t5(WJZsJZ?t2L0!F^lqSIe$jGr8k{gRLj~zWME9j@!s&| zW=FC$iqlVF*G83LQpWqDP=!Lb-9m@!YF_{I>E)lv^jtl_K6>_oRijO{^UL7rjI{8$ z)BM=a`m>+5NU7aioc4A@{>*dpZb|;rtiNiy+JC&oN2lw5pXA8r#z~R&otnmy&)8Ra z=SX$fvflWed@khdfijd4D*(X{V4K~sHMowuCvTcxmy*hP{!D=a`n9(Hk4bR#2 zp-U?+Q)LVdaT#Vr)Wm!DmbmvBhE(q(2;(c<}1ME2=@Z z!AOGCFuq;iQLe{lzP=Z-abD5YFx=Ga*p#e zdjDaA*JrkU?*31=C_U*0qR3KQ(|pG6#`)d2*myC2Ts8aJ6Y^v!lF;HeABtfJQ?4Uj zeAfPq6~BM>Y@CnuqGsnfuQa>6o0{G<0a{%A;X^S;H+nOmsI_Y7m=OL z3}O?Itbi=Wq`($~$<%%rqwVdZn%bU9q6$ORc%!r%ojh=NcLtH6O&n!*F<(kMzo^EY zMiEhf&lFj=mp3!9$YC@X3lXNf*eHPSZUIt(L0^vjW@Sf2KY0mGI%tM^%qx zb+D0EH#<6x4#O*2r@}Y2sus(w(Q;}{7Ht2aU)v{kKE6&zi>_b=-EovuwEs}5a<;1* zEuj+2;2pUi*%v#hY7weMkBW+lI*RZvgYD{Y9qm%r?3E)evA74gmlhP|9X*q7I5le# zyQ%7U*}-pE6G*~s0`ahv!>*ey;9MGBZK)=6wtsYIMY*q2S%tpTYJ!c4jtNyR*hq%R zAS3IN$t~q_c2otvNKrGRFFRofdV=4HI@+b5l!V^9I*iy>FQx4j?kLUh%6H`!DfcC? zO786JWH(-nJxcCIc9Tb3rrw<#xv&`PBDmOON9B?}nK9hl`A59B(p632vWAp%*J9+e@h?rKCT@=|4 z13aNpBg{~h_w{S)beO4+=DEw!F{Lt+-C=BA3!V9$Nx4HLF>+Y^ao0sE|ALA8<+5Tf zt!e)us3Pu5fX5g+HZTAiFD?#nk_}dJIoZ1t6ZsSQdt%;(j`YOr-s)E>u&-a!6t8?I z7Ey>iFg8Xkc=h%5oqR0F#0#AfdAy3`LrokFi5Po=mAKWb~smYx_`pm$~G4cFzeRF@h2ahldvm_=RVw=q`SL^ZiP`uhx9A_o-v1pRR6Zx)um!@kl)-*jbiTlqQo8K|s<9h6F{d#!FHc!;{Pxz@6`Y^1ciYmY_w_W?1@&fa4FgkHP+8s|(V;9m{la!Ay1p<8V_}cW zkv(`8EHUlLqVq0^TciD&`*C`DmlicsMcA==WTEyVS6${r_9p9ro?MTzBNyvH1#J0y z3g$HBwq)LE7WmPl6M|tK3w3~pg-Z5ZeSy`JoP+`#3d2L>g$mlAB7DjxWM)h6^P}l` z3GWpNc1(nY36B2q!qXp})CvN#$Oi1fjfb|h>7AaQpMNBJ=|5ub*Z`sR^}hP(KV0zI zn!JEC%sCxF*7HTVcxa37MhMS8nx8LP5qrrGwyNsK>Sg(oy4w>8M~{!A;fUUR|M6rC z3|SSE3+w#vZ2`N)Jm5n)ZDVXzNoh25a||QwVf>5;sCZ~5`%-iK17KtDvZdMa8X`cn@@#(7}w{c9{_u# z5m$tk$LOK;76;Odg-wH5;0i6Vbk|t@7}8*F`s!PJEn%&hRI_ZGZE?&xW;bQ#FpJ#c zaC>1u>4__}R=X@Yzw8KUz&vcd57?GX3Ouw27L;$+tUd7nduS6Pv(PPGuLk$9R!bR{ zwnZ$~*qDNOSP}Y|PDat$77s%`xIq<&yC^;4c-Dcm7rO0r=rE(H*%OwS-g)jC@Oz)E zUD;?4)-1o9<=-+~Hhb5BiJ9#1dIfBY#H!uaw47c%Vo3NWnajRq&rj-f)Z_E8ja0lV z@Oa8S9$NN8n+{QsxkXRx#>7IlC@!+!zWwNt@O!TMDt$gW@b&x@tcX2ZPEVlRLx&3g z9xOI#Z_31z6%~^eJT}3C{RZXJU{sfv*^Q<+QiO)}hDlKlqby-$aim*(chErPJPr0zW?W$w?=q`TtYqSlmUxbKr`TNKTw!5hjVPjd zYPmb*X|mdnyV9zgOmStWJ|8CNzW7EMO> z)7?)Yqt&2dg#t9mg@rt{#3db-rzc!$oG#y#r$vWXYjy>PMclh{ckdDr2nF?`{V5hK zD=RE3EYyQ@`dpqQn2I+>Yl)fcmCd#!3vpp+@LlEJk*CGevS3-TFj$sGtJ5M6EHZ0} zmFyOkX^=0wE16J%*sf?V(WU%k(bSNe-_RcHwDmB`KHQCbG zRTu)Ww?b2^rBkJBE5-X$`EodxeFsaW&W@?eTXhg+D@=n61dJDf3|4LsZj@{*1l$ZG zXJCUb2kM6hPN#G_cq+S*6+0IPvPw>uZ}u3lifj>!c~^B9SR^s zjcG4ovg_0#6e|PFBU`G?P*bZkTU*{a5{hO}MAHPaB!#>tli)BC@68uCA7@&ddnduftp~U5x+w zh50G&)21w8M}ZmHQtk|}COizclEo6JMYfeLUT*#3t%zfBG%;iW+Yxyc=8!OV84F8j zCL!R4ZhX=7ng~EdP^~oxI9qD6E4>Yxl&yZrNI;z%tf|cil3MO^VTiAX(c

xBzEtV9qB;KcD!H;!zRk6nS6-mYZp(-}+}GEaph>Q}RV9nb zRT*QKXqn5TObbl@YM`Jz159yw(dr7ks7k3@ikCE?C1177Wm3iqu_66h+k}TjT5vi2 zTy)2d%e1Dhb$n6HwUP_f0;3Btxa2L@BV%GcZC_Pi)mu6^1)g)NHZ3^KcZO~o(<}o= z3i47Sv&3Rdse#Lmvjx#7Wwo?}+4>30j>^kj zBXP4}rHZ{x7}qp`SR%1MGBWax)fZOJsa{ZR^SXrVzkpx660>(3DviV_yFJ!SpHSaQ z73ygs?eiz>11MXp0vQYb!p}Z|!XB#skGtpMl0d#efq^|%v)*Q*LbWFB%vY2471x=z zo$1qF_U?H@CKwWD4^x+w%H`kwkP%E$yoOH9=CbzYTDij_u3-7bYCrJ1ZtS@53fPfr zU1zJbxzNFjUX^KA1SahD zz-RVypBs}a$cL>DdF>}+TmKsl*MG6o>>wSnGs3y>xy(N_mXbcytL^rFB9Vy2Vq&k! zRJcdMLlSuXhc6|~iy$4IWu1mX_KRc@Q;FO7)&^T!+ig)JRPV$wg^neE|IJ=x$#aF- zYYyWS<7Z%Vo7H;aZY$^7(n_`AU2E&RRxqD_`SMgA!u|#rXgGA5aGeg%7PL5W`KNvn zey3EHlhrAG)AU%tuh}>aams5^IsyA!_rcX#%9Cwr?f&P>c)-R+Mw+0QEhyW(%X$^ zW)XSHTwVC9nu1wRuK6!Ca&b2$mWu-alQ!`@ZrspQvzazCZ@-|(@OG;P=P}rmoBEGZ za%Eci^8wQb+54*H;z-i^?u!w5o5NGaB=g_R<);5Doa_6B3RHRtd;f-Pd7Cm7Y(^FbO~(~+MduiHuBLAJ7jY?dHrT%| zr1zPO%VI>zqS@OJ8G9W>c`gX*b?cui=X!4Le%p;duVTqYTD6-mFko?(L))QHXgC=3 g%y_bMuV)DRU&Y#lh($ diff --git a/shared/editor/embeds/index.tsx b/shared/editor/embeds/index.tsx index 150626a15d..3b0293f155 100644 --- a/shared/editor/embeds/index.tsx +++ b/shared/editor/embeds/index.tsx @@ -31,13 +31,18 @@ export type EmbedProps = { }; }; -const Img = styled(Image)` +const Img = styled(Image)<{ invertable?: boolean }>` border-radius: 3px; - background: #fff; - box-shadow: 0 0 0 1px ${(props) => props.theme.divider}; margin: 3px; width: 18px; height: 18px; + + ${(props) => + props.invertable && + props.theme.isDark && + ` + filter: invert(1); + `} `; export class EmbedDescriptor { @@ -225,7 +230,7 @@ const embeds: EmbedDescriptor[] = [ regexMatch: [new RegExp("^https://codepen.io/(.*?)/(pen|embed)/(.*)$")], transformMatch: (matches) => `https://codepen.io/${matches[1]}/embed/${matches[3]}`, - icon: Codepen, + icon: Codepen, }), new EmbedDescriptor({ title: "DBDiagram", @@ -288,7 +293,7 @@ const embeds: EmbedDescriptor[] = [ keywords: "design prototyping", regexMatch: [new RegExp("^https://framer.cloud/(.*)$")], transformMatch: (matches) => matches[0], - icon: Framer, + icon: Framer, }), new EmbedDescriptor({ title: "GitHub Gist", @@ -298,7 +303,7 @@ const embeds: EmbedDescriptor[] = [ "^https://gist\\.github\\.com/([a-zA-Z\\d](?:[a-zA-Z\\d]|-(?=[a-zA-Z\\d])){0,38})/(.*)$" ), ], - icon: GitHub, + icon: GitHub, component: Gist, }), new EmbedDescriptor({ @@ -446,6 +451,7 @@ const embeds: EmbedDescriptor[] = [ title: "InVision", keywords: "design prototype", defaultHidden: true, + visible: false, regexMatch: [ /^https:\/\/(invis\.io\/.*)|(projects\.invisionapp\.com\/share\/.*)$/, /^https:\/\/(opal\.invisionapp\.com\/static-signed\/live-embed\/.*)$/, @@ -458,7 +464,7 @@ const embeds: EmbedDescriptor[] = [ keywords: "code", defaultHidden: true, regexMatch: [new RegExp("^https?://jsfiddle\\.net/(.*)/(.*)$")], - icon: JSFiddle, + icon: JSFiddle, component: JSFiddle, }), new EmbedDescriptor({ @@ -603,7 +609,7 @@ const embeds: EmbedDescriptor[] = [ new RegExp("^https?://(beta|www|old)\\.tldraw\\.com/[rsvopf]+/(.*)"), ], transformMatch: (matches: RegExpMatchArray) => matches[0], - icon: Tldraw, + icon: Tldraw, }), new EmbedDescriptor({ title: "Trello", @@ -621,7 +627,7 @@ const embeds: EmbedDescriptor[] = [ ), ], transformMatch: (matches: RegExpMatchArray) => matches[0], - icon: Typeform, + icon: Typeform, }), new EmbedDescriptor({ title: "Valtown", @@ -629,7 +635,7 @@ const embeds: EmbedDescriptor[] = [ regexMatch: [/^https?:\/\/(?:www.)?val\.town\/(?:v|embed)\/(.*)$/], transformMatch: (matches: RegExpMatchArray) => `https://www.val.town/embed/${matches[1]}`, - icon: Valtown, + icon: Valtown, }), new EmbedDescriptor({ title: "Vimeo",