5d4a2c8fe1
- Explorer: every non-hidden file is listed with its own icon and tab kind (image, video, audio, pdf, code, text, other); settings show_all_types, hidden_extensions and show_annotation_files; kinds without a viewer open a placeholder card, never the text editor - crates/annotate: non-destructive image annotations (strokes, lines, rectangles, ellipses, text) with strict sidecar JSON validation, hit testing, zoom/pan transforms and undo - engine: file.info, file.hash, file.neighbours, image.annotations.load and save (a corrupt sidecar is kept as .bad, the image is never modified), header-only image sizing for PNG, JPEG, GIF, WebP, BMP and SVG - sync server: publish notes or folders as static HTML (raw HTML escaped, strict CSP, publish: false honoured, no attachments) and expiring revocable share links, with per-route rate limits and audit rows - ui-egui: "Last edit - name, time ago" in the status bar from server.file_meta - specs and designs: file viewers spec, 20 PaperCraft exports rated 8.2 of 10 (design/files/RATING.md), annotate and viewer briefs Verified with cargo xtask ci (fmt, clippy -D warnings, workspace tests, layers, tree, i18n). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Rating of the file-viewer designs (2026-10-20)
Made by Codex (gpt-6.1-sol) in the PaperCraft project NotesCraft, page "File viewers", from scripts/mm/design-file-viewers.md. Reviewed by the orchestrator from the exported PNGs (all 10 dark screens and one light screen viewed) and a lint run of my own (0 errors, 0 warnings on all 10).
| # | Screen | Score /10 | What works | What to fix |
|---|---|---|---|---|
| 01 | Explorer, all files | 8 | Distinct icon and extension chip per type, folder tree, "Show all file types" toggle with a "9 files, sidecars hidden" count, reads like the real app | The note's shot.png embed shows a text chip, not the inline image the spec promises; the video icon looks like a generic file glyph |
| 02 | Image lightbox | 8 | Clear toolbar (zoom, %, fit, 100%, rotate, Draw, Copy, Reveal), neighbour arrows, "3 of 12", info line | A stray checkerboard square in the image corner looks like a glitch (show the checkerboard only where there is transparency); a folder icon sits before the file name instead of an image icon |
| 03 | Image annotate | 7.5 | Full tool row, 8 colours, widths, undo/redo/Clear/Done, "Saved to ...annotations.json" status | Pen and highlighter icons are nearly identical and nothing is labelled; the three width dots are tiny; the sample annotations point at nothing (arrow and label are not related) |
| 04 | Mobile lightbox | 8.5 | 44 pt tool bar, zoom chip, neighbour dots, clean top bar with "3 of 12" | None serious; page dots could show the count |
| 05 | Mobile annotate | 8.5 | Strong bottom sheet, tools in two rows, colours, undo/redo, "Saved - original image unchanged" reassurance | Same sample-annotation issue as 03 |
| 06 | Video viewer | 7 | Poster with play overlay, time and seek bar with a buffered part, speed, fullscreen, ffmpeg-missing state | The fallback strip leaks design-note text ("ffmpeg not found - alternate state") into the copy; folder icon in the header |
| 07 | Code viewer | 8 | Line numbers, syntax colours from the syn-* variables, language chip, wrap toggle, Copy, read-only banner, status footer |
Drawn in the proportional font: the app must use a monospace font (PaperCraft only has Inter, a tool limit, not a design choice) |
| 08 | PDF viewer | 8.5 | Thumbnail rail with the current page marked, page counter, zoom and "Fit width", clean white page | Thumbnails are identical copies (fine for a mock) |
| 09 | Other file card | 9 | Centred card, type, size, modified, "Compute hash", primary "Open with system" and "Reveal" | Header uses a folder icon (same as the others) |
| 10 | Settings, Files and links | 9 | Matches the existing settings look; the three new rows with clear help text; a reassurance card about annotations | None |
Overall: 8.2 / 10. Lint clean, complete (10 screens, dark and light), consistent with the NotesCraft look. Fixes to carry into the build (not worth another design round): file-kind icon in every viewer header, inline image preview for embeds, checkerboard only under transparency, labelled tools with tooltips, monospace for code, no meta text in copy.