From 36ae92a46e94620cc859631d6f89e10c03c9c6e2 Mon Sep 17 00:00:00 2001 From: mnang Date: Thu, 11 Dec 2025 12:26:00 +0000 Subject: [PATCH 001/287] updated favicons --- public/favicon.png | Bin 3322 -> 2349 bytes public/favicon_old.png | Bin 0 -> 3322 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/favicon_old.png diff --git a/public/favicon.png b/public/favicon.png index 70dac3218a264e915d930db65031255d46fcc07c..25a1bd6b91bfc92e46625a3981040639f328cb31 100644 GIT binary patch literal 2349 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 literal 3322 zcmai1cQD-B9{;VfdI?$mDJh}^tHmNpl<2)j#OiIeB?Qa5qQ#9C^&;ve!i`{K^%h;Q zBGF>WMzEr{u-MDn%=_oPH*e<6neX|YZ~2@u^O^a6&ogsVJr+hjMgRa<4D@v@DH{Gu z=)shEIX@gmQ8ZrnOzr_dLpl@Lg_dFqyXjk+06?TD0K~=vz!}9AyAA-4p#ZP}2LP3P z0N@TPYO}aY34mRV^mKsBU!%11RTjm=5Tx%A0szw2e+lSGrA8RVNf&BhqDx1lk$`5b7^5oO8_X)T5TW`|(DAm8Q%j zqr!$pjPS-ep)+3Qk;0Qmf|I7&o*H4HhwD$?G%h=ub&xtpoeFgWx-3h5)I*&OXizPI zQnq)dXRX;{yFuv5%W>58W#(jt3rtVoZ`v^JG33oyQNk-t`TjyEH$I=xO;4t+ZfIXM z%MYO1r6LkC85r;8o?g=UZU=00*6{Zf_Sj^IR?A+tGAM7sdY#qOSjgarXxg4iuWm*% z)sM7_=^So)kjc#`XUKipyL27?;U8u)mcYlcV<>K9@vgC=)hiD7F&juVRhLir?=z)c zw0A41ScV~W6`y@2CrhuLgcWTkeEz`F@#i(A8G-o+vgEi{v0(Kq6 z@!UkQl=r`^-408$?cCHBCyC7J#N6_~CgX)=7W(*;!pt25I5mbStKu?j2XqysU1xUj zbM`yS<43-uOcqxYK92arVO-+b#fEP?urPpVH|3Qt)b^eIXn+`m5*_t0C36#d+E;>Nhr%Gm^4%oCK8r^?RF z2_i&SWFhOm%?~i^ZXF!$&r7TPhcS)zb2={uJ;mpD@_n8IQ;X8ah_5=qF|5+l%o;Ci z8d(JDYT;-T@l$0%(JD%+wk(QPz5z=5xnLyLFdSH2OVBjojbPe`3`}{oJ)B*{2?TEP z2}{sW@*Cx*a+ymPDlLoh#=ABw`8GQ4+F(H)S1}xf z$c>Bz6@DiY>$~q0^SDYGdWTn-KZzX5=l@|Ie>fY}vZR(Q`hplJBbD)Y^Dv!xSm()a zlM46R7806oq;rP{tOmWztC^ybn;QEnr^25$855ZNY22x(bH?Q4X+vuRvLTUPgnjs% zu-bS+Gb~-Z9gBR@%v^IbM*qO%pMLef+*Jb34U(jv86Rij+4 zhFwm3*7vV%=NVRA(i2UOKgoNibz9mf4+ZY5;G2qRPt$qp?QK_x?v~AO;;;YA*?KGP zQISxS{2`?_(w63pN2NuM-ce2cs8I5^=CEUVuA-)iuaDk;JTp9=wy!lbp$FfuA|0$b zseh_`t{6e)xiLQ}W*`|Qfs zY?Z*OEL%NqsqfjQ+~q;NqAWpAvx$+LTa{W{FE(WToNG~3;&$c=hN>uP!#GR|N(ys& z>qcGEKHD9nenF-jVBYNC@^Y_yz!SYpdAQ!+Z^bdcsOawcr2}-h7~?X;^$5FuXPC)u zs8huBe5DN6w_n;ij!9^I^Qd^mVYPXaEDzRrb|HjswK?wYn4D4|f6O(w<&1C1n~NnO z4*T5;6`Qjb4Rfv3HF4O*CD*j|Y1?eC%#wav1? zoz}N{(^XZX_trHRnKc%-%NzA=qqJYdb%?A z&O5Cu4*sd?BW7#Ikf)cM&8(Q_NQ~kIV?XVOcUh$Pe+O{B}fhbwuH)FR~A;~O79${LOD~08%#hp4vT3?KM{exER%B_ zJzrJd8^fAV6<-P;P~#2mHMJ+OKQ|p8^f>QpfR8q^z!AQl0iq$|1Jhun*>DTCvh7Qb z#>II#Y56|eKTeW_JXCAZcJ;DM5v#5K??TlHSSPaACK5r6Eq>vCGo_KS_aWYN z>P_v6e&!`q|ByhEPU)ac)N)H{2(EcOettuGk39*RN%`_;zZ8*B#{W(ae)Ta zs$o~AY~CM(NPGi@lz+g@P+j{_cb8BP6*r^@MFDb9Ie96l zqLkbnYgq*qS*VJvvLqC$0)-lk)ZPCNfPbL7k7vaH04V(n;9cwgiUI%(bWL^YwBT|7 E1Y4&@DgXcg diff --git a/public/favicon_old.png b/public/favicon_old.png new file mode 100644 index 0000000000000000000000000000000000000000..70dac3218a264e915d930db65031255d46fcc07c GIT binary patch literal 3322 zcmai1cQD-B9{;VfdI?$mDJh}^tHmNpl<2)j#OiIeB?Qa5qQ#9C^&;ve!i`{K^%h;Q zBGF>WMzEr{u-MDn%=_oPH*e<6neX|YZ~2@u^O^a6&ogsVJr+hjMgRa<4D@v@DH{Gu z=)shEIX@gmQ8ZrnOzr_dLpl@Lg_dFqyXjk+06?TD0K~=vz!}9AyAA-4p#ZP}2LP3P z0N@TPYO}aY34mRV^mKsBU!%11RTjm=5Tx%A0szw2e+lSGrA8RVNf&BhqDx1lk$`5b7^5oO8_X)T5TW`|(DAm8Q%j zqr!$pjPS-ep)+3Qk;0Qmf|I7&o*H4HhwD$?G%h=ub&xtpoeFgWx-3h5)I*&OXizPI zQnq)dXRX;{yFuv5%W>58W#(jt3rtVoZ`v^JG33oyQNk-t`TjyEH$I=xO;4t+ZfIXM z%MYO1r6LkC85r;8o?g=UZU=00*6{Zf_Sj^IR?A+tGAM7sdY#qOSjgarXxg4iuWm*% z)sM7_=^So)kjc#`XUKipyL27?;U8u)mcYlcV<>K9@vgC=)hiD7F&juVRhLir?=z)c zw0A41ScV~W6`y@2CrhuLgcWTkeEz`F@#i(A8G-o+vgEi{v0(Kq6 z@!UkQl=r`^-408$?cCHBCyC7J#N6_~CgX)=7W(*;!pt25I5mbStKu?j2XqysU1xUj zbM`yS<43-uOcqxYK92arVO-+b#fEP?urPpVH|3Qt)b^eIXn+`m5*_t0C36#d+E;>Nhr%Gm^4%oCK8r^?RF z2_i&SWFhOm%?~i^ZXF!$&r7TPhcS)zb2={uJ;mpD@_n8IQ;X8ah_5=qF|5+l%o;Ci z8d(JDYT;-T@l$0%(JD%+wk(QPz5z=5xnLyLFdSH2OVBjojbPe`3`}{oJ)B*{2?TEP z2}{sW@*Cx*a+ymPDlLoh#=ABw`8GQ4+F(H)S1}xf z$c>Bz6@DiY>$~q0^SDYGdWTn-KZzX5=l@|Ie>fY}vZR(Q`hplJBbD)Y^Dv!xSm()a zlM46R7806oq;rP{tOmWztC^ybn;QEnr^25$855ZNY22x(bH?Q4X+vuRvLTUPgnjs% zu-bS+Gb~-Z9gBR@%v^IbM*qO%pMLef+*Jb34U(jv86Rij+4 zhFwm3*7vV%=NVRA(i2UOKgoNibz9mf4+ZY5;G2qRPt$qp?QK_x?v~AO;;;YA*?KGP zQISxS{2`?_(w63pN2NuM-ce2cs8I5^=CEUVuA-)iuaDk;JTp9=wy!lbp$FfuA|0$b zseh_`t{6e)xiLQ}W*`|Qfs zY?Z*OEL%NqsqfjQ+~q;NqAWpAvx$+LTa{W{FE(WToNG~3;&$c=hN>uP!#GR|N(ys& z>qcGEKHD9nenF-jVBYNC@^Y_yz!SYpdAQ!+Z^bdcsOawcr2}-h7~?X;^$5FuXPC)u zs8huBe5DN6w_n;ij!9^I^Qd^mVYPXaEDzRrb|HjswK?wYn4D4|f6O(w<&1C1n~NnO z4*T5;6`Qjb4Rfv3HF4O*CD*j|Y1?eC%#wav1? zoz}N{(^XZX_trHRnKc%-%NzA=qqJYdb%?A z&O5Cu4*sd?BW7#Ikf)cM&8(Q_NQ~kIV?XVOcUh$Pe+O{B}fhbwuH)FR~A;~O79${LOD~08%#hp4vT3?KM{exER%B_ zJzrJd8^fAV6<-P;P~#2mHMJ+OKQ|p8^f>QpfR8q^z!AQl0iq$|1Jhun*>DTCvh7Qb z#>II#Y56|eKTeW_JXCAZcJ;DM5v#5K??TlHSSPaACK5r6Eq>vCGo_KS_aWYN z>P_v6e&!`q|ByhEPU)ac)N)H{2(EcOettuGk39*RN%`_;zZ8*B#{W(ae)Ta zs$o~AY~CM(NPGi@lz+g@P+j{_cb8BP6*r^@MFDb9Ie96l zqLkbnYgq*qS*VJvvLqC$0)-lk)ZPCNfPbL7k7vaH04V(n;9cwgiUI%(bWL^YwBT|7 E1Y4&@DgXcg literal 0 HcmV?d00001 From 160209e162c4b0fc2bdf12909ebff2ca00285c94 Mon Sep 17 00:00:00 2001 From: mnang Date: Thu, 11 Dec 2025 12:28:10 +0000 Subject: [PATCH 002/287] made navbars more consistent with SCSS website; added mobile navbar in pytch-website; enable mobile navbar under 1024px width --- src/components/NavBanner.tsx | 72 +++++++++++++++++++---------------- src/images/pytch.png | Bin 0 -> 21872 bytes src/pytch-navbar.scss | 53 +++++++++++++++++++++----- 3 files changed, 82 insertions(+), 43 deletions(-) create mode 100644 src/images/pytch.png diff --git a/src/components/NavBanner.tsx b/src/components/NavBanner.tsx index ad0168abb..732227ec9 100644 --- a/src/components/NavBanner.tsx +++ b/src/components/NavBanner.tsx @@ -8,6 +8,8 @@ import classNames from "classnames"; import "../pytch-navbar.scss"; import { IconProp } from "@fortawesome/fontawesome-svg-core"; +import pytchLogo from "../images/pytch.png"; + const NavBanner = () => { const [menuIsExpanded, setMenuIsExpanded] = useState(false); const menuRef = React.useRef(null); @@ -47,40 +49,44 @@ const NavBanner = () => { return (
-
- -

