From ccec406d6d566b93283cfed188c52f5e4bafb7a6 Mon Sep 17 00:00:00 2001 From: Dwindi Ramadhana Date: Wed, 4 Feb 2026 00:15:56 +0700 Subject: [PATCH] feat: refine branded ui and mobile navigation --- app/public/assets/logo/logo-mark-128.png | Bin 0 -> 4536 bytes app/public/assets/logo/logo-mark-512.png | Bin 0 -> 26189 bytes app/public/assets/logo/logo-mark.svg | 8 + .../views/site/emoji-detail.blade.php | 220 +++++++++-- app/resources/views/site/home.blade.php | 367 +++++++++++++++--- app/resources/views/site/layout.blade.php | 147 +++---- references/common-page.html | 286 ++++++++++++++ references/homepage-refined.html | 336 ++++++++++++++++ references/homepage.html | 333 ++++++++++++++++ references/pricing.html | 293 ++++++++++++++ references/single-page.html | 277 +++++++++++++ 11 files changed, 2096 insertions(+), 171 deletions(-) create mode 100644 app/public/assets/logo/logo-mark-128.png create mode 100644 app/public/assets/logo/logo-mark-512.png create mode 100644 app/public/assets/logo/logo-mark.svg create mode 100644 references/common-page.html create mode 100644 references/homepage-refined.html create mode 100644 references/homepage.html create mode 100644 references/pricing.html create mode 100644 references/single-page.html diff --git a/app/public/assets/logo/logo-mark-128.png b/app/public/assets/logo/logo-mark-128.png new file mode 100644 index 0000000000000000000000000000000000000000..b59c94a889ff16fb1e3d5de45610959c83cdebbb GIT binary patch literal 4536 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 F^FQWhp+^7! literal 0 HcmV?d00001 diff --git a/app/public/assets/logo/logo-mark-512.png b/app/public/assets/logo/logo-mark-512.png new file mode 100644 index 0000000000000000000000000000000000000000..b85724b92d49541c3dacfac77ed598972d1b8c38 GIT binary patch literal 26189 zcmeFY_dnb3_XlhzY9wgw#4cL16h+Lo)NISUsy1y^%^I1^v}%t8 zMbKI?LXFf&?w8N^{{8+3?jHyb&UK#Woa;K*Sy#ec6Frs-ycejbs95gk-@H#nMFadu zLj`64KK279j)4zqpZj_`)YIRk!hv5Hz4R@8sHm7Y&cCRsK4fuIQ9aqab5q+qAZs%l z^e$uaUmFMA&70lG%{TLzZOz}VzkOz8=9Dk(wlJB?TOfZsxz+#T#YVW_MZ~tF9 z*k%0ZZ(`9Pz|RDU7H=00xS-CF0|^HW8=R`0dG>W!<3LECGv0GWRiW+R>9M~T-+64rFf z1p2dHoi;?BFLRA9Q7nXM9%5?xlam`a?bm#6s#iA)e=m}WjwIf1rrJ31amf+Zj#Z*5 zF*Ct3UfQ~z1AxFD1TC^*FW9ss61u?)xA66~x_22pqd=lzNUX6w01`#ZV%)%@PBTxN z*)a)6g;=T4l;SUtf&)I`#G-bZJuCn|-LC9r>)4kzp8nT+1k9cDE|BkSN}}AY>!kq> zOP9cXCSIPE%_IT>ypuQiCsG;z%IoS77(n*IX2BX!S~^ z0z@^UU96A6v4ojE)*_aB4ve+Cdzm^IQv>|o)983Q2dI7fE0|`3q?^BF)n3$0I6B{* zcX%AJnA(WcoaN!q_b6W{rXxU$&m8_a07Umh*vQU_(&YqI-%vAW+Lg|9)PMAVN^eqE zt{xvqo$4-m3JKUva6qvg*(h=PbI~us20IJzOr4UHx{~bA&Wn{5iG-uHb2cAtlENhx zW!9E|{Ba~O5W~(DW(ysuEoJ9>V%!tpndPR6^?=cy?JEXKgrY1=#hd2 zC5FE-{vZGAEFT za@%t1@1m9Ew-Cy%xFywz{Z_mn#YC#<+$c`8xWs+ zbCALES#V7u#43K-QV0(3-zQ#t;@VTMjiu|0ky}a*h=^9{iQHWV<85_Gf*Q<9u;ip0qOZ zW0WgwV=%_!$7=MdR(I(sG{Z(xu$#}n1Jb{yad@HRwkO!4S~72O7jPP;o$EyNhcu>f z7BA<17a78Q7FXE^SyE-YUM;OlQR(qZufDQeowv{Ibc*QH>bVFNRM#yZ=TPvowI#RRfvv!p$0UuSKoB@A1*t`+fd zb_DfhM;xfpP+~0jnx`w`2ui}Jw2bI96~j$SZ*2Y~oR7UDJPo%IbH{XbgOa`mWkxx_ zEQ^H3T!`Q48Z9RMq>HRaG8l|JIOva5?6DkZI%zYzC z@QWdD3YZ6nXpX*;i2f_qQZ4+NH0{S}U#i6`PA_P08Z8fr!qi$unkFOe05FgM46QqK ztDd6Pu6WfsO}$NX4AS=gH64y-^AU(Gi{>lh5O^&to_cBBh8m0w#XG_2$h{Kxv|`}NoN$l~3-Bz)&WP|(->V3e*yHfV8z(=$e` z$wT4RCPRlX=?!RW>_P2R2gIg+?yD96(k=+P?f&0YP7R2^!Y?i@Fe8U!;kXUR%THI~dfu8$QdW-jL?wlH;grc}t(lCbaq_c<7{cKUf5OhdMed`#Ii)9U0l(fqr>1`N zd~-S&8#xa@xUw{!UmugH&yWV*pLdj{y>Wl@mINk7xkIzFZ_&_kSP7FuDkWFXi;+>d z>M2NPbGL2IUN}+Q>l@CyILPPMgG~ukYWK-e3MjHh(z(;a;a^CCbdfLbX*tLp`yuG% z(yGHVQ)*o?Wq#Z5@2Ort=uW}={iwM(&tL~tOD-vpEZhIe7wKzLTSj<8 zV8_@}G|Sq)D)+3L7uvqt^AC7~yBA~ob?M0~wmlo7t??zya1~+uxC1>aY1xg8mo*8o zu&!T>-KgxLwXVNsrRC+p=*-t#x2^hfwp0eh&(Pf9Vak55`+>x)>E`}2t>X@r-J6^3 zpv9S+@7DVDoSDMFM-FlArrl^uO)>J@+R5P^N%p8>%2fNXJ03HB3Uf;ga@G;RZjC>H zW@*ZW%|p_XR1@fT?-A8KsjZw%Tt%4#r8}Ic6)#c=NC@6-6k#jb zQbte`6Vhrcz7b}=lwZ`bPWa$nwLu^mZOSW38&%b#Lb|ywk4zN?6M3E)ZwZq1g%x#0 zk(%w%OGrtra+)co+!hVW0x$TdG@j+M`Vp<$kKts*e1Ge`$K&zY8yK1}=|$MCr%9-d zs_IxP%_IFUg#_dgX%EK%q-{HWn|-C;~Gq4d9<=cwtDV8rV;>-Hw?+n|9E_RiljRHxDR@AdrH01MHa@!z)#omEUNl59C>T6HjA z5`wq?nCkPt#Sso$iNmHLBi;kg5)o*0W*-13+Kq{h%K{FpJX1OZUH~&E;gE^s3S{$$aZ8)-hwB z@*hcw?nYKvV=&TF39VbQHRBWR+MDdT3{_J%p6NRTZ)~P;(lZ_OhleJWF;=MPR8ut- z? zvoq;<(^)Y=mK+U7gmkTZxOuXb?vl?Y>gXB2pU+?6@sbbUgs>JwGJ0_ZR_|cN! zb@jJ(`F5SO1#oNkTbqK~%FP?Mbb>r%Q#J~_g7I^XneH-BwLwk6T~`rHWd|og35eXN zDofrx$R9aZCweO$@#C;c?$j(FolAxvK1~yi!%40M!$M^ahFfk5hwYb(#BY6G5B?0J zZM6`r8b5KT*KUMlt!h65ty>URW9#W}Cw6CAU`uKnAlOs0LQa!Mbm5nI)U$uVyJZZe z-|YL-)TozDefOWE6TQi8b@5qj!qAI$;O@+C{+8fIQ~A+*+lS~iXzr(w@t|>8GEzyn zF1^I;huzoR&@o;*J+NNQXBc<$Q}~zVhzgpJ-h z9>>&&jbs%RO=WZc-^J$FO+2N_`20>slh4uI!TBcXfR!_Xc(n#-eN2tsb##>}oF+8P z*%-SQPx7HY{+vm|B|q(pM>ujm7S{?dS9YlLn#rZ3irO>hXdS1@?HIA0HEP42LeDC3 zE+$xN{Vm4G>X`9C_uHE}RAp>(W>N1u#&)6}v=GFyl7*-v^VFGT{tDJaD?yORxwg-+ z___VQ<*=~gqkI9eU);E--Ehru8beTG>zBPhH`VG6e9AC~^p$<5x8t)f`J7ehqqOu7 z6-P@i6xq@QH+a~Mv9d#2{)407XLYh2b2i}`owq-U31S zu;D7FcLVs7)A}Rwq)-Rv8{mPC#^;dRo2;uYoy8QnV%YUowQPbb>LwN4A9ye4$P3tv zb`v}Khu`dL;|M4ZD_0Qox#A6RMpIfSI}h}2qEU?pXaegUw|LMVCVZ$eajA1OoO`lU z>08Y${hL~M=b88r;BCRsAuo}|b@T!iSb1$AZN3d`XlWno-C-&!ja*PxG77 z{Xo+P_Ea&@xsp~(-&gA{oJn&JFuQpsbr7EnEhz@aUMLU@eXL#dap^gG`6{eIba9r5 zsO<6i^kC*;rbh#v7Qj;f(A4OCGwW6!Vw4zU9}cxTaQlQCt3pSA6A7adh*j=1TO7tm z%3XCx!3ED2#@i@RM69oj;{JNQ^x_Z{dPOZXJ&of%M$@W2E03B5cFSw3j!LeOiD;@7lEhSLRB1nbN%iMY)Ag#xiA7(A*t%LxG_U(Z zIcbDN?+Z$ZzgxRR_XynA>|wRnN|`*RM578fa>-ec&ivO=*LQ9@YpGqFCaPAR&|70x z2LGvSa{5|9b$&(V@iQ*}&$3<1fEWH}>w`bwR7>7g?VeE`Lzr$(maRYID@)9)rcvmg zXWBVF@cg;(xkVl<{BVn)b{M{QT@8>weM1=#EB*C$+&4MgvLXO?WeR$ z2`R5E+;zc>oOFN8AO6n~Hxt2F_m7qFWv55V5S=iyc~EeZM``k_wVTPv2}b;crVtNR zl(*vP%>SLb_Q3(PRzMP0bL3ATx%nEq9@3DE!n-x&3^T|=>(fTXlf1d8R%?uhj{b)B zUF09zg5tlAL0@0rH+u2E}qzp0!+c{HPJo_R}DmHLrZk|d+p#{l&D(QVWIwL97R zKQ9PM3^=?2yx8Ybye$wGFSlnpMv)rH<;uG(FMnhzjk1l5bM}eDpXa)-M1G}gg_3e_ z5(#ZIw!4PHskjfKneD@0mKB_V3}%?e%NbiP4Tfg?yBs7=Js}h;7CD}X6IRkdQwS!< z`Z=y#!H+APm$VBD(qG@~FKzO~tKjrD-}I`_>s_O%RCt2nYz|b47pp#))E?^c%B_H0 zfxhnROjQSVX*QiMVwvws_dNM12jqaspK;0+WwUCw68N{Wv1r0ruaDas&JWXP8{=fp zJ!s|Vpj3UX<1OBX1>D=Tf#<`l1w|pK#Pfw(xevYO+IXUI3IvU}lu-KZm8MXjkVU(& zE91CxF!DqOG4&zkz5bbkFY?9Rhahh7cWPoFghuU|=k=D05}|k|BJHlv8RduE(Fmgu zpE%oT7rVCg7XII-?1+WLzBjj&>22u$rSTm`%OsZ9(M5R*m98Q~Et;Q5`c< z9CS>n8@@hkw>f>5DoXMrKmHaqE{fuFWqZAW@X9_nglxM5dRAEk8Z5PP8$uJVtBC?~ zJcy8}3Nd@0jhq|e^LhBd=k{cnm|%U#Odm_N6(&$6xvl`579N|eVKpF5{sygXoa5oj~x(>9P@Crj&H z9TjOk@IQu-xFdF}4@Zm-uac#&*A?+WPZ~YSA8X$wPu<*kWG~I2_#N;8bfl5gXuDt{ z{jU+-7y<=_Vz1=d=Vze231}nno=QKj)hbh2Yg&Izqiy+g^Li6nSM6D$wg$y48Aqeo z_N}M3Xp*ASsF0avbeZiG)S;P(7+XEIe4WIl-){mF5)Eg-5Ctou4~6^1@a7_6w$$Ia z=1?Aplr*DTo0pq%+cEJlYl5PE@1H%OZGmj#n?glWaixkj@Gh6Z z{lxq=`}eig~!TY9tbi|{uI&irVCk!ZfBj*WA>ysLXg^r_cskoH51{6 zzmFk8Ij_NFwuDu^War_u!$*uqFXrmLN2KwyF6^Fz5^E?V944!i+BNahnHK&RC}Zb^ z_O?Xaa!6C}!nGy4tquhdiG>(l>-rY}vbfGKa605j8{-iWI=#BRc}tOUh)=9<3!)ym zgPx6r?y)$^e%oLwj~(d2Jn0ggSaNc*uJ;27L0$CcghMeW4IT^nB6XZc)$owrsUuiG z9-&SMb-MFoW0ClXvF}A&N>Oww;Hd+zaR&>H5YCA_Ax8vk1M9 z$0Y`_UJN#z7iS+VCMOpk=%x6a!9}A@(z_@DP@MM3CG{S^liR!@IRD5*b<$GV&Q&ip zth=uMS3#s~+7JU=>=5kH3L2*7+KBB9!S3h*0v<(#9|8)kW3XKVtd@-9i3t3kfHxQ| zQ!2rurF8;Z5bF*ly&30lD0MGJy zqy8%qsL#-lzMzgfj-GSh-ahl(HoRSyH1qx71gL1dR_prT-8XqP#nbQH8gBBbeF)N6 z*^U&h$8Q$Oe!V+|0a78^q zNl5f3UabbE&aXjViYhpJJYo47jb7-gi;CEE*qm%ccd1??-%(RR&#H{YXT!6$zw0is zE;4B8yk=PVScaDi&rVtYYb8+ zM5pZrCS358$yzdN#WXI6SxzyUjbpBvYJ$Q$4}Pc7?E(J9)0P%%57mb_sJ1{J*)3WZ|POb?(-f+d9_5 z$X<6yfKPuJ@yftB!i2+98emE0xRam~uj< ze!K$l-vYI*V4YI9bo2s~-_xr017{H)Xc{e^?|)c%-!^$Hx62{>Rv`F!bokpkVPwW9 zLz;h%dXnEwj5nC0;FhYkn_s_7Y!&jzI9L7Vgtr8+kU zT|PTp4>}x(KKr!oH|Zd;{$1rf$N3L374#a&Mq;#8zn=lAAV8=YZDv!yd%FYTuO7nu z;JxQp((I@C`QOKV;;0%9x*iQ;J@L{*k*uZEr~&&Tbnaw?BC>bd?_ptQ>f&Rp`zeg5 z3!|f4;7eyFbJqHbV0#%E86A(RlVS@y`+BCT@y|3LZM^ykvk9Mi-GO6Sxqfc#iB=YI zz(P-x<|Z+;SuCY$q)ywIY-`MAo&H|7;Eg9>sW{JWd3ZH|&4@R#0zS ze#YX@k^*K<(5EzaEOi@8@I>r0XNxb8|!eT*$dY`^M#B= z=b60mS=2`J9u?h$Ja)fei&I5Xf$wNK4(x8|+j%xmsL9lvUd0|12Q{Gxm)j-m=svfx zjt9FiliSfmy~_t`S5J81^rE6)@R9Qz@XLq&^XZN|U-A1Ib0fDakKQzp`|Egq_eCaX zmkrd^TiZX@nV(u-EPv0O(AT?G*+x|g_*mycpJWBuDxds6lq6H+~X9N~q~nwakq zrz#9#Yua}Uf5h3B`zozn@15E>rYr9Zw9iEa- z{ZD=x=iP{oR{d{2{cTdWz!;44Lo#;9G-j0#K>FDx9#L{cOHv~N*RJ(`$@7$bm*CT@ zzs3(%Re9Lozd=*GHcf_lSC5azTXj|&9Vbd!7ltE$0QFrV5M)KVdmgRKpCg6Dl2)=UPt{9meLjD_KQ9M3mGH?iO{oS&4jc@dt}}^>isBb% z8Cg;3i++x>)1%e@zIE!2FOIT*;-$K<=Tw>C!Iq~QV0nelQ!#6mNWUT9b!K)*!?=5~ z^39Pi3r6--sD)mJ&9*{!u1LY)*phkhtD945sop=jh;4Tjwf~Z_12_=|nPAgL_7diO zCg62&K>IdLYK%gUZOdK?&M#!HZ1|pr-=FYB6LvH&)uS&;Kg6lpBEA$qZ?Wu6t>u^t zhkmdX7Xr${V7t^mFyXqUnQX`MN0V%AoYsrH8V7gEF7VV@Q4J(XOYW$4-Twn3;_~>6 zVIE__zdX(6T>>tqp}5smCfyx01E4K*Z8C=s;r{F6ase`%o5#%=%>BuwM$dmtoH&Z{ zbNCi)(NmT?5?$~4zli;Ms3;^I&vHsrIsR|B-QOV_cReIlgC+5i+=eJ4cAs*z$PC%L z`ex&n)(OL$7Z)EU$T(;^l5zhQJG-DGb_;SbI5K5>DBODUgG(6>cAPa-=y0gZy{WIz zBdCCkG7U(xE8hRF!6Gdg$qlriWZgnFWBTY0g&AGM1Hc|EN3oV(uW`+ztDWV4J|+jD z1*S3>%BC`L9S29UJZU_%izo2k7FR;~w>cjdtot^5I$y3m#=nnj)z_H;!-Ej`hn3?b zXOqA712+t z*)}b4Gw7G<^ck1ylhkEwzpePUSD~hl#6mA${~qz3<=W%t+03#^bY>I{{R~gz@vr+1| z{{}l=OtpWj{qJC~;7DF<@^x!igEA<@tzdDU)91&s>&T0D{5PHcUW=Fwr%(`8U?sehz9cyz=r)oPP3Otz}HDINj(& zjqOvkj-*K3^#Ezb zPkdXxLAH83s)%7W^)K5nYTa7O4;)KGWG>an2)6c^JUD(-d#!}@v3+5}H}nd>#iN7W z5f?u_znc90&fLq8&Q|Gp=6cpO1@`CNa8o{+g-vUW(Pn?3j|mrFZ&28oOn?B;RWx6|-bA z(y}QQX&nB1!67ZW@2mN4lTNZ49vur23;o#+%ideT!@UEvw<1y$Uq9N^uBe~< z;`J~hH~p>8i%2g+S6J;13UjkS3F^*<(GG} z?T+fE)g0|zP7Db4dP{XopMm^6+TOEN)$GMxFM)KTAhM>MZ{GL!;B_wpmy$`IRu0jS zKFXn7U69*H?^}fjN7)qyu|{Q?_ijxN_7V23`~sb>@c(CxxLR8AbT&mX!=t2hPY{>B z%b%`&Kt=pB``@POvBBa8l`o2+=!mUcM~Kg znwI5P{L*%YRVWY|+7}#2KghkTyFrZ~z=AZy_;<|=#>+i$TieGs-Z87HC>}Djdm2+* zD`9gjSpWNGKH9MC8K7YayHr3CIWd0j7S1N9_;W!Wy#ILeBeg#xQDIq(w6rCIT!wY! z-rvxfv*s`9cw0FzV;atJO879mOwhMeCdN2C$4GAwxGi`W%7?pqk;)VH4gJwtrc>qi zeTf1ANjRU~;b0kl7gg2i-pOUnx4XG_h+`2C>pY3veKKp{_TAd#%*?>1wwtZU|KZR&MF=Jy7FB9${L^~5?=&lZ+=*a%c>UsQY$q&+hO1qQ0c>IylU3?;@Z+i9Ow_W9>bked9ZH-3V?3hx}C4dB3QR!_XPx@0_cu~ z`8SRO-${jDR`TmDA|bIISu)iFOPF=#;uix*Wp16nA?I!H+SiMCDosNZsMTKz=KmGY zlD%q%@*}PIAhgO&19)&D5IV12^oH4#Y0c+1bEUI~<^i5s zOLEZ2kJfu_h__y4YIcf2qFXX&-;9jE>)B=?#@w>mJVWf0*O#y zgXdgbyvJUZ7@k2+=kp(sPDL!Kz8hDfz5B=y`|kCIE$n$sydTwsyh9FsJC~<(Lwhuc z`itV<5RUE5;~O}*9Iu8@p%l58U~iIX8FSqNlKlWnR-?MeQ6@(9-;ts(7R5W2z-xVVRVx`l(_iFD#u;?a=o9S{BW-7dedoT&O~* z%MC(!Y&4;OV9Nxr&xBRG;5CKHVnd|MDZ-a(s*!cY_njH1-StmJwDb{=v>xUV&YQK* zNgN#8p;Ve2!AzM15DjpKPGOt4j4BZZ6Bm-@cq^}U z7}X$=hI7;kKf*_96^E0>Eq=eEy#?1a`u)A&Rt~wbzq&6$-Jd2)aIf?6E3U#$8Wk2w zmh7H7dG0UA?t*D|Il}h$`{hl_(S+&N&TjWTVw`X)?B&7<)ls?p*~aAZqi9jzlS1Ep z&99#uNv5}x$fKj9JQ2Ys#vYrb;F!FuO>KM7mX3-<#PC~=eM1Q(r+qC5!eB5?2nQ15 zhH&9Eh~8ZacVx2cQMEWOBE0zF?^?54^QX!EznE@vT3@arUU_v3n;`XGrpotgf0ZRs z>D3P_;*JNqWe9?Na-CFb5&si&^YMI)u+I=zAc6l>1H&1(%>2s2v}4C6UUOCSWYuLg z?~7TUrs?0|nB1L(#_d^26~D&aYq-gS>T(40)gr!kHk_35b2~TwsqAHosl_sk1%Q8u zoR`GiBb@2Rv{KqLU$|C^MFvVjlk0ekc=vg0Ov$*EB|8~iL6MAA+h?@FyM9XD6t2yB ztA)0LOFO?%WoO4IX-pxR{6=9b7yHYh;TMv#CY@-|*#9?ub2AcY1V4#9o2DSSyK?#lf&!nn4vXOHF@vn(J))e`R#~7a}4s2OlFA+};(=s;^b{)%BEI!s?-4$qeQcBhI19}ml8G3CYR35byQK{fXhnJR;zJQ(QO$Gt z9B#dHrtaRRCnbByQn4gABKJ>7Y{IfeY=M8>Uj56QzB_S1dct<$wC*S8Gd;Z{v9+9N z<*+B25Z}Y)(dh2yT^jasszkUXs(~83eExs|_Mxg6?+t7wK+@sTmw}Iod z*o!kF$jMRKE_HA{wpDr9;M>ANZ@X!oZl3$s6R@o&%>BmbP?ln@l767GR<8JJ*T@57 zSeBh#1lx;VH?o<}4<`!uJ#H=PyaR2mm9BT7NTBekEQDsv!yC@nxV@3d0q3y}*7A|| zH&0y)6Qo+$3#NIP&jcs_(6}2Sc8SNb%I|pezn?VHu)a-0pB=r&O}M+coX)F5bZ%s) zTtT;8KM#4d_&BH=)k4P46>}9&9jWw=mUs(sbJN%cPDee+?I&77m^3~6X<|8y;V+ot zNw7JF(>Y(93}p}EbsU{Uj{i>lm+(HaU6nRyo5Iex-WX1=t#Ywoao8H<-86XR8zQJZ zBNo4)jQSmYUVpI$IlqI-(n>hWG9Fh0>iMe6!iQKz^ZoNR&J_ubgGE`^#lJ$f=V(0m z{fgBSn89ZCJ2N7H*Ql&hMk&v+ky$3RrRU>f{lGw$>VIKRJ2A{7-g;U;164-WN;=A) zys#^7e@40AoS5CQ6E_HpxV`0}6sLH0$hGs={f$~IVlC|G3n$HuEU zL(!JEgUjE7RD3d$mv50cwsu>gtY7&EnB#e0aOPDEtL<5as69L%Hn%ConOg>8S6b9b5T#ENla-L z2+UHPFuT7G&YhaE^Hzw~+&S#)1pnOWfU z8E|6KyJP_|aak4?tX2nam=DvSf@CA2WOrGKPmZ*8x}Gd?=gxn{sxRfPYcxD-zx)=o zzbD*Ee#oRaof2Uyg-k;Q>@S3S>khy8va8w5>co{ISxm;_i~X8E*F0id9h+6A4X5n3a-;mgB|f&a)IjJ&@%>WR&^4h2<|2GYn@EdU zgHW1>!Q5ndOz{3taJKM@dH71>{*?a{vRLr<0kQnB?PM8r+vT0#Z(PqeD$IhH@;E@- zT@Fj}U_~u^8Yy~$+$wo_IhL$wE>%`joph#V$1xw6&Vj#X4z(b!L~EwoyfD3_Zo+B9 zu|X72Ejw(_svq4D*`;#jAOG#?3rrF*t}qQI@gGYBpu=(74+UiBO@Q;rdF8T7w)!cVI1B@F9*akO zunrZ@u>T2rqr&tNpVBQsI@PW_omZn3Oc6U}2ge7TjZc`vN``E&8afZYzJ-mc`{l_5 zgjOQnKOA!#SRJ`i%Hzv`020BJowu)~8db^FG8>&{^2L}a%#qANEp5R-F>bh+CbZ%> z5nj~#HZvwlFjRI&O>Z*oV9DrAmdPihk53?t5vi0f;Sn}j%RlxPz zl)fY5qhrdkAa{5sbv0FxFy5OZl7sps?u@DxudoR`Zkzj4{v?FU`nzk83qb}$5V7L{%12&mRhYHrr|@f=u|-?4kU$ z_-m_+x71dg;&7id48Jx*cs2?Lc3iYTcqvP7GtrkHlch>-2y(cR%Xf&KGcUE*uaK+d zp)al4!vmos#SeDCBs24;)E7~D;v_@dZ*|}iNXV(&E9Ie!#VtLd{dYAdpN9{4P@<)> z8#ASvdJmk$p}lX-=Q4^{$&W1*F%p@44igzlOyj+nHZ%vv#y($9tr$@59Vib zqZX=ywOmB|!JpP_J->x148L-1N7&@wxUq_r9;ICWPtx3zj!UlsJf2*dB8wKPlXD1A zqzmBx-$$D9)*;Vq6{EHIX)*(#BkM%JhG>Ekgq`lk1ENDiZ(zmf;7Na^uq^uXhFX^|(3lV|~j$Ps5pvrKuh|Aw9RF*APPX77-|Z=3~`L>mkjr3<$lVG#fw zTECk}3*)P_q^cG8<_q`mRagv<=)WqSC^ae>9;-Q*QT_4p`Zv4$0`3HnpFb*G{QfOp zJr7)PUmE}H_J}aK-fjq!ZKJ1o@%ekw6RLw74ZtfB2z%uLbxK^W3gpI2Q!4E8-m&b# zHWJbqb6l2lggL9P@_icQ+Fh8oNM9TL#Mx^!m$MI0<_#50m>PDcuYQD09(YvYWfIrK zh5sNiNF(96!=%EdqykYpcF$GOc{~&drp&5?xi;#nEe!u81p~q&o^<>{3tWwqFKIaL zG|D-)019U;&*B(?wDDgi0^H4)JSV-Qnm4{^;U&)TioHWx(5()IWt3&v(<|FNn(}-& zmRZ*^t*W~pE7eq2{}VHDuq-MElwbyW*TPc>R7iJZ;OQ&2Ti3&E@5agf5@=i2Rw*37 zbivWHh-clLK%78)9O2}1D@UDIgyO?Pu1Oxsksa_*ySrkyvH-56O_DA?_Ob2xaT!a! zIRhlhg{;|+R?+)AU$wZAQIH_$&-MG6G+`dXbrO0#eo4=h`x^kr_EMuPILz}Yiqq94JA+Dplu(db->>hvXoM{~oJMg?F$ZRV2zM45t z!%-M1b(hUbRDvn&j|Q`XaoIXWB)B(M?aal>I_$_G=@jsne5!hX`g5-Via)CS@}F!Y zs~vWuM|1kgZa5_C{=(ovaMc}XY$$#JPUq9)hQhuF{|9!{24?MP7lXHT<#pZA>l7v+ z@MQ!X!S_G@lR);f`u#Ouz3z_D{z6g{k-x`(*G>XjngTU+T=*^ z-M9;4(^QJA{f?>5iT6yPK41@Y1$%FEzHnU1{BU9GDzL)%}H8PNz+OyWUR9k zwP-rK##`L-hru#L7h)MwKLxjyKy~*Br^9Mas`gVJ0**R@41sHFmMwe_)9qqP&Oo#)u?7m$^+W z^9G;+iJD#fC?x>9V|ZT>T-aWY0I&EyV)U`84=vFL1RXTdYS%b$N;!35SBj%Z-@oCb z9O7ZE$w}jU(_t_Y$nIoqK;^QZ6nqDXQB7Wc`%u(uC(uCt<6ANSPwfI;dWM%ktwiw5 z4*7ZZ6T+H7L%D!>E2@@C1nuIiwrZ&+8SlPS`QwGB)-I>pX9}c}g@f}@B#w1-4X816 zW=euP+0z4qsrL_Z9EBh9<3^fAJL&CMHL|iztBl5Re~L zR>@LrLa!AP&+B=7R`(C2x+r{oZ+h(puN19s9k;GSdu`v1uW3sZ&Z-6!C#)4maCQ&T z8ASji{!?J$5X2QO*Wmq&O04BqCnSw1G@um_nwJ0=5(TD2u{m9H=LA-eBi#+%=*W-ls@YANAM2lZueUj4R{+t-9GeCGf-Iex5%ld zFYJoq#rfJtZ-*MpIc;mx)ip;Cu(@P73gpwf#oPx1&ym!Z&z^rTh| zte;>r@xO*r!ja&lAik+X7oRy4J!Nt5jj}{Qsgc*8+Gqs7k!s!w3b76PahfQi7O{q? zECzLM8>8lVvH65_k(bYh;MZ!yT!B`kpdeK}3K9tIm6yf^^glMPoq#%#WCr+BV<6=!Vs+#aZ(Iz5O-O zb>M$vG6@LCJR zvl(%h$kgZ;@OGI=7)AC?yt((dz}z>1fwA{}-QEfMirze zH+DchrPtPYhv>8FkmVtunMEM`DhzpK{IDWRF_r)NkJB3dPfQ18bu=nA>F+g1X?~j7 zvoH)Ko1c!lFJnE;HstE$?q-7=Hh&D`FJgCeo1o3&TCVh`7sK%C8RLHnKnX2DCH>bP z92fBU96qu{o=92x&Y{;NZfl&rS&XSo@3rVIv5qTCJ&$wczvUr=u{-w+v`Oxe+&#f~ zn-V?YzIV*Hi?}G*Fv*!xNAG_|6$x zpyupj11d{hdE3V;e=MMAZ=m~`sqcC;UX2l`v&7pp_2Zh^tuZhc-OUxPR%0S(!d_d1 zbBa@?K$E=R1m(3<6Y}%VW{G3S2_3jD8#septGjP8JGhp=m~R`A)aiVx&0)D?z z{hhAD;oY9PKoD;JJEIR6z^`fhV8a`V_dww8kv(s=~$yoUYMKSQuQk0QZoH#Vem(~2Ta*U zW2|JjZST%<70hCx-UREoZ{>iQOXQDtGTF`-)!DJ<{wo+^Q+kO#^BuD!SBpHf2+;$) z#7jXrdQx>#)^ii2+UBG2`PTM}zmF@tew%ahS7gMpnC3^hW~nxn(mW+6=MYRxwW5pD%!b-g9*X9sp0pJ~Fxep+(=q-Hx&gNd+!rV!=N|pH5s8a6u zq?Hiy|MYg<|7>^fTkJin_IhYNElR0TTdivCmfD-xv_{N?QmvXTMU7ey)v7&f#i-Sq zHDVM|H4~&okRYGa?;r8?i(m4}d7bzBocq4+>$>hcNAsZI{5T2liPIsn40Alfz#3YB z?i+ZQ0u$&~Ke^ID87lv_lfUR$Tys24FAa#l+K6Z&jXQ1^S9((rZ$G9IpjGK*Ee?`N z0duyO?WgDpX;6-Q;)exujq4!zB(8mP75dC z6rqaa&xn;LR}j0&SER@w$h>msqEHmRwle(VB)e|R|8-f*Xx0@)CS4rtO*mKkMXr*& zo7t#NvhSl-=0_`|l`rTPb|!irU}XQy9qZi;y^MCrm`70scy`vwlgoB-6p49IHu`r5 zpcnU)$^L$$w>;9l;az%}T-vK=k3zCfv)e9gl**3d%lBPxMPBM99h`sO4wza+JUQ4R zeFieLZ99CWgHlV8v1?TeNBFfE_;R=?DNaGRgrledLeoP;b9oiAg&n4U8PG_*kQ-|H zgBOr+oA=`y`pHN52H;;NRrco#WhI)@`Fy}QL?w_mbj7z_8y~?*!zoc&EeU|E(B~T? z|5VfbY>)1QP6e`(ZgqK!Iqg!Ujj)kE^-TgIk&h&+uQsI-*(6!;xJt4M{-0z={r&Rl zgMgv*4HGf5cff(O z-*D*OpQAo3{4s~{HJH)BZw?_xH!}Mj|0b(P;Ivn-bm3xR_{ac03ywY%aFu5HN#QLj zT&vQzgqG%zBNtc{#TBZm5F8^aiA5!lg{Umjee2N0VC$%J&tP2h>u|0=ku&tPwb4LT zREuNt%fOg2CAIwy&@mgOG(H!n>#btQ_f%q-$W`XRDe;dRcMlj~Ste4RuAy%SGJgtq zM5CE>G17jw6)(ht8m?Da9(+N9B%h>ZT|os%97qpi+pu|LqH~=CS(ZylH~^DAIs_PY< zpPYJ2)3ylpv8d77IYw(t>iwvgre+s_REY*scJOr}PYXyIm#o9e0uO~epsrsuFjUrI zqrajTas!+1SUZLvq=cY@Oh)u3~H^N$d@YScJ+#Xp{y+8l& zmXzYD9crgvB-TESd7R^Ce*op1K>4%ClJgx+@MF}VZH`8l3dUE}c#8{Dn|O!|-)8?t zVUJ$MZQ>kP7Q}ILBL5sn9|@0m=Gi}P8G4QjdNqD7$F~mwxSp&P;Fy z=;mTH=wdj}RxlFgW_Dy29X@X&BRt&|fVDZk&eA&z#h`ftB~bg;+y=h9KX{pAxrRk) z#U)(vOTD*#ztF=%WM6WIWq&p{hFT0Kd&B+MbWJy=$?{jTa!kRpCpzQQ9`8?lTmdh&bwC0XNAy{ z7C`J;knZp??+r$fdg3%Oeqq+8wsuVWu_~Y8GVN#+nnV$!M?F zoW~KYPv36Yw`CxjB)cw{KIEIF9zz+I^Zafu?B{PQ9)w)#oRMyqR1ZMR;sgFla5H@j z-a*vsiot-J(YqYKa5J!sMg-H|=4B2wq;7?em&8l9cF-t8B1M9)e)}`u@~z%l!tHd) zM@cUII@IS`S5tlP0DU}3$gSrM^y}-q2-kRI)yVBM3;{9$Ghed=qzXNolcUVpA{1zC za6^L`qqy=}xw8j!=kA(Ay_LwcNsmX?5tz^|+F!$eBCk5% zijY=@1bnSu)Zi@0_1|M1!3%5lc?9KE>8il52CQ6M*CQMkXUH@4Ad!-7%R^`P+lFm7 zpG3$D1D$qDzP@$CEuKVVB;oS_f&p|9Tj%HB(oMocHp&pkFxFaUQxn>)a|jLJWyX7S z^|+7w-+CpQ0q$+i2s3J~pN-f`Usmq_tyH&_HT!&xtlXO8Zj+nbReOp+VRRNez~p#p@K`?# zS^%I16uBmH^pw^nN=tK00o8r-j5~(in>cb;sHq+D8BeUkm84WnMQhnk08xsCE>30Q zm+R_-H=faUBEK%SAd{V<_)1rDB-{PoFb&PK@2$tpC!zv3Z91y2cMKe}5o$oD6w>7z zNpIQDeQ7-TN_M}5&GWefxTF5E$7fP*g0Q{!6!9boNK7oX-6qfb5cZ+g9Z!HeWC?KX z4O6-PtS*tg$Vk>|=X$zjI#|&8g}bcmX2)1&GFh zUjLgDpMs7cWP#vus7a46v7u_hJ$1fv^24b#9FGt^k^X`h2k1cXnUm0sfR#F<1Ea`* z^YY4(Ro*U!!yF;KkK*f@gCU)Tq9o>ATR|dODQS&(FjUBwEX6u4WEsx-$=Mug)EFgG za|zG*Hqu!diy}81nziw zrPVxZ)Z1I|@!~c7mxqx_4X8YeobyqQ7Vn=VlxB-ST8Mdgkkm!~_=Jdcg2r)pGMW^h z`jzpFSP7JM=+_?%aFL`Mq4;#g6XNcAN<+kuEfkj3GWK{WUrcMoAZ0Q2#)k_Fe_hEv zWu;Q#UgYD4W=G*5QniGhFMHggtu@B+TCHi-CK#w)RpJt)YHx!J8DN~I&!XeKxq@li zhC7nlzo{Tsc%3^cN7_Bfl<8f6RRyu!p%uCUs*2P=4d&u#Rr08p0C+M2s);?Ay*lHH z;#fB+2zro8&_$iIAS67YpI1H3ax1|F(4{>IV*U00=kc{nn2-{kK&<1? z(@Hq-325-A4i>6#m!2(6+}xV%`1E`B_R_Bux%QzvD0r63AwjP!xj}`WHhINDF|FoB z^cL9FPe9wRKsjge>qZE{7%~hM$qB36f^lNX6Y2?KQl!zN?!;32LsYbb1;_SZj`e2E zt`v(tc2*3&-X_0aTNw1tco_Dk1)k)1yf`*WTIonqmWQcccGxDAr8CR=+Eh7g9gs^9 zsi5F;K4|nQj6MBvw9iCatA)G5LN1@Y(?zy)e-agF5R-m4-NMxNWo<4}WBi!L!#^B* z0KA*)=i-X8XVK(6GdzNHU`W=q%tufZ^a$~dQM0n!0AJUl*Tct0w`nWW!bYT(KpA0~ zB2|^E-cgiwWj6W?kPB=m5GgdVym}#Y>po#@*j2*0SiIOEFo?ztW|9ols!` zUqcc;BmT~HOw$V7r4*9+!7{;iG|-Ria!xby zt2U)RAgQ}zCpFcU6$bwf{YnWG98v7B$zcuPQLpmPHtU~3>fEi;w5kdb$TH*D<<%!T z$a~(4el$y9fehTBN|v{yr@hl@y2adDgE@Y~`p1u8uek=Q+wO{pB!P=u&!Zt>FJGAFqf&zfczn(UHd>d zKLMH=BWW6NHzZb3k{QMOTOeC?WrVu;en108aiXGvkCLm$QPcm0h*%1v^rwRS2Z9Kd zG@tWp@-3?P)uEp|95g2DS2T(T=E`E6YZu~h$**l9POmCW97P)5o#v5kx&ig|n$ZBS z3h)rF(?-4o6+ct>xn=bVjGc`3gA{sQW=|_n&tUgqCz(n7BG0=^!eXWgMwN@4&JSPP zUoK2CLu6nAliR{M>q1JCDg*c}O2suM$vAx!VBpV>A?p0 z-`evcAjJ7h5> zyzN&27mZra8nkR zI~up@hSR8`zxx`8N9}^zPssHU@aUT{|3O@#%~4)~V`V_HXV;SxwXj zR5)wu+mhvJ?l?r;V6Xigo3I&0={G@9dY@EoP`OF8s9vyMuLG@bD+nGO77bN zbat)^893koHG4f;Y*(Jdi)#t?iM#@cm0(7DL38tG+U__L+#$za5D^K=k#QPhuesi% z&A6}xFcL>?#5hI{gLbVY!^`Be35!q^&imt@<6?VGj|zW1PFdj#`uekwG0!qmN!den zPrr+ytFZtbJ22Y<6G(Xbaj*ZRcg`n2Ew-KS9j~yUE0*ymJ`s)Nx$)dc`!D`dy9sW_ z_KV)!daVaLEjxoo2sc;IS`KQUIvVGk;buvu4tf%c{~Dn|>#h&FA-u6}M!GV2Y4Q6R zj~-2TIBs%7p0ogBAyN>$zB0@>JssT%IkbmUkWxfVk9XBPj6$_Lu#oIAqk0^%+x*1l zpA+Q4XLp+JPVUnhL9>Ssl!I-gXjuQ-<+c?qVg>CgWag2uxLKbGW%8-jG_-%hHwrN$ z?sjQ+r4CwkW~2fpV5T3(g}{3shGj z^I}G5ovbMP+AQItmHvopxniHhgp#-3lu_Lo>88Pr2flQ+hk$_)_H^pJ#?MFzj=3@W z6g*00#h>>&Fisv+k0qZ8%o|=TD=6EDnfs3yiC(L1j&z| z+1n$^??!Y-E^#o+H~%^;7^vRG7++X?IQdaWk=~4}5dw!jC`@bgMx4^FiFrz00hzt{ zuP2&HGY=@`10fw;#tCY6i0ZrE-I47ystgwtaBuA6@0r;|L7BG#F}LE8d-y`Y?^bi^ zUx@i}xAO;9)J=V>rbr1j?2OY?WL0;=s!_JZri&(~yZE9pb)5{!Qq!enWmE9X7Sb=h zP%?A=3lLoqc@|df9AF~?t{6&BC&^>sFP?+G)>kL&SK8RHf??N3ZidELarJRfEjwdv zE>Z(?>f~;>bc-i1QGOI?Pr1Bf&;e0-0u)RvlHE|J#XRA_21K$CUODC*S_= zS2%!&lBuEhpKI=mT7mk#C%m=>GtTdIu^ghPfP;36r&Li*I+4$H3S~x%%Y$b_4*Wbm zAbH!X)mM~9?$hy~atv}u^5vvzf{?#8k@+#NKX_{HpD-Fp+2*^`V+rC6=F|(J60T5} ztGyD*YK1GZy~p^Sy=4x|Ittd>+v|0Dl%#9GtGD|1azOWm8kHX1y~ zx4q<5$RICYk+@2Ms4}x~(MRt+zj_t^DlFzGR+=Z2T-GQW8Iqu>U)IKdNZ&C&$5xqY zcZ63`Z&c`>^G<1V-e-4B+vs${4%pa7OkUv*C_l^yso|KtRcHbe$TyP#{tYU%V`?|MpAoO~` zbGg+NFc8w;qC*}gf|0wZ72;=&A^Qi zDTU_i<)I!QlXvHCi8=J~a{NwT$!r&BvDC|csKPQ?3uyR4x%!HY=M?3)f{kZ_a?>+i zd}q2FQkJ@ZofYedy55IsXldkbnTv9dixbaf4An09}0j3y3H zAL}QQ@CH9o@T?QW(H;KXnCUC<{i_+PvF|>$^S2nYI*rBM^4+lbWTygP$p=6m!s8Bj zF2sJJoogxbv%+wHAouLs$8bS8PhjenZaN|=WW!2b|5z%5o3!uQQmkD*6S6Z(j}W8h zww1Y?reM(qmod9HwFdakF>QItROz%TJ`20(y@?MYk<9tuyE){BxSc0MWf>Q~>&2a+}B$Ttls+M0%0F zVa|RqhaGKMa#w~TJMXYEnX*?QsI^%yDwRzUOlib}pCHd~J~yi5yZtY+xDo@E74f2C zdEt+{>&j4~gs?KZ7YCE{fkX`gE3k!UHt{*v^xizog#$%2@NmJ(H$*HG!uv|JGWCqr z=yNu;wg~_9l9B+H&IV=5q0mTWltH;G5R;_3o>bC3-VM694HJ;9O67xa{ME{IpKonx zJ>YGts}~Z%IAfdMuMb>ye|&*1$qfAg4C``mQ6~UjfE(-l{iml3SP+U{bsj%WXLj~Y zIl9w2fvXTMD~7FPSZ)uY!vD|tBB|co=uH3sT%8u-@XBbYTn1lJw9NYcX!f(1rq_$5 zUC@B`@Uh1-T}`f{TEC-K~yuXozl0XYe)7<>n3-3d$h|WRJprcK%rq?v!rr|NCxCWd7#M(A0Lk#5W7GEqy&K&uyA3l%)aA2|L(~kZN+Y!Y`iqwQ8JB=;y z*`x{I8%Y@Dp+)%}>9m^u3KDro0z9sDGL01}6B?lD7)JLAc3xYW3195W$PFIsIFK48NmF#q!p8K#*&iNV&o7&;H*uA86}KNxlXKY;wtj$~1pfuv+WYG}ag0u`U;G=# zJ4APehP?W!rHeb6S8Y3GnQ8;i(P{^?{)9m0v&Uyo(umIHFYvd}71(<0Sm4*9#zp0` zACuL_6!~?|PUyxEZN*>qB3s_wYt+0$06 zvQa(X=)3Xp6-8>gKB5=O?Yv2}R`N3C%~){hzG;JQ@ekaZZt8n9>d+KUFo?Fr=XUiz?(AkBlK!Aw zFF$|W_bjIIzKYBC19@>|64wcn`mKOn+~($|<*44|E-7LtQH7Fwu*8o~^%_yL@qo%# zATw0!xl}k|n+H@p2h?2!5z~la*U}^fX4S?b#MS`+*?3`-x7!XKmtXX79rGR}^qD6E zRazom2VFDo*@Dz8`@PJzsn+yBobp{49G7@{uI*UZ>3x9lz=K!$v@{~Nj@_>gy*f`U ztzrul5#H7DyN^z_r_Aqi#;ra;F*_(W!k7UAF$6r_;=H?+Z8x#|e#2CK8Z<40c;9koJ=Koz%ai#;L&<$Kko3tS?|nhzlS-}= zvNc=y=iPz=Zokd$UFV*nL*!DSedOHh_gq5AGYuLcWUr;V6M15Dbl~FsX9{2N+Yo&= zA6ZKuH+W&R@`6u`>&*|3D5?J*Oy}!f+GV5#Nx; zb6{9!(a)>g#mAH^SF4Mrc_6=5f1A}MO3pyPx~Rwe7G9vz@@xO7_-Ups_I`bUySAFl zL`BQT+vh5!ogWFKlN$#<-LUs8GRyt=zC`cH)x`!Aw-$F2b36T2+a`x!gOm6z)H7!z zp&9b22yOQkjgMr>Z#-4#y>A?EVe_$_^GEXnld~+-WUD1kE)Stbs_cH(E5-^>Oq<2> z-U{$r?ok*zOonn!YnpOV)oe4ehM3`IJf%gR+?45BXg1n!m|vLdG77l230>Mv<0tF9 zzL2T4dm~I&K@BrrJ?5X-EE{#7g)umzb8>8ab zZDyq=l9Sb`pd!6+_Slb&=#0<93a$3*xSCas)lh`&Ob;oG{={P$CinI*n}K?vcN-a+ zbC}D0WIz1+UV=I9C85yIxQ+2zd4|*dF zFIH^%8RdYNhEdP&yJ-x=U!5y2T+%5pa7?;Py5#2`RZxDSi9f~`j!!j1I^k79?k##M zN7ZnoPyM(~WMQv<{juBqhW<&1w<=W!D~?J3VvM_thZaj05d&m0#X6B61ML(v7Hr}p z+5$rx6&E|DBB7gOk=C0xI%cmQs+mYAlN`=%8cL0z*ri?4Bk+qX|NnnZ<|op{FBAV; Tn|#FjcXb0@W1Z?dPEY>_Gdg^6 literal 0 HcmV?d00001 diff --git a/app/public/assets/logo/logo-mark.svg b/app/public/assets/logo/logo-mark.svg new file mode 100644 index 0000000..7f2be09 --- /dev/null +++ b/app/public/assets/logo/logo-mark.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/resources/views/site/emoji-detail.blade.php b/app/resources/views/site/emoji-detail.blade.php index 9f66c58..bf1cada 100644 --- a/app/resources/views/site/emoji-detail.blade.php +++ b/app/resources/views/site/emoji-detail.blade.php @@ -2,52 +2,202 @@ @section('title', ($emoji['name'] ?? 'Emoji').' - Dewemoji') +@php + $name = $emoji['name'] ?? ''; + $category = $emoji['category'] ?? ''; + $subcategory = $emoji['subcategory'] ?? ''; + $symbol = $emoji['emoji'] ?? ''; + $slug = $emoji['slug'] ?? ''; + $description = $emoji['description'] ?? ''; + $unified = $emoji['unified'] ?? ''; + $shortcode = $emoji['shortcodes'][0] ?? ''; + $htmlHex = ''; + $cssCode = ''; + if (!empty($emoji['codepoints'][0])) { + $hex = strtoupper($emoji['codepoints'][0]); + $htmlHex = '&#x'.$hex.';'; + $cssCode = '\\'.$hex; + } + $related = array_slice($emoji['related'] ?? [], 0, 8); + $keywords = array_slice($emoji['keywords_en'] ?? [], 0, 16); +@endphp + @section('content') -
-

