0.8.1: dirty-state + Cmd/Ctrl+S, fullscreen plays to OUT, UX fixes
- Unsaved-changes indicator: a small accent dot appears on the save
button whenever the scene has changed since the last save/load.
Save/load/new all mark the project clean on next tick.
- Cmd/Ctrl+S saves the project (reuses the same flow as the button;
prompts for a name on first save). Tooltip now mentions the
shortcut.
- Fullscreen preview plays to the OUT marker (or scene.duration when
no OUT is set) instead of looping at the last keyframe. Dropped
the runtime's effectiveEnd helper; RUNTIME_VERSION 13 → 14.
- "Still frame" keyframes no longer disable easing. A held kf's
easing still drives the segment INTO it from the previous kf, so
you can ease into a pause. Only the first kf disables easing
(nothing precedes it). Dropped `timeline.holdDisabledHint`.
- Settings dialog: hint text 11px → 13px (and dropped italic) so
the inline help is readable; section headings 10px → 13px.
- Canvas stage shadow: `shadowCfg` always emits explicit values plus
a `shadowEnabled` flag instead of returning `{}`. Konva's default
shadowOpacity is 1, so bailing with `{}` could leave stale shadow
attrs on the shape. Preview and editor now gate on the same
condition deterministically.
- Sidebar empty-state copy: "No clips" → "No clips yet" to match
"No buttons yet".
Regression tests: runtime rangeOut fallback is scene.duration (not
last kf); sidebar empty-states both contain "yet"; the
holdDisabledHint key is gone; saveProject tooltips mention the
shortcut.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
1e89ea86e0
commit
82ee5c98d0
10 files changed
+133
-48
No files matched your search
@@ -7,7 +7,8 @@ export const en = {
|
||||
play: 'Play (Space)',
|
||||
stop: 'Stop',
|
||||
recentProjects: 'Recent projects',
|
||||
saveProject: 'Save project (browser storage)',
|
||||
saveProject: 'Save project (Ctrl/Cmd+S)',
|
||||
saveProjectDirty: 'Save project (unsaved changes, Ctrl/Cmd+S)',
|
||||
documentSettings: 'Document settings',
|
||||
export: 'Export',
|
||||
mainTimeline: 'Main timeline',
|
||||
@@ -66,7 +67,7 @@ export const en = {
|
||||
clipLayerCount: '{n} layers',
|
||||
renameTooltip: 'Rename',
|
||||
deleteTooltip: 'Delete',
|
||||
noClips: 'No clips',
|
||||
noClips: 'No clips yet',
|
||||
shape: {
|
||||
rect: 'Rect',
|
||||
circle: 'Circle',
|
||||
@@ -243,7 +244,6 @@ export const en = {
|
||||
easingEaseOut: 'Ease Out',
|
||||
easingEaseInOut: 'Ease In-Out',
|
||||
firstKfHint: 'First keyframe — easing has no effect',
|
||||
holdDisabledHint: 'Still frame — easing disabled',
|
||||
stillFrame: 'Still frame',
|
||||
duplicate: 'Duplicate',
|
||||
delete: 'Delete',
|
||||
|
||||
Reference in new issue
Block a user