From acc248748126184febf7e494a4717050b7887acc Mon Sep 17 00:00:00 2001 From: sagrrecn <142039817+sagrrecn@users.noreply.github.com> Date: Thu, 19 Feb 2026 13:26:07 +0800 Subject: [PATCH] 1.0 --- 404.php | 19 + comments.php | 46 + footer.php | 19 + functions.php | 51 + header.php | 68 ++ index.php | 48 + page.php | 24 + post.php | 31 + screenshot.png | Bin 0 -> 13363 bytes search.php | 42 + static/css/style.css | 1968 +++++++++++++++++++++++++++++++++ static/img/calendar.svg | 16 + static/img/folder.svg | 13 + static/img/message-circle.svg | 13 + theme.css | 30 + 15 files changed, 2388 insertions(+) create mode 100644 404.php create mode 100644 comments.php create mode 100644 footer.php create mode 100644 functions.php create mode 100644 header.php create mode 100644 index.php create mode 100644 page.php create mode 100644 post.php create mode 100644 screenshot.png create mode 100644 search.php create mode 100644 static/css/style.css create mode 100644 static/img/calendar.svg create mode 100644 static/img/folder.svg create mode 100644 static/img/message-circle.svg create mode 100644 theme.css diff --git a/404.php b/404.php new file mode 100644 index 0000000..190670f --- /dev/null +++ b/404.php @@ -0,0 +1,19 @@ + +need('header.php'); ?> + +
+
+

404

+ +

+
+
+ +need('footer.php'); ?> diff --git a/comments.php b/comments.php new file mode 100644 index 0000000..3f4cb22 --- /dev/null +++ b/comments.php @@ -0,0 +1,46 @@ + +
+ comments()->to($comments); ?> + have()): ?> +

commentsNum(_t('暂无评论'), _t('1 条评论'), _t('%d 条评论')); ?>

+ + listComments(array( + 'commentStatus' => _t('你的评论正等待审核'), + 'avatarSize' => 64, + 'defaultAvatar' => 'identicon' + )); ?> + + + + + + allow('comment')): ?> +
+
+ cancelReply(); ?> +
+ +
+ +
+
+ +
+ user->hasLogin()): ?> +

+ user->screenName(); ?>· +

+ +
+ + options->commentsRequireMail): ?> required /> + options->commentsRequireUrl): ?> required /> +
+ + +
+
+ +
+ +
diff --git a/footer.php b/footer.php new file mode 100644 index 0000000..b86357b --- /dev/null +++ b/footer.php @@ -0,0 +1,19 @@ + + + +footer(); ?> + + + diff --git a/functions.php b/functions.php new file mode 100644 index 0000000..b2d4f37 --- /dev/null +++ b/functions.php @@ -0,0 +1,51 @@ +addInput($logoUrl->addRule('url', _t('请填写正确的 URL 地址'))); + + $colorSchema = new \Typecho\Widget\Helper\Form\Element\Select( + 'colorSchema', + array( + null => _t('自动'), + 'light' => _t('浅色'), + 'dark' => _t('深色'), + 'customize' => _t('自定义'), + ), + null, + _t('外观风格'), + _t('如果选择了自定义,主题将使用 theme.css 的样式') + ); + + $form->addInput($colorSchema); +} + +function postMeta( + \Widget\Archive $archive, + string $metaType = 'archive' +) +{ +?> +
+

+ +

+ + + +
+ + +options->colorSchema): ?> data-theme="options->colorSchema(); ?>"> + + + + <?php $this->archiveTitle('', '', ' | '); ?><?php $this->options->title(); ?><?php if ($this->is('index')): ?> | <?php $this->options->description() ?><?php endif; ?> + + + options->colorSchema == 'customize'): ?> + + + header(); ?> + + + + + diff --git a/index.php b/index.php new file mode 100644 index 0000000..93e32c0 --- /dev/null +++ b/index.php @@ -0,0 +1,48 @@ +need('header.php'); +?> + +
+
+ + + next()): ?> +
+ + +
+ excerpt(200, '...'); + ?> +

'); ?>

+
+
+
+ + + +
+ +
+ +need('footer.php'); ?> diff --git a/page.php b/page.php new file mode 100644 index 0000000..90a189a --- /dev/null +++ b/page.php @@ -0,0 +1,24 @@ + +need('header.php'); ?> + + + +
+
+
+ + +
+ content(); ?> +
+
+ + + +
+
+ +need('footer.php'); ?> diff --git a/post.php b/post.php new file mode 100644 index 0000000..a380d73 --- /dev/null +++ b/post.php @@ -0,0 +1,31 @@ + +need('header.php'); ?> + +
+
+
+ + +
+ content(); ?> +

tags(' ', true, _t('无')); ?> +

