From a287b43a289a9c3d92c3092392a3bc245cf0f069 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Mon, 5 Jan 2026 22:50:08 -0600 Subject: [PATCH 01/11] Update landing page styles to fit ACM branding. --- client/public/ACMDev-logo-white.svg | 8 ++ client/public/fonts/Gilroy-Bold.ttf | Bin 0 -> 137256 bytes client/public/fonts/Gilroy-Light.ttf | Bin 0 -> 147128 bytes client/public/fonts/Gilroy-Regular.ttf | Bin 0 -> 145148 bytes client/src/components/Core.tsx | 55 ++------------ client/src/components/Header.tsx | 11 ++- client/src/components/Search.tsx | 97 ++++++++++++++++++++++++- client/src/pages/index.tsx | 23 ++++-- client/src/pages/styles.css | 28 ++++++- 9 files changed, 157 insertions(+), 65 deletions(-) create mode 100644 client/public/ACMDev-logo-white.svg create mode 100644 client/public/fonts/Gilroy-Bold.ttf create mode 100644 client/public/fonts/Gilroy-Light.ttf create mode 100644 client/public/fonts/Gilroy-Regular.ttf diff --git a/client/public/ACMDev-logo-white.svg b/client/public/ACMDev-logo-white.svg new file mode 100644 index 0000000..8980866 --- /dev/null +++ b/client/public/ACMDev-logo-white.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/client/public/fonts/Gilroy-Bold.ttf b/client/public/fonts/Gilroy-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1aea716b2e58df547dac15e3f9acc3c540ef25ad GIT binary patch literal 137256 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�h>GFO}Hmm88BncF|tlADk_BsVoTJ$HO=PHtZAoZOP!%3NpeqTFS<_vNn6 zU7x!-cU$hx+!u29n`5W@LBKY`A@PiF&u(+mC}vF?3v}X+|x1lu$a3d<~F$A z3p|d)bq^zBun_w-%JX`~(+w^v)6T^Z`{2Ga){gOZ-y3(lKg4jm z`>Wh<(|_W9X*cd}I6RKe&Ar<`rpk)?+djH?i}PcBG9D&umsp>K&g{`A!!TBd@&36t z{@wayj6T{||1d3sMWNgGy%<~y{jDwHeg1Fq-v!pOMnL^wr%r7YgMoYY_j%|xzT*91 z7kW7i@B4|-xnU_{@Cw~h!5o9J-C)rbwf@F() z5thiGqKC`U>{{%LzXBiP56t^N6#Uucf@`t*JvjIzdOgE~4XpCr8Qg0cF%SHIFvAjz U;`naYhF|FUXtJxFI5f3q@*`B1K$^N(HH{ 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 B$#eh! literal 0 HcmV?d00001 diff --git a/client/src/components/Core.tsx b/client/src/components/Core.tsx index ab0b788..5b721b2 100644 --- a/client/src/components/Core.tsx +++ b/client/src/components/Core.tsx @@ -37,31 +37,6 @@ const Footer = styled.div` } `; -const SageLink = styled.a` - background: linear-gradient(90deg, rgba(7,67,37,1) 0%, rgba(22,50,36,1) 100%); - display: inline-flex; - align-items: center; - gap: 0.25rem; - padding: 0.6rem 1.2rem; - margin-bottom: 0.3rem; - border-radius: 100rem; - color: #5AED86; - text-shadow: 0 0 4px rgb(0 0 0 / 0.6); - box-shadow: 0 2px 6px rgb(0 0 0 / 0.2); - transition: transform cubic-bezier(0.4, 0, 0.2, 1) 150ms, box-shadow cubic-bezier(0.4, 0, 0.2, 1) 150ms; - &:hover { - color: #5AED86; - box-shadow: 0 2px 8px rgb(0 0 0 / 0.2); - transform: scale(1.01); - } -`; - -const SageText = styled.p` - line-height: 1.2rem; - margin-bottom: 0; - font-size: 0.9rem; -`; - const BuiltWithLove = styled.p` display: flex; align-items: center; @@ -72,18 +47,9 @@ const BuiltWithLove = styled.p` font-weight: 550; `; -const SageLogo = styled.img` - height: 1.2rem; - margin-right: 0.4rem; - filter: drop-shadow(0 0 4px rgb(0 0 0 / 0.6)); -`; - -const SageTextMark = styled.img` - height: 1.2rem; -` - const CreditsText = styled.p` - font-size: 0.9rem; + font-family: 'Gilroy-Bold', sans-serif; + color: white; margin: 0.2rem 0; @media (max-width: 768px) { @@ -111,25 +77,20 @@ function Core({ children }: CoreProps) { {children} diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx index 4f0f07b..4b8946a 100644 --- a/client/src/components/Header.tsx +++ b/client/src/components/Header.tsx @@ -28,9 +28,7 @@ const HeaderText = styled.a` display: block; & h2 { - font-family: var(--font-family); - text-transform: uppercase; - color: rgb(78, 78, 78); + color: #E5E5E5; font-weight: 300; letter-spacing: 2px; font-size: 24px; @@ -42,9 +40,14 @@ const HeaderText = styled.a` `; const HeaderBold = styled.span` + font-family: 'Gilroy-Bold', sans-serif; font-weight: 700; `; +const HeaderLight = styled.span` + font-family: 'Gilroy-Light', sans-serif; +`; + const Logo = { height: "36px", width: "36px", @@ -62,7 +65,7 @@ export default function Header() { } shape="circle" size="large" />

- ACM Dev Logo UTD Grades + ACM Dev Logo UTD GRADES

void; initialSearchValue?: string; @@ -78,7 +160,7 @@ export default function Search({ onSubmit, initialSearchValue: initialSearch = " onChange={(value: unknown) => onChange(value as string)} value={searchValue} > - onSubmit({ search })} name="search" size="large" @@ -91,6 +173,15 @@ export default function Search({ onSubmit, initialSearchValue: initialSearch = " Pretty much anything. + +
+ + + Get AI-powered UTD advising with + + +
+ ); } diff --git a/client/src/pages/index.tsx b/client/src/pages/index.tsx index 4769134..3b106db 100644 --- a/client/src/pages/index.tsx +++ b/client/src/pages/index.tsx @@ -22,10 +22,10 @@ const Main = styled.div` `; const Header = styled.h1` - font-family: var(--font-family); + font-family: Gilroy, sans-serif; text-transform: uppercase; text-align: center; - color: rgb(78, 78, 78); + color: rgb(229, 229, 229); font-weight: 300; letter-spacing: 3px; font-size: 48px; @@ -49,23 +49,32 @@ const Header = styled.h1` `; const Description = styled.p` - font-family: var(--font-family); + font-family: 'Gilroy-Regular', sans-serif; text-align: center; color: #95989a; font-weight: 400; font-size: 18px; margin-bottom: 30px; + + strong { + font-family: 'Gilroy-Bold', sans-serif; + } `; const HeaderBold = styled.span` + font-family: 'Gilroy-Bold', sans-serif; font-weight: 700; `; +const HeaderLight = styled.span` + font-family: 'Gilroy-Light', sans-serif; + font-weight: 300; +`; const ByACM = styled.span` font-size: 16px; font-weight: 400; letter-spacing: 1px; - color: #95989a; + color: #CFD3D5; margin-left: 12px; @media (max-width: 768px) { @@ -104,16 +113,16 @@ export default function Home() {
- ACM Dev Logo + ACM Dev Logo
- UTD GRADES + UTD GRADES by ACM
- See how students did in any given class. And it's free, forever. + See how students did in any given class. And it's free, forever. diff --git a/client/src/pages/styles.css b/client/src/pages/styles.css index 516a57b..9599561 100644 --- a/client/src/pages/styles.css +++ b/client/src/pages/styles.css @@ -1,8 +1,25 @@ -@import url("https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap"); +@font-face { + font-family: 'Gilroy-Light'; + src: url('/fonts/Gilroy-Light.ttf') format('truetype'); + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy-Regular'; + src: url('/fonts/Gilroy-Regular.ttf') format('truetype'); + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy-Bold'; + src: url('/fonts/Gilroy-Bold.ttf') format('truetype'); + font-style: normal; + font-display: swap; +} +:root {--font-family: 'Gilroy', sans-serif; -:root { - --font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, - Cantarell, "Helvetica Neue", sans-serif; --box-shadow-base: 0 1px 2px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.07), 0 4px 8px rgba(0, 0, 0, 0.07), 0 8px 16px rgba(0, 0, 0, 0.07), 0 16px 32px rgba(0, 0, 0, 0.07), 0 32px 64px rgba(0, 0, 0, 0.07); @@ -17,6 +34,7 @@ html, body { height: 100%; + background-color: #1B1B1B; /* dark mode */ } body { @@ -32,6 +50,7 @@ body { .ant-input { border-radius: 20px 0 0 20px !important; + border: none !important; } .ant-input:focus { @@ -41,4 +60,5 @@ body { .ant-input-search-button { border-radius: 0 20px 20px 0 !important; + border: none !important; } \ No newline at end of file From 445e9e18fc1bf4c928039085d22909cbaac99b97 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Wed, 7 Jan 2026 14:01:55 -0600 Subject: [PATCH 02/11] Removed unused imports Also commented out code related to donors section in Core component --- client/src/components/Core.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/client/src/components/Core.tsx b/client/src/components/Core.tsx index 5b721b2..35ca678 100644 --- a/client/src/components/Core.tsx +++ b/client/src/components/Core.tsx @@ -1,5 +1,3 @@ -import { HeartTwoTone } from "@ant-design/icons"; -import { Popover } from "antd"; import type { ReactNode } from "react"; import styled from "styled-components"; @@ -37,7 +35,7 @@ const Footer = styled.div` } `; -const BuiltWithLove = styled.p` +/*const BuiltWithLove = styled.p` display: flex; align-items: center; justify-content: center; @@ -45,7 +43,7 @@ const BuiltWithLove = styled.p` font-size: 1rem; margin: 0.3rem 0; font-weight: 550; -`; +`;*/ const CreditsText = styled.p` font-family: 'Gilroy-Bold', sans-serif; @@ -62,7 +60,7 @@ interface CoreProps { } function Core({ children }: CoreProps) { - const donors = ( + /*const donors = (

Thank you to the following people for donating and making this possible (in order of most @@ -71,7 +69,7 @@ function Core({ children }: CoreProps) { donors.

- ); + );*/ return ( From d5c049550e77ae08494be78cc97b652083ef7d66 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Wed, 7 Jan 2026 19:38:34 -0600 Subject: [PATCH 03/11] Implemented style changes site wide. Primary changes: Gilroy as the primary font, color adjustments, created styled components for visual consistency. --- client/public/fonts/Gilroy-SemiBold.ttf | Bin 0 -> 139820 bytes client/src/components/Core.tsx | 12 ++- client/src/components/Header.tsx | 6 +- client/src/components/SearchResults.tsx | 3 +- .../src/components/SearchResultsContent.tsx | 2 +- client/src/components/SectionContent.tsx | 87 +++++++++++++----- client/src/components/SectionList.tsx | 19 ++-- client/src/pages/styles.css | 53 ++++++++++- 8 files changed, 142 insertions(+), 40 deletions(-) create mode 100644 client/public/fonts/Gilroy-SemiBold.ttf diff --git a/client/public/fonts/Gilroy-SemiBold.ttf b/client/public/fonts/Gilroy-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cb3cbb610ef10c9070224a511674fe9d65c68974 GIT binary patch literal 139820 zcmd44349aRxi@^yjCRS|WyzZ?S>Es_ki1}m!5A?6681f80RzSmwrnJ!2_%FPmXv0p zX_}R+O=n~$O(;#=v`J|jwP`|WE={v^P180_o3uCFg8coTGmY43gS`~AMpAkAoI zG;_{#o_!PJj4?OfbS%`~K4;pdNqwuCRN}x`>!F}AsJ!tA+iL+(56VEhSOZ#p?+b~LvBgIi8Bd;!-lU$t??=Gm*R-^`fhc|2hH zsvX-xhV6Qsb3K6bL)UCxyV21TeT*@Oi81NQwJWx6?(1VRzWzO&H?8fwcFn#Ym>yv) zw}$Z>9`Cqv#cK1!t4HGgH8|hcfdhsk`aFDIjnAbW8@F9^^v0H6+za{Et*DWb zH{yA(usB73HX3-Adv&3@gt9+$6B1@O?Lrl+f(mrVc zj!eM-gXfUI=jNYVyU3{85W&U&)VxfOZ+8E>?vwwydyPK}$pGqgN2{D;}%9e^F z)A0UZc=fRczKYdKD_NdY#)8rxSxmZ*#n^XQEiYqDczOAL)+Ci<-;8Thtew6i<*DHAIJPs821RXJpLhbNW*Xq_Qf-7;yW?Pjr-@|Rl+J|C(a*adOW*b zdK>#c!q$zKfwjwSe7;{it6i$c{$ke7e~aT)IR7xVg*Y}H+c36Q;@Ef=#uyy9-)QMN zrk8)uynvqr=k&N|IbhdBW5(8t>nedc5zOCtOF^-XNbR_0Jmx{iFJq(GAJ|ZK zzVEM+EcQpsvvDnsOY_p-!*zTf8_km}$ZuqBoFmxiWeNKxX2DC({{yhR5-|M?bGQ=E zoQr*eAw6>fUL|;4jy1=5$paWKV_rEQ#~f@7#u}r2-YV81LhB&LeI>?l6ARLP@bc2N z@-RHN2Cv&O?-I4yvtRsg7*{E) z7VsvRXI=zvtPActIt^Qb@1U3b5kAx00qg7+`$OM(z#A~{dmpb4q*k2Iz?$Hl{Tcxr zqR#~H>=)oI)|0k0cY5}PTf#MZ{)Jn@zf(9)^S%LFf(?!FbG8CUasLaqz~i9QhV|_0 z`xNsr0;VBZN2IrTL?eW!7i~c|0(WV&G^UZ3kX=VxRTpYp)b!M@q#D{F}CY%dve9uYcloGhR5~ zcYXTh!?sP@13GYHu1Bzzw0G;k; zYzc2BVGI5wzIy`aaW8oXwsBS{)`!-HzVj6BLA(h(ORNWdpXh*a4D+RX%5}Ie@uUQf z?_f=`ifd0{|C^8-wdw26u%Ip<```u#OfcwP6YYy<}>#RYy2%i_TG4x_5`?g6-fvfYFLubT2evWkvv7lUzb-$50 zNY~Ur%y$-%ivWV7$a0lxy)|-wG2b_|uT&ywHQ_vaF8m%Sd2R>`E zW(8}2%xRFX1x!A``BA_XtPj5zGL~a)7BfFz1bkS{a`<#;c(d`U#PNkJm-eO6kk6wb z8%N_=qcL9Xb0M~LE{InEuR?J@J-&AZ?zc33zss?`;C}zNufwzBc+og$YljK>EJ)OIatIWSi`kE9E2d6LPQ4rkkN#qPs$OIJhVHNyr<@4+TRd zq4Lns(1_5u(9@xBhjYUv;kxj$@VzBciN3^9;x5TA36@lsOe|Sma%I^M|0zMMB`xbg z_7r=D^{{Vo3(w_2Ue2p{9dG2#d<>t=XYyryJ@3Le0@AC}TQYP;*@AJDr^mr{cHQN= zWx7MbUBSPFJfT3SFccEwXdX0<#o49rTX#HmB@K$DHIn2%+%*kBL%{-7=K9&of5P;sB&kBI0MZn@>7J|%y zp2tdA87pTMtdb33RjeACK`ktfD7fk{XoYcB4}Go?I^J;B3~k{uHj=flQP7E6!SmYK zST>H0hvb^TCc=i8%%-rZY#N)+X0Vy;ayE<2W^>qFHjm9`3)n)oh%IJIpzkkZSFq)5 z1*UToXysRZsoUtnM2ud&Vib^cSfhHc@m@*nV% zd?dIW{`h5}if(otTgf{4k3bVY#=#A22Y&|J>p{DR*nhIm_{01W{y2YvKgy4>1b>4a z=YF2x-CW@+f0Li$PqS_OG5#cMyBpXZwiC2}3){;OB6d)>jl%k{Drp#I}KC&=etH?F$0wJY!=7O-&y0BK!)zDYNk??g3ep!%QSb*ymoGdeHYpNPbmfy3HgmzgEBCDk(a!LKaCl+CKJjUm_K6;7(MIPi zaE9>^Yfb14F&$e?D5@B%mn;Z{CPdm-tPd>+tzN0!g09P$hXc~kN^#jUDcN0A&!j_TBYP&Stv$|JNjxA90gqPRtq$Ip7-rh_#JGD zVw$-?<@~@xwViN9aRSl2v#_&kVG$N~$%2K7w;Es2Z1nkTJ-EPHP}xRM?J9OP+Xm{o z5?o<1XnQr02A^#5=+}%lnA;Gv9FEKHnR; zf!tlWFXx`~kMlp^KOQIyEDJmk_($HuL<8%5-Pc`{$7z@;_BPSvjim zfg#e6jv@c3x~AGty{-CpHB~j8H9fV#+Htk(YwxQ4P2H%v=b}<{YV_#P+@ZG)D;)Mt zEEroBdpz!p?}(qMud6>$|8c{jhTk==Z%j4aIb1h<(Qu{N(tK;P(tKuwZN#F>MqKvv zW&ar2I`Y02Z_DnM7f0o|q4PWEzqg=#!5a%VFKSzqTC6OYvt<90GfM+YmoI&M znY3)&vU{#@Ua|j*kC)F|{=*f+S0q-(R^Go#w`$+2AFs|`y=HaK>i@cO;+4;@S-s}7 zwL{n5xb~s7ude;9qp)Lj$3q?OtaGocTsLan@^weo^{o5Ndc*q0^*h%;v;Ot*d(^KAaq~~>*Eu9zis&Tj&HyHV&jX?zX%H(dd(kx`{3sWe5E`lK=}s?;Qvx}*}1Dphf%GO1KVl~7VCjw*#or6i^lI+e0yPav&>o$;);0F=u&@78S7Ms@oF_NG8V%_ z62{!380|ULT3(&VafazrG^v)2psiCK$E&}ovwHGNs~Shq*LhN%jIY-WbGeoFW~J7p zjA>TKMe%7uGgHTp#ZFuE&|%yacKIW|xDT&}NJHExwiUieL;q1am$?G_4e9;NHAebk zQ=A`7efQ%>$Fv=5YinD5tgR%x2YajAuvuLaUL8Jm>{xj9o@4Fp$JVrmvWFz)4)K zSd$3}YsM8vR571c>`DCZ*4fRbYRp{WQAL+jotVFlyW9zb(c0XMSxZ*Tnqk&WazorF z8%oOS8{@HD@7&y*{nk-6)uG~=w|U^?$;h~lbMne?be&jwo-qb<|H`^i?N=G9J{5uyEVsZuEumMwD_)QH+L2V z={k3^+mq|hr|aA2W8uH#B5s)jMB#{A=>!+*by`Km37wNCNXDORUykg={z zy|~OF-ksvzL+^A=uDAx@@{4cbp81*k6w;CIqRicbbY*ujz00iuF6j+Mli6amIh-D^ zFV`Q)%P%Yn7T0~wpVFESi1UaM=xmHMiC0s+30T^MMWB}v2c^q4J2&TCRk*NlGhSQl zTbx_$TMHHzY{qNT@12{S{Lt#TkK%8xws~PS1#5r_!M^(>BX|kC#jtVi0QVq_v?Z0A zSi)c<@Ei01Kg|5}4EULIqgF7f?PE`+*w)rY)RdvaP zzo#wOKXRZF5WzQ%&qk+ z@<)flO~J4|^<-IfS@q${s>-U~xf`qt7wBh>Z(d+|-BmDjeBGQ5(}IQWtA~%VziP7= z7FIU!(&9?*GlrVf7}L#+n@;cF~`pjWjLNhb6J7)MeK zBv&DGN>u0*4X57ZSp?E<2!HbGzAg+?1_9o!dq>c^ol zoi0x*!*ExZru++4H5^QaMcFDb~Bxx1Ac0G z4WOGBB|3>8;aPU6YNRGe>ZU$(4$JYMO;{Pv}{E?qKitiCE(Tvb&Z ztV-P~@#6ET**J{<3o?g^Z^ZikEbRe&Bfvw*Fdad*G?{P^WOIoLc6)RV04Xodl^U2x zrvct>+Yloi0y;WX2E2ka0W1WhI3wsVE}(P#_1~X*l6Zw(;ZCKZS7A=2pjWAIc1sl; zFhokq3DxNh9NllM<6=F6yqGsO z`3**Wtf_+5N7}P=?Ci}O_KY4`dHte^+X`3OM-8cJcKdu!=2=&|D^sbl!=9czF48!$ zt?P=>>qAXr7j#W+A6_+dSf#J3AouzBgyC~qE6ZLen?7s=aGaBTV0Q`mke`+gBoB0H zc|e4n=KaL?iRa@xO?~%q7x;$}G$CXM#J?d47OOIAwIatLJ|JC4g5bOUa%WTA;PgM* z)z#V6wfb%T+S_lZ>LEBd^Y-1xKFYoiKaKB^Y|`W1smi#UCW+`ikw#}lJlDAkcj@fE zkC;Ofd=YbjM=tnp5;=k{<1`>0WQSXbS11!6j7H5dfIRee0y_6q_>C3DiY8-&zoNA(Rau%JCXYEzm^=U}qH z1B}|4RGd!LiYEiFfDx+I3BJg6dIr7-^f2L*Y%ogrG<29QRPJmH%9WURk~Mjza0g`Ek;i%9R3kMYzwOFee{8gb5s}Ry;`!zm3Um zGs`jIp1A_IoXLb!V3m{fCY@7Y6*EJZj0xca0M|bEWjPjINRJ6P$OLAs}!FF5(} z*t!3hDRewc1S+Vq15l);^Fo(M$Yu)|D`-2&eO_Xz zP$J^Adeu-T!oYGqed-kl*3P`CaAooOk?rjx^Xu+T{enNk?{}}8vF@756Pg#bbc`JT z{Z0-3ejrvH<-DWp@vOoKMXdkhwx8Pc8!Hp62Hi=cLkji?<8J*eF(s68i}+PlrN z4x)=F2TUoMfIg7 z!VR9dOpHQ`&)k-J{I56s^%vXzu;IoVH}E%8wa+0KORx`uE;#0p3-543PdEh2!%frh zC3}F|ZcM`!hq&d6KdRWpLIkv-j6VI(4Pqf&LfLjX)m)=cw%x|Fa<|Lv%S|tXDnmZ1 z9xrJfPM9d&l58>y65=pU2CsuB>tSa1e*@X5HuNClHQ@^qCo~z%u zX4<6YE3gRsn$G)#ZGrKdF#a5P@b{!=U{5A&Gy`kAC�=VFpCufv93SO?pGFQ*~hm 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

SY4%v;eI{Sup-vP0_=dqxTfRE zN5ALO=MR48S-8%6_buabC6-i;Xn5c1j@zWdkJFvD`X-#>Zz5Sq`Tm~l$lBZ|(`83? z?v@|^(CoXh~t;0uOe;%KY?`@M{mNAv+w5SR)r zuPCTaJ}X5=VdchCA=PbJOQO_qiLsd)3W1!*~1qNsTAnb{iLWX2%~~mByFhi6h-q zlhYp>c-t1nf=(TQ0IRLsBGyeBGDR}n4NM$)!37$Z0%)a5zV^TA?7-^X(8j@cLwACg zKM&o>;5fH7bf=h){2+9vgLfx>9lA3?zvTNvcP^+*V%OTD&*R=5y32xosjARjj(axT z1eeMaZX>663l_f^x)b!WpN8%v>(|eO?o?3kz8bpIF5!L=x--G>!y32#%sgc24bPYFR8MvMO%P$I6V-vcbz0&Hj*)S=XjQz}d?D}uzx)3{2 zD+#-vaP2%V=Ds0VhtC%5Y}N;}gI13ESUj8TsRj9g7JRpGT}jAbZrjGK?Q1Sty}ADL z^^KDzPpx0RwSM8Um2KbB8%chq0EiEhg@&uA>C8{n{%3vJbItW%+o*M|d70Ux{n>b{d<5lp5lq zE85mKtlzq-ZNuhG4K2$yZEa}xg`T+C7y2U0e#0iRKXEzvZ@6^Tx;2{{8@9BxZ(7r~ zp`m%slKCprLDmAMY~mTJr%@YdS{+BRe6xr~k~{9ZnyhcOirYYOqAwbP=^RH$2R{JW|8Gkg`+Pi~krY0^;(7S&IhK?(RmtNWsLgbnatK@Nz;Tg5;*ZDPoqK{v~+rCUN3Z;+&$iQhsei(Y93>|<9 z_$&R`VWSEelNxkd`@^Rgz}^;vz|BLD#Tdr;I0BFy8H|DoAA=O;IIJ~|hr&E8I6Rm@ zzihygv%tBLSyMA$I2B-=jwt1k0OZlEs~?M;*eph?IgEVA1;-=zcLLhFCj}=5r_f7J zWmomn=@xIJP8Tu8Eus6I8JrcIjUL#!SW-GaxFEO?ZJ1@jKL_t+=j4A2ZVG+_U;TPC zus$Dr208F2gZCh{{6VPA({}FtJ&a#3vjg{b<7Hknc z68tCf=ig(eso&B7j|blmeh_?>k@$t+!)OKmh&^yt2fqt`AN)hGmX5ZL?$=6F-AYqk z%($(Q<`SB63yt*O>?U&=BicKHcVhSS-r%<2UC5|jiHzT#;Q8P_mvkwY#-38v<&f#@ zz=UEU=yZWAbLFnWIjk`Cb46F>s$Gq%b^U`^gV$K)9pDDKLF`a5#0_=B(1slmydM0- z)w_{y6kXS(Vc{y`%~O}cWUr;cbYrhEpTsR zceCe$JKREK6BfHA!LHyJ;K!$epMe?wEBLuP!=35Qa%a19+_~;NcRuEFE_6%XGPm5V za4TJlTNQlLUF24~HEyk2=UOpnw!yWzjqYOC?l!s2?h?1fUFzQMwz|vQJKW{&o$dyN9vX`fc|e_lRQ(!m8zt;2t!E zcLsN}kH)_TR|O9-&-!BUaPW=bf#7}?;~#VX8C>VSkDTHU-Q(^@?#J#4_Y=3v{g->v z{nS0>e&(JIKJI>wMV3zle+WJs+!)*vd=8n9kHX{p*Wkh6o9-F+3%A?-(*4S@w}gAn z{l@*){kQv_+v9%kp2z;%3+_etl6#pw2L9;wy8m&ny4T$6?hQ0J-*g?W6B5QH5{YCY zl}MwJm&K}GK2b=NCCb@Xwh|j)#Y9!28XJqX=z`ZFlR7XlC^0xO1nIV6iQ&i})+a_L zMkPig#W$AO#vzIE$jBa+I6N^SF%hY(BNCGmlM{`|@HRugPt9JkVa=pTbEafxuV1#J zy=_BwnZIXdFK=(z(vn$bx9se;i`q7{tjjL*_rlzjZJU>^Skba!b74i7GjrUEWkiu# z>2Jpo-?Giw`7tjYr^|UVLEI4z5JBeXXWc+51IMPR$Q{VCDUrR^7*k><*l)Y z%zU5IR)0Iqf3?AXby_T7`G(j-<}@FCgWZzHZ@4Jgvf-la>0vJ0{JrAz)t79zXj%Iu z>syyyvbmxy{*+nhQ)>4qEsRB8-X43%Ec7Y0``aS_)h4@H<4>O27~Y#Qi+!NYc1tZ* zEpApVE(!B>iNB|pw6EE4QTh^HE0)A_RdGrDDZ3=B?MwWYuuBI?VfsyB`b}Z_O=0>?VfsyB`pseb&0+e@ zVfxKs`pseb&0+e@VfxKs`pseb&0+e@VfxKs`pseb&0+e@VfxKs`cuMmr-bQF3Dcbt zraL7}cS@MlPA!@r zuP)!by1gZIZz@~0W=rHQ-vm0_-~(;SFKcgayR@}s)#j|ZF4*Do?-RVIC+NE4|l5{?lW>N>o;!Rx~XMzeoaGb+lto33r|U|x^PvR z^TIWDU2E4?eAo69_HCZrY$4~IurPd{)BU-z>wS3?e$%E&ll?>E)P~r@411`Jf++(; zYo0#trpE4ZH#PNm?n)~RKefmE={=rj^mv}#`g$KK9M4vKF`QikbI{m-jwa96nA0Sd5!j`8==O(6-+4 zY!1aKN0?_heV)BbFo2-A?$r{P^n!@?;I z3+K}?r%%HIS{ml^b$`jmO}_5su)4<))jiIz?#*R&uW(lP3K!PBoMGK7ps#yeSy7|Z zW`1Q`YwNOhTv-ho@>$i|2C0Ip5RM=?%QkIpX>Wyq!JXOKqPJP2bysY)3ApR*WLEBQ z%P`l`=9ggJ?c8CUhr1a;l3CdgaWhMRWdE`IG43balemAHIGiuxHru>jaTMI6iKl|( zar5Rc4r*6yZEp>xw=Ubff%&jP1*C=k6QTY5zUO?NZ4l_i^~~4z7gFz)-zcWuyn%)w zJNumD>w^Vz7cPeLc*^W^>VuD-diwnO;GTu2pIRU6T09&7*BQ3z9eNyLe6B0To_UKx zL@8!_aU*($$m};n`F=ydBksZT=$Q&CdHV?g&v`!~%6f&UTehrqb8z*F73((!*RO0{ zb5Zb7^`YSARnXzVt#~X8zMxSz*k;#z?0UalAF}JW?fRHqe`MDu)kA`3+S*rc2%g=@ zL$GI)Qh7;ZRq(1t_n>1F5bjc&c?$=k1XpSoarL!$=*X>j;+_|zXSU(yiV+g7;+eCL zn_UHSj*z;_)Tl|Pb5+cy$-oukAY5zg%HkF7GP@46Yq?!(;V?~wJ2VgO&slJIR>NI+ zdvGOOoEuo_y*0QKKE}Pwi604m2#;qs+?JPu*WvQ0M>zO2mIL=`%T*$ALqhf!c$4^1 zcz-s$YmW-~|HCFD@V-2}`;`cn^s5#wd0FUxg-_F17Pcu)!BPz{Hdb0M6Yl_8Jj;x7Ko zWpHKQ9dcvd4<|-^lb`m`BHR6$mhSf6z1-vZR=(EA zq7uc!vW`bfL}QNXn|OeuLF)C?`CZiazC$Q%2Fv>9I9DkaAz+n}zVimEvUL8;`p$ z?s)gUCFYx8AfOi?#&~Go(X0F7%~?N(zec|$jVk(N-|?%L4p*-uluDT+R&b!(MGj92 zP8G!f4_)~@iF2xj5ERxDdQ>pp{g;J1-TlPw^W77KKS?x4aJqY(s~|+*dT4suX{`AL zJ}FvO|7QdfsV%)W6_7e_ytXcnYk)U_}7eoqyI^$~#zRcqg^^F7V{L;Xl8} z)#UtT5PXw0l7DAaPTF>W}0r?&IOpnvBZ*cI8!$X-Cd`VI8%Uj!Ex-0;pl_|$a1 z8isn&LJcJ3V9uePyMtBSH+Al{kY$A0MO+H?Mi`eu?zWJ`*DZ8KkmcJNQmCc<`{N$a zxs%j)Bek?E7=r&?zF5KY%FaE+f1lfdU!FAfSm-*^iSj#$kjfFcv7F??6743=J;b?( zIQLkHm0h8B193N#l5m(txpE-9w8nQdYZ7Y1;qJB|QPZJXthll`oRDYGiyrIT)47*p zXXmq>&)d_k&Rv~%;ClzYySeY;y0`NMyS_{+wYcu<+{W=bZ+COuWp{=0$DYn>@bfX- zJL?zV=-5H$I@n+5bL4j~>HW;^dvHBQzJ9^eZXXvl6Lh|TKl#8C)o%Iw+;M-MmMoCd zy|`b9(&l*^U-*#E@!cD|-QD>j{yJVXm&)Kv_FU*MpFP-jdQRc{{?VpNQ{TN|r{egX zp7FP@h{NAs=zLwNa_*(|b+unSZtoX;K^S6JNJ_WYa;d9I{}_4lX(&F`nA%WjDjys^ z?!K?e$Nqj%?)nPX>z%aHqn~CFJ$`SU8}j_txee<{k*e%nKWsObew~l0?5fv&{d(nE zb+)r-=+65hAD@=5<;c&{C_VJy3csQsy>(b?#dyiA?fQtYdzrfe_|o()Q&)g}I-=U% z-?#gFzt04C5v5TI<9&MjmqPS(0rNWYvm;l^%lh5 zKF<65%(c_TSGEt*j})WtHOlT`mv-g;mM-70PvUEkLoSupcL;MIJ^OLWD7@1Pz7?wX zFREu7lX`@(cx}WW{%1*#k(Sg{hgRG1*etBCLybUS0edSR0>4t)G}a3L?D6f{6-FhjCGMZ` z<`zyL({959`e*y0Mp?IE{nHRW*|zN!II590`9 zF4aQlA>5=krmhrP@pQcjM+N+!{s{%XTroi`d) zmR4?*Hhzz(FA`Q%$1Q}vkC<*$VwP*-z_k-!V&W@3?ZpMG*!K@u-|5O5j)MA@eee5E zZ%m`Qgoffu-nfP%fZV-*$`@fQ7IJ%EJcPB1@)fJ?2(yKGh}B#C%iiv&1-rkYtb*pQ z`1h69uzg}9quM4Om*v&qsN_p|)Pwi?vzCbUCSP;bLj?oYSMXyj;uKt1eyxox@Akdm zPknB0=N*LAT|HVbApBr09%aPBTPXSHiR(@)L02w(T=vFOi-M(HqRt4*xXLvw8~ISm z!dm1Em%{Dse9A%^9j!DtG~#$Hpiq8vke}k>y`^O(GgqwUgs~K+bd6j-4@y@)J%5%W z`Qlq2TiW*wrir6~OlC9gDI8_+ho&<3leln&2^aS>In5%Hnn%HdI+~*z ziOpl+MZKFN35Ve-^6(xww@G*m*AnvwIP!2AuEYI7cno>C3?Je8QMe5K;4^%j7(T&K z38&$keEThq1RRHd=lUNUc{mT>;rd;UBpitEas5w@B%FvJaDAL34M*a~Tz|rmhA;6` z()t-k2L8m)x&DG93!mbbl=s&hIrtUNas4ev4!*_j2=jZ63^I0q;QAs*20q5ir29vX zJp7FRA+6Uq%HV6f!Szj!vY?Zr93BTVWcVCOu4$J>6FJL{8x?Ro&?tcGQNfjiYn7|w zTH|VhA~Wdz=tT~21Go-!1L2Jhc7wSNWhJZz&d3O28|g+8&r!%@=HZbX!z$n`Hw&)e zY&V;?$Ya9WJkA|QoF}>y;WwS^PR8d{WHKG{mN?b`^4&8A)Xlel2$hn_DvDK z%0F?v4NgEcvX8VE@{ivp%+K7A>S4U`PW0$J5qB;49Q{20&Z`d^1V) zE`X~z8Hk+-Z(}YYbPNSXn&Ap&j5iqFj}4#vv)*|Lv4~?}cuHb<6dblOK=e4|jrDsQ=?C5mlmOxH04S3W$-c@yQ-=Qn;;j&=APM{kDkJSsfK@pc@k4(vKJ zxTAAE?i8o)@iTg_yMD^UzE1ys5${W9{QJ0n7Af%P%u%~K1I|3Tjh|)Ic{%x3tDVqw z9&X?IZ7$SFAAY;6s1~1{d}1G9=weI-;OVRa9rtq@ubC(p4BDs zexgabpDGD=FWKIU`@Ga-*jI(J>k+?Mvf#*Yv(?E};*qku*&bSo^=+eFM8jz=5zfg( zQ|!9|jbhQ9!BZTbmeiM`D0}^kPBEIV^op>etdwStFFc)Mbd*s+`bIhQ-|jnwQrwC+ z{#0^%|0u37#x9Ds6fS%t%E_qf(i=}X^_7C^g12ElqZs;3QMD%AV>7-|JxAZFcKMCx znGn97;&GS0uyB1|s4*W)pKs%yQGG{#VL8Hz6o=abA)Ft2f8YzXe zXRY65IW*cyyJs|qW0ijequol5a@PJ=fw5O}lp$@fmJxA1M?&i(K~DM+P#0fC&#}O2 z;|}PGudxa$8Hq9Af5{iQFhzft%!vQ#S!X1}lO`t_8`Z)9+$2S!eC5FZat8{k%zT}@ERCFe(U7f0B#;$IsRwOgzTdh{! zb^34pH+*mqKMx_%TCP6y&?28YPC?VYe*Rm@7b#>355_t6s(C?9RP%ECQhP|!RlgjN z6#1*ZLWT;FMq9{FI(@}m`UKNt3Omj-NX9w_%BrsN69>mJenRZ zxt`VZ==Jnv={bFs9{jZc0SmQq;^yQ9#D_ElbLq{-snYyf7-y$&MDOf$_aWSV!<4=t zM&qONmAIl2&gn4=FNG&pyERMKXooArWro$nFSWUMJakXDpXbY$Z@XcRc*s%-;@C*F z5D(SMT_8?E7@y5BsknPQi5D?dN{U=BV+s$QV8+xzEUEj#RYFfd?$_W+l&jM z+7rJ=oPKeCJTGNi*n-w>)DGOqUb*h&L8z{pA)b&XAV+=hOZ~^B2Omr&)oCRYkA>A} z@mBCte)iWkF-~5OEG2^aaJ==>5Sl-!zv-wnJf?n-0mh4r163TdSv?YnKbFHm=g*;6 zUcga~Ug$FXmvf}h)ojJRkt2(S=4QseEgV@S&n~0S-^h_ghmTEWr5y;iLqCxD?dRO* znBSr$i2Dof3%I}Rz6@Uciu(#~v;_(Oh+m^_{Dop>9mGX- zT0?58UC^XMZv9G65tOC)TE9#f%7=}fQ#-i)wSMX)ef>0lt+QFIpUZkm&DV><7py#jF`q~2 zt@}f{c5t4&JXe8SN7C9}m;G2qkP8?&mfM&idmPf}zKjv#u3nnMUuGnb&hR~q0*^|= zSNgp{qH-It2f19~`_u#y{*04;g-9!S{`jLGw}k^(D|?kEk9YlbZ|9qxZ}wH}zs!%c z;i*Tz66TA1{#tjiimhdBme#1Ee*q`%BA2e`o>E-bv>yRF*-#43e7e%uw`3XzQTERXd#(KWe?0nv*9D^6%5BkiI^&{2DaQcIN8Lwmegqd46zZeBc>Q-YO0{cwB zJpJh4--mgBnOMWwh(T`*9xYDfH^T7NNBQbmJx9KAchtvxc*Wc0>H*KZvo%lNLwCmd zN9l_8)@PEyKtl@w9k=B9lA4RPuM4fFM-deL5xDizl*!OztPv--*!(e zOmnZzF^*#$Aj3M?@z5hDaAe@HpU9h&IFhV}v4+RW!YN=M*}KWGHg+2H-{~CM&*N?Q z%l1v4l_^&B;KDBfBG2F`!xGM!P<&@`WXvK?B{p%+g;G6_qY~RV=R=X*%#p%M_^pJw zjU$1joIALF4q5vQ)=9od%wOWjVGn0J?j0O?ESUTYZ|~)(#PZ0$;&UHIWpF=72Hl)* zaD9*?gTZiiNMJGN`&@s>kw6dYM}&ETBZGaIU0k2!$YCYsDcnzUWP)cn zGH7rK=6=PI!LH1+Tz|un#a7N9!avWE!v@a_TwmhIVZ-MYaZz`25hPRG_xIrF$m2UiknJ4LS5u9|DDt3{8Z z&N1i0-p(LaJ%_joxdX;x1u5bc=gC z?yYVsZ!dF~;eLmE2ktA}6~z25_b%L5x+_`J#i|W&uXa~+#i|Yd*Sc$Qf53f!IInZp z!H4~j`w;2g;BLhKAKgFVbCbJ?R6gcDMrjFHepN%5wfh;p*WLdHbKBRc5YxJy-M=rr8_pOKo$(b#zd}BVIHGeDEv8ik z&(Bre_h-Fd-^N$Wc{re71SzU}4;3Y7Q3Qgfef|8mr5O4Or zFEdEQX}?6|*yr7sN-*nB-@gL-#0XN?)gP*%QVmQdpDL$dY%rs$N)y3bJw6W1@aI@x zyBW-KOYkZ5Hvb6>a~oFG{u!%lp9RBw4jrb?gJZr3Zuv4+*1jscW8fCq#*&q+d%-IA zfla;v7I_GpSr3Cp9tD4VAH4A+@Wn3h#8cphXTS@;0w4SaJn%f@|4WSfdl~OvXPoa~ zgikQCXBg27jO3M!;MI)Wb&S|U7^&+Sp=DWYW0$^a+@6@XCMH{ASI4Y~m28Mb_QP&r zEWMR6w5P=`S>f_FxMYFr_l%Q?^aW~FbYP#Sw&?*-PrGe~8_vu6mal@ zo4kwEeW)m&@SdRWij#((6i1FeQb+#~Pb^{FBI))HqIav8r|DBe84KRdk>dT0j2mO< zJCemKg5eJ1Dw(?^*rpM;q=JfI#;L@v9+xtCx-=N_C}Na6T^6Z}V;BQOBUTuVSc4SP ziMT}_RvC3z0c|*+9G=QiZT1jrpa>TdMigO%(Snsm3)aTyznsy31uPP_^X)r=E6L}( zIT9wdS2Rhza+A?3nv7o2r1P>yFV@hj?;vK;h&4tdRv2|yVbo!T(SbIwSb-klzu^{*Sb;|21GpdLs4$7YB7OZK+>-k%((8BPmh@kd{{Jv;QIi!W16Ypk z_anGPSymWjSz(lAg;ACjCJ9(H`m)000gFauR+v;^(P+&IqcUrZ%B(Rev&N{*8ly66 zjLNJrDznC<|B6OaR+tQ6(J0FblLRapeOY1Be|e)RD@_J4Zx zawFYHG;l?I)|#|n5u1(2;xh|r!JN zG(tiRi*l_nI<*2@it3$jv-O4kblcG^(`HsL~3fM{A4*tpRfV z>WSzI={lP5_zL&IK=VxQm z?OsS)>RrjO=Xgn1Nwg-cwjO#a14-)xN$Ue%8rILTlGXT$W9szB@B8JF<422GNOWyq`^nh;3H}9ku>;78cZY&CX&{=iC9}EtQC{AgG0tM zk$X(-le!}HJnc4<(TIv9Q*POD-u z<*HJVBko9|;THFgUzm!dr_ghW`+4{NuC_|PiyVH3G+#9RDz7bPACmTF4wYap>)u)~ zkk*V!M~a-a_}@XzOZP@x>RT+2x4<_mbbhg0t*SJ)=)IMf8c_m#O{&Br9Ua9&i}Rf{ zc#O8ePf({ai_-WRcR}4XxE{y#0O76FC3=PwLcQ4Tw2OZVuU&LaRAZKxkcQb;J6VPN z6)#p(suM|7sN9c7DN|nQf{9*~=C(AjwK8)fepcgz6+~#||8Y*=6TikgX%aq0%_FH$ z$|z4>%ArL4S^pu8H!L3A={tNajcE0GL0z~uX6YzD9_m5}^RY)7Vx_bW(4}38ge5ar zH=YSj#I7-%4&lcPwvA6><^D8>O$M{o;;=ig5NvgUy8! zmHqAMJo{68ktT~kyaNB5Nc!>LF+3D4SDMSK42oxj1u2EpC?6fY^J{_0b#xrsqeM|o zBaTYxt{m&|Igb1fUjtpG`XiUBZ;6%@T4{N@ywK_!>^Nnja`qRX8pRX!ZccI z2KJ@ud>~P9E1s2NmxdgRrG~s0Z^jfdJ6b^KJ0)FLoC*`)GIVV2Ukn3v--zx_2_Ri&LM5JAV~eKpgpgSeO3@Z^d&@ z+sL1zm7fMvXyngfnf=$q^IP{@dYR;zyu7uSz?A$YvX{wO1`AImt^wi(P!Ey_+$o84 z+IXAc*RZa->SaHUcujW?YB<`{&9q$fi(~7^Pj?Fq-Gs|Dwjk-RKvFuC@9Q1sdhe>uDSH?Nbc%wUcpksLcR!K&>qN3E#;Yq@>;@x0nW#Mska3 zaOg<746*Dne#f(WQvg05}CMKnrH7UikNhxMcN--UiQcRnaV#cHt zGbW{&F)76ic^z)OCuzMW6Vg7?AuKlvsM7jS()v)w`cT69P>uDWl=Yzs>qBYlLs{!X z)z*g!)`xP|hlq%ACllogv@-$R`tQtalT7Rmx{?w2C z4PF4BIYx5rRMNNPmbSxbMNigCZ5@QnR`yEu%H##fd+4=C(Aw&aX1xMf)7&VUn=(uE z@J9#_i3+FwV)Ih+cF;fIp8lmYIW@ZjiVfbCvfQ4FX(Kfw#2rSX$NKXDBq&G}4_I=# z>Pe>kf;A}h7h7TR>6Bt3O=hGD9q(zS_mL}{oB8~Ho3CWiX}5UOsy(jT%q42ROHzS2 zh0nqgSQ=eeDT+6`69;q%F)HsKpY1U`9kZ>Xu&TT0M>ubjp$qFpZ@S-=1FwZ`GZNK{ zPVvljw>hKIB(JZRzKrKxA@#oWw!15;JB894pUWt(mWq8#O@}fWQ5XwtSRbE0;xB!x z_fZJl?Tw(wpp$#Vdlv+}O4zWbtQ>vB>`P$f68s4!MS1vmyX7bj&Kj3BxWfxNmkhVc6Qw5g!H9tu`kHX3!SZPXoOqi#9xtC&}b-#-)@tQO9`xc(END(j4T z9RQ6f8PNvg`X6Fkf9WL;#ZO~(wXH1=H`*j`e8mYymwLVX6f|QaV~F_vDWh`J#_^AM z{gO-{Yx>RujO$o5u4B=-{6*tB7LDszG@kxQlkD(3{lg3|R2v;sX5(A6>1UNO&b3ie zNwrtA_s}MCEUETt<6BNJUVqBC{3*j7)yBO{g}i=o`HRNGEE*59XqctiIGIJ00jV{9 z<^<#H7mc4e!8rRx<7Z9?9^@z*KQje4^C8^g?5B*MSu}oT$~gN)<7XC)pIJ11X3_YW zMdN1{jh|UGo_@-B`bFbsri`CiG=65v_?boHXQqswSu}oT%J`W@<7cLfpIOu-G#F{z z`H{w#A8CAf*(J;Zf0Fp9HHnW}llZ7Li4V`6&xG9h0d4^FT)nF&9uB^eR({Gj2x;S# zri^!xHh$>@w7ZTI<7yvTxBJXbWL=(aLo}dzY=)cFO;5+vVx~j0W1z z>1Ja5HQ(*=I~@gy#B||nc8IzWe61OkjZERF1&1jbeR|(*d=D`R;q{$Smpwuv8(_HD zMm|4!TZq#9+8!C}cEJ-g>@N>Sa>E$r3Nc*h{~d+1j}%U!>v3Q8llL@0I(=mE7WAtQ&(US?ICw&ho8amlXV zHwxAts;xg{4f?AL?#m3y3kKy`qaiC}G-Rd0TzQOotRlw=!vN7bl2(9}e{XGBwA*+} zS%9Kv7_l=!|JVG|Q^Lt`2C2DY!tx-_fmS$N@-B<1AGoA}Rov6C$NDrYfLF24)*Z>( z}iEk}DW6AX>hC$#} z%LlDLl>EeOnnF#=PHJ>UdGgj(WntBy@qDRd(W$zLPT5tBPL(n`v9l^$tC79ct~`z; zkFqf8&nTtH4r?7H)*01+?oq0`4<@zfj8fG-RwG?GP)_!hi$lzwYnBi?W!E)2W#2VA zW#=_IW$!gQ2a;lR%KmF~$_{LF${uWV$}Vhlu2f6-lRCMt>%?BHY{r`1*df#p7XQLC z%7N~(BO9IF>!<`NvM(E*Q7h>lwG8*DHFSrA7Qvynth<{O{3(01(K!%zbjm($bjDLy zNh;CVJ+2;>Q}UOK){u=g-xl3pbv+p!v{|%BmzPlzaT=ra#=GcWvb(mkb1kup ziV5?EkGBA={Dko-tbP_oVPo(78{R?B#J-5-gm=;_5XA!Y5PO`)@ogeq(i|-!dPVxg zo?aP+pIS(|k;sH|Xs44(?&8&D4YK^KG0W=QaK6+mu)=16$#51ZSW6qMRoMKjU@cl< z^Rt4@&zwPDg~45g&BH1T;wlW{JoTM2>N{%?mon-*YgRYP4C1mzgC`8`DvSnq27MI< zeH8|M6;?LC?}SV2PFxR#yoZ&a@knLfi3H}|$Z9>vZ0u2HTf2~o`W1Voyuj?~Pt25Z z%!g``J*s!(+yvLiE)&NhL3A=UaL!;>vmDB713R)_#th_YB++j~()`oxp!x;!a}PVC zK7{3)$Jo#GNp=T#7W(`p_8sj=q}Y3-$W9wW*;ivcyMs0-j!eu-%uCEqEKHo0xFE4I zu{Ns_9WnoQbC0sC5C1j6K+QOhKUns3kSKqIKKO5my@@|16Ukh%l6k=3WPNg6aze5(IX!u7^0?&5$py(X zlIJCtCs!voBsV87OJ2#oLDwa3OnyB1>EvgUUr26C-jlpP`B3uP$;XmENd4fr)V$RE)WXzRsS8poQ)^QjQ(ID(r>;s} zle#|j(bUbUTT^$WzLdHvb#Lk$shz1uQr}NKk$Nh%JN28?^Ql)-uftHwq|4LQ>4E9t z=`rcU(v#9t(?_T0q)$wrmR_7bC%rViD&3lHPrp5VMf$zzYtuKRZ%W^izCC?s`YY+X z)AywxOh24{H2uT$uJqICU#0&${X%+g`cIieCYPzq)Mf@}>NDdq6EcmN>6v3Q$7N2= zEXbUZIWMz3vpTaOvpI8F=E}^~nd>q)W;>7C*|ph?*)7@2 zvsY!W$zGrRX!hppt=T)WU&`KreSTbiLcTFSJ%4Qe zxctfa1^F}b=jE5@SLZk6H|H(E9>>S^aE!EkDmsS@ zwyy87{KUsad&@YcF>;fI`G&?7_?rsv$Lwd#?L)@KT6s{1@3!#X9UH%c7v&$vfq#iR z-ga?ZeIRb1&)#_Zt^HlQ)zv~PW3Tr0-#TmSgK*zef~#(HK@0}==^uxO7;cZ_`2%$E-{#d7vBRW!!TB#aritC|86iD zqmK^OKTONUqR{POFE%cP{?-<8nE#9XdyRF@j~fT+@AJ^Df5qs#ZvJuF*}`-iS8IqV z8vSBpY`3xNVEqrXIB&PH^quDJHEzdY6{$&nN!uRI^Dzl)b8Rz@3d6RhM)`zv7mS8}J4QB0YZXByuB5pW77vlg5~@^?Di znIkzW(f2xr*@|?%s#y7*$11HX0o2&~Z>?!|^+(@-A^hnjto;rO&fyrwJm!2j57OYO zXFd1Br1uflZ>O40|Iy6t?|}bsCz@I(plP|CxON2hG6%X3YwBm1Ce=!8sqYF}YzMbZ zSV(^nKE%t+`~M+$&EYj+cb0T|NmfyrRKH~>pwcS{ag=^ LfA({8qWk{?^3XId literal 0 HcmV?d00001 diff --git a/client/src/components/Core.tsx b/client/src/components/Core.tsx index 35ca678..dc6dec4 100644 --- a/client/src/components/Core.tsx +++ b/client/src/components/Core.tsx @@ -55,6 +55,15 @@ const CreditsText = styled.p` } `; +const GitHubLink = styled.a` + color: #1e90ff !important; + text-decoration: none; + + &:hover { + text-decoration: underline; + } +`; + interface CoreProps { children: ReactNode; } @@ -87,8 +96,7 @@ function Core({ children }: CoreProps) { donors. */} - See the full source code on our - GitHub + See the full source code on our GitHub diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx index 4b8946a..32afeed 100644 --- a/client/src/components/Header.tsx +++ b/client/src/components/Header.tsx @@ -16,9 +16,11 @@ const Back = styled(Button) <{ $dummy?: boolean }>` outline: none; border: none; cursor: pointer; - outline: none; - border: none; box-shadow: none; + color: #ffffff; + svg { + color: inherit; + } visibility: ${(props) => (props.$dummy ? "hidden" : "visible")}; `; diff --git a/client/src/components/SearchResults.tsx b/client/src/components/SearchResults.tsx index 7da1f74..4296130 100644 --- a/client/src/components/SearchResults.tsx +++ b/client/src/components/SearchResults.tsx @@ -22,6 +22,7 @@ const ResultsContainer = styled(Col)` padding-bottom: 20px; margin-top: 35px; border-radius: 5px; + background-color: #4f4f4f20; & .ant-list-pagination { padding-left: 10px; @@ -40,7 +41,7 @@ const ResultsContainer = styled(Col)` @media (min-width: 992px) { & { - box-shadow: 0 15px 50px rgba(233, 233, 233, 0.7); + box-shadow: none; } } `; diff --git a/client/src/components/SearchResultsContent.tsx b/client/src/components/SearchResultsContent.tsx index 7939218..69ae990 100644 --- a/client/src/components/SearchResultsContent.tsx +++ b/client/src/components/SearchResultsContent.tsx @@ -13,7 +13,7 @@ const EmptyContainer = styled.div` `; const Empty = styled.h2` - font-family: var(--font-family); + font-family: 'Gilroy-Regular'; color: #a4a4a4; font-weight: 300; font-size: 26px; diff --git a/client/src/components/SectionContent.tsx b/client/src/components/SectionContent.tsx index 3906478..d7044a0 100644 --- a/client/src/components/SectionContent.tsx +++ b/client/src/components/SectionContent.tsx @@ -24,6 +24,7 @@ const Container = styled.div` display: flex; flex-direction: column; height: 100vh; + background-color: #4f4f4f20; @media (max-width: 992px) { & { @@ -46,6 +47,7 @@ const GraphContainer = styled.div` flex: 1; min-height: 250px; max-height: 400px; + background-color: #4f4f4f20; @media (max-width: 992px) { & { @@ -59,7 +61,7 @@ const GraphContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 15px 15px rgba(233, 233, 233, 0.7); + box-shadow: 0 10px 10px rgba(70, 70, 70, 0.7); border-radius: 5px; padding: 20px; } @@ -70,6 +72,7 @@ const ProfessorDetailsContainer = styled.div` width: 100%; margin-top: 1rem; flex-shrink: 0; + background-color: #4f4f4f20; @media (max-width: 992px) { & { @@ -79,7 +82,7 @@ const ProfessorDetailsContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 15px 15px rgba(233, 233, 233, 0.7); + box-shadow: 0 10px 10px rgba(70, 70, 70, 0.7); border-radius: 5px; padding: 20px; } @@ -87,18 +90,18 @@ const ProfessorDetailsContainer = styled.div` `; const Header = styled.h3` - font-family: var(--font-family); - font-weight: 700; + font-family: 'Gilroy-Bold', sans-serif; font-size: 48px; margin-bottom: 0px !important; margin-top: 0px !important; + color: #DFDFDFff; `; const SubHeader = styled.h5` - font-family: var(--font-family); + font-family: 'Gilroy-SemiBold', sans-serif; font-weight: 600; font-size: 22px; - color: rgb(117, 117, 117); + color: #C8C8C8ff; margin-top: 0.25rem !important; margin-bottom: 0rem !important; word-wrap: break-word; @@ -112,16 +115,16 @@ const SubHeader = styled.h5` `; const Stat = styled.h5` - font-family: var(--font-family); + font-family: 'Gilroy-SemiBold', sans-serif; font-weight: 600; font-size: 18px; - color: rgb(117, 117, 117); + color: #C8C8C8ff; margin-top: 0px !important; margin-bottom: 0px !important; `; const RMPScore = styled.span` - color: #333333; + color: #DFDFDFff; line-height: 1; @media (max-width: 992px) { @@ -159,7 +162,7 @@ const RMPSubHeader = styled(SubHeader)` const RMPStat = styled.h5` font-family: var(--font-family); font-weight: 800; - color: #333333; + color: #DFDFDF; margin-top: 0px !important; margin-bottom: 0px !important; @media (max-width: 1200px) { @@ -177,9 +180,9 @@ const RMPStat = styled.h5` `; const RMPDescpription = styled.p` - font-family: var(--font-family); + font-family: 'Gilroy-Regular', sans-serif; font-weight: 500; - color: rgb(117, 117, 117); + color: #C8C8C8; margin-top: 0px !important; margin-bottom: 0px !important; @media (max-width: 768px) { @@ -202,27 +205,40 @@ const RMPDescpription = styled.p` `; const RMPTag = styled.p` - font-family: var(--font-family); + font-family: 'Gilroy-Regular', sans-serif; font-weight: 500; - color: rgb(84, 84, 84); - border-radius: 1px; - background-color: #f5f5f5; + color: #ffffff; + border-radius: 4px; + background-color: #2E2E2E; padding: 0.4rem 0.4rem; transition: all 0.2s ease-in-out; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); &:hover { - background-color: #e8e8e8; + background-color: #1c1c1c; transform: translateY(-1px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); } `; +const TagsHeader = styled.h4` + font-family: 'Gilroy-Bold', sans-serif; + font-weight: 700; + font-size: 1.15rem; + color: #DFDFDFff; + text-decoration: none; + margin-top: 1.5rem; + margin-bottom: 0.5rem; + display: inline-flex; + align-items: center; + gap: 0.5rem; +`; + const RMPHeader = styled.a` - font-family: var(--font-family); + font-family: 'Gilroy-Bold', sans-serif; font-weight: 700; font-size: 1.15rem; - color: #333333 !important; + color: #DFDFDFff !important; text-decoration: none !important; border-bottom: ${(props) => (props.href && props.href !== "#" ? "1px solid #333333" : "none")}; margin-bottom: 0.5rem; @@ -232,7 +248,7 @@ const RMPHeader = styled.a` gap: 0.5rem; &:hover { - color: #666666 !important; + color: #afafafff !important; } @media (max-width: 768px) { @@ -243,8 +259,9 @@ const RMPHeader = styled.a` `; const Section = styled.span` - color: rgb(198, 198, 198); + font-family: 'Gilroy-Regular', sans-serif; font-weight: 400; + color: #c7c7c7ff; `; // const OtherSectionsHeader = styled.p` @@ -361,6 +378,26 @@ const SectionContent = React.memo(function SectionContent({ }, }, }, + scales: { + x: { + grid: { + color: "rgba(255,255,255,0.08)", + borderColor: "rgba(255,255,255,0.12)", + }, + ticks: { + color: "#DFDFDF", + }, + }, + y: { + grid: { + color: "rgba(255,255,255,0.08)", + borderColor: "rgba(255,255,255,0.12)", + }, + ticks: { + color: "#DFDFDF", + }, + }, + }, }; // FIXME (median) @@ -389,7 +426,7 @@ const SectionContent = React.memo(function SectionContent({ fontFamily: "var(--font-family)", fontWeight: "550", fontSize: "20px", - color: "gray", + color: "#D0D0D0", }} > {courseRating ? "/5" : ""} @@ -407,7 +444,7 @@ const SectionContent = React.memo(function SectionContent({ - Total Students {section.totalStudents} + Total Students {section.totalStudents} @@ -448,7 +485,7 @@ const SectionContent = React.memo(function SectionContent({ lineHeight: "1rem", color: "#000000", whiteSpace: "nowrap", - backgroundColor: "#ffffff", + backgroundColor: "#ffffffff", boxShadow: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", }} @@ -514,7 +551,7 @@ const SectionContent = React.memo(function SectionContent({ {instructor?.tags && ( <> -

Tags

+ Tags {instructor.tags.split(",").map((tag) => ( {tag} diff --git a/client/src/components/SectionList.tsx b/client/src/components/SectionList.tsx index 6080926..3924717 100644 --- a/client/src/components/SectionList.tsx +++ b/client/src/components/SectionList.tsx @@ -8,14 +8,15 @@ import styled, { css } from "styled-components"; const Item = styled(List.Item)<{ selected: boolean }>` padding: 25px; - border-right: 1px solid #e8e8e8; - border-bottom: 1px solid #e8e8e8; + border-right: 1px solid #ffffff45; + border-bottom: 1px solid #ffffff45; cursor: pointer; transition: all 300ms ease-out; font-family: var(--font-family); &:hover { - background-color: #fcfcfc; + background-color: #494949; + color: #333333; } &:first-child { @@ -37,7 +38,7 @@ const Item = styled(List.Item)<{ selected: boolean }>` const selectedStyles = css` border-right: 6px solid rgb(0, 116, 224) !important; box-shadow: inset -5px 0px 10px rgba(0, 0, 0, 0.05); - background-color: #fcfcfc; + background-color: #333333; `; const Hint = styled(AntPopover)` @@ -62,7 +63,7 @@ const Error = styled.p` font-family: var(--font-family); font-size: 22px; text-align: center; - color: #a4a4a4; + color: #FFFFFF45; font-weight: 300; `; @@ -72,7 +73,6 @@ const StyledIcon = styled(FrownTwoTone)` margin-bottom: 15px; margin-left: auto; margin-right: auto; - display: block !important; `; const LoadingItem = styled(List.Item)` @@ -87,8 +87,12 @@ const LoadingItem = styled(List.Item)` const IconWrapper = styled.div` margin-right: 8; + color: #FFFFFF45; `; +const EnrollmentText = styled.span<{ $color?: string }>` + color: ${(p) => p.$color || "#DFDFDF"}; +`; // FIXME (median) // const AverageWrapper = styled.div<{ average: number }>` // color: ${(p) => getLetterGradeColor(getLetterGrade(p.average))}; @@ -167,6 +171,7 @@ export default function SectionList({ loading, id, data, onClick, error }: Secti showSizeChanger: false, current: page, onChange: (page) => setPage(page), + className: "section-list-pagination", }} dataSource={data} renderItem={(item) => ( @@ -176,7 +181,7 @@ export default function SectionList({ loading, id, data, onClick, error }: Secti actions={[ } - child={item.totalStudents.toString()} + child={{item.totalStudents.toString()}} key="students-total" />, // FIXME (median) diff --git a/client/src/pages/styles.css b/client/src/pages/styles.css index 9599561..6ed34bd 100644 --- a/client/src/pages/styles.css +++ b/client/src/pages/styles.css @@ -12,14 +12,21 @@ font-display: swap; } +@font-face { + font-family: 'Gilroy-SemiBold'; + src: url('/fonts/Gilroy-SemiBold.ttf') format('truetype'); + font-style: normal; + font-display: swap; +} + @font-face { font-family: 'Gilroy-Bold'; src: url('/fonts/Gilroy-Bold.ttf') format('truetype'); font-style: normal; font-display: swap; } -:root {--font-family: 'Gilroy', sans-serif; +:root {--font-family: var(--font-family); --box-shadow-base: 0 1px 2px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.07), 0 4px 8px rgba(0, 0, 0, 0.07), 0 8px 16px rgba(0, 0, 0, 0.07), 0 16px 32px rgba(0, 0, 0, 0.07), 0 32px 64px rgba(0, 0, 0, 0.07); @@ -35,10 +42,11 @@ html, body { height: 100%; background-color: #1B1B1B; /* dark mode */ + color: #DFDFDF; /* readable default text color on dark background */ } body { - font-family: sans-serif; + font-family: var(--font-family); margin: 0; padding: 0; } @@ -61,4 +69,45 @@ body { .ant-input-search-button { border-radius: 0 20px 20px 0 !important; border: none !important; +} + +/* Ensure links and Ant Design text are readable on dark background */ +a, a:link, a:visited { + color: #e6f0ff; +} + +.ant-list-item, .ant-list-item-meta, .ant-list-item-meta-title, .ant-list-item-meta-description { + color: #ffffff86; +} + +/* Ant Design default text color overrides for dark mode */ +.ant-typography, .ant-typography a, .ant-typography p { + color: #DFDFDF; +} + +/* Section list pagination overrides (1- 5 ... 40) */ + +.section-list-pagination .ant-pagination-item { + color: #DFDFDF; + border-color: rgba(255,255,255,0.08); + background: transparent; +} + +.section-list-pagination .ant-pagination-item-active { + background: #333333; + color: #ffffff; + border-color: #0074e0; +} + +.section-list-pagination .ant-pagination-prev, .section-list-pagination .ant-pagination-next { + color: #DFDFDF; +} + +.section-list-pagination .ant-pagination-disabled { + color: rgba(255, 255, 255, 0.25); +} + +/* Ensure pagination links/numbers inherit the light color (anchors inside Ant components) */ +.section-list-pagination .ant-pagination-item a { + color: #DFDFDF !important; } \ No newline at end of file From 7280c9975fdfcb0470f3f7bfd71e197dc39e00d6 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Sun, 11 Jan 2026 17:31:42 -0600 Subject: [PATCH 04/11] Light / Dark Mode Toggle Implemented Key changes: Created variable style properties for light and dark mode (updated styles.css), updated all component files to use these variables for consistent theming. NOTE: These changes were made before Vivi's commit so some of her changes may not be reflected in this commit. If there's a merge conflict, I'll handle it. --- client/src/components/Core.tsx | 4 +- client/src/components/Header.tsx | 67 +++++++++++-- client/src/components/Search.tsx | 20 ++-- client/src/components/SearchResults.tsx | 25 ++++- .../src/components/SearchResultsContent.tsx | 2 +- client/src/components/SectionContent.tsx | 97 ++++++++----------- client/src/components/SectionList.tsx | 30 +++--- client/src/pages/_app.tsx | 12 +++ client/src/pages/index.tsx | 71 +++++++++++++- client/src/pages/styles.css | 68 +++++++++---- 10 files changed, 278 insertions(+), 118 deletions(-) diff --git a/client/src/components/Core.tsx b/client/src/components/Core.tsx index dc6dec4..eb8c0f9 100644 --- a/client/src/components/Core.tsx +++ b/client/src/components/Core.tsx @@ -47,7 +47,7 @@ const Footer = styled.div` const CreditsText = styled.p` font-family: 'Gilroy-Bold', sans-serif; - color: white; + color: var(--muted-text); margin: 0.2rem 0; @media (max-width: 768px) { @@ -56,7 +56,7 @@ const CreditsText = styled.p` `; const GitHubLink = styled.a` - color: #1e90ff !important; + color: var(--link-color) !important; text-decoration: none; &:hover { diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx index 32afeed..d1749ba 100644 --- a/client/src/components/Header.tsx +++ b/client/src/components/Header.tsx @@ -2,7 +2,7 @@ import { HomeOutlined } from "@ant-design/icons"; import { Button, Row } from "antd"; import Image from "next/image"; import Router from "next/router"; -import React from "react"; +import React, { useEffect, useState } from "react"; import styled from "styled-components"; const Menu = styled(Row)` @@ -17,20 +17,37 @@ const Back = styled(Button) <{ $dummy?: boolean }>` border: none; cursor: pointer; box-shadow: none; - color: #ffffff; + color: var(--text-color); svg { color: inherit; } visibility: ${(props) => (props.$dummy ? "hidden" : "visible")}; `; +const Toggle = styled(Button)` + background: none; + outline: none; + border: none; + cursor: pointer; + box-shadow: none; + color: var(--muted-text); + display: inline-flex; + align-items: center; + justify-content: center; + padding: 6px; + svg { + width: 18px; + height: 18px; + } +`; + const HeaderText = styled.a` margin-right: auto; margin-left: auto; display: block; & h2 { - color: #E5E5E5; + color: var(--text-color); font-weight: 300; letter-spacing: 2px; font-size: 24px; @@ -56,6 +73,22 @@ const Logo = { }; export default function Header() { + const [theme, setTheme] = useState<"light" | "dark">(() => { + if (typeof window === "undefined") return "dark"; + const saved = localStorage.getItem("theme"); + if (saved === "light" || saved === "dark") return saved; + return "dark"; + }); + + useEffect(() => { + try { + document.documentElement.setAttribute("data-theme", theme); + localStorage.setItem("theme", theme); + } catch (e) { + // ignore during SSR + } + }, [theme]); + function goHome() { (async function () { await Router.push("/"); @@ -67,17 +100,33 @@ export default function Header() { } shape="circle" size="large" />

- ACM Dev Logo UTD GRADES + ACM Dev Logo + UTD GRADES

- setTheme((t) => (t === "light" ? "dark" : "light"))} type="ghost" - icon={} shape="circle" size="large" - /> + aria-label={`Switch to ${theme === "light" ? "dark" : "light"} mode`} + > + {theme === "light" ? ( + + + + ) : ( + + + + )} + ); } diff --git a/client/src/components/Search.tsx b/client/src/components/Search.tsx index 522fef9..b3900e4 100644 --- a/client/src/components/Search.tsx +++ b/client/src/components/Search.tsx @@ -15,7 +15,7 @@ const Hint = styled(AntPopover)` margin-right: auto; display: block; font-family: 'Gilroy-Regular', sans-serif; - color: #95989a; + color: var(--muted-text); `; const SageLogo = styled.img` @@ -65,11 +65,11 @@ const DarkModeSearch = styled(Input.Search)` .ant-input-group-addon { padding: 0; - background: #333333; + background: var(--card-bg); } .ant-input { - background-color: #333333; - color: #ffffff; + background-color: var(--card-hover-bg); + color: var(--text-color); font-family: 'Gilroy', sans-serif; height: 44px; line-height: 44px; @@ -78,12 +78,11 @@ const DarkModeSearch = styled(Input.Search)` } .ant-input::placeholder { - color: #bfbfbf; + color: var(--muted-text); } .ant-input-search-button { - background-color: #333333; - color: #ffffff; /* ← THIS */ + background-color: var(--card-hover-bg); height: 44px; line-height: 44px; padding-top: 0; @@ -91,16 +90,15 @@ const DarkModeSearch = styled(Input.Search)` } .ant-input-search-button .anticon { - color: #ffffff; /* ← THIS */ + color: var(--muted-text); } .ant-input-search-button .anticon svg { - fill: #ffffff; /* ← THIS (important) */ + fill: currentColor; } .ant-input-search-button:hover { - background-color: #1a1a1a; - border-color: #3a3a3a; + opacity: 0.95; } `; diff --git a/client/src/components/SearchResults.tsx b/client/src/components/SearchResults.tsx index 4296130..11b78b7 100644 --- a/client/src/components/SearchResults.tsx +++ b/client/src/components/SearchResults.tsx @@ -22,7 +22,11 @@ const ResultsContainer = styled(Col)` padding-bottom: 20px; margin-top: 35px; border-radius: 5px; - background-color: #4f4f4f20; + + background-color: var(--card-bg); + /* make the results area stand out in light mode */ + border: 1px solid var(--border-color); + color: var(--text-color); & .ant-list-pagination { padding-left: 10px; @@ -33,15 +37,30 @@ const ResultsContainer = styled(Col)` font-family: var(--font-family); } + /* Ensure Ant list/card text inside results uses theme-aware colors + (overrides global dark-mode-only rules that leaked into light mode) */ + & .ant-list-item, + & .ant-list-item-meta, + & .ant-list-item-meta-title, + & .ant-list-item-meta-description, + & .ant-typography, + & .ant-card { + color: var(--text-color) !important; + background: transparent !important; + } + + & .ant-list-item-meta-description { + color: var(--muted-text) !important; + } + @media (max-width: 992px) { & { box-shadow: none; } } - @media (min-width: 992px) { & { - box-shadow: none; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } } `; diff --git a/client/src/components/SearchResultsContent.tsx b/client/src/components/SearchResultsContent.tsx index 69ae990..510ebd5 100644 --- a/client/src/components/SearchResultsContent.tsx +++ b/client/src/components/SearchResultsContent.tsx @@ -14,7 +14,7 @@ const EmptyContainer = styled.div` const Empty = styled.h2` font-family: 'Gilroy-Regular'; - color: #a4a4a4; + color: var(--muted-text); font-weight: 300; font-size: 26px; `; diff --git a/client/src/components/SectionContent.tsx b/client/src/components/SectionContent.tsx index d7044a0..751ec44 100644 --- a/client/src/components/SectionContent.tsx +++ b/client/src/components/SectionContent.tsx @@ -24,7 +24,7 @@ const Container = styled.div` display: flex; flex-direction: column; height: 100vh; - background-color: #4f4f4f20; + background-color: var(--card-bg); @media (max-width: 992px) { & { @@ -47,7 +47,7 @@ const GraphContainer = styled.div` flex: 1; min-height: 250px; max-height: 400px; - background-color: #4f4f4f20; + background-color: var(--card-bg); @media (max-width: 992px) { & { @@ -61,7 +61,7 @@ const GraphContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 10px 10px rgba(70, 70, 70, 0.7); + box-shadow: 0 5px 10px rgba(70, 70, 70, 0.7); border-radius: 5px; padding: 20px; } @@ -72,7 +72,7 @@ const ProfessorDetailsContainer = styled.div` width: 100%; margin-top: 1rem; flex-shrink: 0; - background-color: #4f4f4f20; + background-color: var(--card-bg); @media (max-width: 992px) { & { @@ -82,7 +82,7 @@ const ProfessorDetailsContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 10px 10px rgba(70, 70, 70, 0.7); + box-shadow: 0 5px 10px rgba(70, 70, 70, 0.7); border-radius: 5px; padding: 20px; } @@ -94,14 +94,14 @@ const Header = styled.h3` font-size: 48px; margin-bottom: 0px !important; margin-top: 0px !important; - color: #DFDFDFff; + color: var(--text-color); `; const SubHeader = styled.h5` font-family: 'Gilroy-SemiBold', sans-serif; font-weight: 600; font-size: 22px; - color: #C8C8C8ff; + color: var(--muted-text); margin-top: 0.25rem !important; margin-bottom: 0rem !important; word-wrap: break-word; @@ -118,13 +118,13 @@ const Stat = styled.h5` font-family: 'Gilroy-SemiBold', sans-serif; font-weight: 600; font-size: 18px; - color: #C8C8C8ff; + color: var(--muted-text); margin-top: 0px !important; margin-bottom: 0px !important; `; const RMPScore = styled.span` - color: #DFDFDFff; + color: var(--text-color); line-height: 1; @media (max-width: 992px) { @@ -162,7 +162,7 @@ const RMPSubHeader = styled(SubHeader)` const RMPStat = styled.h5` font-family: var(--font-family); font-weight: 800; - color: #DFDFDF; + color: var(--text-color); margin-top: 0px !important; margin-bottom: 0px !important; @media (max-width: 1200px) { @@ -182,7 +182,7 @@ const RMPStat = styled.h5` const RMPDescpription = styled.p` font-family: 'Gilroy-Regular', sans-serif; font-weight: 500; - color: #C8C8C8; + color: var(--muted-text); margin-top: 0px !important; margin-bottom: 0px !important; @media (max-width: 768px) { @@ -207,15 +207,15 @@ const RMPDescpription = styled.p` const RMPTag = styled.p` font-family: 'Gilroy-Regular', sans-serif; font-weight: 500; - color: #ffffff; + color: var(--text-color); border-radius: 4px; - background-color: #2E2E2E; + background-color: var(--card-bg); padding: 0.4rem 0.4rem; transition: all 0.2s ease-in-out; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); &:hover { - background-color: #1c1c1c; + background-color: var(--card-hover-bg); transform: translateY(-1px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); } @@ -225,7 +225,7 @@ const TagsHeader = styled.h4` font-family: 'Gilroy-Bold', sans-serif; font-weight: 700; font-size: 1.15rem; - color: #DFDFDFff; + color: var(--text-color); text-decoration: none; margin-top: 1.5rem; margin-bottom: 0.5rem; @@ -238,9 +238,9 @@ const RMPHeader = styled.a` font-family: 'Gilroy-Bold', sans-serif; font-weight: 700; font-size: 1.15rem; - color: #DFDFDFff !important; + color: var(--text-color) !important; text-decoration: none !important; - border-bottom: ${(props) => (props.href && props.href !== "#" ? "1px solid #333333" : "none")}; + border-bottom: ${(props) => (props.href && props.href !== "#" ? "1px solid var(--rmp-link-underline)" : "none")}; margin-bottom: 0.5rem; transition: color 0.2s ease; display: inline-flex; @@ -248,7 +248,7 @@ const RMPHeader = styled.a` gap: 0.5rem; &:hover { - color: #afafafff !important; + color: var(--muted-text) !important; } @media (max-width: 768px) { @@ -359,46 +359,29 @@ const SectionContent = React.memo(function SectionContent({ datasets: [{ backgroundColor: getColors(keys), data: values }], }; - const options: ChartOptions<"bar"> = { - responsive: true, - maintainAspectRatio: false, - plugins: { - tooltip: { - enabled: true, - mode: "nearest", - intersect: true, - callbacks: { - label: (context) => { - const count = context.parsed.y; - return [ - `Students: ${count}`, - `Percentage: ${((count / section.totalStudents) * 100).toFixed(2)}%`, - ]; - }, - }, +// READ: I had to hardcode the colors to a color in between light and dark mode here because using CSS variables in ChartJS options was not working properly. If someone has a better solution, please help. +const options: ChartOptions<"bar"> = { + scales: { + x: { + grid: { + color: "#87878747", + borderColor: "#87878747", + }, + ticks: { + color: "#868686", }, }, - scales: { - x: { - grid: { - color: "rgba(255,255,255,0.08)", - borderColor: "rgba(255,255,255,0.12)", - }, - ticks: { - color: "#DFDFDF", - }, + y: { + grid: { + color: "#87878747", + borderColor: "#87878747", }, - y: { - grid: { - color: "rgba(255,255,255,0.08)", - borderColor: "rgba(255,255,255,0.12)", - }, - ticks: { - color: "#DFDFDF", - }, + ticks: { + color: "#868686", }, }, - }; + }, +}; // FIXME (median) // const averageLetter = getLetterGrade(section.average); @@ -426,7 +409,7 @@ const SectionContent = React.memo(function SectionContent({ fontFamily: "var(--font-family)", fontWeight: "550", fontSize: "20px", - color: "#D0D0D0", + color: "var(--muted-text)", }} > {courseRating ? "/5" : ""} @@ -444,7 +427,7 @@ const SectionContent = React.memo(function SectionContent({ - Total Students {section.totalStudents} + Total Students {section.totalStudents} @@ -483,9 +466,9 @@ const SectionContent = React.memo(function SectionContent({ borderRadius: "0.5rem", fontSize: "0.75rem", lineHeight: "1rem", - color: "#000000", + color: "var(--text-color)", whiteSpace: "nowrap", - backgroundColor: "#ffffffff", + backgroundColor: "var(--card-bg)", boxShadow: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", }} diff --git a/client/src/components/SectionList.tsx b/client/src/components/SectionList.tsx index 3924717..338d480 100644 --- a/client/src/components/SectionList.tsx +++ b/client/src/components/SectionList.tsx @@ -8,17 +8,12 @@ import styled, { css } from "styled-components"; const Item = styled(List.Item)<{ selected: boolean }>` padding: 25px; - border-right: 1px solid #ffffff45; - border-bottom: 1px solid #ffffff45; + border-right: 1px solid var(--border-color); + border-bottom: 1px solid var(--border-color); cursor: pointer; transition: all 300ms ease-out; font-family: var(--font-family); - &:hover { - background-color: #494949; - color: #333333; - } - &:first-child { border-top-left-radius: 5px; } @@ -26,6 +21,13 @@ const Item = styled(List.Item)<{ selected: boolean }>` & .ant-list-item-meta-title a { font-weight: 600; font-family: var(--font-family); + color: inherit; + text-decoration: none; + } + + & .ant-list-item-meta-title a:hover { + color: var(--link-color); + text-decoration: none; } & .ant-list-item-meta { @@ -36,9 +38,9 @@ const Item = styled(List.Item)<{ selected: boolean }>` `; const selectedStyles = css` - border-right: 6px solid rgb(0, 116, 224) !important; + border-right: 6px solid var(--link-color) !important; box-shadow: inset -5px 0px 10px rgba(0, 0, 0, 0.05); - background-color: #333333; + background-color: var(--card-bg); `; const Hint = styled(AntPopover)` @@ -47,7 +49,7 @@ const Hint = styled(AntPopover)` margin-right: auto; display: block; font-family: var(--font-family); - color: #95989a; + color: var(--muted-text); `; const Popover = styled.div` @@ -63,7 +65,7 @@ const Error = styled.p` font-family: var(--font-family); font-size: 22px; text-align: center; - color: #FFFFFF45; + color: var(--muted-text); font-weight: 300; `; @@ -73,6 +75,7 @@ const StyledIcon = styled(FrownTwoTone)` margin-bottom: 15px; margin-left: auto; margin-right: auto; + display: block; `; const LoadingItem = styled(List.Item)` @@ -85,13 +88,14 @@ const LoadingItem = styled(List.Item)` } `; + /*For the person icon*/ const IconWrapper = styled.div` margin-right: 8; - color: #FFFFFF45; + color: var(--muted-text); `; const EnrollmentText = styled.span<{ $color?: string }>` - color: ${(p) => p.$color || "#DFDFDF"}; + color: ${(p) => p.$color || "var(--text-color)"}; `; // FIXME (median) // const AverageWrapper = styled.div<{ average: number }>` diff --git a/client/src/pages/_app.tsx b/client/src/pages/_app.tsx index cbafa6f..51beddd 100644 --- a/client/src/pages/_app.tsx +++ b/client/src/pages/_app.tsx @@ -26,6 +26,18 @@ function MyApp({ Component, pageProps }: AppProps): JSX.Element { return ( <> + + diff --git a/client/src/pages/index.tsx b/client/src/pages/index.tsx index 3b106db..16c1f95 100644 --- a/client/src/pages/index.tsx +++ b/client/src/pages/index.tsx @@ -1,7 +1,8 @@ import { Col } from "antd"; import Image from "next/image"; import Router from "next/router"; -import React from "react"; +import React, { useEffect, useState } from "react"; +import { Button } from "antd"; import styled from "styled-components"; import FadeIn from "../components/animations/FadeIn"; import Core from "../components/Core"; @@ -25,7 +26,7 @@ const Header = styled.h1` font-family: Gilroy, sans-serif; text-transform: uppercase; text-align: center; - color: rgb(229, 229, 229); + color: var(--text-color); font-weight: 300; letter-spacing: 3px; font-size: 48px; @@ -51,7 +52,7 @@ const Header = styled.h1` const Description = styled.p` font-family: 'Gilroy-Regular', sans-serif; text-align: center; - color: #95989a; + color: var(--muted-text); font-weight: 400; font-size: 18px; margin-bottom: 30px; @@ -74,7 +75,7 @@ const ByACM = styled.span` font-size: 16px; font-weight: 400; letter-spacing: 1px; - color: #CFD3D5; + color: var(--muted-text); margin-left: 12px; @media (max-width: 768px) { @@ -94,9 +95,46 @@ const Logo = { flexShrink: 0, }; +const PageToggle = styled(Button)` + position: absolute; + top: 20px; + right: 20px; + background: none; + border: none; + box-shadow: none; + color: var(--muted-text); + display: inline-flex; + align-items: center; + justify-content: center; + padding: 6px; + svg { width: 18px; height: 18px; } +`; + export default function Home() { + const [theme, setTheme] = useState<"light" | "dark">(() => { + try { + if (typeof window === "undefined") return "dark"; + const saved = localStorage.getItem("theme"); + if (saved === "light" || saved === "dark") return saved; + const docTheme = document.documentElement.getAttribute("data-theme"); + if (docTheme === "light" || docTheme === "dark") return docTheme; + } catch (e) { + /* ignore */ + } + return "dark"; + }); + + useEffect(() => { + try { + document.documentElement.setAttribute("data-theme", theme); + localStorage.setItem("theme", theme); + } catch (e) { + /* ignore */ + } + }, [theme]); + function handleSubmit({ search }: SearchQuery) { (async function () { await Router.push({ @@ -109,11 +147,34 @@ export default function Home() { return ( + setTheme((t) => (t === "light" ? "dark" : "light"))} + type="ghost" + shape="circle" + size="large" + aria-label={`Switch to ${theme === "light" ? "dark" : "light"} mode`} + > + {theme === "light" ? ( + + + + ) : ( + + + + )} +
- ACM Dev Logo + ACM Dev Logo
UTD GRADES by ACM diff --git a/client/src/pages/styles.css b/client/src/pages/styles.css index 6ed34bd..e532bcb 100644 --- a/client/src/pages/styles.css +++ b/client/src/pages/styles.css @@ -27,26 +27,65 @@ } :root {--font-family: var(--font-family); - --box-shadow-base: 0 1px 2px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.07), - 0 4px 8px rgba(0, 0, 0, 0.07), 0 8px 16px rgba(0, 0, 0, 0.07), 0 16px 32px rgba(0, 0, 0, 0.07), +/* Defines global and dark mode theme variables (light mode is further down) */ + /* Core colors */ + --bg-color: #1B1B1B; + --text-color: #DFDFDF; + --muted-text: #ffffff86; + --link-color: #7f99e5; + + /* UI surfaces */ + --card-bg: #333333; + --border-color: rgba(255, 255, 255, 0.08); + + /* Shadows */ + --box-shadow-base: + 0 1px 2px rgba(0, 0, 0, 0.07), + 0 2px 4px rgba(0, 0, 0, 0.07), + 0 4px 8px rgba(0, 0, 0, 0.07), + 0 8px 16px rgba(0, 0, 0, 0.07), + 0 16px 32px rgba(0, 0, 0, 0.07), 0 32px 64px rgba(0, 0, 0, 0.07); - --box-shadow-inactive: 0 1px 1px rgba(151, 151, 151, 0.11), 0 2px 2px rgba(151, 151, 151, 0.11), - 0 4px 4px rgba(151, 151, 151, 0.11), 0 6px 8px rgba(151, 151, 151, 0.11), + + --box-shadow-inactive: + 0 1px 1px rgba(151, 151, 151, 0.11), + 0 2px 2px rgba(151, 151, 151, 0.11), + 0 4px 4px rgba(151, 151, 151, 0.11), + 0 6px 8px rgba(151, 151, 151, 0.11), 0 8px 16px rgba(151, 151, 151, 0.11); - --box-shadow-active: 0 2px 1px rgba(151, 151, 151, 0.09), 0 4px 2px rgba(151, 151, 151, 0.09), - 0 8px 4px rgba(151, 151, 151, 0.09), 0 16px 8px rgba(151, 151, 151, 0.09), + + --box-shadow-active: + 0 2px 1px rgba(151, 151, 151, 0.09), + 0 4px 2px rgba(151, 151, 151, 0.09), + 0 8px 4px rgba(151, 151, 151, 0.09), + 0 16px 8px rgba(151, 151, 151, 0.09), 0 32px 16px rgba(151, 151, 151, 0.09); + + /* helper theme variables for components */ + --card-hover-bg: #494949; + --tag-hover-bg: #1c1c1c; + --rmp-link-underline: #333333; + } -html, -body { - height: 100%; - background-color: #1B1B1B; /* dark mode */ - color: #DFDFDF; /* readable default text color on dark background */ +[data-theme="light"] { + --bg-color: #ffffff; + --text-color: #1a1a1a; + --muted-text: #555555; + --link-color: #1e40af; + + --card-bg: #ffffff; + --border-color: rgba(0, 0, 0, 0.12); + --card-hover-bg: #e6e6e9; + --tag-hover-bg: #e6e6e9; + --rmp-link-underline: rgba(0,0,0,0.08); } +html, body { - font-family: var(--font-family); + height: 100%; + background-color: var(--bg-color); + color: var(--text-color); margin: 0; padding: 0; } @@ -71,11 +110,6 @@ body { border: none !important; } -/* Ensure links and Ant Design text are readable on dark background */ -a, a:link, a:visited { - color: #e6f0ff; -} - .ant-list-item, .ant-list-item-meta, .ant-list-item-meta-title, .ant-list-item-meta-description { color: #ffffff86; } From 9e4f7eedaf3a909cdce5cc7227dd8cdcd213ef99 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Sun, 11 Jan 2026 18:27:09 -0600 Subject: [PATCH 05/11] Recommit with Vivi's changes.(ref commit 9d8b5c7) --- client/src/components/Core.tsx | 64 +++++-- client/src/components/Header.tsx | 12 ++ client/src/components/SearchResults.tsx | 94 +++++++++- client/src/components/SectionContent.tsx | 7 +- client/src/components/SectionList.tsx | 218 +++++++++++++++++------ client/src/pages/styles.css | 5 +- 6 files changed, 323 insertions(+), 77 deletions(-) diff --git a/client/src/components/Core.tsx b/client/src/components/Core.tsx index eb8c0f9..f992d60 100644 --- a/client/src/components/Core.tsx +++ b/client/src/components/Core.tsx @@ -1,4 +1,4 @@ -import type { ReactNode } from "react"; +import { useEffect, type ReactNode } from "react"; import styled from "styled-components"; const Container = styled.div` @@ -69,16 +69,58 @@ interface CoreProps { } function Core({ children }: CoreProps) { - /*const donors = ( -
-

- Thank you to the following people for donating and making this possible (in order of most - monetary support): Anthony-Tien Huynh, Adam Butcher, Paul Denino, Thomas Sowders, Xavier - Brown, Enza Denino, David Garvin, Alastair Feille, Andrew Vaccaro and other anonymous - donors. -

-
- );*/ + useEffect(() => { + const handleKeyDown = (event: KeyboardEvent) => { + const target = event.target as HTMLElement | null; + if ( + target && + (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.isContentEditable) + ) { + return; + } + + if (!(event.ctrlKey || event.metaKey)) return; + + const keyIsSlash = event.key === "/" || event.code === "Slash"; + if (!keyIsSlash) return; + + event.preventDefault(); + + const inputEl = document.getElementById("search-bar"); + let input: HTMLInputElement | null = null; + + if (inputEl) { + if (inputEl instanceof HTMLInputElement) { + input = inputEl; + } else { + input = inputEl.querySelector("input"); + } + } + + if (!input) { + input = document.querySelector( + ".ant-input-search input, input#search-bar, input[placeholder^=\"ex. CS\"]" + ); + } + + if (input) { + input.focus(); + try { + const len = input.value ? input.value.length : 0; + input.setSelectionRange(len, len); + } catch (e) { + // ignore + } + } + }; + + window.addEventListener("keydown", handleKeyDown); + + return () => { + window.removeEventListener("keydown", handleKeyDown); + }; + }, []); + return ( diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx index d1749ba..54d1d7a 100644 --- a/client/src/components/Header.tsx +++ b/client/src/components/Header.tsx @@ -22,6 +22,18 @@ const Back = styled(Button) <{ $dummy?: boolean }>` color: inherit; } visibility: ${(props) => (props.$dummy ? "hidden" : "visible")}; + &:hover, + &:focus, + &:active { + color: rgb(198, 198, 198) !important; + background: none !important; + } + + &:hover .anticon, + &:focus .anticon, + &:active .anticon { + color: rgb(198, 198, 198) !important; + } `; const Toggle = styled(Button)` diff --git a/client/src/components/SearchResults.tsx b/client/src/components/SearchResults.tsx index 11b78b7..ccfd632 100644 --- a/client/src/components/SearchResults.tsx +++ b/client/src/components/SearchResults.tsx @@ -11,7 +11,7 @@ import { normalizeName } from "../utils/index"; import { useDb } from "../utils/useDb"; import Search from "./Search"; import SearchResultsContent from "./SearchResultsContent"; -import SectionList from "./SectionList"; +import {SectionList} from "./SectionList"; const Container = styled.div` display: block; @@ -72,7 +72,10 @@ interface ResultsProps { } const Results = React.memo(function Results({ search, sectionId, router }: ResultsProps) { + // Track current page for SectionList pagination + const [currentPage, setCurrentPage] = useState(1); const scrollRef = useRef(null); + const hasAutoSelected = useRef(false); const { data: db } = useDb(); @@ -94,6 +97,37 @@ const Results = React.memo(function Results({ search, sectionId, router }: Resul } ); + // Auto-select first section when sections load and no section is selected + useEffect(() => { + if (sections && sections.length > 0 && !sectionId && !hasAutoSelected.current) { + hasAutoSelected.current = true; + const firstSection = sections[0]; + if (firstSection) { + void router.push({ + pathname: "/results", + query: { search, sectionId: firstSection.id }, + }, undefined, { shallow: true }); + } + } + }, [sections, sectionId, search, router]); + + // Reset auto-select flag when search changes + useEffect(() => { + hasAutoSelected.current = false; + }, [search]); + + // Update page when sectionId changes (arrow navigation or click) + useEffect(() => { + if (sections && sections.length > 0) { + const idx = sections.findIndex(s => s.id === sectionId); + if (idx !== -1) { + const newPage = Math.floor(idx / 5) + 1; + setCurrentPage(newPage); + } + } + }, [sectionId, sections]); + + // get the section data const { data: section, @@ -258,13 +292,66 @@ const Results = React.memo(function Results({ search, sectionId, router }: Resul void debouncedNavigate(id); }, [sectionId, debouncedNavigate]); + // Arrow key navigation between sections + useEffect(() => { + const handleKeyDown = (event: KeyboardEvent) => { + // Don't handle arrow keys if user is typing in an input field or textarea + const target = event.target as HTMLElement; + if ( + target.tagName === 'INPUT' || + target.tagName === 'TEXTAREA' || + target.isContentEditable + ) { + return; + } + + // Only handle arrow keys when a section is selected + if (!sections || sections.length === 0 || !sectionId) { + return; + } + + // Find the current section index + const currentIndex = sections.findIndex((s) => s.id === sectionId); + + if (currentIndex === -1) { + return; + } + let newIndex = -1; + + if (event.key === "ArrowLeft") { + // Navigate to previous section + newIndex = currentIndex > 0 ? currentIndex - 1 : currentIndex; + event.preventDefault(); + } else if (event.key === "ArrowRight") { + // Navigate to next section + newIndex = currentIndex < sections.length - 1 ? currentIndex + 1 : currentIndex; + event.preventDefault(); + } + + // Navigate to the new section if index changed + if (newIndex !== -1 && newIndex !== currentIndex) { + const target = sections[newIndex]; + if (target && typeof target.id === "number") { + handleClick(target.id); + } + } + }; + + // Add event listener + window.addEventListener("keydown", handleKeyDown); + + // Cleanup + return () => { + window.removeEventListener("keydown", handleKeyDown); + }; + }, [sections, sectionId, handleClick]); const handleSubmit = useCallback(({ search }: SearchQuery) => { void stableRouter.current.push({ pathname: "/results", query: { search }, - }).catch(error => { + }).catch((error: unknown) => { console.error('Navigation error:', error); }); }, []); @@ -308,6 +395,9 @@ const Results = React.memo(function Results({ search, sectionId, router }: Resul loading={sectionsStatus === "loading"} id={sectionId} error={sectionsError} + page={currentPage} + setPage={setCurrentPage} + /> diff --git a/client/src/components/SectionContent.tsx b/client/src/components/SectionContent.tsx index 751ec44..5d54ffc 100644 --- a/client/src/components/SectionContent.tsx +++ b/client/src/components/SectionContent.tsx @@ -44,7 +44,6 @@ const Container = styled.div` const GraphContainer = styled.div` width: 100%; - flex: 1; min-height: 250px; max-height: 400px; background-color: var(--card-bg); @@ -316,11 +315,11 @@ const FlexSmall = styled.div` `; interface SectionContentProps { - // relatedSections: Grades[]; section: Grades; instructor: RMPInstructor; courseRating: number | null; - // handleRelatedSectionClick: (search: string, id: number) => void; + relatedSections?: Grades[]; + handleRelatedSectionClick?: (search: string, id: number) => void; } const getDifficultyColor = (difficulty: number): string => { @@ -434,7 +433,7 @@ const options: ChartOptions<"bar"> = { - + diff --git a/client/src/components/SectionList.tsx b/client/src/components/SectionList.tsx index 338d480..a999fe0 100644 --- a/client/src/components/SectionList.tsx +++ b/client/src/components/SectionList.tsx @@ -1,7 +1,7 @@ -import { FrownTwoTone, UserOutlined } from "@ant-design/icons"; +import { FrownTwoTone, UserOutlined, LeftOutlined, RightOutlined, DoubleLeftOutlined, DoubleRightOutlined } from "@ant-design/icons"; import type { Grades } from "@utd-grades/db"; import { List, Popover as AntPopover, Spin } from "antd"; -import React, { ReactNode, useEffect, useState } from "react"; +import React, { ReactNode} from "react"; import styled, { css } from "styled-components"; // FIXME (median) // import { getLetterGrade, getLetterGradeColor } from "../utils"; @@ -38,7 +38,7 @@ const Item = styled(List.Item)<{ selected: boolean }>` `; const selectedStyles = css` - border-right: 6px solid var(--link-color) !important; + border-right: 6px solid var(--select-tag) !important; box-shadow: inset -5px 0px 10px rgba(0, 0, 0, 0.05); background-color: var(--card-bg); `; @@ -94,6 +94,44 @@ const IconWrapper = styled.div` color: var(--muted-text); `; +const PaginationContainer = styled.div` + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 16px 10px; + font-family: var(--font-family); +`; + +const PaginationButton = styled.button<{ active?: boolean; disabled?: boolean }>` + min-width: 28px; + height: 28px; + padding: 0 8px; + border: 1px solid ${props => props.active ? 'rgb(198, 198, 198 )' : '#d9d9d9'}; + background: ${props => props.active ? 'rgb(198, 198, 198 )' : props.disabled ? '#f5f5f5' : '#fff'}; + color: ${props => props.active ? '#333' : props.disabled ? '#bfbfbf' : 'rgba(0, 0, 0, 0.85)'}; + border-radius: 2px; + cursor: ${props => props.disabled ? 'not-allowed' : 'pointer'}; + font-family: var(--font-family); + font-size: 14px; + display: flex; + align-items: center; + justify-content: center; + + &:hover { + ${props => !props.disabled && !props.active && css` + border-color: rgb(198, 198, 198 ); + color: #333; + background: #fafafa; + `} + } + + &:focus { + outline: none; + } +`; + + const EnrollmentText = styled.span<{ $color?: string }>` color: ${(p) => p.$color || "var(--text-color)"}; `; @@ -121,14 +159,29 @@ interface SectionListProps { data: Grades[] | undefined; onClick: (id: number) => void; error: unknown; + page: number; + setPage: React.Dispatch>; } -export default function SectionList({ loading, id, data, onClick, error }: SectionListProps) { - const [page, setPage] = useState(1); +export function SectionList({ loading, id, data, onClick, error, page, setPage }: SectionListProps) { + const pageSize = 5; + const totalPages = data ? Math.ceil(data.length / pageSize) : 0; - useEffect(() => { - setPage(1); - }, [data]); + // Calculate which pages to show (max 3 pages) + const getPageNumbers = () => { + if (totalPages <= 3) { + return Array.from({ length: totalPages }, (_, i) => i + 1); + } + + // Always show current page and try to show 1 before and 1 after + if (page === 1) { + return [1, 2, 3]; + } else if (page === totalPages) { + return [totalPages - 2, totalPages - 1, totalPages]; + } else { + return [page - 1, page, page + 1]; + } + }; const popover = ( @@ -163,58 +216,105 @@ export default function SectionList({ loading, id, data, onClick, error }: Secti if (data.length < 1) { return emptyMessage; } else { + const pageNumbers = getPageNumbers(); + const startIndex = (page - 1) * pageSize; + const endIndex = startIndex + pageSize; + const currentPageData = data.slice(startIndex, endIndex); + return ( - - itemLayout="vertical" - size="large" - pagination={{ - pageSize: 8, - style: { - marginRight: "10px", - }, - showSizeChanger: false, - current: page, - onChange: (page) => setPage(page), - className: "section-list-pagination", - }} - dataSource={data} - renderItem={(item) => ( - } - child={{item.totalStudents.toString()}} - key="students-total" - />, - // FIXME (median) - // } - // child={ - // - // {getLetterGrade(item.average)} - // - // } - // key="average" - // />, - ]} - onClick={() => onClick(item.id)} - > - - {item.subject} {item.catalogNumber}.{item.section} - - } - // FIXME (no professor): non null assertion - description={`${item.instructor1!.last}, ${item.instructor1!.first} - ${ - item.semester.season - } ${item.semester.year}`} - /> - + <> + + itemLayout="vertical" + size="large" + dataSource={currentPageData} + renderItem={(item) => ( + } + child={{item.totalStudents.toString()}} + key="students-total" + />, + // FIXME (median) + // } + // child={ + // + // {getLetterGrade(item.average)} + // + // } + // key="average" + // />, + ]} + onClick={() => onClick(item.id)} + > + + {item.subject} {item.catalogNumber}.{item.section} + + } + // FIXME (no professor): non null assertion + description={`${item.instructor1!.last}, ${item.instructor1!.first} - ${ + item.semester.season + } ${item.semester.year}`} + /> + + )} + /> + {totalPages > 1 && ( + + setPage(1)} + aria-label="First page" + title="First page" + > + + + + setPage(page - 1)} + aria-label="Previous page" + title="Previous page" + > + + + + {pageNumbers.map((pageNum) => ( + setPage(pageNum)} + title={`Page ${pageNum}`} + > + {pageNum} + + ))} + + setPage(page + 1)} + aria-label="Next page" + title="Next page" + > + + + + setPage(totalPages)} + aria-label="Last page" + title="Last page" + > + + + )} - /> + ); } } else if (loading) { @@ -223,7 +323,7 @@ export default function SectionList({ loading, id, data, onClick, error }: Secti itemLayout="vertical" size="large" pagination={{ - pageSize: 8, + pageSize: 5, }} > diff --git a/client/src/pages/styles.css b/client/src/pages/styles.css index e532bcb..c36f148 100644 --- a/client/src/pages/styles.css +++ b/client/src/pages/styles.css @@ -36,7 +36,8 @@ /* UI surfaces */ --card-bg: #333333; - --border-color: rgba(255, 255, 255, 0.08); + --border-color: #ffffff14; + --select-tag: #cfcfcf; /* Shadows */ --box-shadow-base: @@ -74,7 +75,9 @@ --muted-text: #555555; --link-color: #1e40af; + --card-bg: #ffffff; + --select-tag: #333333; --border-color: rgba(0, 0, 0, 0.12); --card-hover-bg: #e6e6e9; --tag-hover-bg: #e6e6e9; From fd71a4dba0d8578d5a58442345092d93b1986ce0 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Sun, 11 Jan 2026 18:55:37 -0600 Subject: [PATCH 06/11] Removed unused imports and donors (again). --- client/src/components/Core.tsx | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/client/src/components/Core.tsx b/client/src/components/Core.tsx index a1abfdb..ac1ba80 100644 --- a/client/src/components/Core.tsx +++ b/client/src/components/Core.tsx @@ -1,5 +1,3 @@ -import { HeartTwoTone } from "@ant-design/icons"; -import { Popover } from "antd"; import type { ReactNode } from "react"; import { useEffect } from "react"; import styled from "styled-components"; @@ -123,16 +121,6 @@ function Core({ children }: CoreProps) { window.removeEventListener("keydown", handleKeyDown); }; }, []); - const donors = ( -
-

- Thank you to the following people for donating and making this possible (in order of most - monetary support): Anthony-Tien Huynh, Adam Butcher, Paul Denino, Thomas Sowders, Xavier - Brown, Enza Denino, David Garvin, Alastair Feille, Andrew Vaccaro and other anonymous - donors. -

-
- ); return ( From faa5110ee21104a4bcf9bbd9d7f3522027de56e9 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Sun, 11 Jan 2026 20:52:01 -0600 Subject: [PATCH 07/11] Fix: Added the grade percentage display back in. --- client/src/components/SectionContent.tsx | 50 ++++++++++++++++-------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/client/src/components/SectionContent.tsx b/client/src/components/SectionContent.tsx index 5d54ffc..dc4eb3a 100644 --- a/client/src/components/SectionContent.tsx +++ b/client/src/components/SectionContent.tsx @@ -360,27 +360,45 @@ const SectionContent = React.memo(function SectionContent({ // READ: I had to hardcode the colors to a color in between light and dark mode here because using CSS variables in ChartJS options was not working properly. If someone has a better solution, please help. const options: ChartOptions<"bar"> = { - scales: { - x: { - grid: { - color: "#87878747", - borderColor: "#87878747", - }, - ticks: { - color: "#868686", + responsive: true, + maintainAspectRatio: false, + plugins: { + tooltip: { + enabled: true, + mode: "nearest", + intersect: true, + callbacks: { + label: (context) => { + const count = context.parsed.y; + return [ + `Students: ${count}`, + `Percentage: ${((count / section.totalStudents) * 100).toFixed(2)}%`, + ]; + }, + }, }, }, - y: { - grid: { - color: "#87878747", - borderColor: "#87878747", + scales: { + x: { + grid: { + color: "#87878747", + borderColor: "#87878747", + }, + ticks: { + color: "#868686", + }, }, - ticks: { - color: "#868686", + y: { + grid: { + color: "#87878747", + borderColor: "#87878747", + }, + ticks: { + color: "#868686", + }, }, }, - }, -}; + }; // FIXME (median) // const averageLetter = getLetterGrade(section.average); From 68597c9c2cae711c3fe2d479f5bbc301aa01d1f9 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Mon, 2 Feb 2026 22:55:24 -0600 Subject: [PATCH 08/11] Light/Dark Mode Toggle and SageAd Component made. --- client/src/components/Core.tsx | 58 +++++++++++++-- client/src/components/Header.tsx | 95 ++++++++++++++++-------- client/src/components/SageAd.tsx | 46 ++++++++++++ client/src/components/Search.tsx | 42 ----------- client/src/components/SectionContent.tsx | 8 +- client/src/components/SectionList.tsx | 12 +-- client/src/pages/index.tsx | 80 +++++++++++++------- client/src/pages/results.tsx | 2 +- client/src/pages/styles.css | 60 ++++++++------- 9 files changed, 261 insertions(+), 142 deletions(-) create mode 100644 client/src/components/SageAd.tsx diff --git a/client/src/components/Core.tsx b/client/src/components/Core.tsx index ac1ba80..fabfadc 100644 --- a/client/src/components/Core.tsx +++ b/client/src/components/Core.tsx @@ -1,6 +1,7 @@ import type { ReactNode } from "react"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import styled from "styled-components"; +import SageAd from "./SageAd"; const Container = styled.div` min-height: 100%; @@ -67,9 +68,57 @@ const GitHubLink = styled.a` interface CoreProps { children: ReactNode; + showSageAd?: boolean; } -function Core({ children }: CoreProps) { +function Core({ children, showSageAd = false }: CoreProps) { + const [theme, setTheme] = useState<"light" | "dark" | null>(null); + + // Initialize theme on start + useEffect(() => { + const initTheme = () => { + // Check localStorage first + const saved = localStorage.getItem("theme"); + if (saved === "light" || saved === "dark") { + setTheme(saved); + document.documentElement.setAttribute("data-theme", saved); + return; + } + + // Check system preference + if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) { + setTheme("dark"); + document.documentElement.setAttribute("data-theme", "dark"); + } else if (window.matchMedia && window.matchMedia("(prefers-color-scheme: light)").matches) { + setTheme("light"); + document.documentElement.setAttribute("data-theme", "light"); + } else { + // Default to light + setTheme("light"); + document.documentElement.setAttribute("data-theme", "light"); + } + }; + + initTheme(); + }, []); + + useEffect(() => { + const handleThemeChange = (e: StorageEvent) => { + if (e.key === "theme" && (e.newValue === "light" || e.newValue === "dark")) { + setTheme(e.newValue); + document.documentElement.setAttribute("data-theme", e.newValue); + } + }; + + window.addEventListener("storage", handleThemeChange); + return () => window.removeEventListener("storage", handleThemeChange); + }, []); + + useEffect(() => { + if (theme) { + document.documentElement.setAttribute("data-theme", theme); + } + }, [theme]); useEffect(() => { const handleKeyDown = (event: KeyboardEvent) => { const target = event.target as HTMLElement | null; @@ -126,10 +175,7 @@ function Core({ children }: CoreProps) { {children}
- {/* - Built with by{" "} - ACM Dev - */} + {showSageAd && } {/*Designed by Bharat Arimilli. Thanks to{" "} Garrett Gu,{" "} diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx index 54d1d7a..b1f3149 100644 --- a/client/src/components/Header.tsx +++ b/client/src/components/Header.tsx @@ -1,5 +1,5 @@ import { HomeOutlined } from "@ant-design/icons"; -import { Button, Row } from "antd"; +import { Button, Row, Segmented } from "antd"; import Image from "next/image"; import Router from "next/router"; import React, { useEffect, useState } from "react"; @@ -9,6 +9,8 @@ const Menu = styled(Row)` padding: 30px; display: flex; align-items: center; + justify-content: space-between; + width: 100%; `; const Back = styled(Button) <{ $dummy?: boolean }>` @@ -36,26 +38,39 @@ const Back = styled(Button) <{ $dummy?: boolean }>` } `; -const Toggle = styled(Button)` - background: none; - outline: none; +const ThemeSegmented = styled(Segmented)` + position: relative; + background: var(--toggle-bg); border: none; - cursor: pointer; + border-radius: 999px; box-shadow: none; - color: var(--muted-text); + color: var(--card-bg); display: inline-flex; align-items: center; justify-content: center; - padding: 6px; - svg { - width: 18px; - height: 18px; + svg { width: 18px; height: 18px; } + + .ant-segmented-item { + background: none; + border-radius: 999px; + padding: 4px 14px; + color: var(--text-color); + opacity: 0.5; + font-weight: 500; + } + + .ant-segmented-item-selected { + background: var(--result-container-bg); + opacity: 1; } `; + + const HeaderText = styled.a` - margin-right: auto; - margin-left: auto; + position: absolute; + left: 50%; + transform: translateX(-50%); display: block; & h2 { @@ -70,6 +85,7 @@ const HeaderText = styled.a` } `; + const HeaderBold = styled.span` font-family: 'Gilroy-Bold', sans-serif; font-weight: 700; @@ -86,10 +102,10 @@ const Logo = { export default function Header() { const [theme, setTheme] = useState<"light" | "dark">(() => { - if (typeof window === "undefined") return "dark"; + if (typeof window === "undefined") return "light"; const saved = localStorage.getItem("theme"); if (saved === "light" || saved === "dark") return saved; - return "dark"; + return "light"; }); useEffect(() => { @@ -122,23 +138,40 @@ export default function Header() { UTD GRADES - setTheme((t) => (t === "light" ? "dark" : "light"))} - type="ghost" - shape="circle" - size="large" - aria-label={`Switch to ${theme === "light" ? "dark" : "light"} mode`} - > - {theme === "light" ? ( - - - - ) : ( - - - - )} - + setTheme(value as "light" | "dark")} + options={[ + { + value: "light", + label: ( + + + + + Light + + ), + }, + { + value: "dark", + label: ( + + + + + Dark + + ), + }, + ]} + /> ); } diff --git a/client/src/components/SageAd.tsx b/client/src/components/SageAd.tsx new file mode 100644 index 0000000..1c7d64a --- /dev/null +++ b/client/src/components/SageAd.tsx @@ -0,0 +1,46 @@ +import styled from "styled-components"; + +const SageLogo = styled.img` + height: 1.2rem; + margin-right: 0.4rem; + filter: drop-shadow(0 0 4px rgb(0 0 0 / 0.6)); +`; + +const SageTextMark = styled.img` + height: 1.2rem; +`; +const SageLink = styled.a` + background: linear-gradient(90deg, rgba(7,67,37,1) 0%, rgba(22,50,36,1) 100%); + display: inline-flex; + align-items: center; + gap: 0.25rem; + padding: 0.6rem 1.2rem; + margin-bottom: 0.3rem; + border-radius: 100rem; + color: #5AED86; + text-shadow: 0 0 4px rgb(0 0 0 / 0.6); + box-shadow: 0 2px 6px rgb(0 0 0 / 0.2); + transition: transform cubic-bezier(0.4, 0, 0.2, 1) 150ms, box-shadow cubic-bezier(0.4, 0, 0.2, 1) 150ms; + &:hover { + color: #5AED86; + box-shadow: 0 2px 8px rgb(0 0 0 / 0.2); + transform: scale(1.01); + } +`; + +const SageText = styled.p` + line-height: 1.2rem; + margin-bottom: 0; + font-size: 0.9rem; +`; + +export default function SageAd() { +return( +
+ + + Get AI-powered UTD advising with + + +
+ )} diff --git a/client/src/components/Search.tsx b/client/src/components/Search.tsx index b3900e4..31b175a 100644 --- a/client/src/components/Search.tsx +++ b/client/src/components/Search.tsx @@ -18,39 +18,6 @@ const Hint = styled(AntPopover)` color: var(--muted-text); `; -const SageLogo = styled.img` - height: 1.2rem; - margin-right: 0.4rem; - filter: drop-shadow(0 0 4px rgb(0 0 0 / 0.6)); -`; - -const SageTextMark = styled.img` - height: 1.2rem; -`; -const SageLink = styled.a` - background: linear-gradient(90deg, rgba(7,67,37,1) 0%, rgba(22,50,36,1) 100%); - display: inline-flex; - align-items: center; - gap: 0.25rem; - padding: 0.6rem 1.2rem; - margin-bottom: 0.3rem; - border-radius: 100rem; - color: #5AED86; - text-shadow: 0 0 4px rgb(0 0 0 / 0.6); - box-shadow: 0 2px 6px rgb(0 0 0 / 0.2); - transition: transform cubic-bezier(0.4, 0, 0.2, 1) 150ms, box-shadow cubic-bezier(0.4, 0, 0.2, 1) 150ms; - &:hover { - color: #5AED86; - box-shadow: 0 2px 8px rgb(0 0 0 / 0.2); - transform: scale(1.01); - } -`; - -const SageText = styled.p` - line-height: 1.2rem; - margin-bottom: 0; - font-size: 0.9rem; -`; const Popover = styled.div` font-family: 'Gilroy-Regular', sans-serif; width: 375px; @@ -171,15 +138,6 @@ export default function Search({ onSubmit, initialSearchValue: initialSearch = " Pretty much anything. - -
- - - Get AI-powered UTD advising with - - -
- ); } diff --git a/client/src/components/SectionContent.tsx b/client/src/components/SectionContent.tsx index dc4eb3a..602e141 100644 --- a/client/src/components/SectionContent.tsx +++ b/client/src/components/SectionContent.tsx @@ -46,7 +46,7 @@ const GraphContainer = styled.div` width: 100%; min-height: 250px; max-height: 400px; - background-color: var(--card-bg); + background-color: var(--result-container-bg); @media (max-width: 992px) { & { @@ -60,7 +60,7 @@ const GraphContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 5px 10px rgba(70, 70, 70, 0.7); + box-shadow: 0 1px 5px rgba(70, 70, 70, 0.17); border-radius: 5px; padding: 20px; } @@ -71,7 +71,7 @@ const ProfessorDetailsContainer = styled.div` width: 100%; margin-top: 1rem; flex-shrink: 0; - background-color: var(--card-bg); + background-color: var(--result-container-bg); @media (max-width: 992px) { & { @@ -81,7 +81,7 @@ const ProfessorDetailsContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 5px 10px rgba(70, 70, 70, 0.7); + box-shadow: 0 1px 5px rgba(70, 70, 70, 0.17); border-radius: 5px; padding: 20px; } diff --git a/client/src/components/SectionList.tsx b/client/src/components/SectionList.tsx index 9685531..baacef4 100644 --- a/client/src/components/SectionList.tsx +++ b/client/src/components/SectionList.tsx @@ -107,9 +107,9 @@ const PaginationButton = styled.button<{ active?: boolean; disabled?: boolean }> min-width: 28px; height: 28px; padding: 0 8px; - border: 1px solid ${props => props.active ? 'rgb(198, 198, 198 )' : '#d9d9d9'}; - background: ${props => props.active ? 'rgb(198, 198, 198 )' : props.disabled ? '#f5f5f5' : '#fff'}; - color: ${props => props.active ? '#333' : props.disabled ? '#bfbfbf' : 'rgba(0, 0, 0, 0.85)'}; + border: 1px solid ${props => props.active ? 'var(--pagination-border-active)' : 'var(--pagination-border)'}; + background: ${props => props.active ? 'var(--pagination-bg-active)' : props.disabled ? 'var(--pagination-bg-disabled)' : 'var(--pagination-bg)'}; + color: ${props => props.active ? 'var(--pagination-text-active)' : props.disabled ? 'var(--pagination-text-disabled)' : 'var(--pagination-text)'}; border-radius: 2px; cursor: ${props => props.disabled ? 'not-allowed' : 'pointer'}; font-family: var(--font-family); @@ -120,9 +120,9 @@ const PaginationButton = styled.button<{ active?: boolean; disabled?: boolean }> &:hover { ${props => !props.disabled && !props.active && css` - border-color: rgb(198, 198, 198 ); - color: #333; - background: #fafafa; + border-color: var(--pagination-hover-border); + color: var(--pagination-hover-text); + background: var(--pagination-hover-bg); `} } diff --git a/client/src/pages/index.tsx b/client/src/pages/index.tsx index 16c1f95..06e4d58 100644 --- a/client/src/pages/index.tsx +++ b/client/src/pages/index.tsx @@ -1,8 +1,7 @@ -import { Col } from "antd"; +import { Col, Segmented } from "antd"; import Image from "next/image"; import Router from "next/router"; import React, { useEffect, useState } from "react"; -import { Button } from "antd"; import styled from "styled-components"; import FadeIn from "../components/animations/FadeIn"; import Core from "../components/Core"; @@ -95,19 +94,33 @@ const Logo = { flexShrink: 0, }; -const PageToggle = styled(Button)` +const ThemeSegmented = styled(Segmented)` position: absolute; top: 20px; right: 20px; - background: none; + background: var(--toggle-bg); border: none; + border-radius: 999px; box-shadow: none; - color: var(--muted-text); + color: var(--card-bg); display: inline-flex; align-items: center; justify-content: center; - padding: 6px; svg { width: 18px; height: 18px; } + + .ant-segmented-item { + background: none; + border-radius: 999px; + padding: 4px 14px; + color: var(--text-color); + opacity: 0.5; + font-weight: 500; + } + + .ant-segmented-item-selected { + background: var(--result-container-bg); + opacity: 1; + } `; @@ -145,25 +158,42 @@ export default function Home() { } return ( - + - setTheme((t) => (t === "light" ? "dark" : "light"))} - type="ghost" - shape="circle" - size="large" - aria-label={`Switch to ${theme === "light" ? "dark" : "light"} mode`} - > - {theme === "light" ? ( - - - - ) : ( - - - - )} - + setTheme(value as "light" | "dark")} + options={[ + { + value: "light", + label: ( + + + + + Light + + ), + }, + { + value: "dark", + label: ( + + + + + Dark + + ), + }, + ]} + />
@@ -177,7 +207,7 @@ export default function Home() { />
UTD GRADES - by ACM + by ACM Dev
diff --git a/client/src/pages/results.tsx b/client/src/pages/results.tsx index 004bfc0..bca3adf 100644 --- a/client/src/pages/results.tsx +++ b/client/src/pages/results.tsx @@ -23,7 +23,7 @@ export default function ResultsPage() { // https://github.com/zeit/next.js/issues/8259 if (router.asPath !== router.route) { return ( - +
diff --git a/client/src/pages/styles.css b/client/src/pages/styles.css index 2181e4d..b3f17f8 100644 --- a/client/src/pages/styles.css +++ b/client/src/pages/styles.css @@ -38,6 +38,22 @@ --card-bg: #333333; --border-color: #ffffff14; --select-tag: #cfcfcf; + --result-container-bg: #ffffff14; + + /* Pagination */ + --pagination-border: #d9d9d9; + --pagination-border-active: rgb(198, 198, 198); + --pagination-bg: #4d4d4d; + --pagination-bg-disabled: #282828; + --pagination-bg-active: #e5e5e5; + + --pagination-text: #e0e0e0; + --pagination-text-disabled: #bfbfbf; + --pagination-text-active: #1a1a1a; + + --pagination-hover-bg: #c3c3c3; + --pagination-hover-text: #333; + --pagination-hover-border: rgb(198, 198, 198); /* Shadows */ --box-shadow-base: @@ -66,6 +82,7 @@ --card-hover-bg: #494949; --tag-hover-bg: #1c1c1c; --rmp-link-underline: #333333; + --toggle-bg: #4f4e4e; } @@ -82,6 +99,22 @@ --card-hover-bg: #e6e6e9; --tag-hover-bg: #e6e6e9; --rmp-link-underline: rgba(0,0,0,0.08); + --result-container-bg: #fdfdfdfd; + --toggle-bg: #f5f3f3; + + --pagination-border: rgba(0, 0, 0, 0.15); + --pagination-border-active: #e1e1e1; + --pagination-bg: #ffffff; + --pagination-bg-disabled: #f0f0f0; + --pagination-bg-active: #1a1a1a; + + --pagination-text: #1a1a1a; + --pagination-text-disabled: #999999; + --pagination-text-active: #ffffff; + + --pagination-hover-bg: #f5f5f5; + --pagination-hover-text: #1a1a1a; + --pagination-hover-border: #1a1a1a; } html, @@ -129,31 +162,4 @@ body { /* Ant Design default text color overrides for dark mode */ .ant-typography, .ant-typography a, .ant-typography p { color: #DFDFDF; -} - -/* Section list pagination overrides (1- 5 ... 40) */ - -.section-list-pagination .ant-pagination-item { - color: #DFDFDF; - border-color: rgba(255,255,255,0.08); - background: transparent; -} - -.section-list-pagination .ant-pagination-item-active { - background: #333333; - color: #ffffff; - border-color: #0074e0; -} - -.section-list-pagination .ant-pagination-prev, .section-list-pagination .ant-pagination-next { - color: #DFDFDF; -} - -.section-list-pagination .ant-pagination-disabled { - color: rgba(255, 255, 255, 0.25); -} - -/* Ensure pagination links/numbers inherit the light color (anchors inside Ant components) */ -.section-list-pagination .ant-pagination-item a { - color: #DFDFDF !important; } \ No newline at end of file From e8b9fcb58561626ffbc946262d32dc8aad9018c7 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Wed, 11 Feb 2026 13:04:59 -0600 Subject: [PATCH 09/11] New theme toggle and reverted colors to the og. Dark mode is now more reflective of the old color scheme and light mode is pretty much replicated from prod. --- client/src/components/Header.tsx | 125 +++++++++++++---------- client/src/components/Search.tsx | 13 +-- client/src/components/SearchResults.tsx | 13 +-- client/src/components/SectionContent.tsx | 7 +- client/src/components/SectionList.tsx | 6 +- client/src/pages/index.tsx | 125 ++++++++++++----------- client/src/pages/styles.css | 13 ++- 7 files changed, 158 insertions(+), 144 deletions(-) diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx index b1f3149..6fcf56a 100644 --- a/client/src/components/Header.tsx +++ b/client/src/components/Header.tsx @@ -1,5 +1,5 @@ import { HomeOutlined } from "@ant-design/icons"; -import { Button, Row, Segmented } from "antd"; +import { Button, Row } from "antd"; import Image from "next/image"; import Router from "next/router"; import React, { useEffect, useState } from "react"; @@ -38,33 +38,73 @@ const Back = styled(Button) <{ $dummy?: boolean }>` } `; -const ThemeSegmented = styled(Segmented)` - position: relative; - background: var(--toggle-bg); - border: none; - border-radius: 999px; - box-shadow: none; - color: var(--card-bg); - display: inline-flex; +const ThemeToggle = styled.button` + position: absolute; + top: 20px; + right: 20px; + display: flex; align-items: center; justify-content: center; - svg { width: 18px; height: 18px; } - - .ant-segmented-item { - background: none; - border-radius: 999px; - padding: 4px 14px; - color: var(--text-color); - opacity: 0.5; - font-weight: 500; + width: 36px; + height: 36px; + border-radius: 9999px; + border: 1px solid var(--toggle-border, #e4e4e7); + background: var(--toggle-bg, #ffffff); + color: var(--text-color); + cursor: pointer; + transition: all 0.2s ease; + + &:hover { + background: var(--toggle-hover-bg, #f4f4f5); + color: var(--toggle-hover-color, #333333); } - .ant-segmented-item-selected { - background: var(--result-container-bg); - opacity: 1; + svg { + width: 16px; + height: 16px; + } + + @media (prefers-color-scheme: dark) { + border-color: rgba(255, 255, 255, 0.1); + background: rgba(255, 255, 255, 0.05); + + &:hover { + background: rgba(255, 255, 255, 0.1); + color: #727272; + } } `; +const SunIcon = () => ( + + + +); + +const MoonIcon = () => ( + + + +); + const HeaderText = styled.a` @@ -74,7 +114,7 @@ const HeaderText = styled.a` display: block; & h2 { - color: var(--text-color); + color: var(--header-color); font-weight: 300; letter-spacing: 2px; font-size: 24px; @@ -108,6 +148,10 @@ export default function Header() { return "light"; }); + const toggleTheme = () => { + setTheme((prevTheme) => (prevTheme === "dark" ? "light" : "dark")); + }; + useEffect(() => { try { document.documentElement.setAttribute("data-theme", theme); @@ -138,40 +182,9 @@ export default function Header() { UTD GRADES - setTheme(value as "light" | "dark")} - options={[ - { - value: "light", - label: ( - - - - - Light - - ), - }, - { - value: "dark", - label: ( - - - - - Dark - - ), - }, - ]} - /> + + {theme === "dark" ? : } + ); } diff --git a/client/src/components/Search.tsx b/client/src/components/Search.tsx index 31b175a..5eb1e3b 100644 --- a/client/src/components/Search.tsx +++ b/client/src/components/Search.tsx @@ -15,7 +15,7 @@ const Hint = styled(AntPopover)` margin-right: auto; display: block; font-family: 'Gilroy-Regular', sans-serif; - color: var(--muted-text); + color: #95989a; `; const Popover = styled.div` @@ -28,14 +28,15 @@ const DarkModeSearch = styled(Input.Search)` .ant-input-group { border-radius: 20px; overflow: hidden; + border: 1px solid rgb(198, 198, 198); } .ant-input-group-addon { padding: 0; - background: var(--card-bg); + background: transparent; } .ant-input { - background-color: var(--card-hover-bg); + background-color: transparent; color: var(--text-color); font-family: 'Gilroy', sans-serif; height: 44px; @@ -45,11 +46,11 @@ const DarkModeSearch = styled(Input.Search)` } .ant-input::placeholder { - color: var(--muted-text); + color: var(--search-placeholder); } .ant-input-search-button { - background-color: var(--card-hover-bg); + background-color: transparent; height: 44px; line-height: 44px; padding-top: 0; @@ -57,7 +58,7 @@ const DarkModeSearch = styled(Input.Search)` } .ant-input-search-button .anticon { - color: var(--muted-text); + color: #95989a; } .ant-input-search-button .anticon svg { diff --git a/client/src/components/SearchResults.tsx b/client/src/components/SearchResults.tsx index fc22908..d8031e9 100644 --- a/client/src/components/SearchResults.tsx +++ b/client/src/components/SearchResults.tsx @@ -22,10 +22,6 @@ const ResultsContainer = styled(Col)` padding-bottom: 20px; margin-top: 35px; border-radius: 5px; - - background-color: var(--card-bg); - /* make the results area stand out in light mode */ - border: 1px solid var(--border-color); color: var(--text-color); & .ant-list-pagination { @@ -37,14 +33,7 @@ const ResultsContainer = styled(Col)` font-family: var(--font-family); } - /* Ensure Ant list/card text inside results uses theme-aware colors - (overrides global dark-mode-only rules that leaked into light mode) */ - & .ant-list-item, - & .ant-list-item-meta, - & .ant-list-item-meta-title, - & .ant-list-item-meta-description, - & .ant-typography, - & .ant-card { + & .ant-list-item-meta-title, .ant-card { color: var(--text-color) !important; background: transparent !important; } diff --git a/client/src/components/SectionContent.tsx b/client/src/components/SectionContent.tsx index 602e141..efdd6e9 100644 --- a/client/src/components/SectionContent.tsx +++ b/client/src/components/SectionContent.tsx @@ -24,7 +24,6 @@ const Container = styled.div` display: flex; flex-direction: column; height: 100vh; - background-color: var(--card-bg); @media (max-width: 992px) { & { @@ -46,7 +45,6 @@ const GraphContainer = styled.div` width: 100%; min-height: 250px; max-height: 400px; - background-color: var(--result-container-bg); @media (max-width: 992px) { & { @@ -60,7 +58,7 @@ const GraphContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 1px 5px rgba(70, 70, 70, 0.17); + box-shadow: 0 15px 15px rgba(70, 70, 70, 0.17); border-radius: 5px; padding: 20px; } @@ -71,7 +69,6 @@ const ProfessorDetailsContainer = styled.div` width: 100%; margin-top: 1rem; flex-shrink: 0; - background-color: var(--result-container-bg); @media (max-width: 992px) { & { @@ -81,7 +78,7 @@ const ProfessorDetailsContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 1px 5px rgba(70, 70, 70, 0.17); + box-shadow: 0 15px 15px rgba(70, 70, 70, 0.17); border-radius: 5px; padding: 20px; } diff --git a/client/src/components/SectionList.tsx b/client/src/components/SectionList.tsx index baacef4..25f2c43 100644 --- a/client/src/components/SectionList.tsx +++ b/client/src/components/SectionList.tsx @@ -49,7 +49,7 @@ const Hint = styled(AntPopover)` margin-right: auto; display: block; font-family: var(--font-family); - color: var(--muted-text); + color: var(--description-color); `; const Popover = styled.div` @@ -91,7 +91,7 @@ const LoadingItem = styled(List.Item)` /*For the person icon*/ const IconWrapper = styled.div` margin-right: 8; - color: var(--muted-text); + color: var(--description-color); `; const PaginationContainer = styled.div` @@ -133,7 +133,7 @@ const PaginationButton = styled.button<{ active?: boolean; disabled?: boolean }> const EnrollmentText = styled.span<{ $color?: string }>` - color: ${(p) => p.$color || "var(--text-color)"}; + color: ${(p) => p.$color || "var(--description-color)"}; `; // FIXME (median) // const AverageWrapper = styled.div<{ average: number }>` diff --git a/client/src/pages/index.tsx b/client/src/pages/index.tsx index 06e4d58..890d633 100644 --- a/client/src/pages/index.tsx +++ b/client/src/pages/index.tsx @@ -1,4 +1,4 @@ -import { Col, Segmented } from "antd"; +import { Col } from "antd"; import Image from "next/image"; import Router from "next/router"; import React, { useEffect, useState } from "react"; @@ -25,7 +25,7 @@ const Header = styled.h1` font-family: Gilroy, sans-serif; text-transform: uppercase; text-align: center; - color: var(--text-color); + color: var(--header-color); font-weight: 300; letter-spacing: 3px; font-size: 48px; @@ -51,7 +51,7 @@ const Header = styled.h1` const Description = styled.p` font-family: 'Gilroy-Regular', sans-serif; text-align: center; - color: var(--muted-text); + color: var(--description-color); font-weight: 400; font-size: 18px; margin-bottom: 30px; @@ -74,7 +74,7 @@ const ByACM = styled.span` font-size: 16px; font-weight: 400; letter-spacing: 1px; - color: var(--muted-text); + color: rgb(159, 159, 159); margin-left: 12px; @media (max-width: 768px) { @@ -94,35 +94,73 @@ const Logo = { flexShrink: 0, }; -const ThemeSegmented = styled(Segmented)` +const ThemeToggle = styled.button` position: absolute; top: 20px; right: 20px; - background: var(--toggle-bg); - border: none; - border-radius: 999px; - box-shadow: none; - color: var(--card-bg); - display: inline-flex; + display: flex; align-items: center; justify-content: center; - svg { width: 18px; height: 18px; } - - .ant-segmented-item { - background: none; - border-radius: 999px; - padding: 4px 14px; - color: var(--text-color); - opacity: 0.5; - font-weight: 500; + width: 36px; + height: 36px; + border-radius: 9999px; + border: 1px solid var(--toggle-border, #e4e4e7); + background: var(--toggle-bg, #ffffff); + color: var(--text-color); + cursor: pointer; + transition: all 0.2s ease; + + &:hover { + background: var(--toggle-hover-bg, #f4f4f5); + color: var(--toggle-hover-color, #333333); } - .ant-segmented-item-selected { - background: var(--result-container-bg); - opacity: 1; + svg { + width: 16px; + height: 16px; + } + + @media (prefers-color-scheme: dark) { + border-color: rgba(255, 255, 255, 0.1); + background: rgba(255, 255, 255, 0.05); + + &:hover { + background: rgba(255, 255, 255, 0.1); + color: #727272; + } } `; +const SunIcon = () => ( + + + +); + +const MoonIcon = () => ( + + + +); + export default function Home() { @@ -148,6 +186,10 @@ export default function Home() { } }, [theme]); + const toggleTheme = () => { + setTheme((prevTheme) => (prevTheme === "dark" ? "light" : "dark")); + }; + function handleSubmit({ search }: SearchQuery) { (async function () { await Router.push({ @@ -160,40 +202,9 @@ export default function Home() { return ( - setTheme(value as "light" | "dark")} - options={[ - { - value: "light", - label: ( - - - - - Light - - ), - }, - { - value: "dark", - label: ( - - - - - Dark - - ), - }, - ]} - /> + + {theme === "dark" ? : } +
diff --git a/client/src/pages/styles.css b/client/src/pages/styles.css index b3f17f8..c49aa37 100644 --- a/client/src/pages/styles.css +++ b/client/src/pages/styles.css @@ -33,12 +33,15 @@ --text-color: #DFDFDF; --muted-text: #ffffff86; --link-color: #7f99e5; + --description-color: #95989a; + --header-color: #cfcfcf; /* UI surfaces */ --card-bg: #333333; --border-color: #ffffff14; - --select-tag: #cfcfcf; + --select-tag: #cdcdcd; --result-container-bg: #ffffff14; + --search-placeholder: #959595; /* Pagination */ --pagination-border: #d9d9d9; @@ -82,8 +85,6 @@ --card-hover-bg: #494949; --tag-hover-bg: #1c1c1c; --rmp-link-underline: #333333; - --toggle-bg: #4f4e4e; - } [data-theme="light"] { @@ -91,16 +92,18 @@ --text-color: #1a1a1a; --muted-text: #555555; --link-color: #1e40af; + --description-color: #95989a; + --header-color: #4e4e4e; --card-bg: #ffffff; - --select-tag: #333333; + --select-tag: #696969; --border-color: rgba(0, 0, 0, 0.12); --card-hover-bg: #e6e6e9; --tag-hover-bg: #e6e6e9; --rmp-link-underline: rgba(0,0,0,0.08); --result-container-bg: #fdfdfdfd; - --toggle-bg: #f5f3f3; + --search-placeholder: #c6c6c6; --pagination-border: rgba(0, 0, 0, 0.15); --pagination-border-active: #e1e1e1; From d6c95cd24494ed3c6ca99d9f34a82d43e3f9e806 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Thu, 12 Feb 2026 16:07:09 -0600 Subject: [PATCH 10/11] =?UTF-8?q?Adjusted=20shadows=20to=20be=20more=20lik?= =?UTF-8?q?e=20the=20og.=20Everything=20should=20be=20good=20now=20?= =?UTF-8?q?=F0=9F=99=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/components/SectionContent.tsx | 4 ++-- client/src/pages/styles.css | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/src/components/SectionContent.tsx b/client/src/components/SectionContent.tsx index efdd6e9..b630e5c 100644 --- a/client/src/components/SectionContent.tsx +++ b/client/src/components/SectionContent.tsx @@ -58,7 +58,7 @@ const GraphContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 15px 15px rgba(70, 70, 70, 0.17); + box-shadow: var(--section-card-shadow); border-radius: 5px; padding: 20px; } @@ -78,7 +78,7 @@ const ProfessorDetailsContainer = styled.div` @media (min-width: 992px) { & { - box-shadow: 0 15px 15px rgba(70, 70, 70, 0.17); + box-shadow: var(--section-card-shadow); border-radius: 5px; padding: 20px; } diff --git a/client/src/pages/styles.css b/client/src/pages/styles.css index c49aa37..ed88165 100644 --- a/client/src/pages/styles.css +++ b/client/src/pages/styles.css @@ -42,6 +42,7 @@ --select-tag: #cdcdcd; --result-container-bg: #ffffff14; --search-placeholder: #959595; + --section-card-shadow: 0 5px 5px rgba(21, 21, 21, 0.319); /* Pagination */ --pagination-border: #d9d9d9; @@ -104,6 +105,7 @@ --rmp-link-underline: rgba(0,0,0,0.08); --result-container-bg: #fdfdfdfd; --search-placeholder: #c6c6c6; + --section-card-shadow: 0 15px 15px rgba(233, 233, 233, 0.7); --pagination-border: rgba(0, 0, 0, 0.15); --pagination-border-active: #e1e1e1; From 6f020cbdcf72b2ce085288876eefb29867d399c4 Mon Sep 17 00:00:00 2001 From: bennettfei Date: Mon, 23 Feb 2026 15:14:48 -0600 Subject: [PATCH 11/11] Fix: theme toggle styling and toggle logic changes See core.tsx for toggle logic changes, index.tsx & header.tsx for styling changes --- client/src/components/Core.tsx | 39 ++++++-------------------------- client/src/components/Header.tsx | 6 ++--- client/src/pages/index.tsx | 6 ++--- 3 files changed, 13 insertions(+), 38 deletions(-) diff --git a/client/src/components/Core.tsx b/client/src/components/Core.tsx index fabfadc..f95e9ee 100644 --- a/client/src/components/Core.tsx +++ b/client/src/components/Core.tsx @@ -72,39 +72,19 @@ interface CoreProps { } function Core({ children, showSageAd = false }: CoreProps) { - const [theme, setTheme] = useState<"light" | "dark" | null>(null); + const [, setTheme] = useState<"light" | "dark" | null>(null); // Initialize theme on start useEffect(() => { - const initTheme = () => { - // Check localStorage first - const saved = localStorage.getItem("theme"); - if (saved === "light" || saved === "dark") { - setTheme(saved); - document.documentElement.setAttribute("data-theme", saved); - return; - } - - // Check system preference - if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) { - setTheme("dark"); - document.documentElement.setAttribute("data-theme", "dark"); - } else if (window.matchMedia && window.matchMedia("(prefers-color-scheme: light)").matches) { - setTheme("light"); - document.documentElement.setAttribute("data-theme", "light"); - } else { - // Default to light - setTheme("light"); - document.documentElement.setAttribute("data-theme", "light"); - } - }; - - initTheme(); + const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches; + const theme = prefersDark ? "dark" : "light"; + setTheme(theme); + document.documentElement.setAttribute("data-theme", theme); }, []); useEffect(() => { const handleThemeChange = (e: StorageEvent) => { - if (e.key === "theme" && (e.newValue === "light" || e.newValue === "dark")) { + if ((e.newValue === "light" || e.newValue === "dark")) { setTheme(e.newValue); document.documentElement.setAttribute("data-theme", e.newValue); } @@ -113,12 +93,7 @@ function Core({ children, showSageAd = false }: CoreProps) { window.addEventListener("storage", handleThemeChange); return () => window.removeEventListener("storage", handleThemeChange); }, []); - - useEffect(() => { - if (theme) { - document.documentElement.setAttribute("data-theme", theme); - } - }, [theme]); + useEffect(() => { const handleKeyDown = (event: KeyboardEvent) => { const target = event.target as HTMLElement | null; diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx index 6fcf56a..9637041 100644 --- a/client/src/components/Header.tsx +++ b/client/src/components/Header.tsx @@ -49,13 +49,13 @@ const ThemeToggle = styled.button` height: 36px; border-radius: 9999px; border: 1px solid var(--toggle-border, #e4e4e7); - background: var(--toggle-bg, #ffffff); + background: var(--toggle-bg); color: var(--text-color); cursor: pointer; transition: all 0.2s ease; &:hover { - background: var(--toggle-hover-bg, #f4f4f5); + background: var(--toggle-hover-bg); color: var(--toggle-hover-color, #333333); } @@ -64,7 +64,7 @@ const ThemeToggle = styled.button` height: 16px; } - @media (prefers-color-scheme: dark) { + @media (prefers-color-scheme: light) { border-color: rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.05); diff --git a/client/src/pages/index.tsx b/client/src/pages/index.tsx index 890d633..17295b6 100644 --- a/client/src/pages/index.tsx +++ b/client/src/pages/index.tsx @@ -105,13 +105,13 @@ const ThemeToggle = styled.button` height: 36px; border-radius: 9999px; border: 1px solid var(--toggle-border, #e4e4e7); - background: var(--toggle-bg, #ffffff); + background: var(--toggle-bg); color: var(--text-color); cursor: pointer; transition: all 0.2s ease; &:hover { - background: var(--toggle-hover-bg, #f4f4f5); + background: var(--toggle-hover-bg); color: var(--toggle-hover-color, #333333); } @@ -120,7 +120,7 @@ const ThemeToggle = styled.button` height: 16px; } - @media (prefers-color-scheme: dark) { + @media (prefers-color-scheme: light) { border-color: rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.05);