← Back to emoji list

+
+ -
-
{{ $emoji['emoji'] ?? '' }}
-
-

{{ $emoji['name'] ?? '' }}

-

{{ $emoji['category'] ?? '' }} / {{ $emoji['subcategory'] ?? '' }}

-

{{ $emoji['description'] ?? '' }}

+
+
+ Home + + {{ $category }} + + {{ $name }} +
+ +
+
+
+
+
{{ $symbol }}
+
+ +
+
+ + @if(count($related) > 0) +
+

Related

+
+ @foreach($related as $item) + + @endforeach +
+
+ @endif +
+ +
+
+
+ {{ $subcategory }} +
+

{{ $name }}

+

{{ $description }}

+
+ +
+ +
+ +
+ @if($shortcode !== '') + + @endif + + @if($unified !== '') + + @endif + + @if($htmlHex !== '') + + @endif + + @if($cssCode !== '') + + @endif +
+ + @if(count($keywords) > 0) +
+
+ +

Semantic Tags

+
+
+ @foreach($keywords as $tag) + {{ $tag }} + @endforeach +
+
+ @endif
-
+
Dewemoji Native β€’ Press 'C' to copy
+
+
-
- Slug: {{ $emoji['slug'] ?? '' }} - @if(!empty($emoji['unified'])) - Unified: {{ $emoji['unified'] }} - @endif - -
+ - @if(!empty($emoji['keywords_en']) && is_array($emoji['keywords_en'])) -

