photocraft/docs
Scott C Hughes 6ca04e5afa
fix(ui): one eliding label for fixed-width chrome, so translations can't overrun (#3580) (#3616)
A translated label beside a fixed-width control could run over its neighbours: the Layers
Lock/Fill row guarded only the redundant "Lock:" caption, so "Fill:" ("Заливка:" in Russian,
longer still as pt-br "Preenchimento:" / fr "Remplissage :") overlapped the lock icons.

Rather than a per-row fit check, add the one shared primitive for fixed chrome:
`widgets::elided_label(ui, text, max_w)` lays the text out no wider than its room, cuts it with
'…' and puts the full string on hover (built on the existing `tab_strip::elided`). The
Opacity/Fill scrub labels now elide to the room beside their field, so any translation shrinks
instead of overlapping, in every locale.

Documented the rule in docs/ui-design.md: wrap by default; beside a fixed control, elide; a
redundant caption may drop on a narrow dock (the lock icons carry the meaning).

Test: widgets::tests::elided_label_never_exceeds_its_room. Full photocraft-ui-egui suite: 2077
pass; fmt and clippy clean.
2026-10-12 04:10:40 -04:00
..
brand Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms, attribution 2026-10-04 10:06:17 -04:00
images PSD text fill: keep the fix and its tests, drop the proof-only screenshots and example 2026-10-09 01:57:17 +07:00
architecture.md Support automatic monitor ICC profiles on Linux X11 (#2963) 2026-10-12 01:17:59 -04:00
brush-parity.md Brush and Pencil: hold ~ to erase, and Clear mode (#3439) (#3465) 2026-10-12 00:02:42 -04:00
camera-raw-histogram.md Camera Raw: read and write settings as a live PSD Smart Filter (part of #215) (#459) 2026-10-07 17:59:16 -04:00
camera-raw-zoom.md Rework Camera Raw filter preview and navigation (#781) 2026-10-07 18:40:24 -04:00
color-picker.md Type Color Picker opens the full Color Picker; screen eyedropper with a pixel loupe (#1232) 2026-10-09 00:30:50 -04:00
context-menu-inventory.md Zoom and Hand tools: right-click the canvas for the view menu (#3242) (#3255) 2026-10-11 12:50:01 -04:00
context-menu-parity.md Zoom and Hand tools: right-click the canvas for the view menu (#3242) (#3255) 2026-10-11 12:50:01 -04:00
contributing.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#2696) 2026-10-10 15:09:04 -04:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#898) 2026-10-07 21:22:11 -04:00
control-protocol.md History panel: snapshots (camera button, snapshot rows) (#3545) 2026-10-12 00:35:56 -04:00
decisions.md Keep duplicated Smart Objects linked to shared contents (#2222) 2026-10-10 05:05:56 -04:00
development.md Content-Aware tools: faster, cancellable at once, same pixels (P21, P22, P49) (#3395) 2026-10-12 00:11:10 -04:00
file-format-parity.md Animated GIF: every frame loads into video layers (#572) (#2999) 2026-10-12 01:26:37 -04:00
five-algorithm-performance.json Five exact-output speedups: dense Extrude 160s to 0.39s (#2685) 2026-10-11 10:50:45 -04:00
five-algorithm-performance.md Five exact-output speedups: dense Extrude 160s to 0.39s (#2685) 2026-10-11 10:50:45 -04:00
gaps.md Puppet Warp: the mesh follows the object outline (#3105) (#3117) 2026-10-11 21:40:06 -04:00
gpu-composite-reuse.md Design: bounded GPU stack prefix reuse for property edits (#1164) 2026-10-11 02:08:08 -04:00
hardware-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#2696) 2026-10-10 15:09:04 -04:00
iris-blur-performance.md Speed up Iris Blur without changing output (#2578) 2026-10-10 14:00:53 -04:00
localization-es.md i18n(es): native-style review of the Spanish catalog (#3154) 2026-10-11 10:43:15 -04:00
localization-ko.md Improve Korean terminology and dynamic UI translation coverage (#604) 2026-10-07 16:32:47 -04:00
localization-parity.md i18n(cs): translate the dynamic labels the Czech catalog was missing (#3454) 2026-10-11 17:23:27 -04:00
localization-zh-hans.md i18n: complete Simplified Chinese catalog and localize brush sections (#359) 2026-10-07 07:46:52 -04:00
localization.md Add Vietnamese localization (#2636) 2026-10-12 03:05:18 -04:00
mcp.md MCP: command_batch says it is not atomic, and the docs explain recovery (#3338) 2026-10-11 22:10:12 -04:00
nikon-nef-development.md Keep fitted Camera Raw colour during tuning and crop Nikon D5100 borders (#3201) 2026-10-11 19:12:19 -04:00
octagonal-mask-performance.md Compute exact octagonal mask shifts with bounded workspace (#2154) 2026-10-10 06:46:06 -04:00
ora.md Add OpenRaster (.ora) import and export (#2257) 2026-10-10 08:40:35 -04:00
parity-checklist.md Type menu: Anti-Alias › None first and checked; checks follow the edited layer (#2983) (#2984) 2026-10-11 11:35:38 -04:00
pdn.md Add native layered Paint.NET (.pdn) import (#1998) 2026-10-09 21:05:00 -04:00
pixelate-performance.json Pixelate: CMYK Facet 13.7x faster, Lab halftone 5.0x faster (#2588) 2026-10-10 14:03:03 -04:00
pixelate-performance.md Pixelate: CMYK Facet 13.7x faster, Lab halftone 5.0x faster (#2588) 2026-10-10 14:03:03 -04:00
plugins.md Plug-ins: keep the originating error across parallel bands (#1654) 2026-10-09 09:11:00 -04:00
proximity-match-performance.md Proximity Match: 1.5-3.8x faster stroke searches, smaller mask tables (#2101) 2026-10-09 19:34:26 -04:00
quick-selection-performance.md Quick Selection: 3.5x faster CPU strokes with hybrid graph cuts (#2436) 2026-10-10 14:17:48 -04:00
radial-blur-performance.md Optimize Radial Blur sampling without changing output (#1499) 2026-10-09 14:41:52 -04:00
release-playbook.md docs: stop linking readers to the private craftrules repo (#493) (#779) 2026-10-08 15:04:21 -04:00
releasing.md Security: verify AppImage build inputs (#2270) 2026-10-11 22:33:26 -06:00
roadmap.md Tools: Artboard tool (#2858) (#2862) 2026-10-11 07:12:53 -04:00
scorecard.md M11: ten more MCP acceptance tasks (11-20) for FILE-216-6 (#3562) 2026-10-12 04:00:30 -04:00
selection-distance-performance.md Selection distance transforms: 7.6-10.6x faster and correct past 4K (#2093) 2026-10-09 19:28:33 -04:00
shape-strokes.md Fix Shape Stroke controls, popup interactions and paint colours (#3019) 2026-10-11 09:46:44 -04:00
target-app-parity.md Speed up Tilt-Shift with existing per-level halo trimming (#2880) 2026-10-11 11:58:04 -04:00
tilt-shift-performance.md Speed up Tilt-Shift with existing per-level halo trimming (#2880) 2026-10-11 11:58:04 -04:00
ui-design.md fix(ui): one eliding label for fixed-width chrome, so translations can't overrun (#3580) (#3616) 2026-10-12 04:10:40 -04:00
ui-parity.md Tools: Shift key switches tools by default, as in Photoshop (#3525) (#3528) 2026-10-12 00:54:41 -04:00