UI refinement: toolbar icons, gradient CTA, Fraunces title, viewer polish

MarkdownToolbar:
- Replace text labels with SVG icons (Material Design paths)
- Group buttons with visual separators: text / headings / lists / code / links
- Add Strikethrough and Blockquote buttons (previously missing)
- Active state: tinted bg + ring instead of solid fill; hover lift shadow
- Toolbar container: pill shape with border (matches rest of UI)

editor-shared.css:
- btn-save: gradient + glow (linear-gradient(135deg, #6366f1, #4f46e5))
- title-input: borderless with Fraunces font and focus underline

NoteEditorView:
- Back button label standardized to "← Notes" (was "Back")
- Write/Preview tabs and toolbar now share the same row (flex-direction row)

NoteViewerView:
- Shimmer skeleton loader replaces plain "Loading..." text
- Note title uses Fraunces font at 2rem
- Edit button becomes primary gradient CTA
- Meta line shows clock/pencil SVG icons alongside timestamps
- Backlinks section: card grid with colored type badges (note=indigo, task=amber)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 10:57:02 -04:00
parent 810f63e749
commit 978a2627fb
4 changed files with 352 additions and 165 deletions
+8 -4
View File
@@ -321,7 +321,7 @@ onUnmounted(() => assist.clearSelection());
<main class="editor-page note-editor-page">
<div class="editor-header">
<div class="toolbar">
<router-link to="/notes" class="btn-back">Back</router-link>
<router-link to="/notes" class="btn-back"> Notes</router-link>
<button class="btn-save" @click="save" :disabled="saving">
{{ saving ? "Saving..." : "Save" }}
</button>
@@ -575,8 +575,12 @@ onUnmounted(() => assist.clearSelection());
.body-tabs-row {
display: flex;
flex-direction: column;
gap: 0.25rem;
flex-direction: row;
align-items: center;
gap: 0.75rem;
flex-wrap: wrap;
padding-bottom: 0.5rem;
border-bottom: 1px solid var(--color-border);
}
.editor-tabs {
@@ -586,7 +590,7 @@ onUnmounted(() => assist.clearSelection());
border-radius: 8px;
padding: 2px;
gap: 2px;
align-self: flex-start;
flex-shrink: 0;
}
.tab {