Keywords (EN)

-
- @foreach($emoji['keywords_en'] as $kw) - {{ $kw }} - @endforeach -
- @endif -
+
+
+ + Copied! +
+
@endsection @push('scripts') @endpush - diff --git a/app/resources/views/site/home.blade.php b/app/resources/views/site/home.blade.php index b692135..87561e4 100644 --- a/app/resources/views/site/home.blade.php +++ b/app/resources/views/site/home.blade.php @@ -1,65 +1,213 @@ @extends('site.layout') -@section('title', 'Dewemoji - Emoji Browser') +@section('title', 'Dewemoji - Discover') + +@push('head') + +@endpush @section('content') -
-

Emoji Browser

-

Rebuilt website powered by /v1 APIs.

- -
- - - +
+
- -
-
- Results - 0 / 0 + + -
+
+
+
+
+
+
+
+
+ +
+ + +
+
-
- +
+ + + + +
+
+ +
+
+ + + + + +
+
Showing 0
+
+
+
+ +
+
+
+
+
+ +
+
+ NEW ENGINE +

Semantic Discovery

+

Search the meaning, not just emoji names. EN + ID keywords supported.

+
+
+
+ +
+
+

Trending Now

+ +
+ +
+ +
+
+
+ +
+ 0 items +
+
+

