522a250e7d9580ef290d319086f39217b4eae0d4

Author
TheEdgeOfRage <git@theedgeofrage.com>
Committer
TheEdgeOfRage <git@theedgeofrage.com>
Date

Message

Add new logo and remove navbar collapse on mobile

Diff

This diff is truncated to protect this page.

  1diff --git a/assets/manifest.json b/assets/manifest.json
  2index 632b15acccf4cd6b80950415765afaedb4ec8271..bddd5c42acf799b365de43c0b501e4b48286bace 100644
  3--- a/assets/manifest.json
  4+++ b/assets/manifest.json
  5@@ -9,7 +9,7 @@
  6 	"orientation": "portrait-primary",
  7 	"icons": [
  8 		{
  9-			"src": "/assets/ytrssil-512.png",
 10+			"src": "/assets/ytrssil.png",
 11 			"sizes": "512x512",
 12 			"type": "image/png",
 13 			"purpose": "any maskable"
 14diff --git a/assets/simple.png b/assets/simple.png
 15new file mode 100644
 16index 0000000000000000000000000000000000000000..62ff4aa3750855c40a2e3c8b50e045e3e8c3f678
 17Binary files /dev/null and b/assets/simple.png differ
 18diff --git a/assets/simple.svg b/assets/simple.svg
 19new file mode 100644
 20index 0000000000000000000000000000000000000000..b15af109e6bb7391d4df4fe55a45b96b2aed1929
 21--- /dev/null
 22+++ b/assets/simple.svg
 23@@ -0,0 +1,103 @@
 24+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 25+<svg
 26+   id="Layer_1"
 27+   data-name="Layer 1"
 28+   viewBox="0 0 512 511.99999"
 29+   version="1.1"
 30+   sodipodi:docname="simple.svg"
 31+   inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
 32+   width="512"
 33+   height="512"
 34+   inkscape:export-filename="simple.png"
 35+   inkscape:export-xdpi="96"
 36+   inkscape:export-ydpi="96"
 37+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 38+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 39+   xmlns="http://www.w3.org/2000/svg"
 40+   xmlns:svg="http://www.w3.org/2000/svg">
 41+  <sodipodi:namedview
 42+     id="namedview7"
 43+     pagecolor="#ffffff"
 44+     bordercolor="#000000"
 45+     borderopacity="0.25"
 46+     inkscape:showpageshadow="2"
 47+     inkscape:pageopacity="0.0"
 48+     inkscape:pagecheckerboard="0"
 49+     inkscape:deskcolor="#d1d1d1"
 50+     inkscape:zoom="1.6062423"
 51+     inkscape:cx="318.44511"
 52+     inkscape:cy="235.95444"
 53+     inkscape:window-width="2560"
 54+     inkscape:window-height="1388"
 55+     inkscape:window-x="0"
 56+     inkscape:window-y="0"
 57+     inkscape:window-maximized="1"
 58+     inkscape:current-layer="Layer_1" />
 59+  <defs
 60+     id="defs1">
 61+    <style
 62+       id="style1">
 63+      .cls-1 {
 64+        fill: none;
 65+        stroke: red;
 66+        stroke-linecap: round;
 67+        stroke-miterlimit: 10;
 68+        stroke-width: 26px;
 69+      }
 70+
 71+      .cls-2 {
 72+        fill: red;
 73+      }
 74+    </style>
 75+  </defs>
 76+  <g
 77+     id="g2"
 78+     inkscape:export-filename="ytrssil.png"
 79+     inkscape:export-xdpi="155.82001"
 80+     inkscape:export-ydpi="155.82001"
 81+     transform="matrix(1.6720654,0,0,1.6720654,-353.9193,-185.64857)">
 82+    <path
 83+       class="cls-1"
 84+       d="m 276.78,344.19 c -24.65,-23.33 -40.02,-56.36 -40.02,-92.97 0,-70.7 57.31,-128.01 128.01,-128.01 70.7,0 128.01,57.31 128.01,128.01 0,36.63 -15.38,69.66 -40.04,92.99"
 85+       id="path1"
 86+       style="stroke:#e62e05;stroke-width:20;stroke-dasharray:none;stroke-opacity:1" />
 87+    <path
 88+       class="cls-1"
 89+       d="m 295.91,308.67 c -13,-15.56 -20.82,-35.6 -20.82,-57.46 0,-49.53 40.15,-89.68 89.68,-89.68 49.53,0 89.68,40.15 89.68,89.68 0,21.9 -7.85,41.97 -20.89,57.55"
 90+       id="path2"
 91+       style="stroke:#e62e05;stroke-width:20;stroke-dasharray:none;stroke-opacity:1" />
 92+  </g>
 93+  <path
 94+     class="cls-2"
 95+     d="M 195.37091,302.67813 V 159.01427 c 0,-7.07284 7.64134,-11.50381 13.77781,-7.97576 l 125.22098,71.83193 c 6.16993,3.54479 6.16993,12.42345 0,15.96823 L 209.14872,310.6706 c -6.13647,3.52806 -13.77781,-0.90292 -13.77781,-7.97575 z"
 96+     id="path3"
 97+     style="fill:#e62e05;fill-opacity:1;stroke-width:1.67207" />
 98+  <path
 99+     style="fill:none;fill-rule:nonzero;stroke:#e62e05;stroke-width:33.4413;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
100+     d="M 83.285086,455.15168 C 139.0537,453.86775 176.63966,406.13031 200.82758,345.74308"
101+     id="path8"
102+     sodipodi:nodetypes="cc" />
103+  <path
104+     style="fill:none;fill-rule:nonzero;stroke:#e62e05;stroke-width:33.4413;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
105+     d="m 162.19098,486.8027 c 58.57951,-0.8375 87.62198,-91.61576 93.04681,-127.49385 m 1.10411,-0.36803 c 4.15511,43.80715 44.87697,129.09956 93.44641,127.49383"
106+     id="path12"
107+     sodipodi:nodetypes="cccc" />
108+  <path
109+     style="fill:none;fill-rule:nonzero;stroke:#e62e05;stroke-width:33.4413;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
110+     d="m 310.96139,345.10717 c 17.63523,42.73521 55.53344,108.00736 116.85871,109.9552"
111+     id="path13"
112+     sodipodi:nodetypes="cc" />
113+  <path
114+     style="fill:none;fill-rule:nonzero;stroke:#e62e05;stroke-width:33.4413;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
115+     d="m 183.77321,387.88219 c 10.15082,61.55048 36.48534,98.62688 68.93522,103.75123"
116+     id="path14"
117+     sodipodi:nodetypes="cc" />
118+  <path
119+     style="fill:none;fill-rule:nonzero;stroke:#e62e05;stroke-width:33.4413;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
120+     d="m 331.30553,388.09366 c -8.10055,42.23137 -11.71102,49.88033 -28.10647,71.56734"
121+     id="path15"
122+     sodipodi:nodetypes="cc"
123diff --git a/assets/ytrssil.png b/assets/ytrssil.png
124index add60e40638219520fc6474b555839e107fc4425..a1920fda7b4dbc6e1c9723db3e72df5cd090faef 100644
125Binary files a/assets/ytrssil.png and b/assets/ytrssil.png differ
126diff --git a/assets/ytrssil.svg b/assets/ytrssil.svg
127index 5dbd9a3724ee09a9a9413af43088331cfb98a74e..ddcd7476a169f2966807939ac8cb3b642882db45 100644
128--- a/assets/ytrssil.svg
129+++ b/assets/ytrssil.svg
130@@ -2,10 +2,15 @@
131 <svg
132    id="Layer_1"
133    data-name="Layer 1"
134-   viewBox="0 0 725.46 559.32"
135+   viewBox="0 0 511.99998 511.99999"
136    version="1.1"
137-   sodipodi:docname="ytrssil-05.svg"
138+   sodipodi:docname="ytrssil.svg"
139    inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
140+   width="512"
141+   height="512"
142+   inkscape:export-filename="ytrssil.png"
143+   inkscape:export-xdpi="96"
144+   inkscape:export-ydpi="96"
145    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
146    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
147    xmlns="http://www.w3.org/2000/svg"
148@@ -21,10 +26,10 @@
149      inkscape:deskcolor="#d1d1d1"
150      showgrid="false"
151      inkscape:zoom="2.0632196"
152-     inkscape:cx="268.75472"
153-     inkscape:cy="312.13352"
154+     inkscape:cx="268.27004"
155+     inkscape:cy="253.972"
156      inkscape:window-width="2560"
157-     inkscape:window-height="1362"
158+     inkscape:window-height="1388"
159      inkscape:window-x="0"
160      inkscape:window-y="0"
161      inkscape:window-maximized="1"
162@@ -54,25 +59,27 @@
163     </style>
164   </defs>
165   <g
166-     id="g3">
167+     id="g3"
168+     transform="matrix(1.2061529,0,0,1.2061529,-182.18331,-74.863584)">
169     <path
170        class="cls-2"
171-       d="M479.74,379.9l9.62-8.95c25.09-29.13,40.26-67.04,40.26-108.5,0-91.86-74.47-166.33-166.33-166.33s-166.33,74.47-166.33,166.33c0,41.46,15.17,79.37,40.26,108.5l10.87,10.32"
172+       d="m 479.74,379.9 9.62,-8.95 c 25.09,-29.13 40.26,-67.04 40.26,-108.5 0,-91.86 -74.47,-166.33 -166.33,-166.33 -91.86,0 -166.33,74.47 -166.33,166.33 0,41.46 15.17,79.37 40.26,108.5 l 10.87,10.32"
173        id="path1"
174-       style="stroke:#e62900;stroke-opacity:1;stroke-width:20;stroke-dasharray:none" />
175+       style="stroke:#e62900;stroke-width:20;stroke-dasharray:none;stroke-opacity:1" />
176     <path
177        class="cls-2"
178-       d="M275.3,355.43c-24.65-23.33-40.02-56.36-40.02-92.97,0-70.7,57.31-128.01,128.01-128.01s128.01,57.31,128.01,128.01c0,36.63-15.38,69.66-40.04,92.99"
179+       d="m 275.3,355.43 c -24.65,-23.33 -40.02,-56.36 -40.02,-92.97 0,-70.7 57.31,-128.01 128.01,-128.01 70.7,0 128.01,57.31 128.01,128.01 0,36.63 -15.38,69.66 -40.04,92.99"
180        id="path2"
181-       style="stroke:#e62900;stroke-opacity:1;stroke-width:20;stroke-dasharray:none" />
182+       style="stroke:#e62900;stroke-width:20;stroke-dasharray:none;stroke-opacity:1" />
183     <path
184        class="cls-2"
185-       d="M294.42,319.92c-13-15.56-20.82-35.6-20.82-57.46,0-49.53,40.15-89.68,89.68-89.68s89.68,40.15,89.68,89.68c0,21.9-7.85,41.97-20.89,57.55"
186+       d="m 294.42,319.92 c -13,-15.56 -20.82,-35.6 -20.82,-57.46 0,-49.53 40.15,-89.68 89.68,-89.68 49.53,0 89.68,40.15 89.68,89.68 0,21.9 -7.85,41.97 -20.89,57.55"
187        id="path3"
188-       style="stroke:#e62900;stroke-opacity:1;stroke-width:20;stroke-dasharray:none" />
189+       style="stroke:#e62900;stroke-width:20;stroke-dasharray:none;stroke-opacity:1" />
190   </g>
191   <g
192-     id="g5">
193+     id="g5"
194+     transform="matrix(1.2061529,0,0,1.2061529,-182.18331,-74.863584)">
195     <path
196        style="fill:none;stroke:#e62900;stroke-width:20;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
197        d="m 234.34248,418.27831 c 44.34816,0.24234 76.57935,-42.40944 91.11973,-80.69912"
198@@ -106,9 +113,9 @@
199   </g>
200   <path
201      class="cls-3"
202-     d="M327.03,303.29v-85.92c0-4.23,4.57-6.88,8.24-4.77l74.89,42.96c3.69,2.12,3.69,7.43,0,9.55l-74.89,42.96c-3.67,2.11-8.24-.54-8.24-4.77Z"
203+     d="M 212.26489,290.95055 V 187.31789 c 0,-5.10203 5.51212,-8.29834 9.93871,-5.75336 l 90.32879,51.81634 c 4.4507,2.55705 4.4507,8.96172 0,11.51876 l -90.32879,51.81633 c -4.42659,2.54498 -9.93871,-0.65132 -9.93871,-5.75334 z"
204      id="path6"
205-     style="fill:#e62900;fill-opacity:1"
206+     style="fill:#e62900;fill-opacity:1;stroke-width:1.20615"
207      inkscape:export-filename="complex.png"
208      inkscape:export-xdpi="130.59"
209      inkscape:export-ydpi="130.59" />
210diff --git a/pages/main.templ b/pages/main.templ
211index c12172750c4aa4a53e14f35b8bff83262255c80b..43d062efd53549bbd5e341ebeb4efcb9bef4fe43 100644
212--- a/pages/main.templ
213+++ b/pages/main.templ
214@@ -9,7 +9,7 @@ templ BaseLayout(title string, route string) {
215 			<meta name="viewport" content="width=device-width, initial-scale=1"/>
216 			<meta name="description" content="YouTube RSS subscription feed app"/>
217 			<meta name="theme-color" content="#212529"/>
218-			<link rel="icon" type="image/png" href="/assets/ytrssil.png"/>
219+			<link rel="icon" type="image/png" href="/assets/simple.png"/>
220 			<link rel="apple-touch-icon" href="/assets/ytrssil.png"/>
221 			<link rel="manifest" href="/assets/manifest.json"/>
222 			<link rel="stylesheet" href="/assets/vendor/bootstrap.min.css"/>
223diff --git a/pages/main_templ.go b/pages/main_templ.go
224index 3d769e7a62d5f65394cb57cc408d426f6ce92970..99b6c16c4807a66bc14f5d4c56210cd3a5c1c2c8 100644
225--- a/pages/main_templ.go
226+++ b/pages/main_templ.go
227@@ -42,7 +42,7 @@ func BaseLayout(title string, route string) templ.Component {
228 		if templ_7745c5c3_Err != nil {
229 			return templ_7745c5c3_Err
230 		}
231diff --git a/pages/navbar.templ b/pages/navbar.templ
232index 292e03774ee177c460df1b3ae0bfec281f6e6bf4..044aa5610b30c06523579b1c352aecf6ecf3d50e 100644
233--- a/pages/navbar.templ
234+++ b/pages/navbar.templ
235@@ -28,64 +28,80 @@ templ navbar(route string) {
236 	<nav class="navbar navbar-expand-lg bg-body-tertiary">
237 		<div class="container-fluid">
238 			<a class="navbar-brand" href="/">
239-				<img src="/assets/ytrssil.png" alt="ytrssil" width="32" height="32"/>
240+				<img src="/assets/ytrssil.svg" alt="ytrssil" width="32" height="32"/>
241 			</a>
242-			<button
243-				type="button"
244-				class="btn btn-primary me-auto me-lg-2"
245-				onClick="window.location.reload();"
246-			><i class="bi bi-arrow-clockwise"></i></button>
247-			<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent">
248-				<span class="navbar-toggler-icon"></span>
249-			</button>
250 			if route != "auth" {
251-				<div class="collapse navbar-collapse" id="navbarSupportedContent">
252-					<ul class="navbar-nav me-auto mb-2 mb-lg-0">
253-						<li class="nav-item me-md-2 mt-2 mt-md-0">
254-							<button
255-								type="button"
256-								class="btn btn-outline-secondary"
257-								style="--bs-btn-color: var(--bs-body-color);"
258-								data-bs-toggle="modal"
259-								data-bs-target="#subscription-modal"
260-							>
261-								Subscribe <i class="bi bi-bookmark-plus"></i>
262-							</button>
263+				<ul id="nav-buttons" class="navbar-nav me-auto mb-0 flex-row">
264+					<li class="nav-item me-1 me-lg-2">
265+						<button
266+							type="button"
267+							class="btn btn-primary"
268+							onClick="window.location.reload();"
269+						><i class="bi bi-arrow-clockwise"></i></button>
270+					</li>
271+					<li class="nav-item me-1 me-lg-2">
272+						<button
273+							type="button"
274+							class="btn btn-outline-secondary"
275+							style="--bs-btn-color: var(--bs-body-color);"
276+							data-bs-toggle="modal"
277+							data-bs-target="#subscription-modal"
278+						>
279+							<span class="d-none d-lg-inline">Subscribe </span><i class="bi bi-bookmark-plus"></i>
280+						</button>
281+					</li>
282+					<li class="nav-item me-1 me-lg-2">
283+						<button
284+							type="button"
285+							class="btn btn-outline-secondary"
286+							style="--bs-btn-color: var(--bs-body-color);"
287+							hx-post="/fetch"
288+							hx-swap="none"
289+							hx-on::after-settle="window.location.reload()"
290+						>
291+							<span class="d-none d-lg-inline">Fetch </span><i class="bi bi-cloud-download"></i>
292+						</button>
293+					</li>
294+					<li class="nav-item me-1 me-lg-2">
295+						<button
296+							type="button"
297+							class="btn btn-outline-secondary"
298+							style="--bs-btn-color: var(--bs-body-color);"
299+							data-bs-toggle="modal"
300+							data-bs-target="#add-video-modal"
301+						>
302+							<span class="d-none d-lg-inline">Add Video </span><i class="bi bi-camera-video"></i>
303+						</button>
304+					</li>
305+					for _, button := range navButtons(route) {
306+						<li class="nav-item me-1 me-lg-2">
307+							<a href={ button.link } class="btn btn-outline-secondary" style="--bs-btn-color: var(--bs-body-color);">
308+								<span class="d-none d-lg-inline">{ button.text }</span> <i class={ fmt.Sprintf("bi bi-%s", button.icon) }></i>
309+							</a>
310 						</li>
311-						<li class="nav-item me-md-2 mt-2 mt-md-0">
312-							<button
313-								type="button"
314-								class="btn btn-outline-secondary"
315-								style="--bs-btn-color: var(--bs-body-color);"
316-								hx-post="/fetch"
317-								hx-swap="none"
318-								hx-on::after-settle="window.location.reload()"
319-							>
320-								Fetch <i class="bi bi-cloud-download"></i>
321-							</button>
322-						</li>
323-						<li class="nav-item me-md-2 mt-2 mt-md-0">
324-							<button
325-								type="button"
326-								class="btn btn-outline-secondary"
327-								style="--bs-btn-color: var(--bs-body-color);"
328-								data-bs-toggle="modal"
329-								data-bs-target="#add-video-modal"
330-							>
331-								Add Video <i class="bi bi-camera-video"></i>
332-							</button>
333-						</li>
334-						for _, button := range navButtons(route) {
335diff --git a/pages/navbar_templ.go b/pages/navbar_templ.go
336index d4d647bbb6e9f426062f5206556f4d2ce1981ba7..81db3114eb13f5508000cd607d0e0de6fd0037a9 100644
337--- a/pages/navbar_templ.go
338+++ b/pages/navbar_templ.go
339@@ -53,43 +53,43 @@ func navbar(route string) templ.Component {
340 			templ_7745c5c3_Var1 = templ.NopComponent
341 		}
342 		ctx = templ.ClearChildren(ctx)