From 636732fc9eb9a3a9009843f9d209f6d0d0f49880 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Sat, 31 Jan 2026 21:59:05 +0100 Subject: [PATCH] Blog --- blog/authors.yml | 13 +++++--- blog/new-design.md | 1 + blog/osui-0.2.0.md | 32 +++++++++++++++++++ blog/osui-rewrite.md | 1 + docs/04-advanced/02-internals-macros.md | 1 - .../01-guides/00-creating-components.md | 2 +- .../01-guides/06-building-complex-layouts.md | 2 -- .../03-concepts/04-rendering-pipeline.md | 2 -- .../04-advanced/02-internals-macros.md | 1 - 9 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 blog/osui-0.2.0.md diff --git a/blog/authors.yml b/blog/authors.yml index a93b500..1d8a02f 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -1,7 +1,12 @@ kleo-dev: - name: Leo + name: Klesti title: Creator of OSUI - url: https://github.com/kleo-dev - image_url: https://github.com/kleo-dev.png + url: https://selimaj.dev + image_url: https://github.com/selimaj-dev.png socials: - github: kleo-dev + github: selimaj-dev + instagram: selimaj.dev + x: selimajdev + linkedin: klesti-selimaj + portfolio: https://selimaj.dev + youtube: SelimajDev diff --git a/blog/new-design.md b/blog/new-design.md index c849af4..34bd0d0 100644 --- a/blog/new-design.md +++ b/blog/new-design.md @@ -1,6 +1,7 @@ --- title: OSUI v0.0.9 alpha, what's new and should you update description: OSUI v0.0.9 is just on the edge of development, alpha is just the beginning. +date: 2025-06-30T22:19 slug: osui-0.0.9-alpha authors: - kleo-dev diff --git a/blog/osui-0.2.0.md b/blog/osui-0.2.0.md new file mode 100644 index 0000000..6bc3eae --- /dev/null +++ b/blog/osui-0.2.0.md @@ -0,0 +1,32 @@ +--- +title: OSUI v0.2.0 is here! +description: New codebase, new strucutre, new everything. +date: 2026-01-31 18:52 +slug: osui-0.2.0 +authors: + - kleo-dev +--- + +Wow, 2 years into this project, i was 14 years old when i started this project, aside from my first [Rust project](https://github.com/wyst-lang/wyst/tree/legacy) This was my second project and my most important for learning how rust actually works. + +I'll be honest, i wasn't the best developer back then, but i've learned so much, and i'm excited for a new era, i want to get back into this project to thank it for placing me where i'm at. + +Enough said though, let's get into the changes. + +## Rewrite +This rewrite has been one of the best yet, while not fully frontend featured, the engine and structure matters a lot, this is a much more resilient architecture than any other OSUI structure. + +## Performance +The performance is much better and it's more predictable, however i do not have a clue on why the spikes appear on those specific iterations. + +## Scoping +Scoping allows for the separation of dynamic and static DOM, for a more flexible UI, this makes `for` loops and `if` statements work perfectly without any bugs. + +![Scoping](https://private-user-images.githubusercontent.com/103524696/540255465-fe705306-260f-4443-b31f-17ecb9401ef8.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njk4OTMxOTMsIm5iZiI6MTc2OTg5Mjg5MywicGF0aCI6Ii8xMDM1MjQ2OTYvNTQwMjU1NDY1LWZlNzA1MzA2LTI2MGYtNDQ0My1iMzFmLTE3ZWNiOTQwMWVmOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTMxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDEzMVQyMDU0NTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jM2FjY2ZmMjQzMmRhZGVhZjFjZmMxMjg2YzFlZTFkNzdhNGM4OTA2MWU2MWM3ZjliNDY1YzE3ZGFjMmRiMTQ1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.zuJ_ZkgzhP0Ww2Z3-zu12fQPQVRxl_kr5VQwHbDD5sQ) + +## What's missing +I've only worked on this version for about 2-3 weeks, so it's not fully featured, here are the features that will be added on future versions: + +- Positioning and sizing API, Position::Center, etc. +- Styling API, fg: #fff, etc. +- RSX string dependencies (or ref cloning) (`%state "{state}"`). \ No newline at end of file diff --git a/blog/osui-rewrite.md b/blog/osui-rewrite.md index 8d0ff78..33aabdd 100644 --- a/blog/osui-rewrite.md +++ b/blog/osui-rewrite.md @@ -1,6 +1,7 @@ --- title: Releasing OSUI v0.0.9 description: A new upcoming version of OSUI will come out. Let's re-write it. +date: 2025-01-19T23:16 slug: osui-0.0.9-rewrite authors: - kleo-dev diff --git a/docs/04-advanced/02-internals-macros.md b/docs/04-advanced/02-internals-macros.md index 9b004c4..9e69d93 100644 --- a/docs/04-advanced/02-internals-macros.md +++ b/docs/04-advanced/02-internals-macros.md @@ -1,6 +1,5 @@ --- sidebar_position: 2 -title: Internals: Macros --- # Internals: Macros diff --git a/versioned_docs/version-0.2.0/01-guides/00-creating-components.md b/versioned_docs/version-0.2.0/01-guides/00-creating-components.md index 438b18e..87e9b7f 100644 --- a/versioned_docs/version-0.2.0/01-guides/00-creating-components.md +++ b/versioned_docs/version-0.2.0/01-guides/00-creating-components.md @@ -73,7 +73,7 @@ pub fn App(cx: &Arc) -> View { * **Parameter Names**: The names of your function parameters (e.g., `name`, `age`) become the names of the props you use when instantiating the component in `rsx!`. * **Reference Types**: Props are typically passed as references (e.g., `&str`, `&u8`). The `#[component]` macro automatically "strips" the reference when generating the internal component struct, storing the owned type. This means you don't need to manually clone values unless you intend to move them into a closure or `State`. -* **`children` Prop**: As seen in the [previous guide](../intro/03-example-basic-component.md), any content nested inside a component's `rsx!` invocation is implicitly passed as a `children: &Rsx` prop. This allows for flexible content composition. +* **`children` Prop**: As seen in the [previous guide](/docs/intro/03-example-basic-component.md), any content nested inside a component's `rsx!` invocation is implicitly passed as a `children: &Rsx` prop. This allows for flexible content composition. ### Example: Component with `children` and custom props diff --git a/versioned_docs/version-0.2.0/01-guides/06-building-complex-layouts.md b/versioned_docs/version-0.2.0/01-guides/06-building-complex-layouts.md index 1cbaa96..a8d5959 100644 --- a/versioned_docs/version-0.2.0/01-guides/06-building-complex-layouts.md +++ b/versioned_docs/version-0.2.0/01-guides/06-building-complex-layouts.md @@ -151,5 +151,3 @@ The `MyCustomLayout` component above demonstrates a basic two-column layout. You * **Composition**: Layout components can themselves be children of other layout components, allowing you to build complex nested structures. While implementing a full layout system like CSS Flexbox is beyond the scope of OSUI's core, these primitives empower you to craft highly customized and visually rich terminal interfaces by manually managing space and component placement. - -**Next:** Explore the detailed [API Reference](../reference/00-crate-structure.md) for all OSUI modules and types. diff --git a/versioned_docs/version-0.2.0/03-concepts/04-rendering-pipeline.md b/versioned_docs/version-0.2.0/03-concepts/04-rendering-pipeline.md index c27afbc..b090549 100644 --- a/versioned_docs/version-0.2.0/03-concepts/04-rendering-pipeline.md +++ b/versioned_docs/version-0.2.0/03-concepts/04-rendering-pipeline.md @@ -71,5 +71,3 @@ graph TD * **Extensibility**: The `Engine` trait allows for different rendering backends (e.g., to a file, to a graphical window, or for benchmarking) without modifying component logic. Understanding this pipeline helps in debugging rendering issues, optimizing performance, and building custom rendering logic within your OSUI applications. - -**Next:** Explore advanced topics like [Performance Benchmarking](../advanced/00-performance-benchmarking.md). diff --git a/versioned_docs/version-0.2.0/04-advanced/02-internals-macros.md b/versioned_docs/version-0.2.0/04-advanced/02-internals-macros.md index 9b004c4..9e69d93 100644 --- a/versioned_docs/version-0.2.0/04-advanced/02-internals-macros.md +++ b/versioned_docs/version-0.2.0/04-advanced/02-internals-macros.md @@ -1,6 +1,5 @@ --- sidebar_position: 2 -title: Internals: Macros --- # Internals: Macros