Recent

+
+
+
+
+ +
+

All Emojis

+
+ 0 / 0 +
+ +
+ +
+ +
+
-
+ + + + + +
+
+ + Copied! +
+
@endsection @push('scripts') @endpush - diff --git a/app/resources/views/site/layout.blade.php b/app/resources/views/site/layout.blade.php index 5c36151..c0988aa 100644 --- a/app/resources/views/site/layout.blade.php +++ b/app/resources/views/site/layout.blade.php @@ -1,92 +1,93 @@ - + @yield('title', 'Dewemoji') + + + + + + @stack('head') - -
- -
+ +
+
+
+
-
- @yield('content') -
+ @yield('content') -
-

© {{ now()->year }} Dewemoji.

-
+ @stack('scripts') - diff --git a/references/common-page.html b/references/common-page.html new file mode 100644 index 0000000..d5f6712 --- /dev/null +++ b/references/common-page.html @@ -0,0 +1,286 @@ + + + + + + Privacy Policy - Dewemoji + + + + + + + + + + +
+
+
+
+ +
+ + + + +
+ + +
+
+
+ Legal + + Privacy Policy +
+

Privacy Policy

+
+
+ + +
+
+ + +
+
+ + +
+ + +
+
+

At a Glance

+

+ We value your privacy. We do not sell your personal data. We only collect essential metrics to improve the Dewemoji API performance and ensure security. This document outlines exactly what we track. +

