nandi/gleanpublic⑂ Fork 0
⑂ bc9e3fb
Commits
⬇ Clone ▾
git clone https://git.rickub.com/nandi/glean.git
git clone ssh://git@rickub.com/nandi/glean.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Improve logo and footerUnverified

Julien Robert committed 2026-04-28T22:58:15+02:00 Browse files
bc9e3fb parent: 6bf6dbf
modified Makefile +6 -1
@@ -37,13 +37,18 @@ css:
3737 css-watch:
3838 npx tailwindcss -i ./static/input.css -o ./static/output.css --watch
3939
40+.PHONY: icons
41+icons:
42+ magick static/favicon.svg -background none -density 1200 -resize 512x512 -depth 8 PNG32:static/favicon.png
43+ magick static/favicon.svg -background none -density 1200 -resize 180x180 -depth 8 PNG32:static/apple-touch-icon.png
44+
4045 .PHONY: test
4146 test:
4247 go test -tags fts5 ./...
4348
4449 .PHONY: clean
4550 clean:
46- rm -f glean glean.db static/output.css
51+ rm -f glean glean.db static/output.css static/favicon.png static/apple-touch-icon.png
4752
4853 .PHONY: docker-build
4954 docker-build:
@@ -37,13 +37,18 @@ css:
37 css-watch:37 css-watch:
38 npx tailwindcss -i ./static/input.css -o ./static/output.css --watch38 npx tailwindcss -i ./static/input.css -o ./static/output.css --watch
39 39
40+.PHONY: icons
41+icons:
42+ magick static/favicon.svg -background none -density 1200 -resize 512x512 -depth 8 PNG32:static/favicon.png
43+ magick static/favicon.svg -background none -density 1200 -resize 180x180 -depth 8 PNG32:static/apple-touch-icon.png
44+
40 .PHONY: test45 .PHONY: test
41 test:46 test:
42 go test -tags fts5 ./...47 go test -tags fts5 ./...
43 48
44 .PHONY: clean49 .PHONY: clean
45 clean:50 clean:
46- rm -f glean glean.db static/output.css51+ rm -f glean glean.db static/output.css static/favicon.png static/apple-touch-icon.png
47 52
48 .PHONY: docker-build53 .PHONY: docker-build
49 docker-build:54 docker-build:
modified docs/design.md +2 -2
@@ -156,8 +156,8 @@ All custom colors live under the `spot` namespace in `tailwind.config.js`. CSS v
156156 - **CSS build:** `make css` (minified) or `make css-watch` (dev with live reload)
157157 - **Source:** `static/input.css` — contains `@tailwind` directives, CSS variables for themes, `@layer components` for article-body styles, and base utilities
158158 - **Output:** `static/output.css` (gitignored, rebuilt on deploy)
159-- **Favicon:** `static/favicon.svg` — wheat stalk SVG on House Green background
160-- **Logo:** Inline SVG in base.html sidebar and index.html hero
159+- **Favicon:** `static/favicon.svg` — bee logo (gradient green background, rounded rect). `static/favicon.png` — 512x512 raster fallback. Both linked in `base.html` `<head>`.
160+- **Logo:** `<img>` referencing `/static/favicon.svg`, defined in `partials/logo.html` (`logo-icon`, `logo-link`, `logo-text` templates).
161161
162162 ## 8. Page Structure
163163
@@ -156,8 +156,8 @@ All custom colors live under the `spot` namespace in `tailwind.config.js`. CSS v
156 - **CSS build:** `make css` (minified) or `make css-watch` (dev with live reload)156 - **CSS build:** `make css` (minified) or `make css-watch` (dev with live reload)
157 - **Source:** `static/input.css` — contains `@tailwind` directives, CSS variables for themes, `@layer components` for article-body styles, and base utilities157 - **Source:** `static/input.css` — contains `@tailwind` directives, CSS variables for themes, `@layer components` for article-body styles, and base utilities
158 - **Output:** `static/output.css` (gitignored, rebuilt on deploy)158 - **Output:** `static/output.css` (gitignored, rebuilt on deploy)
159-- **Favicon:** `static/favicon.svg` — wheat stalk SVG on House Green background159+- **Favicon:** `static/favicon.svg` — bee logo (gradient green background, rounded rect). `static/favicon.png` — 512x512 raster fallback. Both linked in `base.html` `<head>`.
160-- **Logo:** Inline SVG in base.html sidebar and index.html hero160+- **Logo:** `<img>` referencing `/static/favicon.svg`, defined in `partials/logo.html` (`logo-icon`, `logo-link`, `logo-text` templates).
161 161
162 ## 8. Page Structure162 ## 8. Page Structure
163 163
modified internal/tmpl/base.html +19 -16
@@ -28,10 +28,16 @@
2828 </script>
2929 <meta property="og:title" content="Glean">
3030 <meta property="og:description" content="A social RSS reader on the AT Protocol.">
31- <meta property="og:image" content="/static/favicon.svg">
31+ <meta property="og:image" content="/static/banner.png">
3232 <meta property="og:type" content="website">
3333 <meta property="og:site_name" content="Glean">
34+ <link rel="icon" type="image/png" sizes="512x512" href="/static/favicon.png">
3435 <link rel="icon" type="image/svg+xml" href="/static/favicon.svg">
36+ <link rel="apple-touch-icon" href="/static/apple-touch-icon.png">
37+ <meta name="theme-color" content="#00754A">
38+ <meta name="apple-mobile-web-app-capable" content="yes">
39+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
40+ <link rel="manifest" href="/static/manifest.json">
3541 <link rel="preconnect" href="https://fonts.googleapis.com">
3642 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
3743 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
@@ -139,7 +145,7 @@
139145 <main id="main-content" class="{{if or .User (or (eq .ActivePath "/trending") (eq .ActivePath "/stats"))}}lg:ml-60 pb-20 lg:pb-0{{end}} flex-1 min-h-screen flex flex-col">
140146 {{if or .User (or (eq .ActivePath "/trending") (eq .ActivePath "/stats"))}}
141147 <div class="lg:hidden bg-spot-surface border-b border-spot-divider px-4 py-3 flex items-center justify-between sticky top-0 z-20">
142- {{template "logo-text"}}
148+ {{template "logo-link"}}
143149 {{if .User}}
144150 <a href="/profile/{{.User.DID}}" class="flex items-center gap-2">
145151 {{if .User.AvatarURL}}<img src="{{.User.AvatarURL}}" class="w-7 h-7 rounded-full">{{end}}
@@ -155,12 +161,8 @@
155161 </div>
156162 <footer class="mt-auto">
157163 <div class="w-full bg-spot-surface border-t border-spot-divider">
158- <div class="max-w-6xl mx-auto px-4 lg:px-8 py-8">
159- <div class="hidden md:grid md:grid-cols-[auto_1fr_auto] md:gap-12 md:items-start">
160- <div>
161- {{template "logo-text"}}
162- <p class="text-xs text-spot-secondary mt-1 max-w-[200px]">A social RSS reader<br>on the AT Protocol.</p>
163- </div>
164+ <div class="max-w-6xl mx-auto px-4 lg:px-8 py-6 lg:py-8">
165+ <div class="hidden md:grid md:grid-cols-[2fr_1fr] md:gap-8 md:items-start">
164166 <div class="grid grid-cols-3 gap-8">
165167 <div class="flex flex-col gap-1.5">
166168 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Browse</div>
@@ -204,33 +206,32 @@
204206 </button>
205207 <button onclick="document.getElementById('shortcuts-dialog').showModal()" class="text-xs text-spot-secondary hover:text-spot-text hover:underline inline-flex gap-1.5 items-center transition text-left">
206208 <svg class="w-3.5 h-3.5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"/></svg>
207- Keyboard shortcuts
209+ Shortcuts
208210 </button>
209211 </div>
210212 </div>
211213 <div class="text-right">
212- <div class="text-xs text-spot-secondary">&copy; {{now.Format "2006"}} <a href="https://bsky.app/profile/julien.rbrt.fr">julien.rbrt.fr</a></div>
214+ <div class="text-xs text-spot-secondary">&copy; {{now.Format "2006"}} <a href="https://bsky.app/profile/julien.rbrt.fr" class="hover:text-spot-text transition">julien.rbrt.fr</a></div>
213215 <div class="text-[10px] text-spot-secondary mt-0.5">Made in Europe &#127466;&#127482;</div>
214216 </div>
215217 </div>
216218
217- <div class="md:hidden flex flex-col gap-6">
218- {{template "logo-text"}}
219+ <div class="md:hidden flex flex-col gap-5">
219220 <div class="grid grid-cols-2 gap-6">
220221 <div class="flex flex-col gap-1.5">
221222 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Browse</div>
222223 <a href="/dashboard" class="text-xs text-spot-secondary hover:text-spot-text transition">Dashboard</a>
223224 <a href="/trending" class="text-xs text-spot-secondary hover:text-spot-text transition">Trending</a>
225+ <a href="/articles" class="text-xs text-spot-secondary hover:text-spot-text transition">Articles</a>
224226 </div>
225227 <div class="flex flex-col gap-1.5">
226228 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Library</div>
227- <a href="/articles" class="text-xs text-spot-secondary hover:text-spot-text transition">Articles</a>
228229 <a href="/feeds" class="text-xs text-spot-secondary hover:text-spot-text transition">Feeds</a>
229230 <a href="/library" class="text-xs text-spot-secondary hover:text-spot-text transition">Library</a>
230231 </div>
231232 </div>
232- <div class="flex flex-col gap-3">
233- <div class="flex items-center gap-4">
233+ <div class="border-t border-spot-divider pt-4">
234+ <div class="flex flex-wrap items-center gap-3">
234235 <button onclick="toggleTheme()" class="text-xs text-spot-secondary hover:text-spot-text inline-flex gap-1.5 items-center transition">
235236 <svg class="w-3.5 h-3.5 theme-icon-dark" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"/></svg>
236237 <svg class="w-3.5 h-3.5 theme-icon-light hidden" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"/></svg>
@@ -244,7 +245,9 @@
244245 <span class="shape-text">Squared</span>
245246 </button>
246247 </div>
247- <span class="text-xs text-spot-secondary">&copy; {{now.Format "2006"}} <a href="https://bsky.app/profile/julien.rbrt.fr">julien.rbrt.fr</a> &middot; Made in Europe &#127466;&#127482;</span>
248+ <div class="border-t border-spot-divider mt-4 pt-3">
249+ <span class="text-xs text-spot-secondary">&copy; {{now.Format "2006"}} <a href="https://bsky.app/profile/julien.rbrt.fr" class="hover:text-spot-text transition">julien.rbrt.fr</a> &middot; Made in Europe &#127466;&#127482;</span>
250+ </div>
248251 </div>
249252 </div>
250253 </div>
@@ -28,10 +28,16 @@
28 </script>28 </script>
29 <meta property="og:title" content="Glean">29 <meta property="og:title" content="Glean">
30 <meta property="og:description" content="A social RSS reader on the AT Protocol.">30 <meta property="og:description" content="A social RSS reader on the AT Protocol.">
31- <meta property="og:image" content="/static/favicon.svg">31+ <meta property="og:image" content="/static/banner.png">
32 <meta property="og:type" content="website">32 <meta property="og:type" content="website">
33 <meta property="og:site_name" content="Glean">33 <meta property="og:site_name" content="Glean">
34+ <link rel="icon" type="image/png" sizes="512x512" href="/static/favicon.png">
34 <link rel="icon" type="image/svg+xml" href="/static/favicon.svg">35 <link rel="icon" type="image/svg+xml" href="/static/favicon.svg">
36+ <link rel="apple-touch-icon" href="/static/apple-touch-icon.png">
37+ <meta name="theme-color" content="#00754A">
38+ <meta name="apple-mobile-web-app-capable" content="yes">
39+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
40+ <link rel="manifest" href="/static/manifest.json">
35 <link rel="preconnect" href="https://fonts.googleapis.com">41 <link rel="preconnect" href="https://fonts.googleapis.com">
36 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>42 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
37 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">43 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
@@ -139,7 +145,7 @@
139 <main id="main-content" class="{{if or .User (or (eq .ActivePath "/trending") (eq .ActivePath "/stats"))}}lg:ml-60 pb-20 lg:pb-0{{end}} flex-1 min-h-screen flex flex-col">145 <main id="main-content" class="{{if or .User (or (eq .ActivePath "/trending") (eq .ActivePath "/stats"))}}lg:ml-60 pb-20 lg:pb-0{{end}} flex-1 min-h-screen flex flex-col">
140 {{if or .User (or (eq .ActivePath "/trending") (eq .ActivePath "/stats"))}}146 {{if or .User (or (eq .ActivePath "/trending") (eq .ActivePath "/stats"))}}
141 <div class="lg:hidden bg-spot-surface border-b border-spot-divider px-4 py-3 flex items-center justify-between sticky top-0 z-20">147 <div class="lg:hidden bg-spot-surface border-b border-spot-divider px-4 py-3 flex items-center justify-between sticky top-0 z-20">
142- {{template "logo-text"}}148+ {{template "logo-link"}}
143 {{if .User}}149 {{if .User}}
144 <a href="/profile/{{.User.DID}}" class="flex items-center gap-2">150 <a href="/profile/{{.User.DID}}" class="flex items-center gap-2">
145 {{if .User.AvatarURL}}<img src="{{.User.AvatarURL}}" class="w-7 h-7 rounded-full">{{end}}151 {{if .User.AvatarURL}}<img src="{{.User.AvatarURL}}" class="w-7 h-7 rounded-full">{{end}}
@@ -155,12 +161,8 @@
155 </div>161 </div>
156 <footer class="mt-auto">162 <footer class="mt-auto">
157 <div class="w-full bg-spot-surface border-t border-spot-divider">163 <div class="w-full bg-spot-surface border-t border-spot-divider">
158- <div class="max-w-6xl mx-auto px-4 lg:px-8 py-8">164+ <div class="max-w-6xl mx-auto px-4 lg:px-8 py-6 lg:py-8">
159- <div class="hidden md:grid md:grid-cols-[auto_1fr_auto] md:gap-12 md:items-start">165+ <div class="hidden md:grid md:grid-cols-[2fr_1fr] md:gap-8 md:items-start">
160- <div>
161- {{template "logo-text"}}
162- <p class="text-xs text-spot-secondary mt-1 max-w-[200px]">A social RSS reader<br>on the AT Protocol.</p>
163- </div>
164 <div class="grid grid-cols-3 gap-8">166 <div class="grid grid-cols-3 gap-8">
165 <div class="flex flex-col gap-1.5">167 <div class="flex flex-col gap-1.5">
166 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Browse</div>168 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Browse</div>
@@ -204,33 +206,32 @@
204 </button>206 </button>
205 <button onclick="document.getElementById('shortcuts-dialog').showModal()" class="text-xs text-spot-secondary hover:text-spot-text hover:underline inline-flex gap-1.5 items-center transition text-left">207 <button onclick="document.getElementById('shortcuts-dialog').showModal()" class="text-xs text-spot-secondary hover:text-spot-text hover:underline inline-flex gap-1.5 items-center transition text-left">
206 <svg class="w-3.5 h-3.5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"/></svg>208 <svg class="w-3.5 h-3.5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"/></svg>
207- Keyboard shortcuts209+ Shortcuts
208 </button>210 </button>
209 </div>211 </div>
210 </div>212 </div>
211 <div class="text-right">213 <div class="text-right">
212- <div class="text-xs text-spot-secondary">&copy; {{now.Format "2006"}} <a href="https://bsky.app/profile/julien.rbrt.fr">julien.rbrt.fr</a></div>214+ <div class="text-xs text-spot-secondary">&copy; {{now.Format "2006"}} <a href="https://bsky.app/profile/julien.rbrt.fr" class="hover:text-spot-text transition">julien.rbrt.fr</a></div>
213 <div class="text-[10px] text-spot-secondary mt-0.5">Made in Europe &#127466;&#127482;</div>215 <div class="text-[10px] text-spot-secondary mt-0.5">Made in Europe &#127466;&#127482;</div>
214 </div>216 </div>
215 </div>217 </div>
216 218
217- <div class="md:hidden flex flex-col gap-6">219+ <div class="md:hidden flex flex-col gap-5">
218- {{template "logo-text"}}
219 <div class="grid grid-cols-2 gap-6">220 <div class="grid grid-cols-2 gap-6">
220 <div class="flex flex-col gap-1.5">221 <div class="flex flex-col gap-1.5">
221 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Browse</div>222 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Browse</div>
222 <a href="/dashboard" class="text-xs text-spot-secondary hover:text-spot-text transition">Dashboard</a>223 <a href="/dashboard" class="text-xs text-spot-secondary hover:text-spot-text transition">Dashboard</a>
223 <a href="/trending" class="text-xs text-spot-secondary hover:text-spot-text transition">Trending</a>224 <a href="/trending" class="text-xs text-spot-secondary hover:text-spot-text transition">Trending</a>
225+ <a href="/articles" class="text-xs text-spot-secondary hover:text-spot-text transition">Articles</a>
224 </div>226 </div>
225 <div class="flex flex-col gap-1.5">227 <div class="flex flex-col gap-1.5">
226 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Library</div>228 <div class="text-spot-text font-bold text-xs uppercase tracking-wide mb-1">Library</div>
227- <a href="/articles" class="text-xs text-spot-secondary hover:text-spot-text transition">Articles</a>
228 <a href="/feeds" class="text-xs text-spot-secondary hover:text-spot-text transition">Feeds</a>229 <a href="/feeds" class="text-xs text-spot-secondary hover:text-spot-text transition">Feeds</a>
229 <a href="/library" class="text-xs text-spot-secondary hover:text-spot-text transition">Library</a>230 <a href="/library" class="text-xs text-spot-secondary hover:text-spot-text transition">Library</a>
230 </div>231 </div>
231 </div>232 </div>
232- <div class="flex flex-col gap-3">233+ <div class="border-t border-spot-divider pt-4">
233- <div class="flex items-center gap-4">234+ <div class="flex flex-wrap items-center gap-3">
234 <button onclick="toggleTheme()" class="text-xs text-spot-secondary hover:text-spot-text inline-flex gap-1.5 items-center transition">235 <button onclick="toggleTheme()" class="text-xs text-spot-secondary hover:text-spot-text inline-flex gap-1.5 items-center transition">
235 <svg class="w-3.5 h-3.5 theme-icon-dark" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"/></svg>236 <svg class="w-3.5 h-3.5 theme-icon-dark" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"/></svg>
236 <svg class="w-3.5 h-3.5 theme-icon-light hidden" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"/></svg>237 <svg class="w-3.5 h-3.5 theme-icon-light hidden" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"/></svg>
@@ -244,7 +245,9 @@
244 <span class="shape-text">Squared</span>245 <span class="shape-text">Squared</span>
245 </button>246 </button>
246 </div>247 </div>
247- <span class="text-xs text-spot-secondary">&copy; {{now.Format "2006"}} <a href="https://bsky.app/profile/julien.rbrt.fr">julien.rbrt.fr</a> &middot; Made in Europe &#127466;&#127482;</span>248+ <div class="border-t border-spot-divider mt-4 pt-3">
249+ <span class="text-xs text-spot-secondary">&copy; {{now.Format "2006"}} <a href="https://bsky.app/profile/julien.rbrt.fr" class="hover:text-spot-text transition">julien.rbrt.fr</a> &middot; Made in Europe &#127466;&#127482;</span>
250+ </div>
248 </div>251 </div>
249 </div>252 </div>
250 </div>253 </div>
modified internal/tmpl/login.html +1 -1
@@ -2,7 +2,7 @@
22 <div class="max-w-md mx-auto mt-20">
33 <div class="bg-spot-surface rounded-xl shadow-spot-heavy p-8">
44 <div class="flex justify-center mb-6">
5- <span class="w-14 h-14">{{template "logo-icon"}}</span>
5+ <a href="/" class="w-14 h-14 block">{{template "logo-icon"}}</a>
66 </div>
77 <h1 class="text-2xl font-bold text-spot-text mb-2 text-center">Sign in to Glean</h1>
88 <p class="text-spot-secondary text-sm mb-6 text-center">Enter your handle.</p>
@@ -2,7 +2,7 @@
2 <div class="max-w-md mx-auto mt-20">2 <div class="max-w-md mx-auto mt-20">
3 <div class="bg-spot-surface rounded-xl shadow-spot-heavy p-8">3 <div class="bg-spot-surface rounded-xl shadow-spot-heavy p-8">
4 <div class="flex justify-center mb-6">4 <div class="flex justify-center mb-6">
5- <span class="w-14 h-14">{{template "logo-icon"}}</span>5+ <a href="/" class="w-14 h-14 block">{{template "logo-icon"}}</a>
6 </div>6 </div>
7 <h1 class="text-2xl font-bold text-spot-text mb-2 text-center">Sign in to Glean</h1>7 <h1 class="text-2xl font-bold text-spot-text mb-2 text-center">Sign in to Glean</h1>
8 <p class="text-spot-secondary text-sm mb-6 text-center">Enter your handle.</p>8 <p class="text-spot-secondary text-sm mb-6 text-center">Enter your handle.</p>
modified internal/tmpl/partials/logo.html +4 -20
@@ -1,21 +1,5 @@
1-{{define "logo-icon"}}<svg class="w-full h-full" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2- <rect width="32" height="32" rx="8" fill="#00754A"/>
3- <ellipse cx="16" cy="20" rx="5.5" ry="6" fill="#fff"/>
4- <path d="M10.5 19.5c-2.5-1-5.5-4-5-7.5.2-1.2 1-1.8 1.8-1.5 2 .7 3.5 4 3.8 7" fill="#fff" fill-opacity=".5"/>
5- <path d="M21.5 19.5c2.5-1 5.5-4 5-7.5-.2-1.2-1-1.8-1.8-1.5-2 .7-3.5 4-3.8 7" fill="#fff" fill-opacity=".5"/>
6- <line x1="13" y1="17" x2="19" y2="17" stroke="#00754A" stroke-width="1.2"/>
7- <line x1="12.5" y1="20" x2="19.5" y2="20" stroke="#00754A" stroke-width="1.2"/>
8- <line x1="13" y1="23" x2="19" y2="23" stroke="#00754A" stroke-width="1.2"/>
9- <circle cx="13.5" cy="11" r="1.8" fill="#fff"/>
10- <circle cx="18.5" cy="11" r="1.8" fill="#fff"/>
11- <line x1="13.5" y1="9.2" x2="12" y2="6.5" stroke="#fff" stroke-width="1.3" stroke-linecap="round"/>
12- <line x1="18.5" y1="9.2" x2="20" y2="6.5" stroke="#fff" stroke-width="1.3" stroke-linecap="round"/>
13- <path d="M13 26c.5 1 1.5 1.5 3 1.5s2.5-.5 3-1.5" stroke="#fff" stroke-width="1.2" stroke-linecap="round" fill="none"/>
14-</svg>{{end}}
1+{{define "logo-icon"}}<img src="/static/favicon.svg" class="w-full h-full" alt="Glean">{{end}}
152
16-{{define "logo-link"}}<a href="/" class="text-spot-green font-bold text-xl tracking-tight flex items-center gap-2">
17- <span class="w-7 h-7">{{template "logo-icon"}}</span>
18- <span class="font-bold text-xl text-spot-text">Glean</span>
19-</a>{{end}}
20-
21-{{define "logo-text"}}<a href="/" class="text-spot-green font-bold text-lg tracking-tight"><span class="font-bold text-xl text-spot-text">Glean</span>.at</a>{{end}}
3+{{define "logo-link"}}<a href="/" class="font-bold text-xl tracking-tight flex items-center gap-2">
4+ <span class="w-7 h-7">{{template "logo-icon"}}</span><span class="text-spot-text">Glean</span>
5+</a>{{end}}
\ No newline at end of file
@@ -1,21 +1,5 @@
1-{{define "logo-icon"}}<svg class="w-full h-full" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">1+{{define "logo-icon"}}<img src="/static/favicon.svg" class="w-full h-full" alt="Glean">{{end}}
2- <rect width="32" height="32" rx="8" fill="#00754A"/>
3- <ellipse cx="16" cy="20" rx="5.5" ry="6" fill="#fff"/>
4- <path d="M10.5 19.5c-2.5-1-5.5-4-5-7.5.2-1.2 1-1.8 1.8-1.5 2 .7 3.5 4 3.8 7" fill="#fff" fill-opacity=".5"/>
5- <path d="M21.5 19.5c2.5-1 5.5-4 5-7.5-.2-1.2-1-1.8-1.8-1.5-2 .7-3.5 4-3.8 7" fill="#fff" fill-opacity=".5"/>
6- <line x1="13" y1="17" x2="19" y2="17" stroke="#00754A" stroke-width="1.2"/>
7- <line x1="12.5" y1="20" x2="19.5" y2="20" stroke="#00754A" stroke-width="1.2"/>
8- <line x1="13" y1="23" x2="19" y2="23" stroke="#00754A" stroke-width="1.2"/>
9- <circle cx="13.5" cy="11" r="1.8" fill="#fff"/>
10- <circle cx="18.5" cy="11" r="1.8" fill="#fff"/>
11- <line x1="13.5" y1="9.2" x2="12" y2="6.5" stroke="#fff" stroke-width="1.3" stroke-linecap="round"/>
12- <line x1="18.5" y1="9.2" x2="20" y2="6.5" stroke="#fff" stroke-width="1.3" stroke-linecap="round"/>
13- <path d="M13 26c.5 1 1.5 1.5 3 1.5s2.5-.5 3-1.5" stroke="#fff" stroke-width="1.2" stroke-linecap="round" fill="none"/>
14-</svg>{{end}}
15 2
16-{{define "logo-link"}}<a href="/" class="text-spot-green font-bold text-xl tracking-tight flex items-center gap-2">3+{{define "logo-link"}}<a href="/" class="font-bold text-xl tracking-tight flex items-center gap-2">
17- <span class="w-7 h-7">{{template "logo-icon"}}</span>4+ <span class="w-7 h-7">{{template "logo-icon"}}</span><span class="text-spot-text">Glean</span>
18- <span class="font-bold text-xl text-spot-text">Glean</span>5+</a>{{end}}
19-</a>{{end}}
20-
21-{{define "logo-text"}}<a href="/" class="text-spot-green font-bold text-lg tracking-tight"><span class="font-bold text-xl text-spot-text">Glean</span>.at</a>{{end}}
\ No newline at end of file\ No newline at end of file
added static/apple-touch-icon.png +0 -0
new file mode 100644
Binary files /dev/null and b/static/apple-touch-icon.png differ
new file mode 100644
Binary files /dev/null and b/static/apple-touch-icon.png differBinary files /dev/null and b/static/apple-touch-icon.png differ
added static/banner.png +0 -0
new file mode 100644
Binary files /dev/null and b/static/banner.png differ
new file mode 100644
Binary files /dev/null and b/static/banner.png differBinary files /dev/null and b/static/banner.png differ
modified static/favicon.png +0 -0
Binary files a/static/favicon.png and b/static/favicon.png differ
Binary files a/static/favicon.png and b/static/favicon.png differBinary files a/static/favicon.png and b/static/favicon.png differ
modified static/favicon.svg +25 -13
@@ -1,14 +1,26 @@
1-<svg class="w-full h-full" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2- <rect width="32" height="32" rx="8" fill="#00754A"/>
3- <ellipse cx="16" cy="20" rx="5.5" ry="6" fill="#fff"/>
4- <path d="M10.5 19.5c-2.5-1-5.5-4-5-7.5.2-1.2 1-1.8 1.8-1.5 2 .7 3.5 4 3.8 7" fill="#fff" fill-opacity=".5"/>
5- <path d="M21.5 19.5c2.5-1 5.5-4 5-7.5-.2-1.2-1-1.8-1.8-1.5-2 .7-3.5 4-3.8 7" fill="#fff" fill-opacity=".5"/>
6- <line x1="13" y1="17" x2="19" y2="17" stroke="#00754A" stroke-width="1.2"/>
7- <line x1="12.5" y1="20" x2="19.5" y2="20" stroke="#00754A" stroke-width="1.2"/>
8- <line x1="13" y1="23" x2="19" y2="23" stroke="#00754A" stroke-width="1.2"/>
9- <circle cx="13.5" cy="11" r="1.8" fill="#fff"/>
10- <circle cx="18.5" cy="11" r="1.8" fill="#fff"/>
11- <line x1="13.5" y1="9.2" x2="12" y2="6.5" stroke="#fff" stroke-width="1.3" stroke-linecap="round"/>
12- <line x1="18.5" y1="9.2" x2="20" y2="6.5" stroke="#fff" stroke-width="1.3" stroke-linecap="round"/>
13- <path d="M13 26c.5 1 1.5 1.5 3 1.5s2.5-.5 3-1.5" stroke="#fff" stroke-width="1.2" stroke-linecap="round" fill="none"/>
1+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500">
2+ <defs>
3+ <linearGradient id="bgGrad" x1="0" y1="0" x2="0" y2="1">
4+ <stop offset="0%" stop-color="#00754A"/>
5+ <stop offset="100%" stop-color="#006241"/>
6+ </linearGradient>
7+ </defs>
8+
9+ <rect width="500" height="500" rx="115" fill="url(#bgGrad)"/>
10+ <g transform="translate(250,250) scale(0.82) translate(-250,-280)">
11+ <path d="M 325 290 C 450 260 510 170 495 85 C 400 130 360 200 325 290 Z" fill="#d4e9e2" opacity="0.75"/>
12+ <path d="M 175 290 C 50 260 -10 170 5 85 C 100 130 140 200 175 290 Z" fill="#d4e9e2" opacity="0.75"/>
13+ <path d="M 218 185 C 212 148 185 130 155 138" fill="none" stroke="#f2f2f2" stroke-width="11" stroke-linecap="round" opacity="0.55"/>
14+ <circle cx="155" cy="138" r="13" fill="#f2f2f2"/>
15+ <path d="M 282 185 C 288 148 315 130 345 138" fill="none" stroke="#f2f2f2" stroke-width="11" stroke-linecap="round" opacity="0.55"/>
16+ <circle cx="345" cy="138" r="13" fill="#f2f2f2"/>
17+ <rect x="155" y="165" width="190" height="290" rx="95" fill="#f2f2f2"/>
18+ <circle cx="215" cy="230" r="22" fill="#00754A"/>
19+ <circle cx="285" cy="230" r="22" fill="#00754A"/>
20+ <circle cx="220" cy="224" r="7" fill="#f2f2f2"/>
21+ <circle cx="290" cy="224" r="7" fill="#f2f2f2"/>
22+ <rect x="195" y="315" width="110" height="18" rx="9" fill="#00754A"/>
23+ <rect x="195" y="355" width="110" height="18" rx="9" fill="#00754A"/>
24+ <rect x="195" y="395" width="70" height="18" rx="9" fill="#00754A"/>
25+ </g>
1426 </svg>
@@ -1,14 +1,26 @@
1-<svg class="w-full h-full" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">1+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500">
2- <rect width="32" height="32" rx="8" fill="#00754A"/>2+ <defs>
3- <ellipse cx="16" cy="20" rx="5.5" ry="6" fill="#fff"/>3+ <linearGradient id="bgGrad" x1="0" y1="0" x2="0" y2="1">
4- <path d="M10.5 19.5c-2.5-1-5.5-4-5-7.5.2-1.2 1-1.8 1.8-1.5 2 .7 3.5 4 3.8 7" fill="#fff" fill-opacity=".5"/>4+ <stop offset="0%" stop-color="#00754A"/>
5- <path d="M21.5 19.5c2.5-1 5.5-4 5-7.5-.2-1.2-1-1.8-1.8-1.5-2 .7-3.5 4-3.8 7" fill="#fff" fill-opacity=".5"/>5+ <stop offset="100%" stop-color="#006241"/>
6- <line x1="13" y1="17" x2="19" y2="17" stroke="#00754A" stroke-width="1.2"/>6+ </linearGradient>
7- <line x1="12.5" y1="20" x2="19.5" y2="20" stroke="#00754A" stroke-width="1.2"/>7+ </defs>
8- <line x1="13" y1="23" x2="19" y2="23" stroke="#00754A" stroke-width="1.2"/>8+
9- <circle cx="13.5" cy="11" r="1.8" fill="#fff"/>9+ <rect width="500" height="500" rx="115" fill="url(#bgGrad)"/>
10- <circle cx="18.5" cy="11" r="1.8" fill="#fff"/>10+ <g transform="translate(250,250) scale(0.82) translate(-250,-280)">
11- <line x1="13.5" y1="9.2" x2="12" y2="6.5" stroke="#fff" stroke-width="1.3" stroke-linecap="round"/>11+ <path d="M 325 290 C 450 260 510 170 495 85 C 400 130 360 200 325 290 Z" fill="#d4e9e2" opacity="0.75"/>
12- <line x1="18.5" y1="9.2" x2="20" y2="6.5" stroke="#fff" stroke-width="1.3" stroke-linecap="round"/>12+ <path d="M 175 290 C 50 260 -10 170 5 85 C 100 130 140 200 175 290 Z" fill="#d4e9e2" opacity="0.75"/>
13- <path d="M13 26c.5 1 1.5 1.5 3 1.5s2.5-.5 3-1.5" stroke="#fff" stroke-width="1.2" stroke-linecap="round" fill="none"/>13+ <path d="M 218 185 C 212 148 185 130 155 138" fill="none" stroke="#f2f2f2" stroke-width="11" stroke-linecap="round" opacity="0.55"/>
14+ <circle cx="155" cy="138" r="13" fill="#f2f2f2"/>
15+ <path d="M 282 185 C 288 148 315 130 345 138" fill="none" stroke="#f2f2f2" stroke-width="11" stroke-linecap="round" opacity="0.55"/>
16+ <circle cx="345" cy="138" r="13" fill="#f2f2f2"/>
17+ <rect x="155" y="165" width="190" height="290" rx="95" fill="#f2f2f2"/>
18+ <circle cx="215" cy="230" r="22" fill="#00754A"/>
19+ <circle cx="285" cy="230" r="22" fill="#00754A"/>
20+ <circle cx="220" cy="224" r="7" fill="#f2f2f2"/>
21+ <circle cx="290" cy="224" r="7" fill="#f2f2f2"/>
22+ <rect x="195" y="315" width="110" height="18" rx="9" fill="#00754A"/>
23+ <rect x="195" y="355" width="110" height="18" rx="9" fill="#00754A"/>
24+ <rect x="195" y="395" width="70" height="18" rx="9" fill="#00754A"/>
25+ </g>
14 </svg>26 </svg>
added static/manifest.json +14 -0
new file mode 100644
@@ -0,0 +1,14 @@
1+{
2+ "name": "Glean",
3+ "short_name": "Glean",
4+ "description": "A social RSS reader on the AT Protocol.",
5+ "start_url": "/dashboard",
6+ "display": "standalone",
7+ "background_color": "#0a1814",
8+ "theme_color": "#00754A",
9+ "icons": [
10+ { "src": "/static/favicon.svg", "sizes": "any", "type": "image/svg+xml" },
11+ { "src": "/static/favicon.png", "sizes": "512x512", "type": "image/png" },
12+ { "src": "/static/apple-touch-icon.png", "sizes": "180x180", "type": "image/png" }
13+ ]
14+}
new file mode 100644
@@ -0,0 +1,14 @@
1+{
2+ "name": "Glean",
3+ "short_name": "Glean",
4+ "description": "A social RSS reader on the AT Protocol.",
5+ "start_url": "/dashboard",
6+ "display": "standalone",
7+ "background_color": "#0a1814",
8+ "theme_color": "#00754A",
9+ "icons": [
10+ { "src": "/static/favicon.svg", "sizes": "any", "type": "image/svg+xml" },
11+ { "src": "/static/favicon.png", "sizes": "512x512", "type": "image/png" },
12+ { "src": "/static/apple-touch-icon.png", "sizes": "180x180", "type": "image/png" }
13+ ]
14+}