Skip to content

Commit

Permalink
release: Prepare v0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
marc2332 committed Aug 3, 2023
1 parent c9cc59e commit a4a6a8d
Show file tree
Hide file tree
Showing 19 changed files with 81 additions and 81 deletions.
41 changes: 18 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,38 +68,33 @@ cargo run --example counter
You can also try [`freya-template`](https://github.com/marc2332/freya-template)

### Usage 📜
Add Freya as a dependency via git (it's not published on [crates.io](https://crates.io/) yet) in your `Cargo.toml`:
Add Freya and Dioxus as dependencies:

```toml
freya = { git = "https://github.com/marc2332/freya" }
freya = "0.1"
dioxus = { version = "0.4", features = ["macro", "hooks"] }
```

### Features ✨
- Support for Windows, Linux and MacOS
- Text, containers, images, svg, etc
- Headless testing
- Hot reload
- Optional DevTools panel
- Easy multiline text editing
- Components crate (with theming support)
- Scroll views
- Virtualized scroll views
- Button
- Slider
- Switch
- Dropdown
- and a few more
- Keyboard and Mouse events
- Hooks crate for text editing, animating, theming..
- ⛏️ Built-in **components** (button, scroll views, switch and more)
- 🚇 Built-in **hooks** library (animations, text editing and more)
- 🔍 Built-in **devtools** panel
- 🧰 Built-in **headless testing** runner for components
- 🎨 **Theming** support (not extensible yet ⚠️)
- 🛩️ Cross-platform (Windows, Linux, MacOS)
- 🖼️ SKSL **Shaders** support
- 🔄️ Dioxus **Hot-reload** support
- 📒 Multi-line **text editing** (experimental ⚠️)
- 🦾 Basic **Accessibility** Support (experimental ⚠️)
- 🧩Compatible with dioxus-std and other Dioxus renderer-agnostic libraries

### Goals 😁
- Performant and low memory usage
- Good developer experience
- Cross-platform
- Provide accessibility APIs
- Provide testing APIs
- Provide useful built-in components and hooks
- Ggood developer experience
- Cross-platform support
- Decent Accessibility support
- Useful testing APIs
- Useful and extensible components and hooks

## Status ⌚

Expand Down
17 changes: 10 additions & 7 deletions book/src/differences_with_dioxus.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@

**Freya** uses most of the core packages of Dioxus, but not all them.

These are the main differences:
- Freya has it's own elements, attributes and events, instead of `HTML`.
- Freya uses it's own UI layout library called [`torin`](https://github.com/marc2332/freya/tree/main/torin), instead of [`taffy`](https://github.com/DioxusLabs/taffy).
- Freya uses Skia, instead of webview or other graphics libraries used by Dioxus.
- Freya comes with it's own set of components and hooks, on the other hand Dioxus web/desktop can take advantage of existing CSS libraries and HTML elements.
- Freya has an integrated devtools panel, dioxus web/desktop already have the browser/webview devtools.
- Freya comes with a headless testing runner.
These are the main differences between Freya and the different Dioxus renderers for Desktop (webview and Blitz):

| Category | Freya | Dioxus |
|--------------------------------------|------------------|---------------------------------|
| **Elements, attributes and events** | Custom | HTML |
| **Layout** | Custom ([`torin`](https://github.com/marc2332/freya/tree/main/torin)) | Browser and [`taffy`](https://github.com/DioxusLabs/taffy) |
| **Renderer** | Skia | WebView or WGPU |
| **Components library** | Custom | None, but can use CSS libraries |
| **Devtools** | Custom | Webviews already ship them |
| **Headless testing runner** | Custom | None |
2 changes: 1 addition & 1 deletion book/src/guides/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ version = "0.1.0"
edition = "2021"

[dependencies]
freya = { git = "https://github.com/marc2332/freya" }
freya = "0.1"
dioxus = { version = "0.4", features = ["macro", "hooks"] }
```

Expand Down
19 changes: 11 additions & 8 deletions book/src/what_is_freya.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
# What is Freya?

**Freya** is native **GUI** library built on top of 🧬 [Dioxus](https://dioxuslabs.com)'s core, it also uses 🎨 [Skia](https://skia.org/) as a graphics library, for 🦀 Rust.
**Freya** is native **GUI** library for Rust🦀, built on top of 🧬 [Dioxus](https://dioxuslabs.com)'s core and powered by 🎨 [Skia](https://skia.org/) as a graphics library.

### Features
- ⛏️ Built-in components and hooks library
- 🔍 Integrated devtools
- 🧰 Built-in testing runner for components.
- ⛏️ Built-in **components** (button, scroll views, switch and more)
- 🚇 Built-in **hooks** library (animations, text editing and more)
- 🔍 Built-in **devtools** panel
- 🧰 Built-in **headless testing** runner for components
- 🎨 **Theming** support (not extensible yet ⚠️)
- 🛩️ Cross-platform (Windows, Linux, MacOS)
- 🥸 Easy to use
- 🖼️ Shaders support
- 🔄️ Hot-reload
- 📒 Multi line text editing
- 🖼️ SKSL **Shaders** support
- 🔄️ Dioxus **Hot-reload** support
- 📒 Multi-line **text editing** (experimental ⚠️)
- 🦾 Basic **Accessibility** Support (experimental ⚠️)
- 🧩Compatible with dioxus-std and other Dioxus renderer-agnostic libraries

### Why 🧬 Dioxus?

Expand Down
6 changes: 3 additions & 3 deletions common/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-common"
description = "Cross-platform GUI Library."
description = "Internal common utilities for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[dependencies]
Expand Down
6 changes: 3 additions & 3 deletions components/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-components"
description = "Cross-platform GUI Library."
description = "Components library desgined for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[dependencies]
Expand Down
2 changes: 1 addition & 1 deletion components/src/button.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ pub fn Button<'a>(cx: Scope<'a, ButtonProps<'a>>) -> Element {
height: "auto",
direction: "both",
color: "{color}",
shadow: "0 5 20 0 rgb(0, 0, 0, 100)",
shadow: "0 2 10 1 rgb(0, 0, 0, 45)",
corner_radius: "5",
padding: "8",
background: "{background}",
Expand Down
6 changes: 3 additions & 3 deletions core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-core"
description = "Cross-platform GUI Library."
description = "Internal core funcionatilies for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[features]
Expand Down
5 changes: 3 additions & 2 deletions devtools/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
[package]
name = "freya-devtools"
description = "Devtools panel integration for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[dependencies]
Expand Down
7 changes: 4 additions & 3 deletions dom/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
[package]
name = "freya-dom"
description = "Internal DOM abstractions for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[features]
Expand All @@ -26,6 +27,6 @@ dioxus-core = { workspace = true }

skia-safe = { workspace = true }

uuid = { version = "1.2.2", features = ["v4"]}
uuid = { workspace = true }
rustc-hash = { workspace = true }
tracing = { workspace = true }
6 changes: 3 additions & 3 deletions elements/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-elements"
description = "Cross-platform GUI Library."
description = "Internal elements, attributes and events designed for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[dependencies]
Expand Down
6 changes: 3 additions & 3 deletions freya/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya"
description = "Cross-platform GUI Library."
description = "Cross-platform GUI Library powered by Dioxus and Skia."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[features]
Expand Down
6 changes: 3 additions & 3 deletions hooks/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-hooks"
description = "Cross-platform GUI Library."
description = "Hooks library designed for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[features]
Expand Down
6 changes: 3 additions & 3 deletions layout/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-layout"
description = "Cross-platform GUI Library."
description = "Internal layout and layers management for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[target."cfg(target_os = \"linux\")".dependencies.skia-safe]
Expand Down
6 changes: 3 additions & 3 deletions renderer/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-renderer"
description = "Cross-platform GUI Library."
description = "Internal renderer powered by Skia for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[target."cfg(target_os = \"linux\")".dependencies.skia-safe]
Expand Down
6 changes: 3 additions & 3 deletions state/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-node-state"
description = "Cross-platform GUI Library."
description = "Internal Node states for Dioxus RealDOM elements used in Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[dependencies]
Expand Down
6 changes: 3 additions & 3 deletions testing/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "freya-testing"
description = "Cross-platform GUI Library."
description = "Headless test runner for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[dependencies]
Expand Down
6 changes: 3 additions & 3 deletions torin/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "torin"
description = "Cross-platform GUI Library."
description = "UI layout Library designed for Freya."
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["Marc Espín <[email protected]>"]
readme = "../readme.md"
homepage = "https://github.com/marc2332/freya"
homepage = "https://freyaui.dev/"
repository = "https://github.com/marc2332/freya"
keywords = ["gui", "ui", "cross-platform", "dioxus", "skia", "graphics"]
keywords = ["gui", "ui", "desktop", "skia", "dioxus"]
categories = ["GUI"]

[features]
Expand Down
3 changes: 0 additions & 3 deletions torin/readme.md

This file was deleted.

0 comments on commit a4a6a8d

Please sign in to comment.