+
+
+
+ + +
+
+

+ 01. Introduction +

+

+ This Privacy Policy explains how Dewemoji ("we", "us", or "our") collects, uses, and discloses your information when you use our website and NativePHP application. By accessing or using the Service, you agree to the collection and use of information in accordance with this policy. +

+
+ +
+

+ 02. Information We Collect +

+

+ We collect several different types of information for various purposes to provide and improve our Service to you. +

+

Usage Data

+

+ We may also collect information on how the Service is accessed and used ("Usage Data"). This Usage Data may include information such as: +

+
    +
  • Your computer's Internet Protocol address (e.g. IP address)
  • +
  • Browser type, browser version
  • +
  • The pages of our Service that you visit
  • +
  • The time and date of your visit
  • +
  • Unique device identifiers and other diagnostic data
  • +
+
+ +
+

+ 03. Tracking & Cookies +

+

+ We use cookies and similar tracking technologies to track the activity on our Service and hold certain information. +

+
+ +

+ Note for NativePHP Users: The desktop application stores local configuration files on your machine. These are not transmitted to our servers unless you sync your account. +

+
+
+ +
+

+ 04. Contact Us +

+

+ If you have any questions about this Privacy Policy, please contact us: +

+ + privacy@dewemoji.com + +
+
+ + +
+ © 2026 Dewemoji Inc. All rights reserved. +
+
+ + + + +
+
+
+
+ + + + \ No newline at end of file diff --git a/references/homepage-refined.html b/references/homepage-refined.html new file mode 100644 index 0000000..3faa207 --- /dev/null +++ b/references/homepage-refined.html @@ -0,0 +1,336 @@ + + + + + + Dewemoji - Discover + + + + + + + + + + +
+
+
+
+ +
+ + + + +
+ + + +
+
+ + +
+
+
+
+ +
+ + +
+
+ + +
+ +
+
+
+
+
+ + +
+
+ + + +
+ + +
+
+ +
+
+ NEW ENGINE +

Semantic Discovery

+

Don't remember the name? Search the vibe. Our API understands "celebration" β†’ πŸŽ‰ πŸ₯³ 🍾.

+
+ +
+
+ + +
+
+

Trending Now

+ +
+
+ + + + + +
+
+ + +
+
+
+ +
+ 3,664 items +
+
+

Recent

+
+ + + +
+
+
+ +
+ + +
+

All Emojis

+
+ Showing 42 +
+ +
+ +
+ + + +
+
+
+
+ + +
+
+ + Copied! +
+
+ + + + \ No newline at end of file diff --git a/references/homepage.html b/references/homepage.html new file mode 100644 index 0000000..bf2dbaf --- /dev/null +++ b/references/homepage.html @@ -0,0 +1,333 @@ + + + + + + Dewemoji - 2026 Revamp + + + + + + + + + + + + + + + +
+
+
+
+ + +
+ + + + + +
+ + +
+
+
+

+ Find by Keyword +

+

Search 3,600+ emojis by meaning, vibe, or tag.

+
+ + +
+ +
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+ + +
+ + + +
+
+ +
+
+ SMART SEARCH +

Semantic Keywords

+

Don't just search "dog". Search "loyal", "pet", or "puppy". Our engine understands the context of every emoji.

+
+ #joy + #success + #travel +
+
+ +
+
+
πŸ” "Deadline" β†’ πŸ“… ⏳ 😫
+
πŸ” "Launch" β†’ πŸš€ πŸŽ‰ 🍾
+
+
+ + +
+
+

Trending Tags

+ +
+
+ #coding + #coffee + #weekend + #bug + #sick + #party +
+
+ # +
+
+ + +
+
+

Recent Copies

+ +
+
+ + + + + + + + + + +
+
+ + +
+
+ +
+
+

Smileys & People

+

Faces, hands, roles

+
+
+ 🫠 +
+
+ + +
+
+ +
+
+

Objects & Symbols

+

Tech, tools, signs

+
+
+ πŸ’‘ +
+
+ + +
+

Β© 2026 Dewemoji for NativePHP.

+
+
Database: 3,664 Emojis
+ v3.0.1-beta +
+
+ +
+
+
+ + +
+
+ + Copied to clipboard! +
+
+ + + + \ No newline at end of file diff --git a/references/pricing.html b/references/pricing.html new file mode 100644 index 0000000..fb1c610 --- /dev/null +++ b/references/pricing.html @@ -0,0 +1,293 @@ + + + + + + Pricing - Dewemoji + + + + + + + + + + +
+
+
+
+ +
+ + + + +
+ + +
+
+ Currency: + +
+
+ +
+ + +
+
+ + +
+

+ Supercharge your Workflow +

+

+ Get unlimited access to the Semantic Engine, API keys, and offline syncing. +

+
+ + +
+ + +
+ + +
+ + +
+
+

