From 0ce44404a499d34cd4759406b82a730f90f68dec Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 14 Feb 2026 22:23:53 +0100 Subject: [PATCH 1/6] feat: change default font family --- src/modules/user/hooks/useUserSettings.hook.ts | 2 +- src/styles/app.css | 4 ++-- src/views/PublicNoteListView.vue | 2 +- tailwind.config.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/user/hooks/useUserSettings.hook.ts b/src/modules/user/hooks/useUserSettings.hook.ts index d94c30e..1dd089b 100644 --- a/src/modules/user/hooks/useUserSettings.hook.ts +++ b/src/modules/user/hooks/useUserSettings.hook.ts @@ -3,7 +3,7 @@ import { watchEffect } from "vue" import { useUserRepoStore } from "@/modules/repo/store/userRepo.store" import { downloadFont } from "@/utils/downloadFont" -const DEFAULT_FONT_POLICY = "Courier Prime,monospace" +const DEFAULT_FONT_POLICY = '"Libertinus Serif", serif' const DEFAULT_FONT_SIZE = "16px" export const useUserSettings = () => { diff --git a/src/styles/app.css b/src/styles/app.css index 808b6c1..cf773b0 100644 --- a/src/styles/app.css +++ b/src/styles/app.css @@ -1,11 +1,11 @@ @charset "utf-8"; @import "tailwindcss"; -@import url("https://fonts.googleapis.com/css2?display=swap&family=Courier+Prime"); +@import url("https://fonts.googleapis.com/css2?display=swap&family=Courier+Prime&family=Libertinus+Serif"); :root { --primary-color: #2c3a47; - --font-family: "Courier Prime", monospace; + --font-family: "Libertinus Serif", serif; --font-size: 13pt; --font-color: #4a4a4a; --link: #445fb9; diff --git a/src/views/PublicNoteListView.vue b/src/views/PublicNoteListView.vue index e02c80c..98b8936 100644 --- a/src/views/PublicNoteListView.vue +++ b/src/views/PublicNoteListView.vue @@ -43,7 +43,7 @@ const getAlias = (did: string) => >{{ note.title }} -
+
{{ getAlias(note.did) }} diff --git a/tailwind.config.js b/tailwind.config.js index 1bc68f1..95950fd 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -28,7 +28,7 @@ module.exports = { css: { ...defaultTitleStyles, "font-size": "13pt", - "font-family": '"Courier Prime", monospace', + "font-family": '"Libertinus Serif", serif', p: { "margin-top": "0.8em", "margin-bottom": "0.8em", From 801832c6e5c339cd2b9c0e8f4028ad9c6a9a5922 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 19 Feb 2026 21:32:37 +0100 Subject: [PATCH 2/6] feat: handle absolute internal links for stacked notes --- src/components/StackedPublicNote.vue | 17 +++++------- src/hooks/useATProtoLinks.hook.ts | 39 +++++++++++++++++++++++----- src/utils/link.ts | 3 ++- src/views/PublicNoteView.vue | 2 +- 4 files changed, 42 insertions(+), 19 deletions(-) diff --git a/src/components/StackedPublicNote.vue b/src/components/StackedPublicNote.vue index dd02c68..7c081c4 100644 --- a/src/components/StackedPublicNote.vue +++ b/src/components/StackedPublicNote.vue @@ -9,18 +9,15 @@ import { getUrl } from "@/modules/atproto/getUrl" import { withATProtoImages } from "@/modules/atproto/withATProtoImages" import { getAuthor } from "@/modules/atproto/getAuthor" import { PublicNoteRecord } from "@/modules/atproto/publicNote.types" -import { parseAtUri } from "@/modules/atproto/parseAtUri" const props = defineProps<{ - atUri: string + didrkey: string index: number - title?: string }>() -const atUri = computed(() => props.atUri) -const atUriProps = computed(() => parseAtUri(atUri.value)) -const did = computed(() => atUriProps.value.did) -const rkey = computed(() => atUriProps.value.rkey) +const didrkey = computed(() => props.didrkey) +const did = computed(() => props.didrkey.split("-")[0]) +const rkey = computed(() => props.didrkey.split("-")[1]) const index = computed(() => props.index) @@ -33,7 +30,7 @@ const className = computed(() => `stacked-note-${props.index}`) const titleClassName = computed(() => `title-${className.value}`) const { scrollToFocusedNote } = useRouteQueryStackedNotes() -const { listenToClick } = useATProtoLinks(className.value, atUri) +const { listenToClick } = useATProtoLinks(className.value, didrkey) const { displayNoteOverlay } = useNoteOverlay(className.value, index) const noteRecord = computedAsync(async () => @@ -70,12 +67,12 @@ watch( :class="{ [className]: true, overlay: displayNoteOverlay, - [`note-${rkey}`]: true, + [`note-${didrkey}`]: true, }" > From 4edfba77ed4fad22bde3c43c4735d8f8df46c1b3 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 19 Feb 2026 21:43:56 +0100 Subject: [PATCH 3/6] design: align left for list --- src/views/PublicNoteListByDidView.vue | 7 ++++++- src/views/PublicNoteListView.vue | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/views/PublicNoteListByDidView.vue b/src/views/PublicNoteListByDidView.vue index 2fac25e..5f0b488 100644 --- a/src/views/PublicNoteListByDidView.vue +++ b/src/views/PublicNoteListByDidView.vue @@ -32,7 +32,11 @@ const author = computedAsync(async () => getAuthor(did.value)) {{ note.title }} getAuthor(did.value)) } a { + display: inline; text-align: left; } diff --git a/src/views/PublicNoteListView.vue b/src/views/PublicNoteListView.vue index 7e8d58d..1d7db0a 100644 --- a/src/views/PublicNoteListView.vue +++ b/src/views/PublicNoteListView.vue @@ -99,6 +99,7 @@ const { notes, isLoading, canLoadMore, onLoadMore, getAuthor } = } a { + display: inline; text-align: left; } From b5697759c3c99e6d59ed5e51c8d79fa3771f9611 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 19 Feb 2026 21:44:11 +0100 Subject: [PATCH 4/6] design: change dark theme to dim --- src/styles/app.css | 2 +- src/theme.config.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/styles/app.css b/src/styles/app.css index 4602eb4..085023b 100644 --- a/src/styles/app.css +++ b/src/styles/app.css @@ -25,7 +25,7 @@ @plugin 'daisyui' { themes: garden --default, - night --prefersdark; + dim --prefersdark; } @config '../../tailwind.config.js'; diff --git a/src/theme.config.ts b/src/theme.config.ts index 274fdd7..0d237cf 100644 --- a/src/theme.config.ts +++ b/src/theme.config.ts @@ -3,5 +3,5 @@ export const themeConfig = { light: 'garden', - dark: 'night', + dark: 'dim', } From 4a79c2b8d8c45a10de1d1993ad1cb48d235e34b5 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 19 Feb 2026 22:43:26 +0100 Subject: [PATCH 5/6] 2026-02-19 22:43:26 --- CLAUDE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CLAUDE.md b/CLAUDE.md index 53bc222..5fe008a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -33,6 +33,7 @@ Run a single test file: `pnpm test src/modules/repo/services/resolvePath.spec.ts ### Styling Tailwind v4 uses the modern CSS-based config in `src/styles/app.css`: + - `@import "tailwindcss"` instead of directives - DaisyUI configured via `@plugin 'daisyui' { themes: retro --default, coffee --prefersdark; }` - `@tailwindcss/typography` for prose styling From 1ad59addf00179d82c7fe9cf19ffd260af41e759 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 19 Feb 2026 23:07:45 +0100 Subject: [PATCH 6/6] fix: note class name --- src/hooks/useATProtoLinks.hook.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/hooks/useATProtoLinks.hook.ts b/src/hooks/useATProtoLinks.hook.ts index 0868aed..6495b8d 100644 --- a/src/hooks/useATProtoLinks.hook.ts +++ b/src/hooks/useATProtoLinks.hook.ts @@ -43,18 +43,19 @@ export const useATProtoLinks = ( ? `${params.did}-${params.rkey}-${params.slug}` : `${params.did}-${params.rkey}` - addStackedNote(toValue(currentAtUri) ?? "", noteId) + addStackedNote( + toValue(currentAtUri) ?? "", + noteId, + `${params.did}-${params.rkey}`, + ) return } if (href.startsWith("at://")) { const { did, rkey } = parseAtUri(href) + const noteId = `${did}-${rkey}` - addStackedNote( - toValue(currentAtUri) ?? "", - `${did}-${rkey}`, - `${did}-${rkey}`, - ) + addStackedNote(toValue(currentAtUri) ?? "", noteId) } }