feat: tooltips, two-column timer, font selector, tray behavior, icons, readme
- Custom tooltip directive (WCAG AAA) on every button in the app - Two-column timer layout with sticky hero and recent entries sidebar - Timer font selector with 16 monospace Google Fonts and live preview - UI font selector with 15+ Google Fonts - Close-to-tray and minimize-to-tray settings - New app icons (no-glow variants), platform icon set - Mini timer pop-out window - Favorites strip with drag-reorder and inline actions - Comprehensive README with feature documentation - Remove tracked files that belong in gitignore
This commit is contained in:
@@ -93,16 +93,18 @@ function selectTemplate(id: string) {
|
||||
style="height: 480px"
|
||||
>
|
||||
<!-- Left panel: Template list -->
|
||||
<div class="w-[30%] border-r border-border-subtle overflow-y-auto bg-bg-surface">
|
||||
<div class="w-[30%] border-r border-border-subtle overflow-y-auto bg-bg-surface" role="radiogroup" aria-label="Invoice templates">
|
||||
<div v-for="cat in TEMPLATE_CATEGORIES" :key="cat.id">
|
||||
<div
|
||||
class="text-[0.5625rem] text-text-tertiary uppercase tracking-[0.1em] font-medium px-3 pt-3 pb-1"
|
||||
class="text-[0.5625rem] text-text-tertiary uppercase tracking-[0.08em] font-medium px-3 pt-3 pb-1"
|
||||
>
|
||||
{{ cat.label }}
|
||||
</div>
|
||||
<button
|
||||
v-for="tmpl in getTemplatesByCategory(cat.id)"
|
||||
:key="tmpl.id"
|
||||
role="radio"
|
||||
:aria-checked="tmpl.id === modelValue"
|
||||
class="w-full flex items-center gap-2 px-3 py-1.5 text-[0.75rem] transition-colors"
|
||||
:class="
|
||||
tmpl.id === modelValue
|
||||
@@ -114,6 +116,7 @@ function selectTemplate(id: string) {
|
||||
<span
|
||||
class="w-2.5 h-2.5 rounded-full shrink-0 border border-black/10"
|
||||
:style="{ backgroundColor: tmpl.colors.primary }"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<span class="truncate">{{ tmpl.name }}</span>
|
||||
</button>
|
||||
@@ -121,7 +124,7 @@ function selectTemplate(id: string) {
|
||||
</div>
|
||||
|
||||
<!-- Right panel: Live preview -->
|
||||
<div class="w-[70%] bg-bg-inset p-4 flex items-start justify-center overflow-y-auto">
|
||||
<div class="w-[70%] bg-bg-inset p-4 flex items-start justify-center overflow-y-auto" aria-label="Template preview" aria-live="polite">
|
||||
<div class="w-full max-w-sm">
|
||||
<InvoicePreview
|
||||
:template="selectedTemplate"
|
||||
|
||||
Reference in New Issue
Block a user