+
+
+ + + + +
+
+ +need('footer.php'); ?> diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3a549be4ccdef3af76eef6948e9632ff43b5b1e8 GIT binary patch literal 13363 zcmV-3G|bD1P)w>d+g5auu&$*_Y>%0ll0|EfP-}?T z)yYtAkC2dxtgE6>Zj9X8&DGP$NN0)U;nPlTj^EtRsHdNvo|ZXZf>3agLSlubrJYD> zjrH;3w6m&Nca$$xdSH8(Q*x72a*#`FjIFJtR(PBA@Zr6?v08PJLTHV8i=I()mQHMo zjg5!l-qJ;Bi{;|g!N0XKSbQ#2d7+?~N=;2=ewkf)m6DQ-Jz|I2*UMCPnJ+RmL1>KB z(#493gmZ?SOK_DuUV+lk#9n=yX@HtdaFP;;#iOE|oSc=vy|aapp-*y@#KO3$si8}0 zi?+3^DNb~Cc5^vAJ}4|O#>BZ?c$6b2D@<;Xdwh6hd6HFcibO|8T6>&sgPT4;Ls)T) zZf|T;ZHY!?g?){mcZi*Wf__YDh!`Cx!ojw+wzg1GQ-P15>E_tGy}P%ztzmbOPiTaO zhJj&YVPk-tq@$Z{ewFp|<5^o;YJ8JsX>mY9O(Q5Vt*@{~Vt~iU$-BC+N@RdRV174R zel#~aDJ?f9lF1MiAb)^+`1tugTznjj$76ezNJ~^LGCV?{&^epVXJ}_Im&|W~meA11 z$jQQrm7_{#gg87!j+mwH@bK#E>u9stzrnq!sGyXVnmSo~ZgF>9UuVqC#dL(2R99e< zo2Sjr�=ac6ooIq^DeSj(&lL^Yin4zTel_*4=JsO;A~g!{Wiq&XLIE zQmE8UrqjH~$ws2lGDKHOq|!{K)63=ZI8bUqRBgWB@M>~_ZQVZ<001!VNklfb|G@ov zf&3`s6C8Hs2(~jvu$?)A?aUEuXO3Vya|GL&BiPOy!Tw>$0k-afS%qu>VBi66$P*~S z%=Z8ke-9n_d4%}kZ2@m9e)*i`wRy`TJUD~K-VM>?I`r$z#&xirBQ9U6LD=F;F4J~& z7c8EjV@~E-PBt}wZ|zGwVG`7K_H+`snUFPbkl@&`M>asC8g`^(9PJa3ON?wsmPi2} zoKUNht!6@L>rjg;&FA1C)};&bAajPy?^P`yZ)4O>X%?eRAb_+D=9~?sz5oDvNl%=S&)`VoRSmDk00#w zsdhu@yJ@A{ON|# z_lf3UUF-z%tGuRDxTMaXuha|N5JkS zA|r#O!H`#INNh+*AD~M0fd?OC8}wT(SY=wU%CumWX~8Pff>q`VG*xNAD${~hrUk1^ z3s#vHtTHWFWm>Sxv|#_R(ImL{5Nt*e8URjax!hZ60TrCdBLMm9B9Q0NsBRuh<7LhI z9Z=U>1@j0`PAjb+cUq3yP;Rq1uY>#fwvPey2=~mPkJJ6=A(-!AZ?aQw+-X+;ewVNL zT{%`%c9J^2EIN$_g9)5MRz{9S19?w3h?CEmVt#vL5j;Z#5l(y zMGBCI?JthZo|VYXn4-`R3anIRti-;4ZenBtncEs$UBLy=F%g&yL7#UWF^Hm6L{q=;=_leHI_P%52 zfATl?o(^^|cavSN?;`Rjgds!8&meLSm`EgPIoW^`#vwVAkrdniAlM&v>sZBs5D4S= z-8_HV6x*a;tmhRRf}}FLWUz5jPzzyS;Wl8AV;|s{V}4+veBHnC+1zbUso%F-8WC!` zI=8MSt>*e1J6`L&PIGhjmfURGI<`4AH&4E%mb^3F`@4f-A%LyIr&F-#V6R)B_Tt*B zGsFu%yjfnw;S!cdfH!Nw=0cn)AOZ%09MA@cOgYkffEL4XI0yLem@Jjb6q$-2Zv>b_ zL1W3=07EtqE7@|)0vj$kwhWoT*hm=($+ICCO5gfrg5Qo{XL!1+zku1|4xjW}FOCKi zMuQ2X!GzIZ!e}sIG?*|NOqj24C5i?UMuQ2X!GzIZ!e}sIG?*|N?1$YlTCo*|p(y*8 z^Jjsf4+(i3@(ra=g}z!SDxwF58@LJ%XFg!&a8`@7y9Oi+#XrVd*e`~Z@tr4OsbVDn zLkAEz3Tgzw3={)`1W-)6mGNx@y3PoR@Zu1q^c;eo!esb~t5 zRei|A=Tlgdx|nO`=7%Ak6=gk2)w*+QB|-MJNUDXUtgkQZ5$zgno^qZZmxS!>)ooN1 zKO?RnueIjN$6Rf7oOn*Hu;#_Z%gC(>PC9_C;LeY4SozE)gmnu)$A^6Q#N9g{*=GTQ zQmihk7A;9YT&}o3qYA&wHA`HyuL8s^E6tUk36+A(^hkKm*!G0G2~i&t$W_L zmWymxp4yhns@ArqS!UHe<76fv8}2*_rSBHoa>;Hb}B_XCUgp!is3I%LL9CsTD@f8zNLhR!jL*oc1Jo4NZ z+|6c&_xTCBT0D#9!QqJ5sm{xxr{etaP=R!{~`Hb?j@dgJ;&pgYyE%{Uw-fNhL0GJ z96562$dMyQjvP7izw)(*e@2b%FUr@yt{Ql|Oyf0Bi6{7nNMFNWz)mYTvhIX%lR~>F720zRubUIfL^TgKak(^S_lX(1q}#+GIhrDr&Lx0bN@9`rO6Dr0 zG2=qm6XCko+)Z7s0r(=E&~#Y10?3CMAx_rLs?iiObh*9?api8>E6308h>%kfCL;GX zq&m*iQZsOzCr;S|fUc0-jdDqwg1YPH4O0<2)X}*cn|z>x4OVJjJTS;~u0j!;nYP!u zQ@n0YCDh=v3llpsSgSVqcT`HBStaaHyt#{v>i|pqYOLyA(Fgsk5Yy z=u=k(dq*Wa)5xGZl&Di{xn-qokd1dr`?^uVJ~&(2*2ql~5&3Q%-agpWRcmAy!OpRy zk(mM>HMoQdR)$5Fc%Tk|$OPh-!Mcu{Eh}oiC-=ehjl&a%sWGOUC1uQIN#fFnxnpKa z?1E`d1{?%?qH+EVYta-_ny6rbd#@Jf23@JMy>ptv7ocOojS5A9&tw(d9X3vw%eDrHx;ZB(iWbu=e+zt z**qcLAkPvUzU$3pxd@g$o3b|+p5gjzAMD1IU6~93Jkz!+9JY0Xpa{m?Y_v5mE#U=% zS5mjRrOi9CJFe6FBiN-Y=U!Ad^Xbzi`S$=e!fR0kZdRjxumLwaF?FsTIhIaa1*;1_ zc2>1K*k|cf4L*1?!Dew6IExLOS|JZ~*5qkO`fw|4e*=9J@=c=%7V-2EdaIbRZQy%+ z1w6(w`UC|tcqARxPI(Zu5Uo*;WPE{BoBIyOQ^td|J6Q9`j)tCJsl-)0#P?8)Qki~K zo??0{`v7!b`fh~BjC*Ofo=%`B=Z15PBAK43>8E_3U&eD>2hJiH_BEyL#fw7wW~eYI zSj8h9_^KgC`wHxyVXRVoW_Zbd3}9O9uzY+^Pb=>0lK|&2SG81GiYfG2}V*m0)j(} zp@|*ducE{Rt@%R z#~N(^G+5J<8;=O?6^z<=EanjWn#COK-`qz4QMX*=o^aOXhs<10b@KEt$ zh^9YP!42%yadwZT;@BliJk&>V)+^rQH@#fiXnI=V7@e@=3<3De2ZkZwyZSS9Y-?g} zHC?CE86X_M(nnq!7%-3QP6jnt%QSmiFxQDK5a0Cz=-O;z!0wWXTD#C$UG}Y>@3Ic@ z92>Aa)`na0(f_`Q|6?sFE`$_(3cahyW}8>8YzdlkDwB*R&`qRBRfIf3y>XxgUU8LO z)Rx0YD8LW}{-#L+}@RGImiuQV80tGF)` zgQn*(fJ(VX5qnG7K+QV;4bSOEzl`jP$ITtK4_FHYAI$mcO$#?* z1xEA;Guj47DS`YJ7{-T7NlgHy?4jbennVBbSe5}_0(tJz1a*gE{b2wN)>0L800xrsl%tzdA;TJMqNs?x9T;A7#dBMOVNN3h2)W=q zwSR&cg`n9?t7`tHC*?5>7Efbt0`=0}5 zLpMAahYrv_xbC4oL2z*00%1Njbx%gdW>D*rK^IOZ9)lUfW&t{^S6|dYJ^7h$<@a9U zKbi(>`b#=5dU&+iDVmy^ez0qYxNgKi7{@;{vPlkL6Y~XTA!|JaE)KL7?~yFUbdhf{ z1C55P-UW(!jJ`H$RlP?NsjU9Z5&mQ}nqe4*Vfc^iAM-MDcma(&#=pZyeeV(QJOke1 zZ!`fD0rTuq@Ju=5q12wU1ELFrJ4g5}5dM~WSA1AJ=se@ID~1;wd7VW8$xG&QS?BX~ zvl2JnZ}1({LGYKZxusQ8p-0Jz%+di_bk=nh;|u?1I+hd!D=XC zE_~>v)k;P7Dk{C5m~ba=Ku{oeh8U-|$|6#C*`&5IZ6)#e5O`h#kQI>NDsyk$)FN6G zZ3UFLz3uxuGxuI|Q}ZcU;x3__G}VJsW#uB8RJYFDBJR=#oIH@FVB^l*byulIXRcgs zTib*&JnIM{C<6{K(S_Y1MDotLN`L`OUJ#@6&O~FQdjvZ~q;>#)ClEyh>z2jdPU0dQ zk+ploL;cp;89x~yEbzv_7{bR~t%F;PA4|#eVoGVFS2sInt-TVySn$=TF$}{n48t%C z!w>fEp2b}x3;_7k3=RwyQ))3*f>?+Mq9~#k5v`C|ZA`2E-2xTEv%@bK{P@bJHdey@0iZwc@n?tSx{ zkoO+`NhJ5@o*}+(#XsLa{HsYh_`p&Hpb#W1Z8qXnf?~i0Xu<{wN6izUMCuwMnw};d zK|9K$paGKg4VNCTD#DVAt|{;)(ozr;1kz@)U??ID)?=}XBUt5(YS4uO3Pj zhf6TRM+sB`W7uwzy}ZZk{!tJbT!2__*36phVi9csA^<79ibxbRtggj1jFYag*?5u! zq`7h`h!|{BSa&qM=7DT4uW3K(b7aW|{T9DudVY_MigQRE5k1x&g}vT%FciB0rr(u& zP7W*|Yg$32bn)1oo{XW-%ZnXCkc9?sjn6`3TN6RX?%bag9ddm*Uv7O>@p_xgT`Oo= zlq-bQPWoc=Q*R~lkk86(dXDu=J{_2)s-*5>@rX`Oy5LQ_ra5?vfH}1D>sb33Z~h(>TE(D ztJHBk*IQg(H1%hMlZ@Y(iY~!TG^lm*=ACjVV&~?KvW$KEMNHks_lJ|2@dHt18M<@} znX)?!P3qo!$;2M;{mEZ4Rp)upk-^04*>q1Q*bnADE0kf)19Bs}yLbzq2@`%p>Hv5= z{1hG#{00|3fwG?*xi1PIe&%q1pDA4UB?lfJ9v&VZzLoA^6~G%Tz-oCP$@?7}zE!U4 z3_pP+c;mrOXg`!U5`i~dCV4?4lT_j1d$fUHDkb;@{)e6*4cta(d=`$^V=+hH(|PQEARa(ga- z#4%oy+aSYXG7mwro9SQ!-?z3OpE!+qWp!kOE+=wq0w-bJ4afCBCAYc5JM|z)mNKQfASakWGCbJ!1777qpiw z--jT4alTFAb59VEWC*h;;plVAd8M(lpYjxlC+z~ZTpB$Kb^uAuM&IFn5P z1`UTWd{U>56nWf5<5#+R(@aCkas8btwMOK{;vM}#_uA8Z%aSa zzNcT8;}*X6-tg(>(>>Gtp$)xne#iz*;(u3*c=!ER(nLtmXZFGp65!9_;6I1{TnB_t zj(7|met3BJH((8ZLVR0R8bTcW1SkIKOXcy0WGno(^IPHQXDx#C)^_0Fmjv{~E1&Nq z3BHqlm*zv?C4yTV_oAOr*ljmdlRYZz_B+pVxk_!2S#dsPFe+OYklXB3Y40h8vi3UMTLRaR;4l3H4f#a z?qCXFiF>s33Kzo%B!o}hIJFTKtm@9wC%&(%gjBg~SFdMVH#kaaDC2hKIo6GrtPP%d zX7LccVu?*Und-b%P+cim|8kzl!Riie5}jYGjKYi3cU>^ntVaM=NFkhQ{}eMHjJ|a0 zmwndTVHuvEyOF@lDXO|ifjbS2aHxhJYPXsVqh2<~*jafWEj?2sOX=459s_soFPP-% z+7o+u8JHZy`OxPb>%eMT#b`qszz4LAo^2fFH!2M0Se02kw8VAo{Fqd)e0jKVw5)(G zmOOGcFWM{#bGwtb_>zkd4o~Butz{FHd1kg}ejIn!nr&qINIV{_gSGU%S9g|h1uOA^ zILYOSp9gfv2ih8t%eMM@(uc$$P*Y>55*}==Bbib@yAXMHJy!DD7=p0m2`^8%+07*j z20rprjs?>;=+WAfXjso^p+hgrEZ|+RT6wt`VH&{)gs3YbZ_5j?b1^T7cvQ8`M)a4| zQx}k3&@c}I^<+RI7Q`*@;iGmyAU7Pi&Fv6r+JeB5vly@ObnC3yv<0ebZ`nOQh98v(K7j~;+3@hI zCRnN8_l*|Fg_SvO;7zpmnSAUJn>hH^rg8T>0AFPAp-Gul+bpPEu&pHy`-5RW2l}OU zT5FJ5fSylT_mWc<#eEqWO#iA|STy!FKtG3eAD&+db~6ID%*^1~8B~Kz;h~RWH{l?6cOudwVSI<1?R2=PW28}jpcY_du-vX&gq zog9+z>_Ep}xZ+t4Z&hBPeL1W3Ir0NivH>n+pXguAmI1x}#hJ1XJnOwkf=n5$BjNH{ zVSO?o-;ShY8z|OX9es#WHd|(8%!57|iLElbbnP130Jd4htw;>_R$KNauxo0`0hIbp zN%(lK6{WNk=VIq&W*Z^gHB^qpIcu zN-9@j%(*4xoRN5RfZ4nVml=nz!~?ff_0}p#NBH{)w}??<$18=uT!V*lcTt}zHNVAS6At{Lk4?YijqU^`YHt^D(W!AKC6|>! zLyZ^U^5xzwMs^Ej8c{_t@`f*!1{|hec5)RjoMN=RpB$LN^gSa3>`a!z8XX(F6`<@q z^S$%MMLkFH-Uv>`KEG3AXRrcD=}KTN8=?m(`0ggzQe(?(k1gPihO`)mT?A%KrGi}~TF@w1H@$e1QQ++DnSupq z-k<5z1l-7PrsgR{y7`jeWzp`tvudm05c#1xp zdY+YJi8cY`+l%r#%zky-pDsq0R7R+4z$q`WV_170-Fbgvl3mYH4uRORmXlw?wqQh6 zf)0|tzJ(QEGMLi)OWcJEJBy?iqv{~T=RzfSvI~rvhDO!~mlCr09s#^6vAs-u){#Vi ziiv5ZTGU&P(Vya*A1=KP9pR^rZR|EPUMqr`&Ah&s)SstsJ^`v+#3>Rcm&kl7Z7 zMPC?AL?OPWXe*%UgbOVNrO+^1kKClH@UaK-{#B~c4r=up@rG`YI69Lm zyBm55IVrO#-{;05i85;pbV8vDr{0Z1*mSHcqrBpDLr=MyC~>C`K^W^_;wO2I41-=+ zz=L9BNv~JsjwD$ZoV&5NM04z_KADqlulLoIv`K`oEIL@AxG+rzOV3EnP660_&_$KC{ByND=Zb601yn}=B)1uq?d$2Z zTtaN~waPJ3GORo$&qSHOU}J4D#W zr%+;^;)A{u%}fL;yQ-{Y&>(eGPl|8zrM^K82t?UO;X-y>#rO1>*XWR$0+=#q9_Ia# z4318zEc%xh31oqu986=`I0OcU6dD35rcoFWcTo|vNof;A@q-kGOp)z0 ztwum8s{g884@mMmGaWXX~xOO`BI@^5@zNjRj~#&SE0tIv-8U^Tg{uCgrWz;tU$ z7uMI0D(k|zZdac2Q7aBdet$3+^!xoG_#l_DVLBfBK9|YPJNU!`ZDDhB^P;e|bzC@c z`~=+3@a4ebkrKAT%aRqwRlC$PYt0Hv-2gVsrJGWwSYhC_@a31(m%$jbvZmANn6k5j zpcMG(Cc3ter67xCS!`kDa@7cvQeG*SGa*x1QjD;wK+Ig%Rb>?G2#}CSqgy>E4=j$c zb`D!SS6Qt>*c%0<+TbVn8qI{MVPc|%B;G9Q4$z4$NRnl(3Hu>oWkD{|Q4prmQtC{D zunI4nsXu&WjEN?>>C%cXHRD)iIMTk$!d4+4qN`LaB@A|V2cs|+CJFe;%tEd^LgLFx z0_nCg2|KZ{!pbQSrr5|)vaD1q_sIA{LyF> zMbXHopT(^fHYbooYzNSkq5E3rVJcNzQY?7F%4z;042V~OC9QkNHOj0t6Edn5#>LQG z1x=Ues$i=Z5UyYpTH->SkD(=HHXHjhI}{Tp<`%kQOimle6C_~jZC~tRcT=LSriB^O zb1{nxV$3;q%t@SSh}P(noKduqgT^}Ax<*(&>~$KYQWO?i-0=oFh(q=;W6Yct6J?ai zSeeZxtu--rQm0~?9|@DPxFhjyLPpyP&R8jHN@B`PLu^sF&^V3=V^IXGX>UiQvf7og zh%XZ6^}-lI4iG$%7>98fju?S>J|tl@F(*s6mkMQ!E7FrUvC3JxCw&iI&+g`HmH`=w!D zUb`<|><;?F@l1s2o;H&)sR?VbiP?muQDa#aQ`pt3M%Z0C;YZm1Y^-WFGgqN06vRR6 z-F!}1T%fjyor6k>8F>`*=kin@D1{Jzaa;*KwzVDy5BWCc`zS*g-FPO`a0bLnZsVP< z@kPRvi-J8h?gwFq)shN3%!?Ldye%udvw>4pdHvy6d9##4Jb$~r$5W*uPXyPkP}P+# z`;j=K348TUR7X}gih`gd40R~-t!zj~$YRZw&n?E{7QPsWCSVu0PM$o;jq1zHMm;+& zrZ7dVX@{^ZDlMh!P}P-e>1k1^Wk8Lj!>+ zsj~FnK_p?PG*g?P*%ItNrfe;=u(Mb?OUXE6VNFX$o8p2omRz)PrXO>!K79Q~YN9}i zqI$dC5$g4hhrB%c!nWsy)|1(}tgI_g!%q^ZMA_~O4veBrY{h)9Mwm555k#0pg;^F; zSXvgny+xXmNn6$6sx*R?2y5YMZF(cOz5QnHIC5_HyeJBqLW4P1EEb#f4ywF*v&jIY z>(#NyE9!J2(N)Bk3X?3Q7^*V$rM9|E#Mei~n8nUVtcf=xjE)BjDlAPlYH2dYlpn&- zx4JiqZu{nHa0ejjUcMmqb84sO{?6<-zan&;_AL`fqEip9$tm(g`asa?iZ6N5-2gMd}8mcS3NWw$ZT9-;AdRDQ4a znxQDzT?}FBjAGy(Hur}x_(j>ZEO#r0Jcu#vK3-H|r%(UZ8SgCD z+U>Sg=kfN4P|~ZRmp2~gaSOL2)hZ7uGA1FGqcek zeMAouX8}Z`ksk=(%Q=^jnZhuRTU$^rW9n>#Mrt%Eotn}t9I467q^6;)%p}SsV?$Zc zF%5<=S+GD-E|FVV44WyjatS3?Wb3lBup)l{=RL1++?E!{@0)pN&iOvyVt)S5dCvR3 z(0aITV>-eTV~|#s23yySEDHOyNSL%meEp?3BFpu^zwy*0iDPa~cD~3u}1xOdB zP}Nxl?Jl%OG4-(=qNhw@EQd553AsGySZ>)(#8`RJ6I~QU=8$K|7!OqOv{!^B));Ig zU5T)TSr#@y<|d?!@h~RQ;zc9IB<#|qy`Lp4z-VLf5*0+{iw-c36|JrqK)0=;7)E?g z%?M`K=Bb#4BxBsl?S^0(3z|0B==+TsDSXUOG?y2{^7TI?>~|n<39JNkF-`~oVV-&L zb^X3emu`Nc9+EFw4Zv6!MfFml+96q}^1dXjE)W(W3_{+M!y@fRNWygEJ$2fgSu9=u zs>;y0g=xMEoAI9tTe74FlIFx|FnCGZgXfm8FG0f^Lo*eDx{6XY#+ZbG*=m*~Dg@Kz z{*3OOOC-z*GhYZ(ErefmP3PRN$`(o(--YY*GbwCq!lFf6fARHa2#;u(J*IE@grA=< zVQcf$v@l1bL7!156$<2tF>W?Ta@8JnI?ZYwQIRFk;1?~y`|g}7qIwRLd12fu|C%w3 zpwXAblrh(F%-<$5EiB{^kSkQ23ig=Upv7#C`U&8lL% zjj|YhA-}51~*;>J2^>B`0G4|&pv><*?*o3(+ZHLX~CFy-Abh_o{f_zt!lucu^> zMA)u1#x7Il)%DWs*wNb&Mal*v(BzRGo(v@8<%zv}Z{EC$FJP=Tn}q^>d|WNmYPyca z>JmAs7wTb;Y$jRd9o|-|fteRn%4-|UR@pow2}79MVjyQ87O$PDv^U_#oUhrAObXkz zOP0K_T|3f&+rb&w1!$^4y+m}Xg;I*5gsr~`SBuara;{l|TB!h4pen{4MklTl=g63( zk+PNiZD<6#v#Zp@wYwWZa$BzT7`8b2eFmQS%iX3r-#mI-;8d-cwZf4}VWtURdVq|1 zX^AObK*H+vnpadX$dYt9VFzyB+>0=Gq>^ayD>!AHxQbiDQou1DM#W_soN&p_D8l}IkG71p5!WmD7P3+>{b8pg0*&#zsql^C39 z&4y`YmeNp@?9F1^k6(#n7XoMfe!7{qb=7vL9%c2~);srqnvy*}Zgj{SLrR#!#Zg)s zLkJa~k%o%tVb|IRCyai9Qx-=qVKpR!T8_9x#yEpUY3C7EdSO)C74>@R6BkQ9xZ9X2t! zjztr2f;xqxUSQUV%J}?HB8;4fk}h4f8s)a2kaf6j@t_>WW{@wyUKDXBrsgw8t!&by zsK*S~>ehRA0L!M*;ICjSmUFhOQ9+p7$taJgvTZ%giX1C6{_Se5Tn2c0#^vsg`L zfBBPJ1~x$zaW|)1x+oX7S$OFn%#5L`T#>NjN*Ij?x;D(wyfWMJZMixKbZnR^!zb}Ggur~sNU^&6lA^JVEm*l(zP;JK=C|GTS8{ObcTGe0f*z-zE$k zU10%p!dft-7M;I!L&8p3TfqqYPh$F>Xxa*bpu6hnNW3%IsH!3QlQYV{~&t}1|aJhWd#JB68N zv_-Z?g?(4e{&;w7Xu?dFENPtJwlZe)##sSdkmexBm{~*Fdy|GHXbEIlDKv(H@ysE7 z-R3X-;0dP3d&SU(z9qQoZG5PAYJyc7q$yWqOtI+>3fe(#FV9Y!E?qSf-X*vx$ zjOIw)pwE^<#g}L{UmTXGeAzmcqtm8ka%yVgN#?vTk2&*Uvt~ibLV&|*V<1kO4;;F9 z=ynTv^5nSx4DR3OMWgpc+=Oy>R?4ar#TrCAmT)H?R>0OYkF&9n-sAM9JI7gN0w%9q9 zy{o#D*6fGPU_mBl>rGg?Dt;Hm=vl=V#uPFbI%&9ZvhJhf!L37k)*m{-q3N24(i6}{ zAgzLKG33j1b=2D1>{rh%lU8zmvs=jW_35X3FI_%z7*}u#T~1Z=@L{R4iDIQ{&eVB^ ztW9N3@i=5x*zc}j5|p5K{tR8nK+YyfGeJt&p4*3B`Fxq9yUr)9lOcJc~tSmK*9Kxw?Vw%>?a9gH}>IO1Ph1TDJeDC6i5u z`7ulBgrP=uCUE4>4W!JBO>*{zYZ$_;BH}8s#37?(dGwA$2{U7M5u?G^G>Vjk5(c;e zis0c3dv5MWRGw~Mpk%Ty5>D54A@5bAEXM!<002ov JPDHLkV1hsRzoq~H literal 0 HcmV?d00001 diff --git a/search.php b/search.php new file mode 100644 index 0000000..ce14a1b --- /dev/null +++ b/search.php @@ -0,0 +1,42 @@ + +need('header.php'); ?> + +
+
+ +

+ +
+ +
+ +
+ listCategories('wrapClass=list-inline'); ?> +
+ +
+ + have()): ?> + next()): ?> +
+ + +
+ content('阅读全文'); ?> +
+
+
+ + +
+
+

