Skip to content
amr3kPublic

About

Desktop Lottie files viewer application

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

Tayf

License Platform Rust UI Engine

A lightweight Lottie animation viewer powered by GPUI and ThorVG.

Homepage • Issues • Releases

🌐 English | العربية

Tayf Logo

Tayf demo — Lottie playback, scrubbing and export

Note

🤖 AI Disclosure: Most of the codebase in this project was generated by AI coding agents with minimal human intervention. Human involvement was limited to high-level direction, testing, and integration.

About

Tayf is a high-performance native desktop application designed for designers and developers who need to preview, inspect, control, and export Lottie animations. Built entirely in native Rust using GPUI (GPU-accelerated UI engine from Zed) and ThorVG (high-performance vector graphics engine), Tayf starts instantly, consumes minimal memory, and renders animations with silky-smooth precision.

Features

Core Functionality

  • Multi-format Support: Open standard Lottie JSON (.json) and binary DotLottie package (.lottie) files
  • Multiple Input Methods: File dialog, command-line arguments (tayf <path>), and drag-and-drop
  • Playback Controls: Play/pause, step frame by frame, loop toggle, and speed adjustment (0.5x, 1.0x, 1.5x, 2.0x)
  • Frame Scrubbing: Interactive timeline scrubber displaying frame count and timestamps

Export Engine

  • GIF Export: Fast, high-quality animated GIF export with custom resolution, frame rate, transparency, and looping
  • MP4 Video Export: H.264 video rendering with adjustable CRF quality and frame rates

Visual Customization

  • Theme-aware Background Colors: Customize canvas background separately for light and dark themes with color preset swatches
  • System Theme Integration: Seamless switching between System, Light, and Dark modes

Inspection Tools

  • Metadata Display: Comprehensive file details:
    • Dimensions (original width/height)
    • Frame rate (FPS)
    • Duration and total frames
    • File size and format

Internationalization

  • English & Arabic: Native RTL layout and full Arabic localization powered by rust-i18n
  • Runtime Switching: Instant language toggle from Preferences

Keyboard Shortcuts

Shortcut Action
Space Toggle play/pause
← / → Step 1 frame backward / forward
Shift+← / Shift+→ Step 10 frames backward / forward
Ctrl+W / Cmd+W / Esc Close file in preview / Close modal
Ctrl+Q / Cmd+Q / Alt+F4 Quit application
Ctrl+O / Cmd+O Open file dialog
Ctrl+, / Cmd+, Open Preferences
Ctrl+E / Cmd+E Open Export dialog
Ctrl+B / Cmd+B Toggle Sidebar
F1 Open About dialog

Tech Stack

Category Technology
GUI Framework GPUI (GPU-accelerated 2D UI)
Vector / Lottie Engine ThorVG (High-performance vector rasterization)
Language Rust
Export Formats Animated GIF (gif crate) & MP4 (ffmpeg)
Localization rust-i18n (English & Arabic with RTL)
Package Manager cargo

Installation & Development

Prerequisites

  • Rust toolchain (1.80+ recommended)
  • C++ compiler (for building ThorVG C++ backend)

Build & Run

# Clone repository
git clone https://github.com/amr3k/tayf.git
cd tayf

# Run in development mode
cargo run

# Open a specific file
cargo run -- /path/to/animation.json

# Run unit tests
cargo test

# Build optimized release binary
cargo build --release

The resulting standalone binary is located at target/release/tayf.

Configuration

Configuration is automatically stored in the OS app configuration directory:

Platform Path
Linux ~/.config/tayf/configurations.json
macOS (coming soon) ~/Library/Application Support/me.a3k.tayf/configurations.json
Windows (coming soon) %APPDATA%\a3k\tayf\config\configurations.json

License

This project is licensed under the GPL-3.0-or-later License - see the LICENSE file for details.


Made with ❤️ by Amr Khamis

About

Desktop Lottie files viewer application

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages