From 27cbaf64f1378a8edbc0e3198580c2a1687b25ac Mon Sep 17 00:00:00 2001 From: alwkala Date: Wed, 2 Sep 2026 06:06:12 +0300 Subject: [PATCH] release(styler): v1.4.0 navigation quality bar & 5 anti-pattern rejection traps --- .tidyfactor | 2 +- CHANGELOG.md | 8 ++++++++ brand.json | 2 +- dist/tidyfactor-styler.skill | Bin 982578 -> 984102 bytes package.json | 2 +- references/memory/component-anatomy.md | 11 +++++++++++ references/memory/quality-bar.md | 9 +++++++++ 7 files changed, 31 insertions(+), 3 deletions(-) diff --git a/.tidyfactor b/.tidyfactor index f3e167f..203267b 100644 --- a/.tidyfactor +++ b/.tidyfactor @@ -1,6 +1,6 @@ { "name": "tidyfactor-styler", - "version": "1.3.0", + "version": "1.4.0", "category": "design", "description": "TidyFactor Styler - Production Framework Styler, Section Redesign & RTL Polish Engine", "repository": "https://github.com/TidyFactor/Styler", diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fcd3ff..084eb62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- +## [1.4.0] - 2026-09-02 + +### 🧭 Added — Navigation & Header Quality Bar & 5 Anti-Pattern Traps +- **Strict Navigation Quality Bar (`references/memory/component-anatomy.md`)**: Codified zero-emoji invariant, single-line desktop menu constraint (`white-space: nowrap`), mobile drawer requirements, submenu escalation threshold (5–6 links), and 3-control cap on header actions. +- **5 Navigation Anti-Pattern Auto-Rejection Traps (`references/memory/quality-bar.md`)**: Added deterministic rejection rules for vertical text wrapping in link pills, escaping action overflow, compound phrase congestion, duplicate CTA intent, and placeholder avatar/emoji traps. + +--- + ## [1.3.0] - 2026-09-01 ### Added - Runtime Tooling Manifest & Logical RTL Auditor diff --git a/brand.json b/brand.json index ea45fec..6c1ce29 100644 --- a/brand.json +++ b/brand.json @@ -1,6 +1,6 @@ { "name": "TidyFactor Styler", - "version": "1.3.0", + "version": "1.4.0", "publisher": "TidyFactor Ecosystem", "partner": "Alwkala Digital Agency (https://alwkala.com)", "contact": { diff --git a/dist/tidyfactor-styler.skill b/dist/tidyfactor-styler.skill index 092bddfb2677b10b332dfbeebff6d722e6d9fa16..bc2258e57350c7c0fe2705d337a6044be5d3b95c 100644 GIT binary patch delta 12986 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 DF*!${ delta 11365 zcmZX)1ymea*EI}{OE>QB1cJK+mjrircPBWFLm)Vz@gPBhyE_RQJh%pT4HoQ&VV?PB z-oMs5tMA_D?5bP$p027Z1rdVPcLJzNvM{jNP|rs&R6Hs(#!Wkge%Zb?`|T5x1q}s7 zk{Ae$6K@0rw>b2$qDp#zLsxSW$^7h6=P6S8VV&!9gDKg#F|;x1`OB4muQ1Lz%;%?j zGJ93f`&o!>Xk5lQN{kd0)~Fp6p$ZaYx4u2Yq0g@Qx}M`*e1um_ExvChqb1%s%`BLO zle6uWd$GPSp=GyT(40*^hT8 zNUZ9M7#xqW-By0x$891~_~hbupRUgXzN~6jgc+Uqh-YnfKRQ3&CEJTdxRG>%Yy543 zy`H)P2^U303PdQg$+VAfP-yxj5$A+2F%*&bMioy@64r=ZEIH{9iv<~WTYicH0kQwT*CdE|h z(Kq#Uz%FSj;rSdLoK^nTGO@_Eg$XX1Q?lCpsfi2&OiB5v3}zmd+ZGho1;Z-5-Lb01 zRT7ZjzdTelsJTac8ycL-t1Eokd;~F!SHwnJQVlN6<^&E%-O#*mGf9-UjDrVvj?K5; zZlG8PMUm0EypkzoZ~oNFpkM6L&StlHCYn~x4L;8*Gn@9|HA!Cz)y2I%;e3~nnF(Rp z?J>S;^f@7+adUI}E$MRN?&8#sW}qTG`pZvjhU-#Grg^-%6Xfnt9b z8|-bV7mq1TIgHER(lOLZu&qQUVki*3XcX0Z zUN!!SQ-LD)6zXKyLP~w)a=OK%MBT}GZ8ePE?NysFB-lCVqxx)+KE7TnjrIsm*1TL& zzVMmZ8iYBtse+Li#IT`f##oHYxbIg~3sz_TGK$dKDW=k&Dl3pg$Ypp9P9w7j#bsW) zl8QIt(&bw4-I6=d%aKSOh&ETJRKS#E`p8ox!?<)=aZ91c$|+r@eL-%m#ypD(x#!RH zOJqtCSD%)0aa#spx~{L==4;`4a#%zS>oM`{%8U;J!R#1W-qKd4btXiO1IR~1^$jb@#5;TOLA zmRjcW4+kBPHAa!Q-}q#X8<|Tsm9@FPdgs~{`|h_~)4BJcx(WXM4Y7FwK{P8OYoDgu zn>{oZX*H`a@BDs;TDLHLBL+~&cZ0=52+rAQb$)#&IIE)Pt3-Vr;;KD&Ng8fArovpO z?Iji2i_n82;%uW<|J69LB)0O(d;$z;`4}xHCA(>5q!cOqlOA%4l=*pVCxn*H%}=a> zj#Kc1`*=eUzPBkhs2^9FMvjFy`;Pp>+XLovsNSa67#-+B?>SGc^Yz%#eXYUx8Osv} zh~484=Xzwdu71BSxZh;rct_@Tl%i0dOHmlMoDRXgt;6l_Vm))8E!D3pn+L~MjDrMY*sz&nK(PyEJ(~Qjcoi)3c2Nt<+@kjT8 zY>^$M&@Ixyw(DBKWk^I;)xImZJeFHD1jGCMok@pGq(yYJZ4ovagOo3WT#H@(=(a2Z zD7HL>?9a@d*ZlVAc!+Qx&)v--9~dP4u?3Bff&K`Y<|!FHc>OH7yE+eZ%t zcsbB*u&c?9DFZ9TMqI5;3`c;o{H~9D1Xg!d$`m^VA1R)UmID zIQmS!>5{BtuhZ2M5ScO#d!a) z$J>_yj%ee)x8AgW$D%CMdQ#+hs!ynJ+CJ!)C!2a`=crRciS{jQ^VLvIuc{Wa24~q2 zF=tKN9PUBT(roIqnECE$d#?+*(#C<%WytG{QAUm9cRvN$ITbaS7u>uXm-u590GV0E zg|jS8Y_Z(UHjr{~FF4y>i)V?$k4=3u3VX1iILPfrjXju9f^@z5VU6tj3IM5?opG;T zo~0z`(PWIGEwx%%Jm$BZ02`}-s^UQaIIlEor-4Y?TRUehruOtpzKn$!juq@lducLt zG&DSiJ{}($9KHR|{sg$C4$iSgbVlC#aQLPAGNSGpeMFntg#f6)WE^muOPtXZ*_L6r&(YPjX`E*_h-;5YOk1?}bwWW}m1g*VaIp?kV zIGLrZKK20MK)z!b=R<|&R}T+FMC8n9v92;Z_1W!o>n9Nyje|B=(2kV$Ea#)EPN5#UWE`ZVB_ocl*D2(q#9lMY2QH| zP!J$}8*L`krQ8{+H?k7HT_rFl6)yaN^68x!YUsBFGLeQwy|D(d3w$g!-xS2z#ANK> zaS>puT> z4Punb0x)-TbE=W$RkKpfW1 zcn2SD{%g+=p(|TnLhcMZ=r9ErA$(L}Bc_$b&i&G{Y;XB}OdHk7TCb}`xvgA9cAe*T*RgcnSNRfbe}#nj zj{Y?2z}8;2w+VH=1%v*2!!TjUfE-0F+>9oD_^0bF`oGiQwM`z zZMq-*B`J39w$5^SQsm~NW4V;b-mZSD_6Cg1g>LOdRdf{(U(D19RG@ceuuc8hbiFbR z9KJgwz$U){?y#R@rI#@>pRG=Yx{(uw*-e14>95n>7k&qRP}lmY$i;rhT zB`52+HYS}~t?c8SAq9${9FIj`8wf_`io*y_lXz>kq>6oMI+AlG>$%dx0>{$aFwBML zcC{eHURnt&gdr;i@j@*%HZRK6RaNLX^zLspU%`E#vo^%4c3aL-4yPq)J{q%MY-&P+ z)zLlZ_tB4LLDI>3hhsuuQ%y8UXfxsP^H$=NBxdo0Kujj@96WTx^>Dh^I?uWwF?uz+8$y(7wWno#ovx0~ zR}NEMkhk;f_hS*Fq})8>!itH!0Cv`VDf8R@=%F`PO=jz^12bD2JJ(!I6A4`A(p1~? zua;!}7F0n4@M0T;dVHm@USO$mM~w{`7f!AL$xuMhVodJLoNudM*#rrS)vqput6h-k z?YotSua;&>Ro@mVw|CLj&x!d=9;t6sz`ywS@*Jgt6W}v_1$MuxFE1b;D%Fm+N*hd1 zGq|RiAGJ6{)+V*s{boa<&DXd2*%&%a(EqXIWOKI+A+QO}PvpBYbr<+(7L#_h4L&-T zaIEv4obBs_T$(goEm|Nbpk5GJb>oVD)(Q7yGRC4<=Q|}1;(qa%R%o+p{w~S<`v4gQ zBKWpbEFF_ZwM?p&R;t>nx}S;~C-T6Ip#d?E<#w7;gq|xHmTq?E*P{5s<@vehz=46v z14-3X=c0SqM@w%4!bxza**lvin9U<$rpgt0CDd43N^faCb{oH3o25*+DixPRVBoPa zl{#moRa{LBGj(v*LDgKA?W)Ldty`J}MGo5cHENRMZjnGEav9haE0KnNbpRS-0)ZPe&xPXxpeqsxE}K-pBAHy99v%v+ z6b0gJ2%>@*6#@|;X_Y`6u!g+jf)sii(Fr((--@a!ms-F*4b~o-Mm{ZDUWHo9Wiyia zoo-^w!I26(3Yp7c(>=<)=?#rvjjW8=c(ACgu*LEZAC8)p%_@oh!$ zq<}${sVZw(XA=%*a_R zy#R>isp}GI7+T7t-n8|qtwLSB3e8Myn5Ir@J=@qQ7jeaOyu3dQs4uz^MId|wwjF3{L`SB^OFUm(Z0-v)q1Ee`SN{cOh7)sf zmN15a+HL4mDAtGCaY={Za33Z?tV!iZ5(7Q5jkdF++t-Y{8D4#>nu6>}1$$X_d8`i1 z+rhcC5M$wza8^2};*!WXSeHfbD(|EY(jl%Hc{sZu^CYd$;LVt!ejSB+V1FNPcP)&a z%E+slFbex18guGF4Rz`n46krq)#hcV-}-?Ck)5BHe!-8h@R9!T?SZ3KmssatTv;gV zBHXFVPWOn&EkVCk3#pG_)II#3Zak~1Zl8mqeyFx>++1w|6b~d1O^Nptvw(RBd5f(b zY4-&^KxTwz1pE+&429V~)lbUa4#80OMzSu%#I&2Yt0GPu_2+0r^%F`=v^FG3h?1W3 z!GLb-rkNR9Q_8MTclx6dBOG2VFmUkj6S~K$=o58HyNQft`ovKs>aJV@Z?=4!K@E}W z5~VOr1!v>xLP1c1m>k3HEL11zSE=bdv0N3uNOs(mb#QT_oXE7Sr3a~OWx+hd7_tYX zxbajG_L?Lg>Uf9$rhovznV*~-G==t|zQW4cc{~T@e%S`EsX#z)q}uM0u6|^crND}G z9HZ7N9OVPXihx&fE4oKd?_^QsC&~QRWsC%dg)&PraCX?390kj3n@I*b->?tc>X}fn z%g)~hm4Y!f-w^*MiZTcyW?09%8~;9acV5`RT(MOr{XMV0>ch7`(FTD4y(I=dURm^_ z*@y&$KD2`0-MD3=aWK)ZrJ;mf8){dT_w*{%T@npT%!L%@5)xGcKPmB0(T&Fn3F+QR zM8WwzoRfKC6;c*WY4 zPJ{>7JvcuL`E!o+QS#3oaR?Cn(cLgU@qk-%JKz~mG`Q?=QA2V=!azyV<14G~$x_m* z5B+JDN3QZCuJw_nB`s>dwW^AlJ$d3hRaAY0JkJD9`7$i*axB=3H{bB}hS4;}P`5|H zEUzsX-3K=Ii!Ifsj^xVFTPY%}@3#-|wYiH$){L?3jFV7UAp4$df?QUm-2j1ID((9A z+lSYU$)lHFAK%N2?$f%BUlFAf3Kp56Y5O#qf5yJ*w*HY&OqIOe*56$3+j1tVYliANQWd3tAy=s_yvzR8HZ?<^TLa=x$5jq+PNTjDeCoVwwDxwggcDyxNt?hW!3d{mJV_O5vUHr*D5E!cj+ z1YFKCiOTObh7ZgCrPVw`QI+=KVB8hDU~FhSgEt@sbMHN(5I3U8YEC|QQ3P&znwT4q zSAE%QDz(TerA;hvK+9V&)y3l$Yh&to6h4`#iNP@@Nmp{8_*%i`91Qa|>bsiNE;PH! zZF)+;D(G`N2I;ZqJwl!*_3PBC+Z{_?3a~SN-6OO>K2M*pId|dJTADnHNvu-1_`Id; za(1dVkJ&B>DQN~10S_Oe2)|l1ugzHGuY=~v#6suTiC}SnMuF@r96@Ihk`85MyB;cc zO39S0*Z95<789{%DfvqlDSgNXp~lswv(Vym<5D-T2s0%+K76XGIii(ZAY?5Bn(-WU zLGkXgZYfcEOA^!7G|msfI7WP{anYXZr67#i46`6uRl<(k3Pg^rXatg7f9Ip#H~i}> z3jG2^*s$3MRAxYXe!<8LdN@d-K|x87K|#o4VDTX6mmo}t!#WTRti9l}_}0ZwGvp!X zb*N>UOYm^X7Ya+dAj((D^_;nL3AEirM1eNhV?{I$!GQiFud|Ysd!&czd(6*?>LTLv z`fno4JaQN~_BRF+KWy&_`{>U)lq~OP+#hy4YA&Vzs4bBBIJl>giZJP*t^&y~pJP=|B*6ElE3L1OB|J`+QopP>e}wnDtG+AszyGaWw{^8lNnP36 z(=EnV6)oDO19nO`A@W$68r~^Zt?3D#K^WE}$;vqCYpfmv;??&~NshuSEeqx5Ff7$y ztml?$*0WCf`Gfs0&fII}(o5V+uo5pqyLaImnmN8s4!mKiR!EhH5teH{?(s66@p3a~ zkfwiKl``ZX=Q$Lur}<8~rJW0P1J4rigA`rnV6=k#KCZUD$2Fg(_V|LEheh6GlF#s( z1rf>j;u0LNz_M_(vCSM_W;CX!7Uf%Ru5lZp(?SOMnRzg5`z&^Q>itDKKPm2(yX|8q zlksick#ozSMtLwr@knc;g$Z=-rW1B|F|izX`~Z8pma2R40ykIg)Q0Y+&D5sUFV$re zF*mRmnjlrRH=N*LL+crOWr=;hEdKR0KK^xk&^Zq1Ji;t)8NjI;7wzN{#2PIpsx?t5 zU#JOp*9qp3jOJV`aOJ~nGM@j1bfKB(JLa z-Dhw7J>MGE!FiDyp^~8{EJxlVj_z`lXG9`h;qY21Yx)lQfU=~QTjc_nXt%v&{S8uI z=$H8n<5e_I=bIaow@G9q2W3#02N^`GrRNH2?g(IPT0!(_;SG~lUjzDv4mX-rJMj^b z;U92D_q|XHohLKoq^qKXA!ZY z$HfG0!f}ouCB;MITdm;nk%I}NMBq#yVf{?*T5%M+avHf^`MQp8{dI-Vm zs5#9 z7w84Ows`nsKXvG9VWSwp*;xY0UHNYh=}uv{gIP|}V}d;KN}BigTsA7W9I(cJYax!E zE-=x)2K+>&!Mxdxvdk%QSA;jB4n@{;Aaa>*Z??KXo?{6#k1s1R!8C>%vrvf^XhMAr z-t{w3tDfVUh1=Aq`VHl%S0HfHyE_3zZ4HU)auoTnkBin*ny~2crF+P z_p7c15&JqqcC~^}M=1_I)lVC4{qq7v@JxZLPnHjhvX4^FucJ+urt2#jhKKqhcbWNn z902*v!|hM(Y(!&{r0}vo3y*hXyxYRd2c~@bRr%O_o>-(*|BGh0+17(B*%DQeFCGNzaJf^BR4q<0A+*&-2c#D z-YyLU(S*?zuLzp{fg0sM0WVH-v85jT4l!+oC%@8bP0=daqrfaiT7o zErS)PBA$#5E3`B1tscyQ0X81h4O9qbUvog3z?9f;wx_sbfOUR{5px8sJoOGBRLRH} zXaNrEQ`VOhSUXG09Fm1eQ|iz+XjR3-GZV)KyuYnstIHX{Rd9n7Ff9;ROXY0Oa8 z8eJRS6TPy4mFAdbMvW8=msEU(Y8U-8{T)GKyGXHklL>`HTd#rmV!KWsAnb&15hE5Q zM-G1wC7Yw!CKc1;P3{}({O;g0nn3j5BgCS%IZJU4Uk@|4aeo?LV`D2AO_5VAI6||> zrEk}L2VvIWcZ}vDqJpEECu>FQTk`RdKHsk2&BVQ>QbyA<3s4%z&VjeL1|3=FZYcnxtzg1+iv)fg>%Qq*R_r`22*>|= zeQ;a6+p?SYoe-`16w8HJXvwLiC(pUYe8pnN?`J+IIm$(q6q(?X#Z@QIE%D8$;n}(V zE}5BtP?m~f_pmrCxNM5f3{ox_zuI4tRjP39k7Vb(JJ%gvFMHO}2Ye^`Fik>)uXkc; zA0;h|4qsfAN(dGXz6*B@bxyBqCDC+5k`Feu$`Prh|G*d0#-pSKJDNm# zC@r{0GAw=cx`n?9QvBMB1$=XM=eR6cYV3!3Ln*V0hAFkzvmhQILq*g-N}a5V-MyMp zsOK2c7Wm6U4)0IB(y^8pi$*pw={q!^tuNHrZ{LQKmsZJrn<&P?s09f`@G{r6gx8K= zq0g%96-t9YpX{)F%D+|;s>q9*p`UD0*q2U4l7%ggy_GAA}6r z;LVXrNlT0RmF8kD(X^K=#O(#~c8T_;I=VV=Br|md@f8aa?>SM52tFO3-K%eDoaRo~RukP<9H*inCG3aERcjDRu z)@|5XBF#%^?j85UZnP4PF}X<9ULxU34x)(Yrj$nc-Z(!-SQwy0BB&|jz|yBW9=)Gm zr4F?Rk9;F)8h4(h9Snd;uhPYM)2r&g_R3LdPw5MT0ZrO1nw>KI4!~asTFO#$-6p0& zjEuyl$EkaSp2xy|vO)e374$|B9g3&%L&%>!Z(9u}7mKgXz;2YpohD3vQ-x^J@0iYo z{=O3-ba0yf2^YYaKDLNMWIk;xs~smt-z!lbFo(cMof$f&EFK9O70K)6VYTib0~hOG zm=>4xl$qt>*>g-i1U86~`QDw%DhW-81&JQ&v@=o=#u`1)UZ>XjCa_5Aue7|=5Z;oa zF51z-KFOaRYGTLmamX-*J)%mo{$6Dn_o-jjT3cuaNGOkV<8(33N)iWeLQJO=&Z+O# z4gO7XM-r}MG=eK|uTSJmpK+lKpZg8+aZGFp5>q@SPj!L%xnkp7^wxAVFQ9sW+zsE) z`n_v80dvN_=i*lnR&Qa>A~L3O>YFe~7_>N_uOtsCzFK6wlZSDb^VN;G(Hcp%CU;#9 zOfQz8dgCq?-Qlc%u~Rao9R-X|OFVy)F8J7C&&!5_eP-W~IL`H2A5xD6xK*GLzq!%B zA=<;nNa}Uz6L-anO^le9n3?V4>3|&gfRBwwaGhUI9eiq@#UCMAzUCo4LH=WF=fBm- zCY;s(SSrck+V3M|uF|SPNOX{w?btK_dAzx2=ps!-G^aiv)pYfqHy09|Y77b#agqIR+qL3tXG8*&Od9*Y?7VVA z&_2T<$&Tms1v(?Lh=loEsa`rpt#G2$@ZVq%P%Cssc`?`0n6Uo504-3(K5UfU^b~dA&ecg; z%W0zL(-ODXpx2OZFtnysouz9N_dCkd@g;Gnn{t&uXpYboe;%P5vMzwwC{I(qb+w>- z-sh>`8a_}n`*Xq34)jg&xxm#5s(kfSfNXDqgb@F?uM5Jo1^W1Z_c8Ttf%E`DphS!i zYzW^rhz($Y4q@8`5kbPYK`ekt{ueO$42(ry0NKtHxRHDTw$DIK?gcbFgI(np0J95v z4T$x41~Py>-xo4v_bFl|=;?CAua#t>0oYLg+kr-@|GX3Je+R+;3Q*`!kD}kBAsBlg zNx-@M2HNF2tP1>s+z*#{s#n8}~WFVyh?h=M#A z>c7>;{ZIAZc|ceXL1Hj|9>8Y}6(r>lgi7)MTTuE(0|iwdc;NF_EH-5B5QIbVzojL8 z02I_E926Ake_{cCf5l=!wEcmo5auHg>T}-<9)XBq(!o!z4?t3g*Aq+ef2&FR&uN}p zdHN-m4l;c7)C`0He<|r86vrSA7>c03k^eD>9mY50Z!~`l;)d~y_zST@#7~}dosob0 z7(W7$Alc89YxLjLatsg%fj)hra%2CdfbmbO6MD~-b>iPt+GxEV`U{?lsD9mQ7hEHeXC)V;{{E&@FAPm0%%1e+CAa3FX>`ei&AsLrX*KMAAVU8}J66ycUuR*c@=UUjSFQHF! zZ6Jv0)swjR_=Q=$0OCT1u3mb6?&_)MYySWt%GaRR5bEov_PKvS<}jF#f76O^AS}rB zlMj#v3lRmNVZTh{jUj`uAqF>3bRp8e=*k<=8^ARBzZg`!r@&W#o&pIN|3xdZfiNH+ z|GZQr?ax!Q*KoYJmF_?|kYCS&>wh!cw;*=FTfTqAWJ`jOA(^)z4uGZbe`y>D`rVUW zMd}|~9sn)>4j1&BO8-O+*f3y6CJ z@dBp(UclDlQ*MNY{slgXposzqqF&0M(F6c>(J$p|G=4x|(u+U|8ch&@llBilg495x zaR9D!Ul>@xlMcJ^8R!C>ieJc#N)Yg0`TM-P_rDJ({C{%l`Crdf|186X#I}OqAwU>3 v27vAVW3c~vR6*=v&`1H~9sdfHc^dRVnx3OS%>Ijhgh8W#-&_GbUE%)&S8KUm diff --git a/package.json b/package.json index 4319d7c..f7351a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tidyfactor/styler", - "version": "1.3.0", + "version": "1.4.0", "description": "TidyFactor Styler \u2014 Production Framework Styler, Section Redesign & RTL Polish Engine", "main": "SKILL.md", "bin": { diff --git a/references/memory/component-anatomy.md b/references/memory/component-anatomy.md index 938d15f..f99928d 100644 --- a/references/memory/component-anatomy.md +++ b/references/memory/component-anatomy.md @@ -8,6 +8,17 @@ - **Templates** (`page`/`redesign` output) — organisms arranged into an actual page layout. The one level allowed to be page-specific — it's arrangement, not new styling. A new visual need almost always belongs at the atom/molecule/organism level, added once to the project's existing component library — not invented fresh at the template level. + +--- + +## Navigation & Header Styling Invariants (Strict Quality Bar) +1. **Zero Emoji Invariant**: Emojis are strictly banned from navigation menus, headers, and buttons. Use lightweight inline SVGs (`currentColor`, 1.5–2px stroke). +2. **Single-Line Menu (`white-space: nowrap`)**: Navigation links must never wrap to multiple lines on desktop. Labels should be concise (1–2 words) or use stacked title + sub-descriptor. +3. **Mobile-First Drawer Maintenance**: Seamlessly fold into an accessible drawer or bottom sheet on mobile screens with $\ge 44\times 44\text{px}$ touch targets and locked body scroll. +4. **Submenu & Mega Menu Fallback**: When links exceed 5–6 items, escalate cleanly to structured submenus or a mega menu rather than crowding the header bar. +5. **Action Controls Cap (Max 3)**: Limit header actions to 3 cohesive controls (e.g. Primary CTA + Lang Toggle + Theme Toggle). + +--- ## The 8-State Interactive Component Matrix diff --git a/references/memory/quality-bar.md b/references/memory/quality-bar.md index e35a782..b4cfb9e 100644 --- a/references/memory/quality-bar.md +++ b/references/memory/quality-bar.md @@ -51,6 +51,15 @@ Reject and revise any generated code that exhibits any of the following 16 AI an 15. **Un-Isolated Microcopy**: Using English microcopy conventions inside Arabic RTL layouts without bidi isolation. 16. **Missing Interactive State Matrix**: Shipping default/hover states while omitting `focus-visible`, `active`, `disabled`, or `loading`. +## 🚫 5 Header & Navigation Anti-Pattern Traps (Auto-Reject) +1. **Vertical Text-Wrapping Link Trap**: Link labels breaking/wrapping into 2 stacked lines inside a single link container (e.g. `المبادرات \n والتدريب` or `المؤلفات \n والأبحاث`). Navigation items must strictly stay 1–2 words and enforce `white-space: nowrap;`. +2. **The Escaping Action Overflow Trap**: Primary CTA buttons or action toggles spilling outside the navbar pill container due to link congestion or missing container boundaries. Header items must never cause horizontal clipping or overflow. +3. **Compound Title Congestion**: Cramming 6+ verbose compound phrases side-by-side (`المؤهلات والأكاديميا`, `المؤلفات والأبحاث`, `المسيرة المهنية`, `الأثر الميداني`, `المبادرات والتدريب`). When links exceed 5–6 items, mandatory escalation to Submenu/Mega Menu applies. +4. **Duplicate Primary CTA Intent**: Duplicating the conversion action in both the menu links and the header button (e.g. having `حجز استشارة` in the nav links right next to `تواصل مباشر` on the CTA button). The CTA is the single primary conversion button. +5. **Amateur Avatar & Emoji Trap**: Using plain circular placeholder avatars with raw single letters (e.g. a teal circle with a plain letter "ش") or emoji labels (`🌙 ليلي`). Always use authentic SVG royal emblems, cartouches, or clean linear SVG icons. + +--- + ## Pre-Emit Self-Critique System (7 Axes) Before outputting code, score the design from 1 to 5 on 7 axes. Any score < 3 triggers an immediate internal revision pass. Stamp the output header with the result: `/* Pre-emit critique: P5 H5 E5 S5 R5 V5 D5 */`