+
+
+ +
+ + pageNav('« 前一页', '后一页 »'); ?> +
+ +need('footer.php'); ?> diff --git a/static/css/style.css b/static/css/style.css new file mode 100644 index 0000000..9bc44e5 --- /dev/null +++ b/static/css/style.css @@ -0,0 +1,1968 @@ +@charset "UTF-8"; + +/*! + * Pico CSS ✨ v2.0.6 (https://picocss.com) + * Copyright 2019-2024 - Licensed under MIT + */ + + +:root { + --pico-font-family-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --pico-font-family-sans-serif: system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue", sans-serif, var(--pico-font-family-emoji); + --pico-font-family-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace, var(--pico-font-family-emoji); + --pico-font-family: var(--pico-font-family-sans-serif); + --pico-line-height: 1.5; + --pico-font-weight: 400; + --pico-font-size: 100%; + --pico-text-underline-offset: 0.1rem; + --pico-border-radius: 0.25rem; + --pico-border-width: 0.0625rem; + --pico-outline-width: 0.125rem; + --pico-transition: 0.2s ease-in-out; + --pico-spacing: 1rem; + --pico-typography-spacing-vertical: 1rem; + --pico-grid-column-gap: var(--pico-spacing); + --pico-grid-row-gap: var(--pico-spacing); + --pico-form-element-spacing-vertical: 0.75rem; + --pico-form-element-spacing-horizontal: 1rem; + --pico-nav-element-spacing-vertical: 1rem; + --pico-nav-element-spacing-horizontal: 0.5rem; + --pico-nav-link-spacing-vertical: 0.5rem; + --pico-nav-link-spacing-horizontal: 0.5rem; + --pico-nav-breadcrumb-divider: ">"; + --pico-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); +} + +@media (min-width: 576px) { + :root { + --pico-font-size: 106.25%; + } +} + +@media (min-width: 768px) { + :root { + --pico-font-size: 112.5%; + } +} + +@media (min-width: 1024px) { + :root { + --pico-font-size: 118.75%; + } +} + +@media (min-width: 1280px) { + :root { + --pico-font-size: 125%; + } +} + +@media (min-width: 1536px) { + :root { + --pico-font-size: 110.25%; + } +} + +a { + --pico-text-decoration: underline; +} + +a.contrast, +a.secondary { + --pico-text-decoration: underline; +} + +small { + --pico-font-size: 0.875em; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + --pico-font-weight: 700; +} + +h1 { + --pico-font-size: 1.5rem; + --pico-line-height: 1.125; + --pico-typography-spacing-top: 3rem; +} + +h2 { + --pico-font-size: 1.75rem; + --pico-line-height: 1.15; + --pico-typography-spacing-top: 2.625rem; +} + +h3 { + --pico-font-size: 1.5rem; + --pico-line-height: 1.175; + --pico-typography-spacing-top: 2.25rem; +} + +h4 { + --pico-font-size: 1.25rem; + --pico-line-height: 1.2; + --pico-typography-spacing-top: 1.874rem; +} + +h5 { + --pico-font-size: 1.125rem; + --pico-line-height: 1.225; + --pico-typography-spacing-top: 1.6875rem; +} + +h6 { + --pico-font-size: 1rem; + --pico-line-height: 1.25; + --pico-typography-spacing-top: 1.5rem; +} + +tfoot td, +tfoot th, +thead td, +thead th { + --pico-font-weight: 600; + --pico-border-width: 0.1875rem; +} + +code, +kbd, +pre, +samp { + --pico-font-family: var(--pico-font-family-monospace); +} + +kbd { + --pico-font-weight: bolder; +} + +:where(select, textarea), +input:not([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [type=file]) { + --pico-outline-width: 0.0625rem; +} + +[type=search] { + --pico-border-radius: 5rem; +} + +:root:not([data-theme=dark]), +[data-theme=light] { + --pico-background-color: #fff; + --pico-color: #373c44; + --pico-text-selection-color: rgba(2, 154, 232, 0.25); + --pico-muted-color: #646b79; + --pico-muted-border-color: #e7eaf0; + --pico-primary: #0172ad; + --pico-primary-background: #0172ad; + --pico-primary-border: var(--pico-primary-background); + --pico-primary-underline: rgba(1, 114, 173, 0.5); + --pico-primary-hover: #015887; + --pico-primary-hover-background: #02659a; + --pico-primary-hover-border: var(--pico-primary-hover-background); + --pico-primary-hover-underline: var(--pico-primary-hover); + --pico-primary-focus: rgba(2, 154, 232, 0.5); + --pico-primary-inverse: #fff; + --pico-secondary: #5d6b89; + --pico-secondary-background: #525f7a; + --pico-secondary-border: var(--pico-secondary-background); + --pico-secondary-underline: rgba(93, 107, 137, 0.5); + --pico-secondary-hover: #48536b; + --pico-secondary-hover-background: #48536b; + --pico-secondary-hover-border: var(--pico-secondary-hover-background); + --pico-secondary-hover-underline: var(--pico-secondary-hover); + --pico-secondary-focus: rgba(93, 107, 137, 0.25); + --pico-secondary-inverse: #fff; + --pico-contrast: #181c25; + --pico-contrast-background: #181c25; + --pico-contrast-border: var(--pico-contrast-background); + --pico-contrast-underline: rgba(24, 28, 37, 0.5); + --pico-contrast-hover: #000; + --pico-contrast-hover-background: #000; + --pico-contrast-hover-border: var(--pico-contrast-hover-background); + --pico-contrast-hover-underline: var(--pico-secondary-hover); + --pico-contrast-focus: rgba(93, 107, 137, 0.25); + --pico-contrast-inverse: #fff; + --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(129, 145, 181, 0.01698), + 0.0335rem 0.067rem 0.402rem rgba(129, 145, 181, 0.024), + 0.0625rem 0.125rem 0.75rem rgba(129, 145, 181, 0.03), + 0.1125rem 0.225rem 1.35rem rgba(129, 145, 181, 0.036), + 0.2085rem 0.417rem 2.502rem rgba(129, 145, 181, 0.04302), + 0.5rem 1rem 6rem rgba(129, 145, 181, 0.06), + 0 0 0 0.0625rem rgba(129, 145, 181, 0.015); + --pico-h1-color: #2d3138; + --pico-h2-color: #373c44; + --pico-h3-color: #424751; + --pico-h4-color: #4d535e; + --pico-h5-color: #5c6370; + --pico-h6-color: #646b79; + --pico-mark-background-color: #fde7c0; + --pico-mark-color: #0f1114; + --pico-ins-color: #1d6a54; + --pico-del-color: #883935; + --pico-blockquote-border-color: var(--pico-muted-border-color); + --pico-blockquote-footer-color: var(--pico-muted-color); + --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-table-border-color: var(--pico-muted-border-color); + --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375); + --pico-code-background-color: #f3f5f7; + --pico-code-color: #646b79; + --pico-code-kbd-background-color: var(--pico-color); + --pico-code-kbd-color: var(--pico-background-color); + --pico-form-element-background-color: #fbfcfc; + --pico-form-element-selected-background-color: #dfe3eb; + --pico-form-element-border-color: #cfd5e2; + --pico-form-element-color: #23262c; + --pico-form-element-placeholder-color: var(--pico-muted-color); + --pico-form-element-active-background-color: #fff; + --pico-form-element-active-border-color: var(--pico-primary-border); + --pico-form-element-focus-color: var(--pico-primary-border); + --pico-form-element-disabled-opacity: 0.5; + --pico-form-element-invalid-border-color: #b86a6b; + --pico-form-element-invalid-active-border-color: #c84f48; + --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color); + --pico-form-element-valid-border-color: #4c9b8a; + --pico-form-element-valid-active-border-color: #279977; + --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color); + --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(76, 155, 138)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(200, 79, 72)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); + color-scheme: light; +} + +:root:not([data-theme=dark]) input:is([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [type=file]), +[data-theme=light] input:is([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [type=file]) { + --pico-form-element-focus-color: var(--pico-primary-focus); +} + +@media only screen and (prefers-color-scheme: dark) { + :root:not([data-theme]) { + --pico-background-color: #13171f; + --pico-color: #c2c7d0; + --pico-text-selection-color: rgba(1, 170, 255, 0.1875); + --pico-muted-color: #7b8495; + --pico-muted-border-color: #202632; + --pico-primary: #01aaff; + --pico-primary-background: #0172ad; + --pico-primary-border: var(--pico-primary-background); + --pico-primary-underline: rgba(1, 170, 255, 0.5); + --pico-primary-hover: #79c0ff; + --pico-primary-hover-background: #017fc0; + --pico-primary-hover-border: var(--pico-primary-hover-background); + --pico-primary-hover-underline: var(--pico-primary-hover); + --pico-primary-focus: rgba(1, 170, 255, 0.375); + --pico-primary-inverse: #fff; + --pico-secondary: #969eaf; + --pico-secondary-background: #525f7a; + --pico-secondary-border: var(--pico-secondary-background); + --pico-secondary-underline: rgba(150, 158, 175, 0.5); + --pico-secondary-hover: #b3b9c5; + --pico-secondary-hover-background: #5d6b89; + --pico-secondary-hover-border: var(--pico-secondary-hover-background); + --pico-secondary-hover-underline: var(--pico-secondary-hover); + --pico-secondary-focus: rgba(144, 158, 190, 0.25); + --pico-secondary-inverse: #fff; + --pico-contrast: #dfe3eb; + --pico-contrast-background: #eff1f4; + --pico-contrast-border: var(--pico-contrast-background); + --pico-contrast-underline: rgba(223, 227, 235, 0.5); + --pico-contrast-hover: #fff; + --pico-contrast-hover-background: #fff; + --pico-contrast-hover-border: var(--pico-contrast-hover-background); + --pico-contrast-hover-underline: var(--pico-contrast-hover); + --pico-contrast-focus: rgba(207, 213, 226, 0.25); + --pico-contrast-inverse: #000; + --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(7, 9, 12, 0.01698), + 0.0335rem 0.067rem 0.402rem rgba(7, 9, 12, 0.024), + 0.0625rem 0.125rem 0.75rem rgba(7, 9, 12, 0.03), + 0.1125rem 0.225rem 1.35rem rgba(7, 9, 12, 0.036), + 0.2085rem 0.417rem 2.502rem rgba(7, 9, 12, 0.04302), + 0.5rem 1rem 6rem rgba(7, 9, 12, 0.06), + 0 0 0 0.0625rem rgba(7, 9, 12, 0.015); + --pico-h1-color: #f0f1f3; + --pico-h2-color: #e0e3e7; + --pico-h3-color: #c2c7d0; + --pico-h4-color: #b3b9c5; + --pico-h5-color: #a4acba; + --pico-h6-color: #8891a4; + --pico-mark-background-color: #014063; + --pico-mark-color: #fff; + --pico-ins-color: #62af9a; + --pico-del-color: #ce7e7b; + --pico-blockquote-border-color: var(--pico-muted-border-color); + --pico-blockquote-footer-color: var(--pico-muted-color); + --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-table-border-color: var(--pico-muted-border-color); + --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375); + --pico-code-background-color: #1a1f28; + --pico-code-color: #8891a4; + --pico-code-kbd-background-color: var(--pico-color); + --pico-code-kbd-color: var(--pico-background-color); + --pico-form-element-background-color: #1c212c; + --pico-form-element-selected-background-color: #2a3140; + --pico-form-element-border-color: #2a3140; + --pico-form-element-color: #e0e3e7; + --pico-form-element-placeholder-color: #8891a4; + --pico-form-element-active-background-color: #1a1f28; + --pico-form-element-active-border-color: var(--pico-primary-border); + --pico-form-element-focus-color: var(--pico-primary-border); + --pico-form-element-disabled-opacity: 0.5; + --pico-form-element-invalid-border-color: #964a50; + --pico-form-element-invalid-active-border-color: #b7403b; + --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color); + --pico-form-element-valid-border-color: #2a7b6f; + --pico-form-element-valid-active-border-color: #16896a; + --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color); + --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(150, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); + color-scheme: dark; + } + + :root:not([data-theme]) input:is([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [type=file]) { + --pico-form-element-focus-color: var(--pico-primary-focus); + } +} + +[data-theme=dark] { + --pico-background-color: #13171f; + --pico-color: #c2c7d0; + --pico-text-selection-color: rgba(1, 170, 255, 0.1875); + --pico-muted-color: #7b8495; + --pico-muted-border-color: #202632; + --pico-primary: #01aaff; + --pico-primary-background: #0172ad; + --pico-primary-border: var(--pico-primary-background); + --pico-primary-underline: rgba(1, 170, 255, 0.5); + --pico-primary-hover: #79c0ff; + --pico-primary-hover-background: #017fc0; + --pico-primary-hover-border: var(--pico-primary-hover-background); + --pico-primary-hover-underline: var(--pico-primary-hover); + --pico-primary-focus: rgba(1, 170, 255, 0.375); + --pico-primary-inverse: #fff; + --pico-secondary: #969eaf; + --pico-secondary-background: #525f7a; + --pico-secondary-border: var(--pico-secondary-background); + --pico-secondary-underline: rgba(150, 158, 175, 0.5); + --pico-secondary-hover: #b3b9c5; + --pico-secondary-hover-background: #5d6b89; + --pico-secondary-hover-border: var(--pico-secondary-hover-background); + --pico-secondary-hover-underline: var(--pico-secondary-hover); + --pico-secondary-focus: rgba(144, 158, 190, 0.25); + --pico-secondary-inverse: #fff; + --pico-contrast: #dfe3eb; + --pico-contrast-background: #eff1f4; + --pico-contrast-border: var(--pico-contrast-background); + --pico-contrast-underline: rgba(223, 227, 235, 0.5); + --pico-contrast-hover: #fff; + --pico-contrast-hover-background: #fff; + --pico-contrast-hover-border: var(--pico-contrast-hover-background); + --pico-contrast-hover-underline: var(--pico-contrast-hover); + --pico-contrast-focus: rgba(207, 213, 226, 0.25); + --pico-contrast-inverse: #000; + --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(7, 9, 12, 0.01698), + 0.0335rem 0.067rem 0.402rem rgba(7, 9, 12, 0.024), + 0.0625rem 0.125rem 0.75rem rgba(7, 9, 12, 0.03), + 0.1125rem 0.225rem 1.35rem rgba(7, 9, 12, 0.036), + 0.2085rem 0.417rem 2.502rem rgba(7, 9, 12, 0.04302), + 0.5rem 1rem 6rem rgba(7, 9, 12, 0.06), + 0 0 0 0.0625rem rgba(7, 9, 12, 0.015); + --pico-h1-color: #f0f1f3; + --pico-h2-color: #e0e3e7; + --pico-h3-color: #c2c7d0; + --pico-h4-color: #b3b9c5; + --pico-h5-color: #a4acba; + --pico-h6-color: #8891a4; + --pico-mark-background-color: #014063; + --pico-mark-color: #fff; + --pico-ins-color: #62af9a; + --pico-del-color: #ce7e7b; + --pico-blockquote-border-color: var(--pico-muted-border-color); + --pico-blockquote-footer-color: var(--pico-muted-color); + --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-table-border-color: var(--pico-muted-border-color); + --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375); + --pico-code-background-color: #1a1f28; + --pico-code-color: #8891a4; + --pico-code-kbd-background-color: var(--pico-color); + --pico-code-kbd-color: var(--pico-background-color); + --pico-form-element-background-color: #1c212c; + --pico-form-element-selected-background-color: #2a3140; + --pico-form-element-border-color: #2a3140; + --pico-form-element-color: #e0e3e7; + --pico-form-element-placeholder-color: #8891a4; + --pico-form-element-active-background-color: #1a1f28; + --pico-form-element-active-border-color: var(--pico-primary-border); + --pico-form-element-focus-color: var(--pico-primary-border); + --pico-form-element-disabled-opacity: 0.5; + --pico-form-element-invalid-border-color: #964a50; + --pico-form-element-invalid-active-border-color: #b7403b; + --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color); + --pico-form-element-valid-border-color: #2a7b6f; + --pico-form-element-valid-active-border-color: #16896a; + --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color); + --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(150, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); + color-scheme: dark; +} + +[data-theme=dark] input:is([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [type=file]) { + --pico-form-element-focus-color: var(--pico-primary-focus); +} + +[type=checkbox], +[type=radio], +[type=range], +progress { + accent-color: var(--pico-primary); +} + +*, +:after, +:before { + box-sizing: border-box; + background-repeat: no-repeat; +} + +:after, +:before { + text-decoration: inherit; + vertical-align: inherit; +} + +:where(:root) { + -webkit-tap-highlight-color: transparent; + -webkit-text-size-adjust: 100%; + text-size-adjust: 100%; + background-color: var(--pico-background-color); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + font-size: var(--pico-font-size); + line-height: var(--pico-line-height); + font-family: var(--pico-font-family); + text-underline-offset: var(--pico-text-underline-offset); + text-rendering: optimizeLegibility; + overflow-wrap: break-word; + tab-size: 4; +} + +.container, +.container-fluid { + width: 100%; + margin-right: auto; + margin-left: auto; + padding-right: var(--pico-spacing); + padding-left: var(--pico-spacing); +} + +@media (min-width: 576px) { + .container { + max-width: 510px; + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .container { + max-width: 700px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 950px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1200px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1450px; + } +} + +.grid { + grid-column-gap: var(--pico-grid-column-gap); + grid-row-gap: var(--pico-grid-row-gap); + display: grid; + grid-template-columns: 1fr; +} + +@media (min-width: 768px) { + .grid { + grid-template-columns: repeat(auto-fit, minmax(0%, 1fr)); + } +} + +.grid > * { + min-width: 0; +} + +.overflow-auto { + overflow: auto; +} + +b, +strong { + font-weight: bolder; +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +address, +blockquote, +dl, +ol, +p, +pre, +table, +ul { + margin-top: 0; + margin-bottom: var(--pico-typography-spacing-vertical); + color: var(--pico-color); + font-style: normal; + font-weight: var(--pico-font-weight); +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: var(--pico-typography-spacing-vertical); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + font-size: var(--pico-font-size); + line-height: var(--pico-line-height); + font-family: var(--pico-font-family); +} + +h1 { + --pico-color: var(--pico-h1-color); +} + +h2 { + --pico-color: var(--pico-h2-color); +} + +h3 { + --pico-color: var(--pico-h3-color); +} + +h4 { + --pico-color: var(--pico-h4-color); +} + +h5 { + --pico-color: var(--pico-h5-color); +} + +h6 { + --pico-color: var(--pico-h6-color); +} + +:where(article, address, blockquote, dl, figure, form, ol, p, pre, table, ul) ~ :is(h1, h2, h3, h4, h5, h6) { + margin-top: var(--pico-typography-spacing-top); +} + +p { + margin-bottom: var(--pico-typography-spacing-vertical); +} + +hgroup { + margin-bottom: var(--pico-typography-spacing-vertical); +} + +hgroup > * { + margin-top: 0; + margin-bottom: 0; +} + +hgroup > :not(:first-child):last-child { + --pico-color: var(--pico-muted-color); + --pico-font-weight: unset; + font-size: 1rem; +} + +:where(ol, ul) li { + margin-bottom: calc(var(--pico-typography-spacing-vertical) * 0.25); +} + +:where(dl, ol, ul) :where(dl, ol, ul) { + margin: 0; + margin-top: calc(var(--pico-typography-spacing-vertical) * 0.25); +} + +ul li { + list-style: square; +} + +mark { + padding: 0.125rem 0.25rem; + background-color: var(--pico-mark-background-color); + color: var(--pico-mark-color); + vertical-align: baseline; +} + +blockquote { + display: block; + margin: var(--pico-typography-spacing-vertical) 0; + padding: var(--pico-spacing); + border-right: none; + border-left: 0.25rem solid var(--pico-blockquote-border-color); + border-inline-start: 0.25rem solid var(--pico-blockquote-border-color); + border-inline-end: none; +} + +blockquote footer { + margin-top: calc(var(--pico-typography-spacing-vertical) * 0.5); + color: var(--pico-blockquote-footer-color); +} + +abbr[title] { + border-bottom: 1px dotted; + text-decoration: none; + cursor: help; +} + +ins { + color: var(--pico-ins-color); + text-decoration: none; +} + +del { + color: var(--pico-del-color); +} + +::selection { + background-color: var(--pico-text-selection-color); +} + +:where(a:not([role=button])), +[role=link] { + --pico-color: var(--pico-primary); + --pico-background-color: transparent; + --pico-underline: var(--pico-primary-underline); + outline: none; + background-color: var(--pico-background-color); + color: var(--pico-color); + text-decoration: var(--pico-text-decoration); + text-decoration-color: var(--pico-underline); + text-underline-offset: 0.125em; + transition: background-color var(--pico-transition), + color var(--pico-transition), + text-decoration var(--pico-transition), + box-shadow var(--pico-transition); +} + +:where(a:not([role=button])):is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[role=link]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-color: var(--pico-primary-hover); + --pico-underline: var(--pico-primary-hover-underline); + --pico-text-decoration: underline; +} + +:where(a:not([role=button])):focus-visible, +[role=link]:focus-visible { + box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus); +} + +:where(a:not([role=button])).secondary, +[role=link].secondary { + --pico-color: var(--pico-secondary); + --pico-underline: var(--pico-secondary-underline); +} + +:where(a:not([role=button])).secondary:is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[role=link].secondary:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-color: var(--pico-secondary-hover); + --pico-underline: var(--pico-secondary-hover-underline); +} + +:where(a:not([role=button])).contrast, +[role=link].contrast { + --pico-color: var(--pico-contrast); + --pico-underline: var(--pico-contrast-underline); +} + +:where(a:not([role=button])).contrast:is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[role=link].contrast:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-color: var(--pico-contrast-hover); + --pico-underline: var(--pico-contrast-hover-underline); +} + +a[role=button] { + display: inline-block; +} + +button { + margin: 0; + overflow: visible; + font-family: inherit; + text-transform: none; +} + +[type=button], +[type=reset], +[type=submit], +button { + -webkit-appearance: button; +} + +[role=button], +[type=button], +[type=file]::file-selector-button, +[type=reset], +[type=submit], +button { + --pico-background-color: var(--pico-primary-background); + --pico-border-color: var(--pico-primary-border); + --pico-color: var(--pico-primary-inverse); + --pico-box-shadow: var(--pico-button-box-shadow, 0 0 0 rgba(0, 0, 0, 0)); + padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal); + border: var(--pico-border-width) solid var(--pico-border-color); + border-radius: var(--pico-border-radius); + outline: none; + background-color: var(--pico-background-color); + box-shadow: var(--pico-box-shadow); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + font-size: 1rem; + line-height: var(--pico-line-height); + text-align: center; + text-decoration: none; + cursor: pointer; + user-select: none; + transition: background-color var(--pico-transition), + border-color var(--pico-transition), + color var(--pico-transition), + box-shadow var(--pico-transition); +} + +[role=button]:is(:hover, :active, :focus), +[role=button]:is([aria-current]:not([aria-current=false])), +[type=button]:is(:hover, :active, :focus), +[type=button]:is([aria-current]:not([aria-current=false])), +[type=file]::file-selector-button:is(:hover, :active, :focus), +[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])), +[type=reset]:is(:hover, :active, :focus), +[type=reset]:is([aria-current]:not([aria-current=false])), +[type=submit]:is(:hover, :active, :focus), +[type=submit]:is([aria-current]:not([aria-current=false])), +button:is(:hover, :active, :focus), +button:is([aria-current]:not([aria-current=false])) { + --pico-background-color: var(--pico-primary-hover-background); + --pico-border-color: var(--pico-primary-hover-border); + --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)); + --pico-color: var(--pico-primary-inverse); +} + +[role=button]:focus, +[role=button]:is([aria-current]:not([aria-current=false])):focus, +[type=button]:focus, +[type=button]:is([aria-current]:not([aria-current=false])):focus, +[type=file]::file-selector-button:focus, +[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus, +[type=reset]:focus, +[type=reset]:is([aria-current]:not([aria-current=false])):focus, +[type=submit]:focus, +[type=submit]:is([aria-current]:not([aria-current=false])):focus, +button:focus, +button:is([aria-current]:not([aria-current=false])):focus { + --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), + 0 0 0 var(--pico-outline-width) var(--pico-primary-focus); +} + +[type=button], +[type=reset], +[type=submit] { + margin-bottom: var(--pico-spacing); +} + +:is(button, [type=submit], [type=button], [role=button]).secondary, +[type=file]::file-selector-button, +[type=reset] { + --pico-background-color: var(--pico-secondary-background); + --pico-border-color: var(--pico-secondary-border); + --pico-color: var(--pico-secondary-inverse); + cursor: pointer; +} + +:is(button, [type=submit], [type=button], [role=button]).secondary:is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[type=file]::file-selector-button:is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[type=reset]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-background-color: var(--pico-secondary-hover-background); + --pico-border-color: var(--pico-secondary-hover-border); + --pico-color: var(--pico-secondary-inverse); +} + +:is(button, [type=submit], [type=button], [role=button]).secondary:focus, +:is(button, [type=submit], [type=button], [role=button]).secondary:is([aria-current]:not([aria-current=false])):focus, +[type=file]::file-selector-button:focus, +[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus, +[type=reset]:focus, +[type=reset]:is([aria-current]:not([aria-current=false])):focus { + --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), + 0 0 0 var(--pico-outline-width) var(--pico-secondary-focus); +} + +:is(button, [type=submit], [type=button], [role=button]).contrast { + --pico-background-color: var(--pico-contrast-background); + --pico-border-color: var(--pico-contrast-border); + --pico-color: var(--pico-contrast-inverse); +} + +:is(button, [type=submit], [type=button], [role=button]).contrast:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-background-color: var(--pico-contrast-hover-background); + --pico-border-color: var(--pico-contrast-hover-border); + --pico-color: var(--pico-contrast-inverse); +} + +:is(button, [type=submit], [type=button], [role=button]).contrast:focus, +:is(button, [type=submit], [type=button], [role=button]).contrast:is([aria-current]:not([aria-current=false])):focus { + --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), + 0 0 0 var(--pico-outline-width) var(--pico-contrast-focus); +} + +:is(button, [type=submit], [type=button], [role=button]).outline, +[type=reset].outline { + --pico-background-color: transparent; + --pico-color: var(--pico-primary); + --pico-border-color: var(--pico-primary); +} + +:is(button, [type=submit], [type=button], [role=button]).outline:is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[type=reset].outline:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-background-color: transparent; + --pico-color: var(--pico-primary-hover); + --pico-border-color: var(--pico-primary-hover); +} + +:is(button, [type=submit], [type=button], [role=button]).outline.secondary, +[type=reset].outline { + --pico-color: var(--pico-secondary); + --pico-border-color: var(--pico-secondary); +} + +:is(button, [type=submit], [type=button], [role=button]).outline.secondary:is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[type=reset].outline:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-color: var(--pico-secondary-hover); + --pico-border-color: var(--pico-secondary-hover); +} + +:is(button, [type=submit], [type=button], [role=button]).outline.contrast { + --pico-color: var(--pico-contrast); + --pico-border-color: var(--pico-contrast); +} + +:is(button, [type=submit], [type=button], [role=button]).outline.contrast:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-color: var(--pico-contrast-hover); + --pico-border-color: var(--pico-contrast-hover); +} + +:where(button, [type=submit], [type=reset], [type=button], [role=button])[disabled], +:where(fieldset[disabled]) :is(button, [type=submit], [type=button], [type=reset], [role=button]) { + opacity: 0.5; + pointer-events: none; +} + +:where(table) { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + text-indent: 0; +} + +td, +th { + padding: calc(var(--pico-spacing) / 2) var(--pico-spacing); + border-bottom: var(--pico-border-width) solid var(--pico-table-border-color); + background-color: var(--pico-background-color); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + text-align: left; + text-align: start; +} + +tfoot td, +tfoot th { + border-top: var(--pico-border-width) solid var(--pico-table-border-color); + border-bottom: 0; +} + +table.striped tbody tr:nth-child(odd) td, +table.striped tbody tr:nth-child(odd) th { + background-color: var(--pico-table-row-stripped-background-color); +} + +:where(audio, canvas, iframe, img, svg, video) { + vertical-align: middle; +} + +audio, +video { + display: inline-block; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +:where(iframe) { + border-style: none; +} + +img { + max-width: 100%; + height: auto; + border-style: none; +} + +:where(svg:not([fill])) { + fill: currentColor; +} + +svg:not(:root) { + overflow: hidden; +} + +code, +kbd, +pre, +samp { + font-size: 0.875em; + font-family: var(--pico-font-family); +} + +pre code { + font-size: inherit; + font-family: inherit; +} + +pre { + -ms-overflow-style: scrollbar; + overflow: auto; +} + +code, +kbd, +pre { + border-radius: var(--pico-border-radius); + background: var(--pico-code-background-color); + color: var(--pico-code-color); + font-weight: var(--pico-font-weight); + line-height: initial; +} + +code, +kbd { + display: inline-block; + padding: 0.375rem; +} + +pre { + display: block; + margin-bottom: var(--pico-spacing); + overflow-x: auto; +} + +pre > code { + display: block; + padding: var(--pico-spacing); + background: none; + line-height: var(--pico-line-height); +} + +kbd { + background-color: var(--pico-code-kbd-background-color); + color: var(--pico-code-kbd-color); + vertical-align: baseline; +} + +figure { + display: block; + margin: 0; + padding: 0; +} + +figure figcaption { + padding: calc(var(--pico-spacing) * 0.5) 0; + color: var(--pico-muted-color); +} + +hr { + height: 0; + margin: var(--pico-typography-spacing-vertical) 0; + border: 0; + border-top: 1px solid var(--pico-muted-border-color); + color: inherit; +} + +[hidden], +template { + display: none !important; +} + +canvas { + display: inline-block; +} + +input, +optgroup, +select, +textarea { + margin: 0; + font-size: 1rem; + line-height: var(--pico-line-height); + font-family: inherit; + letter-spacing: inherit; +} + +input { + overflow: visible; +} + +select { + text-transform: none; +} + +legend { + max-width: 100%; + padding: 0; + color: inherit; + white-space: normal; +} + +textarea { + overflow: auto; +} + +[type=checkbox], +[type=radio] { + padding: 0; +} + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +[type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +:-moz-focusring { + outline: none; +} + +:-moz-ui-invalid { + box-shadow: none; +} + +::-ms-expand { + display: none; +} + +[type=file], +[type=range] { + padding: 0; + border-width: 0; +} + +input:not([type=checkbox], [type=radio], [type=range]) { + height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2); +} + +fieldset { + width: 100%; + margin: 0; + margin-bottom: var(--pico-spacing); + padding: 0; + border: 0; +} + +fieldset legend, +label { + display: block; + margin-bottom: calc(var(--pico-spacing) * 0.375); + color: var(--pico-color); + font-weight: var(--pico-form-label-font-weight, var(--pico-font-weight)); +} + +fieldset legend { + margin-bottom: calc(var(--pico-spacing) * 0.5); +} + +button[type=submit], +input:not([type=checkbox], [type=radio]), +select, +textarea { + width: 100%; +} + +input:not([type=checkbox], [type=radio], [type=range], [type=file]), +select, +textarea { + appearance: none; + padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal); +} + +input, +select, +textarea { + --pico-background-color: var(--pico-form-element-background-color); + --pico-border-color: var(--pico-form-element-border-color); + --pico-color: var(--pico-form-element-color); + --pico-box-shadow: none; + border: var(--pico-border-width) solid var(--pico-border-color); + border-radius: var(--pico-border-radius); + outline: none; + background-color: var(--pico-background-color); + box-shadow: var(--pico-box-shadow); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + transition: background-color var(--pico-transition), + border-color var(--pico-transition), + color var(--pico-transition), + box-shadow var(--pico-transition); +} + +:where(select, textarea):not([readonly]):is(:active, :focus), +input:not([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [readonly]):is(:active, :focus) { + --pico-background-color: var(--pico-form-element-active-background-color); +} + +:where(select, textarea):not([readonly]):is(:active, :focus), +input:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus) { + --pico-border-color: var(--pico-form-element-active-border-color); +} + +:where(select, textarea):not([readonly]):focus, +input:not([type=submit], [type=button], [type=reset], [type=range], [type=file], [readonly]):focus { + --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color); +} + +:where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea), +input:not([type=submit], [type=button], [type=reset])[disabled], +label[aria-disabled=true], +select[disabled], +textarea[disabled] { + opacity: var(--pico-form-element-disabled-opacity); + pointer-events: none; +} + +label[aria-disabled=true] input[disabled] { + opacity: 1; +} + +:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week], [type=range])[aria-invalid] { + padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important; + padding-left: var(--pico-form-element-spacing-horizontal); + padding-inline-start: var(--pico-form-element-spacing-horizontal) !important; + padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important; + background-position: center right 0.75rem; + background-size: 1rem auto; + background-repeat: no-repeat; +} + +:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week], [type=range])[aria-invalid=false]:not(select) { + background-image: var(--pico-icon-valid); +} + +:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week], [type=range])[aria-invalid=true]:not(select) { + background-image: var(--pico-icon-invalid); +} + +:where(input, select, textarea)[aria-invalid=false] { + --pico-border-color: var(--pico-form-element-valid-border-color); +} + +:where(input, select, textarea)[aria-invalid=false]:is(:active, :focus) { + --pico-border-color: var(--pico-form-element-valid-active-border-color) !important; +} + +:where(input, select, textarea)[aria-invalid=false]:is(:active, :focus):not([type=checkbox], [type=radio]) { + --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color) !important; +} + +:where(input, select, textarea)[aria-invalid=true] { + --pico-border-color: var(--pico-form-element-invalid-border-color); +} + +:where(input, select, textarea)[aria-invalid=true]:is(:active, :focus) { + --pico-border-color: var(--pico-form-element-invalid-active-border-color) !important; +} + +:where(input, select, textarea)[aria-invalid=true]:is(:active, :focus):not([type=checkbox], [type=radio]) { + --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color) !important; +} + +[dir=rtl] :where(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false]) { + background-position: center left 0.75rem; +} + +input::-webkit-input-placeholder, +input::placeholder, +select:invalid, +textarea::-webkit-input-placeholder, +textarea::placeholder { + color: var(--pico-form-element-placeholder-color); + opacity: 1; +} + +input:not([type=checkbox], [type=radio]), +select, +textarea { + margin-bottom: var(--pico-spacing); +} + +select::-ms-expand { + border: 0; + background-color: transparent; +} + +select:not([multiple], [size]) { + padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem); + padding-left: var(--pico-form-element-spacing-horizontal); + padding-inline-start: var(--pico-form-element-spacing-horizontal); + padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem); + background-image: var(--pico-icon-chevron); + background-position: center right 0.75rem; + background-size: 1rem auto; + background-repeat: no-repeat; +} + +select[multiple] option:checked { + background: var(--pico-form-element-selected-background-color); + color: var(--pico-form-element-color); +} + +[dir=rtl] select:not([multiple], [size]) { + background-position: center left 0.75rem; +} + +textarea { + display: block; + resize: vertical; +} + +textarea[aria-invalid] { + --pico-icon-height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2); + background-position: top right 0.75rem !important; + background-size: 1rem var(--pico-icon-height) !important; +} + +:where(input, select, textarea, fieldset, .grid) + small { + display: block; + width: 100%; + margin-top: calc(var(--pico-spacing) * -0.75); + margin-bottom: var(--pico-spacing); + color: var(--pico-muted-color); +} + +:where(input, select, textarea, fieldset, .grid)[aria-invalid=false] + small { + color: var(--pico-ins-color); +} + +:where(input, select, textarea, fieldset, .grid)[aria-invalid=true] + small { + color: var(--pico-del-color); +} + +label > :where(input, select, textarea) { + margin-top: calc(var(--pico-spacing) * 0.25); +} + +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] { + padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem); + background-image: var(--pico-icon-search); + background-position: center left calc(var(--pico-form-element-spacing-horizontal) + 0.125rem); + background-size: 1rem auto; + background-repeat: no-repeat; +} + +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] { + padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem) !important; + background-position: center left 1.125rem, center right 0.75rem; +} + +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=false] { + background-image: var(--pico-icon-search), var(--pico-icon-valid); +} + +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=true] { + background-image: var(--pico-icon-search), var(--pico-icon-invalid); +} + +[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] { + background-position: center right 1.125rem; +} + +[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] { + background-position: center right 1.125rem, center left 0.75rem; +} + +:where(nav li):before { + float: left; + content: "\200B"; +} + +nav, +nav ul { + display: flex; +} + +nav { + justify-content: space-between; + overflow: visible; +} + +nav ol, +nav ul { + align-items: center; + margin-bottom: 0; + padding: 0; + list-style: none; +} + +nav ol:first-of-type, +nav ul:first-of-type { + margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1); +} + +nav ol:last-of-type, +nav ul:last-of-type { + margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1); +} + +nav li { + display: inline-block; + margin: 0; + padding: var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal); +} + +nav li :where(a, [role=link]) { + display: inline-block; + margin: calc(var(--pico-nav-link-spacing-vertical) * -1) calc(var(--pico-nav-link-spacing-horizontal) * -1); + padding: var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal); + border-radius: var(--pico-border-radius); +} + +nav li :where(a, [role=link]):not(:hover) { + text-decoration: none; +} + +nav li [role=button], +nav li [type=button], +nav li button, +nav li input:not([type=checkbox], [type=radio], [type=range], [type=file]), +nav li select { + height: auto; + margin-right: inherit; + margin-bottom: 0; + margin-left: inherit; + padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal); +} + +nav[aria-label=breadcrumb] { + align-items: center; + justify-content: start; +} + +nav[aria-label=breadcrumb] ul li:not(:first-child) { + margin-inline-start: var(--pico-nav-link-spacing-horizontal); +} + +nav[aria-label=breadcrumb] ul li a { + margin: calc(var(--pico-nav-link-spacing-vertical) * -1) 0; + margin-inline-start: calc(var(--pico-nav-link-spacing-horizontal) * -1); +} + +nav[aria-label=breadcrumb] ul li:not(:last-child):after { + display: inline-block; + position: absolute; + width: calc(var(--pico-nav-link-spacing-horizontal) * 4); + margin: 0 calc(var(--pico-nav-link-spacing-horizontal) * -1); + content: var(--pico-nav-breadcrumb-divider); + color: var(--pico-muted-color); + text-align: center; + text-decoration: none; + white-space: nowrap; +} + +nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]) { + background-color: transparent; + color: inherit; + text-decoration: none; + pointer-events: none; +} + +aside li, +aside nav, +aside ol, +aside ul { + display: block; +} + +aside li { + padding: calc(var(--pico-nav-element-spacing-vertical) * 0.5) var(--pico-nav-element-spacing-horizontal); +} + +aside li a { + display: block; +} + +aside li [role=button] { + margin: inherit; +} + +[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) :after { + content: "\\"; +} + +[aria-controls] { + cursor: pointer; +} + +[aria-disabled=true], +[disabled] { + cursor: not-allowed; +} + +[aria-hidden=false][hidden] { + display: initial; +} + +[aria-hidden=false][hidden]:not(:focus) { + clip: rect(0, 0, 0, 0); + position: absolute; +} + +[tabindex], +a, +area, +button, +input, +label, +select, +summary, +textarea { + -ms-touch-action: manipulation; +} + +[dir=rtl] { + direction: rtl; +} + +@media (prefers-reduced-motion: reduce) { + :not([aria-busy=true]), + :not([aria-busy=true]):after, + :not([aria-busy=true]):before { + background-attachment: initial !important; + animation-duration: 1ms !important; + animation-delay: -1ms !important; + animation-iteration-count: 1 !important; + scroll-behavior: auto !important; + transition-delay: 0s !important; + transition-duration: 0s !important; + } +} + +:root { + --pico-border-radius: .5rem; +} + +body { + cursor: auto; + margin: 0; +} + +:not(.fmt a) { + text-decoration: none; +} + +:root:not([data-theme=dark]), +[data-theme=light] { + --pico-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(50, 60, 68)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); +} + +@media only screen and (prefers-color-scheme: dark) { + :root:not([data-theme]) { + --pico-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(194, 199, 208)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); + } +} + +[data-theme=dark] { + --pico-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(194, 199, 208)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); +} + +h1, +h2, +h3, +h4, +h5 { + line-height: 1.2; +} + +.is-sm { + width: 1.25em; + height: 1.25em; +} + +.text-muted, +.text-muted a { + color: var(--pico-secondary); +} + +.text-muted a:hover { + color: var(--pico-secondary-hover); +} + +.text-center { + text-align: center; +} + +.text-end { + text-align: right; +} + +.ms-2 { + margin-left: 0.5rem; +} + +.me-2 { + margin-right: 0.5rem; +} + +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.list-inline { + padding-left: 0; + list-style: none; + margin-bottom: 0; +} + +.list-inline li { + display: inline-block; + margin-bottom: 0; +} + +.list-inline li:not(:last-child) { + margin-right: 1rem; +} + +.list-inline svg { + vertical-align: text-bottom; +} + +.feather-folder{display:none!important;} +.feather-message{display:none!important;} +main.container { + padding-top: 1rem; + padding-bottom: 1rem; +} +.more-link{text-decoration:none!important;padding-top:10px;display:flex;justify-content:center;} +body{background: #1b1f23!important;} +.container-thin { + margin-left: auto; + margin-right: auto; + max-width: 50rem; +} + +.post{ + padding: 30px 40px; + border: 1px solid #3b444c; + border-radius: 10px; + margin-bottom:25px; + background: #16191d; +} + +.post:first-child{margin-top:25px!important;} + +.d-flex { + display: flex; +} + +.align-items-center { + align-items: center; +} + +.justify-content-between { + justify-content: space-between; +} + +.justify-content-end { + justify-content: end; +} + +.align-self-center { + align-self: center; +} + +.site-navbar a { + color: inherit; +} + +.site-navbar a:focus { + background-color: var(--pico-text-selection-color); +} + +.site-navbar .site-name { + flex-grow: 1; +} + +.site-navbar {border-bottom: 1px solid #3b444c; background: #16191d!important;} + +.site-navbar .brand { + font-size: 1.25rem; + font-weight: 700; +} + +.site-navbar .brand img { + max-height: 2rem; +} + +.site-navbar .desc { + color: var(--pico-secondary); + display: none; +} + +@media (min-width: 576px) { + .site-navbar .desc { + display: inline-block; + } +} + +.site-nav { + display: block; +} + +#nav-toggler { + display: none; +} + +#nav-toggler:checked ~ .nav-menu { + display: block; +} + +.nav-toggler-btn { + cursor: pointer; +} + +.nav-menu { + display: none; +} + +.nav-menu li { + display: block; + padding: 0.5rem; +} + +.nav-menu form { + margin-bottom: 0; +} + +.nav-menu form input[type=search] { + height: 50px; + background-size: auto; +} + +.nav-menu form input[type=search]:not(:focus) { + padding: 0; + border: none; + width: 30px; + padding-inline-start: 0; + background-position: center center; + background-color: inherit; + color: transparent; + cursor: pointer; +} + +@media (min-width: 1024px) { + .site-nav, + .site-navbar { + display: flex; + } + + .site-navbar nav:first-child { + flex-grow: 1; + } + + .nav-toggler-btn { + display: none; + } + + .nav-menu { + display: flex !important; + } + + .nav-menu li:not(:last-child) { + margin-right: 0.5rem; + } +} + +.post-separator { + margin: 2.5rem 0; + display: none!important; +} + +.entry-header { + margin-bottom: 1rem; +} + +.entry-title { + margin-bottom: 1rem; +} + +.entry-title a { + color: var(--pico-h2-color); +} + +.entry-meta { + font-size: 0.875rem; +} +/***.feather-calendar:before, +.feather-folder:before, +.feather-message:before { + content: ""; + display: inline-block; + margin-right: 0.25rem; + background: url("../img/calendar.svg") no-repeat center center/contain; + width: 1rem; + height: 1rem; + vertical-align: text-top; + fill: #396; +}***/ + +/**.feather-folder:before { + background-image: url("../img/folder.svg"); +} + +.feather-message:before { + background-image: url("../img/message-circle.svg"); +}**/ + +.entry-content .more { + text-align: center; +} + +.entry-content .more a { + display: inline-block; + font-size: 0.875rem; + padding: 6px 16px; + border: 1px solid var(--pico-muted-border-color); + color: var(--pico-muted-color); + border-radius: 100px; + text-decoration: none; +} + +.entry-content .more a:focus { + background-color: var(--pico-text-selection-color); +} + +.post-nav { + border-top: 1px solid var(--pico-muted-border-color); + margin: 4rem 0; +} + +.post-nav a { + color: inherit; +} + +.fmt { + line-height: 1.6; +} + +.fmt hr, +.fmt pre { + margin-bottom: var(--pico-typography-spacing-vertical); +} + +.site-footer { +border-top: 1px solid #3b444c; + padding-top: 1rem; + padding-bottom:1rem; + background: #16191d!important; +} + +.comment-list { + list-style: none; + padding: 0; +} + +.comment-body { + margin: 1rem 0; + padding: 1rem; + border: 1px solid var(--pico-muted-border-color); + border-radius: var(--pico-border-radius); +} + +.comment-by-author > .comment-author:after { + content: "OP"; + margin-left: 0.25rem; + color: var(--pico-muted-color); + padding: 1px 0.375rem; + border: 1px solid var(--pico-muted-color); + font-size: 0.75rem; + border-radius: 2rem; +} + +.comment-author { + display: inline-block; +} + +.comment-author .avatar { + margin-right: 0.25rem; + width: 2rem; + border-radius: 48px; +} + +.comment-author cite, +.comment-author cite a { + font-style: normal; + font-weight: 700; + color: var(--pico-h2-color); +} + +.comment-meta a, +.comment-reply a { + font-size: 0.875em; + color: var(--pico-secondary); +} + +.comment-meta a:hover, +.comment-reply a:hover { + color: var(--pico-secondary-hover); +} + +.comment-meta { + display: inline-block; + color: var(--pico-muted-color); + margin-left: 0.25rem; +} + +.comment-meta:before { + content: "·"; + margin-right: 0.25rem; +} + +.comment-content { + margin-top: 1rem; +} + +.comment-reply:blank { + margin-top: 0; +} + +.comment-awaiting-moderation { + margin-left: 0.5rem; + font-size: 0.875em; + color: var(--pico-del-color); +} + +.comment-children { + margin-bottom: -1rem; +} + +#response { + margin-bottom: 1rem; +} + +#cancel-comment-reply-link { + font-size: 0.875em; +} + +.respond { + margin-top: 1.5rem; +} + +.comment-body .respond { + margin-top: 1rem; +} + +#comment-form textarea { + resize: vertical; +} +.entry-content a {text-decoration:none!important;} +.page-navigator { + margin: 0; + flex: 1; + border: 1px solid #3b444c; + padding:10px 30px; + border-radius: 10px; + margin-bottom: 30px!important; +} + +.page-navigator .current a { + text-decoration: underline; + color: inherit; + pointer-events: none; +} + +.page-navigator a:focus { + background-color: var(--pico-text-selection-color); +} + +.page-navigator .prev { + margin-right: auto; +} + +.page-navigator .prev a:before { + content: "‹"; + margin-right: 0.25rem; +} + +.page-navigator .next { + margin-left: auto; + text-align: right; +} + +.page-navigator .next a:after { + content: "›"; + margin-left: 0.25rem; +} \ No newline at end of file diff --git a/static/img/calendar.svg b/static/img/calendar.svg new file mode 100644 index 0000000..34583c8 --- /dev/null +++ b/static/img/calendar.svg @@ -0,0 +1,16 @@ + + + + + + diff --git a/static/img/folder.svg b/static/img/folder.svg new file mode 100644 index 0000000..32d498f --- /dev/null +++ b/static/img/folder.svg @@ -0,0 +1,13 @@ + + + diff --git a/static/img/message-circle.svg b/static/img/message-circle.svg new file mode 100644 index 0000000..1e4a596 --- /dev/null +++ b/static/img/message-circle.svg @@ -0,0 +1,13 @@ + + + diff --git a/theme.css b/theme.css new file mode 100644 index 0000000..0c4fedf --- /dev/null +++ b/theme.css @@ -0,0 +1,30 @@ +/*! + * This is an example of a color scheme + * You can define your color scheme below + */ + +[data-theme="customize"] { + --pico-primary: #017FC0 !important; + --pico-primary-hover: #02659A !important; + --pico-background-color: #fffbeb !important; + --pico-muted-border-color: rgba(0, 0, 0, .1) !important; + --pico-form-element-border-color: rgba(0, 0, 0, .2) !important; + --pico-code-background-color: rgba(0, 0, 0, .05) !important; +} + +.site-navbar { + background-color: var(--pico-primary); +} + +.site-navbar a, +.site-navbar .nav-toggler-btn { + color: var(--pico-primary-inverse); +} + +.site-navbar .desc { + color: rgba(255, 255, 255, .5); +} + +.site-navbar input[type="search"]:not(:focus) { + --pico-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); +} \ No newline at end of file