<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/apps/web/src/constants/text-constants.ts, branch main</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/apps/web/src/constants/text-constants.ts?h=main</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/apps/web/src/constants/text-constants.ts?h=main'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/'/>
<updated>2026-04-14T16:17:14Z</updated>
<entry>
<title>refactor: move constants to domain modules</title>
<updated>2026-04-14T16:17:14Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-14T16:17:14Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6de6c7fd95de1de9d8d3107eaf7ce1dd150ed094'/>
<id>urn:sha1:6de6c7fd95de1de9d8d3107eaf7ce1dd150ed094</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: normalize line endings</title>
<updated>2026-03-29T13:56:48Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-26T23:55:15Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=4d127a038bf768eded68aae3cfa5c1b12241bdac'/>
<id>urn:sha1:4d127a038bf768eded68aae3cfa5c1b12241bdac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: masks, properties refactor, shaders, storage migrations, and more</title>
<updated>2026-03-29T13:48:22Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-25T15:47:22Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=8db3bead13441a5882d8689dfc6a9f09c82375d9'/>
<id>urn:sha1:8db3bead13441a5882d8689dfc6a9f09c82375d9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: Clip effects, asset sorting, and timeline improvements</title>
<updated>2026-03-02T12:13:07Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-02T12:13:07Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=e7dcb586c0408255a0bf788e355fdb6d50d9b923'/>
<id>urn:sha1:e7dcb586c0408255a0bf788e355fdb6d50d9b923</id>
<content type='text'>
Major features and improvements:

* **Clip Effects**:
  * Added UI in Properties Panel to manage effects on video/image clips (add, remove, toggle, reorder).
  * Implemented dynamic parameter fields for effects.
  * Added support for keyframing effect parameters.

* **Assets Panel**:
  * Added sorting options: Name, Type, Duration, and File Size.
  * Persisted view preferences (grid/list mode, sort order) to local storage.
  * Refactored media item rendering and drag interactions.

* **Timeline &amp; Interaction**:
  * **Keyframe Dragging**: Added ability to drag keyframes directly on the timeline element.
  * **Resizing**: Improved resize logic to respect neighboring clips (prevents overlaps).
  * **Visuals**: Implemented tiled background rendering for video/image clips on the timeline.
  * **Shortcuts**: Added "Deselect All" action bound to the `Escape` key.
  * **Fixes**: Corrected drag-and-drop coordinate calculations when the timeline track area is scrolled.

* **Text Elements**:
  * Refactored text background storage to use an explicit `enabled` flag.
  * Added `V8toV9` storage migration to update existing projects.

* **Architecture**:
  * Moved export state management to `ProjectManager` for better lifecycle handling.
  * Refactored `PropertiesPanel` sections to be more composable (custom headers, borders).
</content>
</entry>
<entry>
<title>fix a ton of issues + improvement</title>
<updated>2026-02-25T00:37:56Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-02-25T00:37:56Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=f75b5d3fd28349ee69f03be34c1316122992c283'/>
<id>urn:sha1:f75b5d3fd28349ee69f03be34c1316122992c283</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: major editor overhaul (assets, properties, timeline, fonts) (#709)</title>
<updated>2026-02-23T02:24:02Z</updated>
<author>
<name>Maze</name>
<email>167211895+mazeincoding@users.noreply.github.com</email>
</author>
<published>2026-02-23T02:24:02Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=93d1e3383ce47e45157d70f9ba6251239dae6bc2'/>
<id>urn:sha1:93d1e3383ce47e45157d70f9ba6251239dae6bc2</id>
<content type='text'>
* feat: major editor overhaul (assets, properties, timeline, fonts)

Refactor editor core systems to standardize UI architecture and improve performance.

Assets &amp; Properties:
- Replace monolithic property items with composable `Section` architecture.
- Add specialized sections for Transform, Blending, and Text.
- Implement `NumberField` with scrubbing and math evaluation.
- Add new ColorPicker with EyeDropper and multiple format support.
- Standardize asset panels using new `PanelView` layout.

Fonts &amp; Stickers:
- Implement custom font atlas/sprite system for high-performance previews.
- Add virtualized FontPicker with search and favorites.
- Refactor stickers to use a provider-based architecture (icons, emoji, flags, shapes).
- Standardize sticker IDs to `provider:value` format.

Timeline &amp; Interaction:
- Convert bookmarks to rich objects with notes, colors, and duration.
- Refactor drag-and-drop to use Command pattern (enabling proper undo/redo).
- Add Shift modifier to disable snapping during moves/resizes.
- Add new overlays for layout guides and text editing.

Renderer:
- Add support for multi-line text, custom line-height, and letter-spacing.
- Implement global composite operation (blend modes).
- Update sticker node to resolve dynamic provider IDs.

Infrastructure:
- Add storage migrations (v3-&gt;v6) for text weights, sticker IDs, and bookmarks.
- Update global styles and core UI components (Button, Input, Popover).

* add ts-nocheck directive to settings-legacy.tsx to suppress TypeScript errors

* fix: correct global composite operation assignment in TextNode to ensure proper blend mode handling

* deleted shadcn components with errors

* formatting

* fix linter issues

* migrate from next middleware to proxy

* add missing component back

* add breadcrumb back

* chore: add @radix-ui/react-primitive deps

* chore: more deps

* chore: add missing env vars to bun-ci

* next env</content>
</entry>
<entry>
<title>fix: correct default text capitalization in text constants</title>
<updated>2026-02-08T23:34:45Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-02-08T23:34:45Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=fe10cee3eb96112983709a37831ef4ceda396178'/>
<id>urn:sha1:fe10cee3eb96112983709a37831ef4ceda396178</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: update text properties to use dynamic font size limits and scaling</title>
<updated>2026-02-08T15:50:31Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-02-08T15:50:31Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=c6666fd385588f11d6ec887455a115d525e2e6c2'/>
<id>urn:sha1:c6666fd385588f11d6ec887455a115d525e2e6c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>codebase overhaul (#697)</title>
<updated>2026-01-30T23:20:04Z</updated>
<author>
<name>Maze</name>
<email>167211895+mazeincoding@users.noreply.github.com</email>
</author>
<published>2026-01-30T23:20:04Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=7bf0984698e43b9aa2dd879f65951318ed410390'/>
<id>urn:sha1:7bf0984698e43b9aa2dd879f65951318ed410390</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: type-safety &amp; separate concerns</title>
<updated>2025-08-26T13:04:25Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2025-08-26T13:04:25Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=b459b46802a760a4a81ce91fdf24390e07375fb0'/>
<id>urn:sha1:b459b46802a760a4a81ce91fdf24390e07375fb0</id>
<content type='text'>
</content>
</entry>
</feed>
