Skip to content

feat(editor): turn on roundness, shadow and motion blur by default - #273

Merged
EtienneLescot merged 1 commit into
mainfrom
feat/opinionated-appearance-defaults
Aug 5, 2026
Merged

feat(editor): turn on roundness, shadow and motion blur by default#273
EtienneLescot merged 1 commit into
mainfrom
feat/opinionated-appearance-defaults

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Closes #271 — by doing the opposite of what it asked, and here is why.

The defaults were internally inconsistent

Setting Before After
wallpaper wallpaper1.jpg (on) unchanged
padding 50 → content block at 80% of the frame unchanged
roundness 0 px 40 px
shadow 0 % 20 %
motion blur 0 % 20 %

#271 argues on friction: the padding is one more slider to reset on every new project. But a neutral default isn't the direction here — the point is that the app hands you the best-looking result without you opening the effects panel at all. Today it doesn't quite: we ship a decorative background and a margin, then draw the recording into it as a hard-edged rectangle with no shadow. That is half a composition.

Setting padding to 0 would also hide the wallpaper completely behind the screen, i.e. remove the background feature by way of a default. So this PR ships the missing half instead of dropping the half we had.

Values

Picked by eye on Windows: roundness 40px, shadow 20%, motion blur 20%. The rendering reference already assumed non-zero roundness — NATIVE_SCREEN_BASE_RADIUS_PX in src/native/paramUnits.ts is documented as "the fixture's screen corner radius", and the compositor goldens render with shadow well above 0. Only the app shipped zeros.

Existing projects

legacyEditor is a sparse store: patchEditorSettings only writes keys the user actually changed. So a project where someone moved the roundness slider keeps its value, while a project that never touched these picks up the new look on reopen. That is deliberate — the point of an opinionated default is that people who never opened the panel get the better result.

Testing

  • vitest --run on the affected suites: 229 passed (editorSettings, migrate, editorDefaults, projectPersistence, sceneDescription, nativeCompositorStore, compositeLayout, WebcamOverlay).
  • Full suite: only pre-existing failures in electron/recording/webm-seek-index.test.ts (identical with and without this change).
  • tsc -p tsconfig.test.json --noEmit and biome check clean.

Two assertions in editorSettings.test.ts hardcoded 0 where they meant "the default"; they now reference DEFAULT_EDITOR_SETTINGS.

Follow-up, not in this PR

The legitimate need behind #271 — a flush, full-frame output to embed in a doc — deserves a one-click "Full frame" preset. There is no effects preset mechanism today, only webcam layout presets. Worth its own issue if it comes up again.

The wallpaper and a 50% padding were already on out of the box, but
roundness, shadow and motion blur all defaulted to 0. The result was a
hard-edged rectangle pasted onto a decorative background: the padding
looked like wasted space rather than a deliberate margin, which is what
issue #271 reported before blaming the padding for it.

Ship the rest of the look instead of removing the half that was there:
roundness 40px, shadow 20%, motion blur 20% (values picked on Windows).
Padding stays at 50.

Projects where the user already moved one of these sliders keep their
value -- `legacyEditor` only stores keys that were explicitly patched --
so only projects that never touched them pick up the new look.

Closes #271
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The editor now defaults to nonzero shadow intensity, motion blur, and border radius. Mounted editor defaults document synchronization with shared settings. Tests use the shared shadow default.

Changes

Editor appearance defaults

Layer / File(s) Summary
Default values and validation
src/lib/ai-edition/store/editorSettings.ts, src/components/video-editor/editorDefaults.ts, src/lib/ai-edition/store/editorSettings.test.ts
The defaults now use 0.2 shadow intensity, 0.2 motion blur, and 40 border radius. showBlur remains disabled. Tests reference the shared shadow default.
Estimated code review effort: 1 (Trivial) ~5 minutes
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR does not satisfy issue #271 because padding remains at 50% instead of changing to the required 0% default. Set the default padding to 0% while preserving explicitly saved padding values in existing projects.
Out of Scope Changes check ⚠️ Warning The PR changes roundness, shadow, and motion blur, which are outside issue #271's requested padding-only scope. Limit this PR to the padding default change, or link a separate issue that explicitly authorizes the additional visual-default changes.
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The title clearly and concisely describes the main change: enabling roundness, shadow, and motion blur by default.
Description check ✅ Passed The description clearly explains the change, rationale, issue relationship, existing-project behavior, and testing results.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/opinionated-appearance-defaults

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@EtienneLescot
EtienneLescot merged commit 5cfea74 into main Aug 5, 2026
17 checks passed
@EtienneLescot
EtienneLescot deleted the feat/opinionated-appearance-defaults branch August 5, 2026 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Set Default Video Padding to 0%

1 participant