From 390a58b404e1f17a91167a2ac1d7d07c84d7eaaf Mon Sep 17 00:00:00 2001 From: Niko Abeler Date: Sat, 11 May 2024 16:33:29 +0200 Subject: [PATCH] using owl styling --- avatar.jpg | Bin 0 -> 27860 bytes render/templates/base.tmpl | 78 ++--- render/templates/views/entry.tmpl | 2 +- testbed.html | 451 ++++++++++++++++++++++++++++ web/static/owl.css | 470 ++++++++++++++++++++++++++++++ web/static/style.css | 191 +----------- 6 files changed, 951 insertions(+), 241 deletions(-) create mode 100644 avatar.jpg create mode 100644 testbed.html create mode 100644 web/static/owl.css diff --git a/avatar.jpg b/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30c33c42868adc3df75680901fd9ac5bfc8c105d GIT binary patch literal 27860 zcmeFZbyyus(=WPkcL}n9h3mrI-Q7Kbg}ZA=un^oOXmEFTLU0Z4BzW+I009C??vTCr z`@YXT-}#<%?!WhIo}qu!T~$+6-90_sQ?q`r{N4iLD$6U$gW!O~2FC^h{oba$lJm2- z0fCg1SU{*C5O83_!Gq`l2Df%0CNGnSU_G3 z9NYjV1oB4Uuz!vChj$pjxPUNqdq-D@l%=(kwFd;<&dbY9n1jR8$<>zK$==e{$C};M z!xkL`Vgo22ul!H0prob=;b!OJWar@o6f`tcbWB1l zObiT6QhWj&LJBe}N(wSC7(&O+2%%x41%sIcnAteFczJoL7=^?HxkcG|c)1^iz@ed` zVPasCU}2GPQ-i6w|F6^UcOX2}N1YJhXh86Ia0qyCzXw57fSyQ?eF_dx_OAp7kAR4T zjDm`WjsXy~;DP{8A;2RdAR!?l0@Oi3JqQsG37?uv3YkF50)@t%kUJ!)0F_p{p`S>5 z_A4EarAH_lI`I<{QZjl5MkZz!UOs*SK_OuoSvh$HMI~h&T|IpRLnC9Dm9>qnoxOvn zm$#3vpMOAD_^XK5kx|jfDXD4c8E-PP3X6(MO3TVCDjS=cTUy)NJ38MF3=R#CjE;@Z z%`Yr2Ew8MuZSU;v?H_zTJUYJkc6oLE{pR-W$D>`3cK(z8OS|v@yWkNK5fD)x?Sg~% z1r7u}L?mi1WPB+t6bp9(8txEOLg}P}hJG|!9__D0mL9X{#B{vd^cRn&{ju!-%&^e^ zPnP}5uz%aN2Es&u0~!wj4RKTxm4sp49xcKDw1e&P$&TH zrU*e=Mp=11W%kkfJNvTXZZQ)tq&sXb?nm(AS=G+b;P#v_eRg874dOy`zb+de-xEuKc=NXG^NVxlt=?!5Ob4dtR#nbDIG336kI9$_ z{raxRcp{hegjIN)MX)T|Z(w*k^$IfI2JhDWV~*&xmP#~p@SEZ?%M`+3dm`np9$4ml z>R;WM;E9gZ31jARkQ4_9+e_eMwc%>!suaZ?n&k`*l&Y44QLf=-P&YOX{r8KOSTm zFtavUKNv3Eu-)*GqW@fh-RZv6F%o_o*MdNQm(|9#ff?}Wx^kq<#F{kYxr6>a^>7 zV>DahcNoUoKM>(alQlR*n`*r?mI!1xy(D6RLUttwCKiw=On3# z%(e6t%jpS&d!mh*-HlP1-R0ne(E%ulWOHKN9KaXSk)(oo1`1d_Vo-cN8FUhU;l0tB z6}dAS4Ka!La948}P8vPQ+MjL-u*r>|eGfS-Yz$2fpsEopuvZRA$vV7Bz)|ub+91-I z7du{8A{%-Nqxra)V=eVzt_3n{n`%2DD4w=q|B*5j(xK^Y^8JSsUM)P%c#|ie?g!DP zucxni?Z%##xSII6vWB)lur@`{(H#csg`kHdwqUEy%3gNWVUCv+f4dAjGHkRHAm8k6 z8fghcOpMS*CDOSUb914%=4&R%p;~1Zn%nQW&`&k$*8%t&pdudaMf34J^es@s( zb0gb*^w3d8Y59v+OrrC?2+qf--lKAM=sEPRPWS6{$IrU5x*W-NjkMpOwVQH>VUM`DCcSe5F0v-g zX&$^{C1s8-jUjFppw-}1FgAyx+`LMHET!DNU6v{LG=6zsNp{X=A%Z; zSyL}cOQ5x>V`wZ^A}Tn_$gvuDx6S@_NN*=~ALa;#gI>9}k)Tagfs)GL2^!)=?yHFqQXAX1?cH zt3_>%-FYLA&B;=&cCKqTEJ(tqzq1Oq3dx##hPnqAUBfPHlNJKrKhGn~K=@Xj358cW za2`);87aT6ZMEJ&6=M}vaUvKY48H8z6tP}s7bLBHaSlf@jk>j5{OM?Gq8odJZ_tr{ zh@O$C+9-B59)2&--QX%$-;Di11p`Lq=VPI3h#&jTT`z>?PR!HT#VXJzI|#ePDuWYT zg{|Ng#4=cPW7ECd`nUEw#5>6p(u>=N?9bAd$*g^NeNLJk%A4kLcm)^Jo_ievH#yt$D zK(cw8BZN8cnf{!dfh5XiRwjH zOs|Jy#06m-X2EOqYpsoG6L47V2v>bSBav<*NS|`J=A%WFThNg9XkyYQFxe*fw8i0< z>Fi`*00Ro&sSh{X65eQBsx^{Ei(e}H@#ns}_Bw;FuLjf#>0ED$wgTgaOBJKY(79NH z9E=l4-Ym3a(rC}BC`zfi4=Jfx3?VQQHft|NGTW8pqwbr{)(?9K2P~)ir6@QW?I#8; zeikqO4N5VuGyDaa*S=9{CzndBRanaMA@dP+k@=O75Rk2US4(IcyXY^4lu?Qk&{Hr> z*G2K}pyt$}O-w{dv$bM$%iTEd*&4Ectq=Ka4OC@ZQSYjHJ%Om>`3UM-**@a30ISo< zfs%u7`j=sz`5Jracj(_<-l}q>=Jpy^x%ut<)R@-GIMO>^36u@!G?fRT)I5cwKwjJO zs>8>UrtU-C{n+W~xUq|+Bw{zbcr8CYy@1=0kQ2Ko)P>FH_JT*d5@ES5Z{5@0G}*E%i3TiXyw13pYrE$wT3Hjx67W>wIVF9! zd!#K@nkflM3`}OR+gaQ1{ce}Fzm1XcZTEP}Xk*bo{pB`sv>wtqNbp3rbVhqKQYj2J zvrwd)=4>43sAo+A_xUbL{Cz=!R$v3Xe|l4Q$0ssb-H}mn4vzT((bEW zol(?I>rP@&D(2o!hqLvXQ6^}VGL1fGXcEhtmH&n5yz^Bcv-+y7*45rp@tS)SUfKQJ z%c@rz3@N(vE#y$bP5EKkE{73Z1hB8z@osJ8u(O<5Ld-ybu9T6@n8Zgux-7M7Md@&h zwGP4Ss{5$j=;7mI#jl8=+fsK?Vqy)^t=>Z09h}O&roB}+n9U$iXy z72@p=-+pFHGELG}BI@?xOyA$cm%?taIlGZ9;yW)NKP*v~BHAMsCrvjKe2Ny~W~7Vl zA$BtRz!OOSG0y4IW8ckW8LZoyP2=vUZ=PeRrJ~~bt6o!B-zkK7L3<8V%-b9hLV&I% z2Q>@@9{fo34I;PvuS8O1V%c}kQTVDfKQcKArF9ZQW^{cOqBe(EgR9|2gof;H10=4y zeQH$Vc*J2yhi*uEUyq#$2$p&8YU4BI=Y%l=A+tREf)vMT=NY|H~55Er+% zKR^>!57HrlwtTz+V8<}GZ>m9t7y6|`r@I~cfvF2m9GR`B-G}&=KlHR}=M#bBuZ!5w z97&x+B&nE&Y>zrJwCoM<(Zh7(lW0V^KEOBB2FG8Uy(T^Aq)s9ZBVhXOcLvxlgKPzv9TORN0ix$UwhL4}&mU$VL2HUHQ-h4eGd+v!w zBP%H{h4|H>+U{Q&UtOdFT8cLZnig9*b3Jb`Li|9>AeuoV}IWD6l!@^SYC_< z9*Z!%cQW1ZVvQY zfbEa{NHJ>DXKCb^2*nF|cSY1?{ToDC&K0Z6=ws%$mSyEjn`n=s95k~I{g zEkm3*H>)VSprxV@2doC(A#qzza$HR*Ns%IIllk}xi7Df!&x^if-m~clLM7y`@}BZB zPIdkne+qURGNkN4?(j>p=-n-nmr#E5U8K?>HNHqSsFDk~BR}g>=K>MY1-V-vKF zReV!TJ|;*jx-@hehGn|<<$gNIf#lS}5%!CI{`zQ$UyS&C`iok-kz&jQ$XN_0AjOdO zw2^rWjDC_Ik5)q)H99UU-cchymihw1byts&J2msRj>v~_6_+Z`0ABF4KKP3bh`_)- z7<49Upv{HfsKsiAlU%6LrLz$`q{+BhIxV%JB?m!gw#!FrPyyB)JJpCo>`d@ENFWBL zA$DdvjGW4!_55D2z{z|8m7y9o}^)VlH@E>@LfN(C(hDiD<%Bk*1w#Y`c-2MDua5Z6x3=)(3zYm?{xwy_xVcUhdmbv&3(cvmD}nSa)LTCF zz{GQ0aEh)?C+P4`>6uNRPBv3xLP(err1CCt72bS-x>KJ0ezhCQB)U z1SX>;QDf7fTFPS%er-H=10?T?TqTbl9NnkjHPlAyYB80OdW!d`6I8}qyUm&LGg#)$ z^BL|RJqFqwdUX{KCfXHIXm*uHB^E>`-m90 zTKf}DbeOptDLFV3XE8)y4gWH6lQT*_p%pr4`cm_-k1zX9Q8;js$tCw&EUHC6axrfp z!RChNb#;fj`uU=R+nihX{enQl8wgT_U@61&OB1(ed)S6Ag-_V%;@4)&ay)h=A_Qw0 z4N{fJFt5Bnd^W4S;%|s2soZ*@SF}p1;G)eUl#S$iRlGi%(ftb<&#PGFiVyI zO$)~*&%9DH1QH+`^Xrp~TorpTGQtbv4oTd&t{rgJS%gjvzh!%7bw-DyjY2q_Z9*C7 zaP0HB#;cWO@(p|k3AoC0S+KTBzDry3Y_2g&q(Thkd8-8JjFANVSJEyVh9ayt{4tX~vN2qj=JP?*+ zSu|HudyQr7RLeu)I>3BYyF>-2M7t5*wWj5(kd%|-RYTqy;j*ckORjLQJvw>V6A?&O z;ae*9YD|Yg#y!bw}r^aL3jZx4N6kIQjnF+(hY@d&izpQXvG_8Qn{qEMn24 z8m--UDFzH%pFq8P(oN{Y;G2i=3e)S_x!<67#BMdM6R!nLM}yQQhTF|F2HL0`iN9-$ zh;)H?X0Q)(zvMHt$t^CQ)8?u=rd73v)I29Gb)C&}up3_;TRZD`CB%p>Ay zZIvUTAD_KLk$B}{9R5iNeIR;`T)Gqh`xu~F+Fc|kN_dB{6LsdJQr7uK2Zke;6bSg7OGuw2@wKuw3K>2 zX+^ZLv8n!G957~q?Hsf}_vT=7;10b-W~zy7(`CoO>-eTMR2ht5&Oz9#H~g`P?~9xa zJnBw2Y>4dTcb`6Quw%H-$NcY8w8~C1jTwl-?$M{s_jTfUDOr~ySdy~u`5F0^?0!U7 zN0$U6H{__dD;||KZjMKn{&3AwzM}Yf;Sn5nSJ-KPwyu3-kqa zl-Oz4bT$`>h6bG!D{61O%G3=P4P5M*ExNN0c3-Q2baKP$4HI@B_Ybx#%iNSmz`i9u ztKX7BP84}rr=_VG>#O|_q~piO)dh+8>&j7SErmuX9HZM8pO3|`2FDHaOo^C|HNK7X zRy(ikK*Z#%HSy1qR{T(7w(yyQ3nMHqjiRLWFgw0S%_%J@WifYoz-nzd94>wRr{he6 z>C@mH!xuAQ32E*>mYvnW^S2R}iP8RqbIi%|@0-}=8Ef>x`erMGE!-=phlSCT1#(bG zNj_-<;M=*Sy|~9&FCRYIR4bZ|8rWn5b|%rxoiC8FI-7am#v*YRmP-r>cDvl^T3`1r z{d&8rZ1O~7M|64%$(7Ul%aHi87Bfvdy>uRnV>>FH*A;Dx9+B__EkqGUC_AMs5n_)G-=K=|6bY$!E*WcSxi5bBJA4*h0iXFUcD;0dn zIxHalf-FHVhs&bxYHd)vx#LlPag?}M)D7^4m@+IOB%Nrk-$pRqu#80@CQ6+P>#k;b z7S(rmCx5(>ql;h^gna&@7o=jwDRY4Qr8(ina69zr;FRb^7q~ODSfB5_P4sC037swP z0;)IG$rn7abtUpdxWj?9daI6g_hgUu>Y<#bZ~iBe^l!mgy}Ge?aTwnBrt1nsv&L&@ znw*@%Z;e09I%5cWV2ik$nYFayg_yhRFlfuyg@32tD_18?#QPFv7Uw_Hk)qKZ?bmK4 zhV#;Rq5U?hY;|)4YcY4h?wySje9`q-8OqFXHN|=S0AWPs(T|e&D%Z~|8zZ7Yyz|E4%$i1Zz#So2|w$&Wwg~q2Mrh9MSpkn#6#M=oU}7 zvG;lc@(61!s#Aq_brfK$-IMe7j~270`fh{22zAnT^~Hh%4?j{EQdJ*m$F8}5&Arhcx3VxXa}%G7Ddj4Mea$d-KWKM z4g>Y4uH>?hRO8w6Z-}5PMdQ`pCO;{+^TrPp=?>R5o|f0vDc-)VSm!jkHhFWOV*%_f zPPG2o3Q+tsUAbH1y|Qc1b4bB6)Tv(qKSuPv3U9n&PcOTxoK8|(PD19XNKvyb(~w5F zV2y|dt^S9v02^tsPJ<}3?Jco{q#KgjD z#-nBq3{-x4k=JxDcGAMVjY^O^^eTwU_38u`9PkZmHkbbMJrdZ&56 zTk*ZxO#Ec{7sNue?d9rHS))80?F!{f;di$IknRgjl_7k^LnDmKOYest%dJ6adV*R; z(`t5c+eiyL8FJqUyqeTRbN4bQxE_A!+f213guHuKyYx$}p&lV?-yGV8@4m3i?eZg6 z*m$(P;Y&FBP*2me6bezFlelKt*V0WB6!2o9i<^MH2t|li*yv7EE$>F$IJX#UOMByI zM5`bcyl3w3_i&V(#~MC=u^ji8N!T|yy~HGIfXBSU)3oBPkYj&8cGl!pr8wVFVCkIGW!q3eD=4kB&v9z|e zcM+rc($z-;v9}VVG2m0j+r>?)7HHWsf zr>nOI%v#RJ+Qp0ZA9gF)zj)oeJ)Hg+Ux&C#j$2a`{qJA{k*529e z4+r4ce^CMWUqt_<@{gAWEEJY?g?T?-L`hbR=24Qcl`G8NO85^H;u7K&;Iy`e@^M-5 zLwPMMte_S!8yhI6r4W}5j0Ywl$ZzwH93>Y|FAEo#^`jg>GP^w>M2HV&EePY`g<4p0 zb3%E!1UR9BJUo0*7$-lcfQ2BRkcFVdKl~aV_CPnXaQaVu9_3g8asWbJE^b~rGY&9OIS)% zNsNY@o%8QgO(zR48-P}fM%CWM+wbpEU3+J19WRSV&vEe!3JD1D33BrD@CtJC@%&Ap zZ|&g;^p{6beY?lE>Lf<l*ZuZ4%Tlr7NSfTloe{|Oa=F#YiY^FMUHcGiz3 z0uKOXoW5B&en1OHw`Si1mEI=;XX;r9-Fy^@T~Q%!9Rc_mdjAe0mc z1I>4WIeQ`k0ja( z^GEFL!2R*g{Km(+I`_|Kjhx<on|odSU} zvp^sQTR^ty|Hkge2=9OS?Z2h@+kbyTj}hP>)8l^xAR!_nJ|-X@83`GPL`FwLMMFc! z#KAJRU?v16ygo-<&bvL3uDh6|x^SnwvM3y6M0$kfvBsLAx;n?qc3eQUA| zW%D&v`~9Mhssv~tAnIu6l2a)pI^-F8zBD0v!pKP6;Z>a2j|&q$YA$MP)$*-$ip7X$ z#3Xr}c^a=`QEei0Or(@>2iFnP=OhaxWsO23IYLj0DNJ(~7ECwn?ch6=(AM8JfkR=W`a%D85I}lU1@A)K$(jawXDIN$sFEfL#I?mP~wy-9vZH=y!V2_u} z*y9o9I-1fR(^;L}?b>K>G9A_A7mv}Cp}(w7WP?bd?q!sT&Xv-dk4!BJkt<`(m8n6q z9r&V>y;mXj+TO!eZ6dzhDPr@YX3^}FTTGe_Vv;wyk|7{MUsH}CAI6}O7gbZs43$bc z2XBwED~)HXNh=d%rS-=19Q#C(-!u_@V{91a^0=YXEXHp^J7_e4XeREg*-Ovu@BHxP zFuN4{&f?FX6z2bWx$B!z0?<*T=# zqcTr7-$rEXxa3rxgT-Sv<_k+nzNeP9<3~XkxwGT493qM@H$C=)MAaO8XlL5@Zusiu z5K-x|y;1R)-w49ptveSV{HSB}5}ROs-S0h6d5AB7*YQcbqT(dtdyd@HaGdd8kSUjM zc51*&FqvdAAzlSt#7{Z+H=2gQm-<~UxePF~A!S?lsa|8R9ARiit_??ybF}Vs#fETe z$Cyg7>nj6QtGTOl!G_>cO(`Wh7e2WXT4ZUVJo|P3$S#IJ%cfH37oqqUtKilX9o>-k zx@Bb_N>5@Qgg<+%B-^8X){*CoOZ-iZIp=YdBd}nT;CxDSU55cpW&`z1i3+ zc>jxpgH?x4E%jW)j{(P_2r-<7lJ2|Du6zhZd9xo5eH8XPxK;U(8I(Y~M$Ad+&-jf! zNUx2aQpxX}HN-Q|M+>k-^Y+@OJr(mQ{?Vkx4rjG|DfHPKZ&{%CrTkP~eAfOl93>=% zWLE|h0#CNoTrC!@{vbw>QM+$IGjFX|vDjq*rRgJ_X5TF3ev&0k%u<(C;&n;yI@7eI z;>xIVFpDJ>ECV+jLX0ITiCyx#O?f$eH9>CEk*ByVL*s+OvH-N9+P0ZacQ0M7eo)fZ zo1QN(-sIs+r;Exlm;F2exE7^R&)2#Gk5AYSXS0JpTC^rT7v%PkmSPk}q0D+g&I|0~Ep_qnSWbfUAj{ zfGr?)1GI0)^CG+O_QREQ&>HF!t{!%Wnw15g%%w`EAn=PA!SC=g+HR|SjKNaU$(u|V zgfy=>gRzM_b7AZAcQ+r$r%pI{n7(~Hpztb9-Pq|6LSB`!&&w6+!S*P}r^6;78}mbl zXMPa{$)|x7q&I-Om-9w!DeO{Ntc@ABiTA$=pLZl&J zRTYItXK*dRg+9a8oRGsq@?Q!#Tk*PL6Ywzg*V2`67)<#dMRXT$F`LHd6!3nadI>HH z%kI@!kqF?LyrX22_lSffh+LH3!kM-$C)n{R0pr1MnT|*xmi-S|`-l-`5{K znM_o4L^aK;{(>u+VsV^f0UwIU70xMm>gB0dJ7mTv9#iau?xteH>wl>-+@MpFzET@} z_XBw&7@rPNT&*?0k}#HGWSNc=6^2@mYAMufCYt7D;5{W}9ap=0yg|(&eEk{yGoEvt ztC4;9)Ro(YBjbC?!tI9PXe&;A^LFZB8Bhcd0(?q>0nbEfMzxeZhNA~=m5QXvqNv0`n;xJQ4yT z{NJ-GJO~b$G4b$`2_V!oxP+XvT--cF#B@^9yud7q3Owq&z5mR zsp6-s(&7B@_knlw4@55ppKfubJ978$yu-W7>_#}739^NR?y%yUJJ)`WAIKTcqr}zH4kr`7h_)Ld z3}|b%hGBs#m#Bv*D8`@ratjsGZB>1sa}68+4WcztxkXXB#&dRB#^b-MU9G=$h_f`L z!Lxf^&m)YdI^nRELpX!R%DbAhY{9DAI%Nq>zO8;CtxRlh9DU~bAXEIKJ?k`4+jrw) zc<sJ`{CC)oSuB^l?mH-{W;@-Z>4mo+1l zH?^2UF;UI2MlTz*@-+%iqZE(kqZ?VFsM!S0-f+&z6})NL-wxTc!PDl7FUP1rmBwSS zRK?hn1Dm^qY_Ii=%jizya)lQSjZ*xkKlq+1b2G4mGxtVbev-M$b`Yxe?5FOVEBa^} zXpjACCOK{uGe6sce{qL-ABp*R|K^?*dxDR$i2Cr$iiPiHM96mG)24zSjaLyU zT`vqOpCa@Dw|<22^zcQYvkBuw;L6iYOPQpdlAf0cq|I*WDE3#pYUEyWc9?ltK&vRXuXV~NHEV4h=cg}(eXGKfmD@!aEyF)$ z3}r=@j2NP!S@g^3<*?0eNXd8ThY`dVdrb1LWM@Bv1u=eYV2|%vQ3CrNLwqV06GMv- zj1mkl!>*7i29c6TF5H@V8PzTfZT#p9>jw%e!GpSmS^V$M+=dWnBcG9(`}FOsJ6wBn z{SrsZ__}x%LuyRV)S4cMY$~8P0LvQBD{s*M$y0h;?26IQJ{0X-8D%$fHt%XrE|-$D z!i3>6d*?$c!>~$g<3piSg|pUQUG__J*r-k<{&tt5Kw{;^C+w`M{9o^oikei@Jgq)d z0^iTg@}_7bFK1jiHKq-vnNV_#PY(xGXEUoz(EqSRwF+rPdfB9Qo3Oq!+95~RKi;L= zy`9F}%RM=0)Fr-BaUl!Jj;=iI8k(szGU8Aom%n(G8?IA@UljC|>8W}FBJKj(J|C+e zz}{!D(eHidA#JWn6`S&HnB+UMrJ_<9)&bGJw|TZ>REIf2jg1i5g6VL)2R*A$74>)m zjT5Y0h;Msew%8T#XudA;BI(`_EmzOhr;)=K)JjWc=-Xz3Mle;iX6~V_H|@`vWa8a%t(3Ct#`K4L+(gth{tY~S5& z0)bz3HZ1Aw`Z5)+;Vi?;_4Ahv4=h~B3>gg=-v=>R0%CB47oOJ5WVikFvTMGY1rDFH z>eI=QOU>1l^GDv&h7~K4w$S}_i;+BD>WcXx7Y1I^P2mj6-`BCbr<)XXiT)70eaJ8 zrgSf^TJzFV6342=O84_Yc#F53Nb*znXa1wv{TZhpNy9kr}y&m@6I^=@)lCxLB4R;US zFyf3-XG)A(dJW-?_BzCAVz_7#Iib}?cMV_YIEGPj{XT!P?8mLGF!}ADMG{q25*ZUi zNvUs_bX}E@VokZ43iBA^$d@0yP;=kec zP*M+niXXfn=XnUX#7gTynjm;LDB##$QFtz`nknEl(;H?O`>d`(x1t&H>J5pgGjc7Y zhCf|13BB%3kD1JnHh0CK=43V_c|j-A^4pzTE)De;oD*FzA+k_uG(Hz;l z=fVjro>^pE=====rddW{2@4Mg%(0+9AoI- zhKqr)TETC0P!kSaF)F&HMuS6hPGefKS??nHvH;DQK`W{bM*=EyOlzV-$_|w3uB(p~ zhmlwMH9V=iq#}hAk&Mn8K^#!vPhiE(srm|PTsq*&8ds)BW zsaKt}noh(EF&riM+?uSknpe1Z7y~4fFYF89St64>b$x!QS7@>%{EPb{sm z;DWD4n5jXpSCn7Q>{sijM8Cz%djelIJaPTtI$KbOv54lU%%VjG#%sB+oFv&0nN4^f zJ~ zIe;zZD;wV?6$fT^cQu^>-DvliPrp8?z`tQOI zKhZvqJ5?W!v@{PFAJm{6LKNd8RO#oZKqlupZX#nEF_IJ~DBYcx(B zoir|5l*zXIs{bTZI9uaQKzMGFO$s@^G?mGfynI=q`C!%Tex#pyW8w}|JUyB0p5pwk zqLYjQiTCDO=E_VjaQu@=!QJ*L>D1dejTJGo)Rxjim<7UYu;DikNxwmy_jKK>RI=&T zv>Frq5(9VSCiD;Ti~|~Y=5F_7jZA({Rn++Ou{lmfE?Njz%Dv$cfrNI39s(Ar2Fa0; zwK%PcS-8cS!m-ZiK4w+q_J-@S6jfHm9M*W!OojEgv!;$%1o1j8vdu%pf}<kPsVv2Ofnvto85vtmZ73DwkS=|)`~uP~OOBPNI)Z{MF`>Kmb8%8wsa4n(62g&*n8ID)Vf!8v8t<6b0Ko^j7OqZg-(Xb_>|{M@Ir(YMR6M zMamgilsVH+2ITNIIul)rNvQ~Q9Cf%U4!dO5)V8EQF7Z?9e&y2&8TUq5ENr102dgK5mmbarsl zEnG0t(~BDG%X#DU%|!{B2=rTahx;OnS-vFP*1@YhHm5yVrU8GYH3#AFwX3*d0$sHW=xv z3{>5$?LqP#J-i`eS+A$oSq1f`gw?#At(xtTw5RRurY-OHp9sGgH_;7l&zlQ)pQ5VJ z7&W0&psAA;tm?WzAbGU2yy=fHiuTDm&7r-D9lfzOTm+3#R)e016%;~bdtQ@TQHbqQ z6+i7#E>cTKdBzitdco3Hq?}S!tMj3eQI~#|bh60Ab~S{G&m_5`O$@!Z;=s;|7&?pl z!hq^jvrMn}nPJxPTHpA)E*b3euVm9o&ELfeyVfthNG|Cg7kNmOe@jI@D85vCf#CEp zKA%Oss#^AE;@1N^2ow5=H`j#!zZl%Z1FmR$`9d=`nM@&<{;|xZ8~jpAe0+mB0Js4RtdaciAygFVeF@llj>%kb?+!>3Ol)I^UEfMO%sf#IC|^ z!K7y!4&H3cOfZ9&t>hcJV&dA=}<*NE;+fG(nNX3)42-}O(Y+mfcve4^XJ?eqw~R4 zv~HnM+Enkg;K*5OzEj5MYE8umW8*_ggRMt&xqJO_I;Y<1AVP+ZKkd7Ge25pOtP+$^ zQis)?mpT>58i{q{uTsW`d}m7d@m`uVLAv11V%AIYIUaK@gDE0()w{)jh1jl zA(eVPN`WZ{%20+NsG>1yl6f+%@QuC;zFz2LNr5{eMmDiA488ovH2yMfjbVFWL2lJ_ zi}B4p|9JmXyU&4qt`5#(@ll7PEDm}VdY||dl;n}4iQe;T&$67cNSc~E>zigd=s)jE zY`ETh#qpu zlJ?1^76Y+<4QHBu#jUY2V_gVv(`N#H-008Cvd4F2e_l4hf$)IexY5G3fVcy{Z`05} z%lY+U`=1Rl32Ic_=rk6C_r3c34^{7_lCs|GRupsMiW+3yJ`I1Z`chJ%c?f;qJ@O2ua1d4c(Y-=GQRmxmQM zWQ!jBE%A+oRm65-@h?hzeh$FJS>X&8N$ob@Go+6{U~Xg$jLWd@o0DZbtOtl>P>ejJ z+uOpChn~avlz(z)+)@gthn*b=uRmR=A2=HzN^?ujJ-%SkRkT&oE|HA@loTg;wMJ(i zI*%p8J=9mOww71)?X8mc;)Cqv(J>HbCz->}VDh23^@+z)E@rE^8fP?=$wYPhSBbo7 zw;m1=PV`s5a*2ar4!9Bi@?sSi$|i@qh#3cclxtqZP`1zl3bk8`;VLS{T#4~C-ZyGC zsm*AK2|m9;WBLqjI^2+#S9wTvWNB!cyL-y*=Z21ZrcVo*x||pL12Ov%_306!6ys?v zYR3J-x|H7HwzHtvncDOfuYE0Q>UbBry~g>jA=i?yqKvRER!GQ9CUy1F99fi7zb$e% zrQ>9n9H}wn={arcVE!bB;mVt9^mF_yi0nHSchl1Nk|(j!c5WM*{n{j9_UBafi-_jc ziacWDU;Q|rlkZPb;MM)`i$t8{q}VC>?zE6Ef;(&nPMBn8%jlWFE|MX;!OfW5lFfXv zb3LkyM| zP7Ro!TK?pmyVVuEGZ_E!{S^g&FgQ~IRhZU^*m9^jlROm$5t}$JSs7_RJmez91Y_?) zI2OpdlHr?}Xzm~0YUxc2JXzI{Awu0RH#h(pf~1}j=Q&P|9kXl)3)6>H5ApNDj+yZ= zTIjW5Cee~*s)alHO1i4pYP!mYO(Gi#7qRvCur)E%3oaIJw8Q>0&OIv$PwAM#0ZSQ~ zom+bU^0l=-?a6g8#qF0a&5!-R-XJ1}(OtQtPRBeCo=|u$C(tsLB6jR zI1%XbJrUM|@ylB6Zj!3~lh^Hb3w_h7LOMDji`tVN7}YAlVR@fv20_RiJf?VM+;7(9 zQ6p331|6|#vE(?%8XXHeL)00sg(6^83o-X0aZW#LpN&q5<4ou8s_F+i#{w>wjda zhZGe$l;{eQmOapQophw8JClCdcrO(3y4?YPb)?&dP_RcCd!O2Ays6zU_viw@y%v#| zv-*-O`4Z(t0}&K{N_3;N4gKei?vrzz+g)j8$g?sZ?t-!lh#@%*DD(BL>?m@g-p` zl+c9tRZ4*ZSBedZ`+AnTEWO?;4HuUj#Tei&6FWA9wko)lRJXkq zjwW_h;l#zOaKX*5{D|Zu zOX}rapj$)VgBcSPd}>swUKQfP*+l19ds5XuE4tthUicV9_d8w97Ec6T_)^uAz9%Lvq|Q!-Ttli*i@ z;Hh)OS-`?NVVO(|NG<3BFHVpc3g<&-=1?G3&l9<`KUDr8Xxu1t=hRDFwN~zDWsb{8 zr*^GJPTsTBsm$%w4Y0Jbp1dSDNG*@dRH;&;V^ZztU^wB96x^*)lBY9Kc3{&l(t8=5 zU-J;69R%Kam5jqhvRI zqu&f|0O`iDhBi_R3eI7D?-dH!X;O%>AIh)X7kx{CDhySkUd3U8Z1C%I3Uy zL(u2;&wIOD_pijr;Grtivc#rRkxooY%tuk359&U~tTB2p!R8|sg=r<>TxOb-VwoSZ zUxt?E28n=smM=v2tN#EpyjP2&UZpi)iG#lvOs+5ij#0RRF30{{R35dQ#drqZ>(=4)nCb)$dThsm%bE`W&IpLH zom0gYW$*m<81F+kF$acz)qeek!uNhJ$=|)UPdD@tZOK`Fw#094-Mt@q#{6L*K`FCV z&wIXiba-Rzs=rkJi|is+m$)epq{j{A9(Dfy5Z1^t2p!n`?0>d=tPS156S2JGpDDM) zCB)h@X`t4@wT;l~!;U)tF=i(#xFtxRStQvdW2vO~nKZ|!2`TCUc8sgl|HJ?v z5di@K00RI60RaI3000000096I5Fs%jK~Z5aasS!?2mu2D0Y4B8{{SH5_H&(Y8`ej& z+h#oG90p5UBj7`jY&izloP9%_=UWEdA$IkTt$#TWkh?5Tekrc;gFg`1HXPyWhrM!` zZPg&;cM>z`pDeSCw)D1$jz8i%!6w6>0BjoP4Rj;!`*-b(CLI1Qvr{_Zgi2WO_wgNr zK1s2T0j=QUk}$s~az4om)ZG$s^*ZizEZ{xOS0Ua9tKK&)_%8fj$Tr*9`{d8msQSlv zYZ^L9?7ulI<7aYjO|Pyo7oR-g7tTL!8?2tAv>~$VWiop9BdFI%eW)gWQ*Lx7CAXa(njd^4HuY!eFqQY};?hGvHi=e2_KZ-^$1kL)lBHQH4+^ zvC`AHbrJW9Hf`%9#gBm&XF0Y8I9tKn2MeeVRtN*Jjfbdbk}!TpyF2g*xY@<8NQ@$Fmq{)#9v)_=db$jLNhvqgvQTpK{*9THQ>*x}_H)mu=tAA|X1U+PV z5Wb6{uyC??e79fm9i95)Hr8UG#d9;9u?@$e_$wolGY zP%lOlgzxx&5|jPg;BJMzUUglD@3Z35h$_|8w%Z`Z&H7+8*} z2W8r1?`5{5dW25G@+O>a@PM~Fvo|2jhQk4sWa`6Nu^$A_i~gNzf0wTTuc>-V@=vt= zBp1802)C)z0sFcwyuGl|1Z@8Rv5@4ql-L7_zs3LbJK3i_IuU4FpRVMoE^u!7rWd|^uqhH9btQrlF(bp z(Ptly<*OX+(ezdujU~ zj;@GxB1E-HV0$wHJ$o}I?Vosk`487Cvde20&(iQ+f?b_~_3nJ^3lrRA?)!9x9ff4s zG6S^xZty=B@oUEC%XT+^P`GEF!mT3ANIby$nKD&s@Q`J_+j%~Z@TTy)F8nuncr0S} z4kJG73?mGCB_=A$~&$1x;wv#y5%WqQI0V80JxX3XsH_(ueknbC9yoq51zk4E#JJ~Nghx35g zG0XOjrOr3S-SC?wlF4dJ<9;pOy_jB(?%J4jCP}l}`!1mBCKJHjH9e+%mo1JEeUkIn z>|+Up_8{cKTA6#dsQpMJ-!JM+gJs87zUS8qES|~t!b_0n3%q~-!~h@>00RI60RaF5 z0RaF200000009vYAu%99Fi~M~f&bb72mt~C0Y4CK3EvITEIkyy`>~=Bgv&v1EKZNa z7B8gCK@_mE(7|t(vBePmrA`;hRNZLVyizYN2)d8q!i$*TLw66v8}PS?+lc*wMT-Wa zN=p+Hqr%?~J(TV^f;;6XUmO^WEeD|}Pwf7KcfD#yQ=@6E3ustI+Zz)Qg!6Kh z%XsjY4neovHj*2Nj?2Jm?iDywK7!Qnx7t6$gJ(k$E?_y16dr|QZ6Y>1ijjoysBIk- z(ZQ;)@X2zH3ktRpA)?U{Zia|@CXE8e5#4`hanw?#gWPei9hqPwAn zG8@9*14E)_K`!vr_Xt7Z<3kI28Z!91G>Ak-)LjEmdctcAN{K=f%GoImQYoSs zv}iz<8%sp6sv+uVNdztpL*a(5TBIP95`@GXNmemPEr~EEb4IH}cVnp4>|z@YulbY^ zY&AWJie3B~jhM@(g=l}H5fU-{l}78MZVg6=J?QBim+*qnwT(3x{sa9AKY{!T8iZoL zMY_PyBbypvpXm@=9=?o0CrBkEp(2GK-4N8mKmWu4CJ+Gt0s;a71OfvA0RR9100031 z5g{=_QDG2qfsvuH!O`LH@&DQY2mt{A0Y4CX^3#-N5++{19iSWB5q4&b0-1>$1?aKNr57bv)a zi1g!Q?Z|x8Aj=t$*(I%2)ezC>`k4~ z&zj5*l;6dmb9`~6<%DUcn1ww%qS%e z5$-jLU`|fFkmZ)u?+M?M6)a>dysMH^d4S?;uw6QY2pz`9q8{@i1}X}Ha+3BI4KGJ; zN4z+TW3Eu@uyx$z2(sql!7HOaUefzYD_LQ%#5^K(k}&4x(5~pje$|*K5pWiaD{<)h z@VkoBQVct+!s`ugtSZb$ngG^$xMJ-|hk3mTNWF zzUn39tb4&AzVOM~@-P#wA^RmjxKk3jmOya>a*Mbe$_fB&S(}!?u5|sDdFnc?zsy?b z@x&U&ML1-C?xTTBV3eb=5Ijl?Mb8-GIjUjDw7SOT1&Rz(TV=;W1nOJw962D&Bf>&g zYZQ^43aqEDr5U=3@%n<*jGilq;cVU3LFeNV_hh4;o+B7mf*1~Ez-6j06{yPH zMmd3;5C(&p&Z+SYpdhj35WHy7xXX(;g-uceWqZO4X?TtXwP$jeLakIsrZRT6L&nqO z*8c#RVmVhBZl4J+JVa6>1LTz`u4)7~>6=i1hG0RA>FxzK*I$?>LTWGF0P@Xvh6&> zT_~+0Z)`BFwWgk76=6S92FoLlbNP(SJGneTbPH-WarEQamHK7~VetK7kE32fl)5`M zUxqXqwpSj3P$p>v4xl3gm^mQ~PlRwRlGuB0eEkAuWI$Jpz_NlaUI>S>3r>d^tk)5# zw+OU4FA!tk{izU99gD0-HYvtseFZkPjLNXnPcT4juQ93?9JxxGAhZr4!N4k#%>_1@ zr?{)MDz{Mqh2Oc4*(wET_l8J-3U*idDaSAh)C}SWa9gMuR51-es1*Ta!iK`|8lo}G zj3sJZm^Xz}O|tt(EGbEC#jo)O0}Yt3jLSmRufq`QQoS$tDLVwQUCn^8Wu@VkL$+UL zU7@esTWa8^@{aKpP+xG|tu3TYeq)#{;rpV_RR?fO!$^!j#lQAbGY-WrQqtJnRtfVk zHP4_csA3$UxOY&Bl?m{rUHeK>0c&+%;s6%5zTdf@Utc!q@W%C<#)ih^)S-S9Cv z2yD2s#_2=zcqVM3vcsy=Rl#hnkH*wcUx2rF;!+xDM&8TuN?8GMoWykF3dDJZ(L>s6 z5+Tn)6#RDuG&VB=2Y!O?8-l$6eF-YU@(eyuh7<}6xB+0Aivj!8 zxx|~;{`iVNI~Df93})aH0=e`EEl3p%ZfLj_0_A8ohmxjbT_xi0>6CZ7 zaW8!X^2{?h37dQH#4sL753!4fn^^b;82lUEvz zOQliv#}byjw?O)gU37(4&80)Y;x;8z4h!aG8uk{hpbbu`Ghu!6Qnvw0A!Cje*FVhp zfipGeXVKITL(Bz(h+#&HE2A&!IhgTy3bWpzS6qp)yuvkBi;f~3s;;f8V3c&i!g*l8 zEMSc{h^6rQ24xlDq_7&GK=&x96-5M1GpT(gr<_1KsT4bFXA>DqBy)4 z=_8-2KZ%m#R$^q@JRrAd9YVgGm*pyQo}J)_AQ|#w<4mGn{L0iq$EI9^GD(Wr%b1h_ zfsP>uIlSt369iu}`YKM})H#e4Aj%fR6_I}vQ03tu z>zcdInPSklqagfF+XnmYTvnEI#9kY$7ntdIW0E1rF)%1T1;ir3tGkTY#38)M-Me#d zv`5P!;xT1({{V946mInuRPK+6fmH`lOL19xxA6oDRyo3e^HoQf@f5J4t+X$r06vA5 z%;_q<4-&C(P=R3j0?LR1y5fnK@B0a37a%UGqTS_;aVZ52mAuONU=B{DXx2>|hmp%U zO26EC0u-sY0cAL@C6pCUgK>z31Q>BL$CPgsE5h!K9p5Yo11}uIQW;-({{UtuN*mco zrRfUopj4v88?~RKUlV|r9dR{%*zPAMt+$9W9I8;jJWlltBFB4Zv}wbb5Cu~&I|Yl> zIu@=pT*u}MiVMj(_PFxHDW$pj)Sw{pEmK48{-NQpu~t^Ef_Ov$`}dE}G-Ct&VjT9A zPECFY?kp{Bm!E9I2jx-RKS7no;}Ee}Ux{r|4c5kA(Mq^r7(9x5M+{13)Vxn0?E!*TnJ_bb847q ze^43Fb5(6H8K`f8RftN97PU4CqOMke(?O$AF&vO_n;2Ot?mo~f(Zxf;0-;z6m~|-& z@c<2kM2^f}wUg^F*NJDt8i-IZ$!P;9LEwWk*;f@y$x2kI(AGforxXYOW@KXckS(cZ&OqkzUxG#@>?}B6@*PtOBZ_Ft#8%s6kF= zS#Y4TtqTj{>K&UGtp)!8qz)rrpJ*eYK$kK-5!5Rcb3-Dt2HgZ~U8%=6sHm7z(((1o zIe2AlhftNkH)**?fuZ~OE&Rc?0g7Q}jx{dy4EDeGFzXPnSU=e=aTV92f>`D=Ub^uJ zJI@jxFh>vv%(dbhR7yvgcxe+=&lR%o;s~-hs;ieB19xe;h7AjR#KE@22-1x-u6)lO zV2V&b*_y!SwEqCt6mk$AE*%sXOt1c^S75sjA@P{Vt5W3$AF+fRKl$+~%a_ux`$Q|y zt1;N8dxpI=^e@I|Ur+`c%q+FJ+MrxUYgd{t$b$Sg*Pjt%ouR%C9&TdR zGFLc`8Cz81;|&)hIDgD_d4S|({gR4~5Nv}Ix(!2Kg1rKz5Fj$QcQS98ivgLr%JFNc z1SSQ7y^LEMEJV--Kx;fplT7B#kx~Ev6k4yEN_(h&6a)mw_v_0njs)OZ$jo*F;7~!o znROpv-tYe6J_rsoE?Hf$yk-59Cs{9nf$6Grc@B|DQWg}B=%78X#GurH3s$x-2uu}w zgBJ>+tUH70WDzO{L<-VTcPY4G%t7WJ4#S>Ea}48LHHKFqE%Ti9GZKulr7gFdL!*L= z#vi$438wS!EDv(_g<7^TZKDYizA+qQbv^g&58?u(%Ix{`h^Wf$&N0C%`5)pP)g^fo zBdDqlT0%NZKP0;<0zO7C{vqj8K>Z}YSp&JR%(2uO^a|z$l8IFk;U4;k(;Q@iFds2V z;AGCtwaZzAb1h6?68Mq3`2PUOKvJ`M`G6N_(GG!Yj^m&+fUUqnCBWh#_N_y%U@u); zTeJTFYs?$}0D4RqRd<>tgM-7p66ge!X5M9PkXQSamgy_vQJN>ym@!w!OJ9gawY&LB z=ZrQXLbt-GdCBuDD>s-P&$(vcuu)jEd`@OatZ3cfCzOi6B=F@E?*&tVTJCDq>;VH^ zC)qFp(-wI118-QO$j|K0F5|t`Uk_+05^b`~`KepNkSGI|-~a%10Pj9C?GnYQf){vp z?a{;lbURfWwJ(~WKj!@tMuLMEUULEJq*&zEA*ojKKta%R%%%ac*A)P2qbti{$_2qX zB2+warBu$b!DEIU+($Zjh~1bCp8_CV`iCeX(*V;|ZJYObnE@-bB6G-qoF)uv26?JK zP@SxiOrW*9BWf-b$!n=`eQT6dZYD#>i!{9`o*YW!QW;?PYGw-Z1YO)wuV~p602->t zP + - {{ .SiteConfig.HtmlHeadExtra }} -
-
- {{ if .SiteConfig.AvatarUrl }} -
- -
- {{ end }} +
+ {{ if .SiteConfig.AvatarUrl }} + + {{ end }} -
-

{{ .SiteConfig.Title }}

-
{{ .SiteConfig.SubTitle }}
-
- -
    - {{ range $me := .SiteConfig.Me }} -
  • {{$me.Name}} -
  • - {{ end }} -
-
-
-
+ {{ end }} + +
{{template "main" .Data}} @@ -80,16 +56,12 @@
  • {{ $link.Title }}
  • {{ end }} {{ end }} +
  • Editor
  • - {{ .SiteConfig.FooterExtra}} - - - +
    + {{ .SiteConfig.FooterExtra}} +
    diff --git a/render/templates/views/entry.tmpl b/render/templates/views/entry.tmpl index bb35505..5f293c2 100644 --- a/render/templates/views/entry.tmpl +++ b/render/templates/views/entry.tmpl @@ -89,7 +89,7 @@
    -
    +
    diff --git a/testbed.html b/testbed.html new file mode 100644 index 0000000..bb97e73 --- /dev/null +++ b/testbed.html @@ -0,0 +1,451 @@ + + + + + + + Stylesheet Test + + + + + +
    + Page Logo +
    +

    Page Title

    +

    Short description of waht the blog is about. Catchy phrase to remember the blog by!

    +
    + +
    + +
    + +

    Structure

    + +
    Footer
    + +

    Text

    + +

    Headings

    + +

    Heading 1

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sodales felis pulvinar auctor + convallis. + Maecenas luctus nec magna quis convallis. Donec vestibulum risus nec metus consectetur, at rhoncus arcu + lobortis. + Nam et turpis a leo commodo imperdiet. +

    + +

    Heading 2

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sodales felis pulvinar auctor + convallis. + Maecenas luctus nec magna quis convallis. Donec vestibulum risus nec metus consectetur, at rhoncus arcu + lobortis. + Nam et turpis a leo commodo imperdiet. +

    + +

    Heading 3

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sodales felis pulvinar auctor + convallis. + Maecenas luctus nec magna quis convallis. Donec vestibulum risus nec metus consectetur, at rhoncus arcu + lobortis. + Nam et turpis a leo commodo imperdiet. +

    + +

    Heading 4

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sodales felis pulvinar auctor + convallis. + Maecenas luctus nec magna quis convallis. Donec vestibulum risus nec metus consectetur, at rhoncus arcu + lobortis. + Nam et turpis a leo commodo imperdiet. +

    + +
    Heading 5
    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sodales felis pulvinar auctor + convallis. + Maecenas luctus nec magna quis convallis. Donec vestibulum risus nec metus consectetur, at rhoncus arcu + lobortis. + Nam et turpis a leo commodo imperdiet. +

    + +
    Heading 6
    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sodales felis pulvinar auctor + convallis. + Maecenas luctus nec magna quis convallis. Donec vestibulum risus nec metus consectetur, at rhoncus arcu + lobortis. + Nam et turpis a leo commodo imperdiet. +

    + +

    Inline text elements

    +

    + Link<a> +

    +

    + Abbr.<abbr> +

    +

    + Bold + <strong> + <b> +

    +

    + Italic + <i> + <em> + <cite> +

    +

    + Deleted + <del> +

    +

    + Inserted + <ins> +

    +

    + Ctrl + S + <kbd> +

    +

    + Highlighted + <mark> +

    +

    + Strikethrough + <s> +

    +

    + Small + <small> +

    +

    + Text Sub + <sub> +

    +

    + Text Sup + <sup> +

    +

    + Underline + <u> +

    +

    + Code + <code> +

    + +

    List

    + +

    Unordered List

    + +
      +
    • Unordered List 1
    • +
        +
      • Sub List 1
      • +
      • Sub List 2
      • +
      • Sub List 3
      • +
      • Sub List 4
      • +
          +
        • Sub Sub List 1
        • +
        • Sub Sub List 2
        • +
        • Sub Sub List 3
        • +
        • Sub Sub List 4
        • +
        +
      +
    • Unordered List 2
    • +
    • Unordered List 3
    • +
    • Unordered List 4
    • +
    + +

    Ordered List

    + +
      +
    1. Ordered List 1
    2. +
        +
      1. Sub List 1
      2. +
      3. Sub List 2
      4. +
      5. Sub List 3
      6. +
      7. Sub List 4
      8. +
          +
        1. Sub Sub List 1
        2. +
        3. Sub Sub List 2
        4. +
        5. Sub Sub List 3
        6. +
        7. Sub Sub List 4
        8. +
        +
      +
    3. Ordered List 2
    4. +
    5. Ordered List 3
    6. +
    7. Ordered List 4
    8. +
    + +

    Quote

    + +
    + “Design is a funny word. Some people think + design means how it looks. But of course, if + you dig deeper, it's really how it works.” +
    + — Steve Jobs +
    +
    + +

    Horizontal rule

    + +
    + +

    Table

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Column 1Column 2Column 3Column 4Column 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    Cell 1Cell 2Cell 3Cell 4Cell 5
    + +

    Buttons

    + + + +

    Classes for buttons

    + + + + + +

    + + + + + + +

    Forms

    + +

    Inputs

    + +

    Inputs

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

    Inline Inputs

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

    Navigation

    + + + +

    Detail

    + +
    + Summary +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sodales felis pulvinar auctor + convallis. + Maecenas luctus nec magna quis convallis. Donec vestibulum risus nec metus consectetur, at rhoncus arcu + lobortis. + Nam et turpis a leo commodo imperdiet.

    +
    + +

    Pre

    +
    +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sodales felis pulvinar auctor convallis.
    +Maecenas luctus nec magna quis convallis. Donec vestibulum risus nec metus consectetur, at rhoncus arculobortis.
    +Nam et turpis a leo commodo imperdiet.
    +        
    + + +
    + + + + \ No newline at end of file diff --git a/web/static/owl.css b/web/static/owl.css new file mode 100644 index 0000000..7e539a7 --- /dev/null +++ b/web/static/owl.css @@ -0,0 +1,470 @@ +:root { + /* font sizes (fs) */ + /* + 0 base + lX large + sX small + */ + --fs-scale: 1.125; + --fs0: 1rem; + + --fsl1: calc(var(--fs0) * var(--fs-scale)); + --fsl2: calc(var(--fsl1) * var(--fs-scale)); + --fsl3: calc(var(--fsl2) * var(--fs-scale)); + --fsl4: calc(var(--fsl3) * var(--fs-scale)); + + --fss1: calc(var(--fs0) / var(--fs-scale)); + --fss2: calc(var(--fss1) / var(--fs-scale)); + --fss3: calc(var(--fss2) / var(--fs-scale)); + --fss4: calc(var(--fss3) / var(--fs-scale)); + + /* font weight */ + --fw: 400; + --fwb: 700; + --fwl: 100; + + /* font color */ + /* fonts */ + --font: Arial, Helvetica, sans-serif; + --font-h: 'Courier New', Courier, monospace; + --font-code: 'Courier New', Courier, monospace; + + + /* spacings */ + --spacing-scale: 1.5; + --max-spacing: 4rem; + --s5: var(--max-spacing); + --s4: calc(var(--s5) / var(--spacing-scale)); + --s3: calc(var(--s4) / var(--spacing-scale)); + --s2: calc(var(--s3) / var(--spacing-scale)); + --s1: calc(var(--s2) / var(--spacing-scale)); + --s0: calc(var(--s1) / var(--spacing-scale)); + + /* content-width */ + --cw: 620px; + + /* colors */ + --text: hsl(0, 0%, 17%); + + --primary: hsl(200, 25%, 50%); + --primary-l1: color-mix(in srgb, var(--primary), #fff 20%); + --primary-l2: color-mix(in srgb, var(--primary), #fff 40%); + --primary-l3: color-mix(in srgb, var(--primary), #fff 60%); + --primary-l4: color-mix(in srgb, var(--primary), #fff 80%); + --primary-d1: color-mix(in srgb, var(--primary), #000 20%); + --primary-d2: color-mix(in srgb, var(--primary), #000 40%); + --primary-d3: color-mix(in srgb, var(--primary), #000 60%); + --primary-d4: color-mix(in srgb, var(--primary), #000 80%); + + --secondary: color-mix(in hsl longer hue, var(--primary), var(--primary) 50%); + --secondary-l1: color-mix(in srgb, var(--secondary), #fff 20%); + --secondary-l2: color-mix(in srgb, var(--secondary), #fff 40%); + --secondary-l3: color-mix(in srgb, var(--secondary), #fff 60%); + --secondary-l4: color-mix(in srgb, var(--secondary), #fff 80%); + --secondary-d1: color-mix(in srgb, var(--secondary), #000 20%); + --secondary-d2: color-mix(in srgb, var(--secondary), #000 40%); + --secondary-d3: color-mix(in srgb, var(--secondary), #000 60%); + --secondary-d4: color-mix(in srgb, var(--secondary), #000 80%); + + --text-primary: color-mix(in srgb, var(--primary), #fff 90%); + --text-secondary: color-mix(in srgb, var(--secondary), #fff 90%); +} + +/* Styling of main page elements */ + +* { + /* global properties*/ + font-family: var(--font); + color: var(--text); +} + +body { + display: flex; + flex-direction: column; + margin: 0; + min-height: 100vh; +} + +html { + margin: 0; + min-height: 100vh; +} + +main { + flex: 1; + max-width: var(--cw); + margin: 0 auto; +} + +:is(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-h); + margin-top: var(--s4); + margin-bottom: var(--s0); +} + +h1 { + font-size: var(--fsl4); +} + +h2 { + font-size: var(--fsl3); +} + +h3 { + font-size: var(--fsl2); +} + +h4 { + font-size: var(--fsl1); +} + +h5 { + font-size: var(--fs0); + font-weight: var(--fwb); +} + +h6 { + font-size: var(--fsl4); +} + +hr { + color: var(--primary); + border-style: dashed; + border-bottom: none; + border-width: 3px; +} + +pre { + font-family: var(--font-code); + background-color: var(--primary-l4); + padding: var(--s0); + white-space: pre-wrap; +} + +main img { + max-width: 100%; +} + +/* inline elements */ +a { + text-decoration: none; + color: var(--primary); +} + +a:hover { + text-decoration: underline; + color: var(--primary-d2); +} + +abbr[title] { + border-bottom: 1px dashed; + text-decoration: none; + cursor: help; +} + +kbd { + background-color: var(--primary-d3); + color: var(--text-primary); + padding: 0 var(--s0); + border-radius: var(--s0); +} + +mark { + background-color: var(--secondary-l3); +} + +code { + font-family: var(--font-code); + background-color: var(--primary-l4); + padding: 0 var(--s0); + border-radius: 2px; +} + +/* lists */ + +ul, +ol { + padding-left: var(--s3); +} + +li { + padding-bottom: var(--s0); +} + +ul li { + list-style: square; +} + +/* Quote */ + +blockquote { + margin-left: 0; + padding-left: var(--s4); + border-left: solid var(--primary) 3px; +} + +blockquote>footer { + width: initial; + margin: initial; + background-color: initial; + color: initial; + padding-bottom: initial; +} + +/* Table */ + +:where(table) { + border-collapse: collapse; + border-spacing: 0; + text-indent: 0; +} + +table { + width: 100%; +} + +th { + text-align: inherit; + padding: var(--s0); + border-bottom: solid var(--primary) 1px; +} + +tr:nth-child(2n) { + background: var(--primary-l4); +} + +td { + margin: 0; + padding: var(--s0); + border-bottom: solid var(--primary-l3) 1px; +} + +/* buttons */ +a[role='button'] { + display: inline-block; + box-sizing: border-box; + text-align: center; +} + +a[role='button']:hover { + text-decoration: none; +} + +button, +input[type='button'], +input[type='submit'], +a[role='button'] { + background-color: var(--primary); + color: var(--text-primary); + padding: var(--s1); + border: none; + border-radius: var(--s0); + font-size: var(--fs0); +} + +button:hover, +input[type='button']:hover, +input[type='submit']:hover, +a[role='button']:hover { + background-color: var(--primary-d1); +} + +button:disabled, +input[type='button']:disabled, +input[type='submit']:disabled, +a[role='button']:disabled { + background-color: var(--primary-l2); +} + +input[type=checkbox]:checked, +input[type=radio]:checked, +input[type=range] { + accent-color: var(--primary); +} + +/* forms */ + +label { + display: inline-block; + padding-bottom: var(--s0); +} + +input, +textarea { + display: inline-block; + width: 100%; + vertical-align: middle; + margin-bottom: var(--s3); + padding: var(--s1); + box-sizing: border-box; + border: solid var(--primary-l2) 1px; + border-radius: var(--s0); +} + +input[type='color'] { + padding: 0; + background-color: #fff; +} + +label { + width: 100%; +} + +label>input { + display: inherit; + width: initial; + margin-left: var(--s1); + margin-top: 0; + margin-bottom: 0; +} + +label>input[type='color'] { + min-width: 170px; +} + +/* button classes */ + +button.secondary, +input[type='button'].secondary, +input[type='submit'].secondary { + background-color: var(--secondary); + color: var(--text-secondary); +} + +button.secondary:hover, +input[type='button'].secondary:hover, +input[type='submit'].secondary:hover { + background-color: var(--secondary-d1); +} + +button.secondary:disabled, +input[type='button'].secondary:disabled, +input[type='submit'].secondary:disabled { + background-color: var(--secondary-l2); +} + + +/* Header specific styling */ + +header { + width: 100vw; + margin: 0; + margin-bottom: var(--s4); + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + background-color: var(--primary); + color: var(--text-primary); +} + +header img { + max-height: var(--s5); + margin-right: var(--s1); + margin-left: var(--s1); +} + +header>hgroup { + flex: 1; + min-width: calc(var(--cw) / 2); + margin-right: var(--s5); +} + +header>hgroup>h1 { + margin-top: var(--s0); + margin-bottom: var(--s0); + color: var(--text-primary); +} + +header>hgroup>h1>a { + color: var(--text-primary); +} + +header>hgroup>h1>a:hover { + color: var(--text-primary); +} + +header>hgroup>p { + font-size: var(--fsl1); + margin-top: var(--s0); + margin-bottom: var(--s0); + font-family: var(--font); + color: var(--text-primary); +} + +header>nav>ul { + display: flex; + list-style-type: none; + margin: 0; + padding-left: 0; + padding-top: var(--s1); + padding-bottom: var(--s1); + align-items: center; +} + +header>nav>ul>li { + float: left; + margin-right: var(--s1); + padding: var(--s1); + color: var(--text-primary); + list-style-type: none; + +} + +header>nav>ul>li>a { + color: var(--text-primary); +} + +header>nav>ul>li>a:hover { + color: var(--text-primary); +} + +/* Footer specific styling */ + +footer { + width: 100vw; + margin: 0; + background-color: var(--primary); + color: var(--text-primary); + padding-bottom: var(--s5); +} + +footer>div { + max-width: var(--cw); + margin: 0 auto; + color: var(--text-primary); + text-align: center; +} + +footer>nav { + margin: 0 auto; + color: var(--text-primary); +} + +footer>nav>ul { + display: flex; + justify-content: center; + list-style-type: none; + margin: 0; + padding-left: 0; + padding-top: var(--s1); + padding-bottom: var(--s1); + align-items: center; +} + +footer>nav>ul>li { + float: left; + margin-right: var(--s1); + padding: var(--s1); + color: var(--text-primary); + list-style-type: none; + +} + +footer>nav>ul>li>a { + color: var(--text-primary); +} + +footer>nav>ul>li>a:hover { + color: var(--text-primary); +} \ No newline at end of file diff --git a/web/static/style.css b/web/static/style.css index f91e38f..274bd1d 100644 --- a/web/static/style.css +++ b/web/static/style.css @@ -1,162 +1,3 @@ -body { - font-family: sans-serif; - max-width: 800px; - margin: 0 auto 0 auto; -} - -header { - padding: 1rem; - background-color: var(--background); - /* background: linear-gradient(180deg, var(--background) 0%, rgba(255, 255, 255, 0) 100%); */ - - padding-bottom: 1rem !important; - margin-bottom: 2rem; -} - -footer { - border-top: dashed 2px; - border-color: #ccc; - padding-bottom: 5rem; -} - -label { - display: inline-block; - padding-bottom: 0.25rem; -} - -input, textarea, a[role='button'] { - display: inline-block; - width: 100%; - vertical-align: middle; - margin-bottom: 0.75rem; - padding: 0.25rem; - box-sizing: border-box; -} - -input[type='submit'], a[role='button'] { - background-color: var(--primary); - color: #fff; - border: none; - border-radius: 2px; - font-size: 1rem; - text-align: center; - height: 2rem; -} - -input[type='submit']:hover, a[role='button']:hover { - background-color: var(--primary-hover); - color: #fff; -} - -input[type='submit']:focus, a[role='button']:focus { - background-color: var(--primary-focus); - color: #fff; -} - -input[type='submit'].secondary { - background-color: #5d6b89; -} - -input[type='submit'].secondary:hover { - background-color: #48536b; -} - -input[type='submit'].secondary:focus { - background-color: rgba(93, 107, 137, 0.25); -} - -/* for checkboxes */ -label > input { - display: inherit; - width: initial; -} - -/* from pico.css */ -mark { - padding: 0.125rem 0.25rem; - background-color: #fde7c0; - vertical-align: baseline; -} - -main img { - max-width: 100%; - margin: auto; - text-align: center; - display: block; -} - - -a { - color: var(--primary); - text-decoration: none; -} - -a:hover { - color: var(--primary-hover); -} - -a:focus { - color: var(--primary-focus); -} - -nav > ul { - list-style-type: none; - margin: 0; - padding-left: 0; - padding-top: 1rem; - padding-bottom: 1rem; -} - -nav > ul > li { - float: left; - padding-right: 2rem; -} - -hr { - margin: 3rem -} -h1 { - font-size: 1.5rem; -} -h2 { - font-size: 1.25rem; -} -h3 { - font-size: 1.125rem; -} -h4, h5, h6 { - font-size: 1.0rem; -} - -pre { - background-color: #eee; - padding: 0.5rem; - white-space: pre-wrap; -} - -table { - width: 100%; -} - -th { - border-bottom: solid #888 1px; -} - -tr:nth-child(2n) { - background: #f0f0f1; -} - -.header { - display: flex; - flex-flow: row; -} - -.header-profile { - padding-right: 0.5rem; - display: flex; - justify-content: center; - align-items: center; -} .row { display: flex; @@ -194,18 +35,18 @@ nav.row { } .action-tile { - border: 1px solid var(--background-dark); + border: 1px solid var(--primary-l1); padding: 20px; flex: 1 1 0px; margin: 6px; min-width: 20%; text-align: center; - background: var(--background); + background: var(--primary-l4); border-radius: 4px; } .action-tile:hover { - background: var(--background-light); + background: var(--primary-l3); } .danger { @@ -260,28 +101,4 @@ nav.row { border-width: 4px; border-color: #ff3e3e; animation: border-pulsate-error 1s 2; -} - -.avatar { - float: left; - margin-right: 1rem; - border-radius: 50%; -} - -.photo-grid { - display: flex; - flex-wrap: wrap; - padding: 0 4px; -} - -.photo-grid-item { - flex: 1 0 25%; - padding: 4px; -} - -.photo-grid-item img { - width: 100%; - height: 100%; - aspect-ratio: 1 / 1; - object-fit: cover; -} +} \ No newline at end of file