Starter

+

For casual emoji users.

+
+
+ $0 + /mo +
+
    +
  • + + Basic Search (Name only) +
  • +
  • + + Copy to Clipboard +
  • +
  • + + Standard Categories +
  • +
+ +
+ + +
+
+ MOST POPULAR +
+
+

Developer

+

Power users & builders.

+
+
+ $9 + /mo +
+
    +
  • + + Semantic Search Engine +
  • +
  • + + API Access (10k req/mo) +
  • +
  • + + Offline Database Sync +
  • +
  • + + JSON / CSV Export +
  • +
+ +
+ + +
+
+

Team

+

For shared assets.

+
+
+ $29 + /mo +
+
    +
  • + + Everything in Developer +
  • +
  • + + Shared "Favorites" Collections +
  • +
  • + + Unlimited API Access +
  • +
  • + + Priority Support +
  • +
+ +
+
+ + +
+

Frequently Asked Questions

+ +
+ +
+
+ Do I need an API key for the desktop app? + +
+

No, the basic desktop app works out of the box. The API key is only needed if you want to integrate Dewemoji into your own applications or CI/CD pipelines.

+
+ +
+
+ Does "Offline Sync" work on NativePHP? + +
+

Yes! The Developer plan downloads the entire semantic database (SQLite format) to your local machine, so search works instantly even without internet.

+
+
+
+ + +
+ Prices are in USD. VAT may apply. +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/references/single-page.html b/references/single-page.html new file mode 100644 index 0000000..15a0145 --- /dev/null +++ b/references/single-page.html @@ -0,0 +1,277 @@ + + + + + + Grinning Face - Dewemoji + + + + + + + + + + + + +
+
+
+ +
+ + + + +
+ + +
+ Home + + Smileys & Emotion + + Grinning Face +
+ + +
+ + +
+ +
+ +
+ + +
+ πŸ˜€ +
+ + +
+ + +
+
+ + +
+

Related Variations

+
+ + + + + +
+
+
+ + +
+ + +
+
+ Face-Smiling + v1.0 +
+

Grinning Face

+

A yellow face with simple, open eyes and a broad, open smile, showing upper teeth and tongue on some platforms. Often conveys general pleasure and good cheer.

+
+ + +
+ + +
+ + +
+ +
+
+ Shortcode + +
+
:grinning:
+
+ + +
+
+ Unicode + +
+
U+1F600
+
+ + +
+
+ HTML Entity (Hex) + +
+
&#x1F600;
+
+ + +
+
+ CSS Content + +
+
\1F600
+
+
+ + +
+
+ +

Semantic Tags

+
+
+ + happy + joy + smile + grin + cheerful + laugh + positive +
+
+ +
+
+ + +
+ Dewemoji Native β€’ Press 'C' to copy +
+
+
+ + +
+
+ + Copied! +
+
+ + + + \ No newline at end of file