<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/apps/web/src/components/editor/panels, branch main</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/apps/web/src/components/editor/panels?h=main</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/apps/web/src/components/editor/panels?h=main'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/'/>
<updated>2026-08-16T04:16:56Z</updated>
<entry>
<title>feat: add transitions, track mixing, and voiceover controls</title>
<updated>2026-08-16T04:16:56Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-08-16T04:16:56Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=f1043734438c8518a302f698d9ae6583a75f0c14'/>
<id>urn:sha1:f1043734438c8518a302f698d9ae6583a75f0c14</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: lens effects tab, standalone motion effects, clip/asset rename, preview popout</title>
<updated>2026-08-09T00:37:37Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-08-09T00:37:37Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=c555f1eaebff90749bdc543592cfa80a060b29e2'/>
<id>urn:sha1:c555f1eaebff90749bdc543592cfa80a060b29e2</id>
<content type='text'>
- New Lens category in the assets panel: Blur, Motion Blur, Zoom In/Out,
  Pan x4, Shake, Pulse, Spin, Custom Zoom. EffectDefinition gains a
  category field; tabs with an empty category are hidden, and the
  properties-panel 'Open effects' button opens the first non-empty one.
- Motion effects work standalone: dropping them on the timeline creates
  an effect-track element that animates (scale/translate/rotate) every
  track below it, computed purely in the TS frame descriptor - no wasm
  changes, identical in preview and export. supportsStandalone removed.
- Motion Blur: directional gaussian smear (amount + angle) reusing the
  existing WGSL shader with arbitrary u_direction.
- Custom Zoom: start/end scale params (keyframable clip-level).
- MotionOffset gains optional rotate, accumulated clip-level and applied
  to standalone layer quads via rotationDegrees.
- Rename clips (timeline context menu) and media assets (media panel
  context menu) via a shared RenameDialog; asset rename persists through
  storageService with rollback on error.
- Preview pops out into a Document Picture-in-Picture window and docks
  back; button hidden where the API is unsupported.
- Export keeps running when the export popover is closed; only the
  explicit Cancel button aborts.
- Captions and Adjustment tabs removed from the assets panel.
</content>
</entry>
<entry>
<title>feat: gate sounds/stickers/effects UI behind feature flags</title>
<updated>2026-07-26T23:21:02Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-26T23:21:02Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=f8fdff7f0c1b8efdef9093c932e28e427799d6ef'/>
<id>urn:sha1:f8fdff7f0c1b8efdef9093c932e28e427799d6ef</id>
<content type='text'>
FEATURES in src/features.ts (all false) hides the assets-panel tabs and
views, the clip effects properties tab, and the timeline effects badge.
Existing project data still renders and stays editable (standalone effect
tab, sticker config, renderer nodes untouched).
</content>
</entry>
<entry>
<title>fix: guard MediaPreview against image assets without url</title>
<updated>2026-07-26T20:34:11Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-26T20:34:11Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=4b6caee158a4913f9fda423e4df7f9df2e8a53a0'/>
<id>urn:sha1:4b6caee158a4913f9fda423e4df7f9df2e8a53a0</id>
<content type='text'>
The image branch rendered &lt;Image src={item.url ?? ""}&gt;, crashing the
assets panel for any image asset lacking url. It now falls back to
thumbnailUrl and then to the existing MediaTypePlaceholder, mirroring the
video branch's fallback.
</content>
</entry>
<entry>
<title>refactor: animate params over time</title>
<updated>2026-05-02T01:27:23Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-29T08:37:39Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=401cc35743aafc4c8bdfb8055501650390bde88b'/>
<id>urn:sha1:401cc35743aafc4c8bdfb8055501650390bde88b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: unify element params</title>
<updated>2026-05-02T01:27:23Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-28T23:28:50Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=2ee0a44735d2b930348e9774909638b2c1909738'/>
<id>urn:sha1:2ee0a44735d2b930348e9774909638b2c1909738</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: switch from biome to eslint + prettier; fix ton of lint issues</title>
<updated>2026-05-02T01:27:23Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-28T22:37:56Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=a9b9cf6bf50f08723896659634f2e6afc17bcd42'/>
<id>urn:sha1:a9b9cf6bf50f08723896659634f2e6afc17bcd42</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: split animation helpers by domain</title>
<updated>2026-04-26T18:44:07Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-26T18:44:07Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6b1f38a9a31a0eedaa7abea70f232960469351d5'/>
<id>urn:sha1:6b1f38a9a31a0eedaa7abea70f232960469351d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: thinner hooks</title>
<updated>2026-04-26T15:31:28Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-26T15:31:28Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=56ca09692a308b22455420d11376ff8d41244c47'/>
<id>urn:sha1:56ca09692a308b22455420d11376ff8d41244c47</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: split animation helpers by domain</title>
<updated>2026-04-26T02:04:30Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-26T02:04:30Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=0b7597b31fa956c7f3d4838923b545ba5e341422'/>
<id>urn:sha1:0b7597b31fa956c7f3d4838923b545ba5e341422</id>
<content type='text'>
</content>
</entry>
</feed>