Pytch

- -
-
- +
+
+ + {"Pytch + {/*

Pytch

*/} + +
+
+ +
+
    +
  • + About +
  • +
  • + Lesson plans +
  • +
  • + Help +
  • +
  • + Tutorials +
  • +
  • + My projects +
  • +
  • + setMenuIsExpanded(false)} + > + + +
  • +
-
    -
  • - About -
  • -
  • - Lesson plans -
  • -
  • - Help -
  • -
  • - Tutorials -
  • -
  • - My projects -
  • -
  • - setMenuIsExpanded(false)} - > - - -
  • -
+
); }; diff --git a/src/images/pytch.png b/src/images/pytch.png new file mode 100644 index 0000000000000000000000000000000000000000..17b2760b78e86342633f7003072901f2c7cbf765 GIT binary patch literal 21872 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 z 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 TkSS%ti6Yfi;aBsnm<9fSp5jF3 literal 0 HcmV?d00001 diff --git a/src/pytch-navbar.scss b/src/pytch-navbar.scss index 793f82377..39fe6daae 100644 --- a/src/pytch-navbar.scss +++ b/src/pytch-navbar.scss @@ -1,18 +1,28 @@ @import "./pytch-variables.scss"; -$navbar-single-row-height: 3.5rem; +$navbar-single-row-height: 70px; +/* @mixin yellow-hover-white() { color: $pytch-colour-main-yellow; &:hover { color: white; } } +*/ + +@mixin white-hover-yellow() { + color: white; + &:hover { + color: $pytch-colour-main-yellow; + } +} .NavBar { display: flex; flex-direction: row; - justify-content: space-between; + //justify-content: space-between; + justify-content: center; align-items: center; min-height: $navbar-single-row-height; @@ -26,7 +36,8 @@ $navbar-single-row-height: 3.5rem; font-size: 1.5rem; font-weight: bold; font-family: $pytch-title-font; - @include yellow-hover-white(); + //@include yellow-hover-white(); + @include white-hover-yellow(); } h1, @@ -58,7 +69,7 @@ $navbar-single-row-height: 3.5rem; margin: 0px; padding-top: 1rem; - @media screen and (min-width: $width-breakpoint-md) { + @media screen and (min-width: $width-breakpoint-lg) { display: block; position: relative; min-height: auto; @@ -69,9 +80,10 @@ $navbar-single-row-height: 3.5rem; li { padding: 12px 0px; - font-size: 20px; + font-size: 1rem; - @include yellow-hover-white(); + //@include yellow-hover-white(); + @include white-hover-yellow(); cursor: pointer; user-select: none; @@ -79,9 +91,9 @@ $navbar-single-row-height: 3.5rem; color: inherit; } - @media screen and (min-width: $width-breakpoint-md) { + @media screen and (min-width: $width-breakpoint-lg) { display: inline-block; - padding: 12px; + padding: 20px; } } } @@ -89,11 +101,32 @@ $navbar-single-row-height: 3.5rem; .burger-menu { margin-right: 1rem; font-size: 32px; - @include yellow-hover-white(); + //@include yellow-hover-white(); + @include white-hover-yellow(); cursor: pointer; - @media screen and (min-width: $width-breakpoint-md) { + @media screen and (min-width: $width-breakpoint-lg) { display: none; } } } + +.NavBarContent { + background-color: $pytch-colour-main-blue; + max-width: 1200px; + width: 100%; + display: flex; + flex-direction: row; + //justify-content: space-between; + justify-content: center; + align-items: center; + padding: 0 0 0 20px; + + @media screen and (min-width: $width-breakpoint-lg) { + padding: 0 30px; + } +} + +.title-and-version { + margin-right: auto; +} \ No newline at end of file From ba097bee6cd7bc6be8e12aeb07183681fcc6d959 Mon Sep 17 00:00:00 2001 From: mnang Date: Fri, 12 Dec 2025 11:59:17 +0000 Subject: [PATCH 003/287] squash! made navbars more consistent with SCSS website; added mobile navbar in pytch-website; enable mobile navbar under 1024px width --- public/favicon_old.png | Bin 3322 -> 0 bytes src/components/NavBanner.tsx | 1 - src/pytch-navbar.scss | 24 ++++++++++-------------- 3 files changed, 10 insertions(+), 15 deletions(-) delete mode 100644 public/favicon_old.png diff --git a/public/favicon_old.png b/public/favicon_old.png deleted file mode 100644 index 70dac3218a264e915d930db65031255d46fcc07c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3322 zcmai1cQD-B9{;VfdI?$mDJh}^tHmNpl<2)j#OiIeB?Qa5qQ#9C^&;ve!i`{K^%h;Q zBGF>WMzEr{u-MDn%=_oPH*e<6neX|YZ~2@u^O^a6&ogsVJr+hjMgRa<4D@v@DH{Gu z=)shEIX@gmQ8ZrnOzr_dLpl@Lg_dFqyXjk+06?TD0K~=vz!}9AyAA-4p#ZP}2LP3P z0N@TPYO}aY34mRV^mKsBU!%11RTjm=5Tx%A0szw2e+lSGrA8RVNf&BhqDx1lk$`5b7^5oO8_X)T5TW`|(DAm8Q%j zqr!$pjPS-ep)+3Qk;0Qmf|I7&o*H4HhwD$?G%h=ub&xtpoeFgWx-3h5)I*&OXizPI zQnq)dXRX;{yFuv5%W>58W#(jt3rtVoZ`v^JG33oyQNk-t`TjyEH$I=xO;4t+ZfIXM z%MYO1r6LkC85r;8o?g=UZU=00*6{Zf_Sj^IR?A+tGAM7sdY#qOSjgarXxg4iuWm*% z)sM7_=^So)kjc#`XUKipyL27?;U8u)mcYlcV<>K9@vgC=)hiD7F&juVRhLir?=z)c zw0A41ScV~W6`y@2CrhuLgcWTkeEz`F@#i(A8G-o+vgEi{v0(Kq6 z@!UkQl=r`^-408$?cCHBCyC7J#N6_~CgX)=7W(*;!pt25I5mbStKu?j2XqysU1xUj zbM`yS<43-uOcqxYK92arVO-+b#fEP?urPpVH|3Qt)b^eIXn+`m5*_t0C36#d+E;>Nhr%Gm^4%oCK8r^?RF z2_i&SWFhOm%?~i^ZXF!$&r7TPhcS)zb2={uJ;mpD@_n8IQ;X8ah_5=qF|5+l%o;Ci z8d(JDYT;-T@l$0%(JD%+wk(QPz5z=5xnLyLFdSH2OVBjojbPe`3`}{oJ)B*{2?TEP z2}{sW@*Cx*a+ymPDlLoh#=ABw`8GQ4+F(H)S1}xf z$c>Bz6@DiY>$~q0^SDYGdWTn-KZzX5=l@|Ie>fY}vZR(Q`hplJBbD)Y^Dv!xSm()a zlM46R7806oq;rP{tOmWztC^ybn;QEnr^25$855ZNY22x(bH?Q4X+vuRvLTUPgnjs% zu-bS+Gb~-Z9gBR@%v^IbM*qO%pMLef+*Jb34U(jv86Rij+4 zhFwm3*7vV%=NVRA(i2UOKgoNibz9mf4+ZY5;G2qRPt$qp?QK_x?v~AO;;;YA*?KGP zQISxS{2`?_(w63pN2NuM-ce2cs8I5^=CEUVuA-)iuaDk;JTp9=wy!lbp$FfuA|0$b zseh_`t{6e)xiLQ}W*`|Qfs zY?Z*OEL%NqsqfjQ+~q;NqAWpAvx$+LTa{W{FE(WToNG~3;&$c=hN>uP!#GR|N(ys& z>qcGEKHD9nenF-jVBYNC@^Y_yz!SYpdAQ!+Z^bdcsOawcr2}-h7~?X;^$5FuXPC)u zs8huBe5DN6w_n;ij!9^I^Qd^mVYPXaEDzRrb|HjswK?wYn4D4|f6O(w<&1C1n~NnO z4*T5;6`Qjb4Rfv3HF4O*CD*j|Y1?eC%#wav1? zoz}N{(^XZX_trHRnKc%-%NzA=qqJYdb%?A z&O5Cu4*sd?BW7#Ikf)cM&8(Q_NQ~kIV?XVOcUh$Pe+O{B}fhbwuH)FR~A;~O79${LOD~08%#hp4vT3?KM{exER%B_ zJzrJd8^fAV6<-P;P~#2mHMJ+OKQ|p8^f>QpfR8q^z!AQl0iq$|1Jhun*>DTCvh7Qb z#>II#Y56|eKTeW_JXCAZcJ;DM5v#5K??TlHSSPaACK5r6Eq>vCGo_KS_aWYN z>P_v6e&!`q|ByhEPU)ac)N)H{2(EcOettuGk39*RN%`_;zZ8*B#{W(ae)Ta zs$o~AY~CM(NPGi@lz+g@P+j{_cb8BP6*r^@MFDb9Ie96l zqLkbnYgq*qS*VJvvLqC$0)-lk)ZPCNfPbL7k7vaH04V(n;9cwgiUI%(bWL^YwBT|7 E1Y4&@DgXcg diff --git a/src/components/NavBanner.tsx b/src/components/NavBanner.tsx index 732227ec9..b6e813176 100644 --- a/src/components/NavBanner.tsx +++ b/src/components/NavBanner.tsx @@ -53,7 +53,6 @@ const NavBanner = () => {
{"Pytch - {/*

Pytch

*/}
diff --git a/src/pytch-navbar.scss b/src/pytch-navbar.scss index 39fe6daae..a547e8b43 100644 --- a/src/pytch-navbar.scss +++ b/src/pytch-navbar.scss @@ -2,15 +2,6 @@ $navbar-single-row-height: 70px; -/* -@mixin yellow-hover-white() { - color: $pytch-colour-main-yellow; - &:hover { - color: white; - } -} -*/ - @mixin white-hover-yellow() { color: white; &:hover { @@ -21,7 +12,6 @@ $navbar-single-row-height: 70px; .NavBar { display: flex; flex-direction: row; - //justify-content: space-between; justify-content: center; align-items: center; @@ -36,7 +26,6 @@ $navbar-single-row-height: 70px; font-size: 1.5rem; font-weight: bold; font-family: $pytch-title-font; - //@include yellow-hover-white(); @include white-hover-yellow(); } @@ -82,7 +71,6 @@ $navbar-single-row-height: 70px; padding: 12px 0px; font-size: 1rem; - //@include yellow-hover-white(); @include white-hover-yellow(); cursor: pointer; user-select: none; @@ -101,7 +89,6 @@ $navbar-single-row-height: 70px; .burger-menu { margin-right: 1rem; font-size: 32px; - //@include yellow-hover-white(); @include white-hover-yellow(); cursor: pointer; @@ -117,7 +104,6 @@ $navbar-single-row-height: 70px; width: 100%; display: flex; flex-direction: row; - //justify-content: space-between; justify-content: center; align-items: center; padding: 0 0 0 20px; @@ -129,4 +115,14 @@ $navbar-single-row-height: 70px; .title-and-version { margin-right: auto; +} + +.NavBarContent ul li svg { + height: 1em; + margin-left: 5px; + margin-top: -9px; +} + +.NavBarContent ul li .contact-us-link svg { + margin: 0; } \ No newline at end of file From b34e193869820c7dc65214b86fe728a6a002923c Mon Sep 17 00:00:00 2001 From: mnang Date: Fri, 12 Dec 2025 12:02:02 +0000 Subject: [PATCH 004/287] added external link icons --- src/components/NavBanner.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/NavBanner.tsx b/src/components/NavBanner.tsx index b6e813176..64950dd31 100644 --- a/src/components/NavBanner.tsx +++ b/src/components/NavBanner.tsx @@ -60,10 +60,14 @@ const NavBanner = () => {