You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**RGBA alpha blending**| No | No |**Yes (sRGB-linear LUT)**|No|
47
+
|**RGBA alpha blending**| No | No |**Yes (sRGB-linear LUT)**|**Yes (per-cell 0-255 Porter-Duff)**|
48
48
49
49
**What this means in practice:**
50
50
51
51
-**Spectre.Console** writes formatted text to stdout. No screen buffer, no compositing, no concurrent updates.
52
52
-**Terminal.Gui** paints all views into one shared buffer using a back-to-front painter's algorithm. If window A is fully behind window B, window A is still fully rendered.
53
53
-**XenoAtom.Terminal.UI** uses a single cell buffer with reactive invalidation and frame-to-frame diffing. Has the most sophisticated color system with true RGBA alpha blending in linear color space. But no per-window buffers or compositor pipeline.
54
-
-**SharpConsoleUI** gives each window its own character buffer, then composites them together. The **PreBufferPaint** hook fires before controls paint (for backgrounds, gradients, game rendering), controls render on top, then **PostBufferPaint** fires for effects (blur, fade, glow, transitions). This pipeline is unique -- no other .NET TUI framework exposes it.
54
+
-**SharpConsoleUI** gives each window its own character buffer, then composites them together with per-cell RGBA alpha blending (0-255 Porter-Duff). The **PreBufferPaint** hook fires before controls paint (for backgrounds, gradients, game rendering), controls render on top, then **PostBufferPaint** fires for effects (blur, fade, glow, transitions). Controls like TableControl support row-level animations (flash, highlight, fade-out removal) driven by the compositor's animation manager. This pipeline is unique -- no other .NET TUI framework exposes it.
55
55
56
56
### Gradient Backgrounds
57
57
@@ -104,8 +104,8 @@ Neither Terminal.Gui nor XenoAtom.Terminal.UI offer window-level gradients that
**Honest take:** Terminal.Gui has the most mature and widest control library -- battle-tested over years, with specialized widgets like DatePicker, ColorPicker, Slider, HexView, and Wizard. XenoAtom.Terminal.UI ships the most controls overall (100+) but is only 2 months old. SharpConsoleUI has fewer controls, but its unique strengths are interactive/live controls (TerminalControl, SparklineControl, BarGraphControl, CanvasControl with 30+ drawing primitives) and the window management + compositor layer.
118
+
**Honest take:** Terminal.Gui has the most mature and widest control library -- battle-tested over years, with specialized widgets like ColorPicker, HexView, and Wizard. XenoAtom.Terminal.UI ships the most controls overall (100+) but is only a few months old. SharpConsoleUI now covers most common control types (DatePicker, TimePicker, Slider, RangeSlider) and its unique strengths are interactive/live controls (TerminalControl, SparklineControl, BarGraphControl, CanvasControl with 30+ drawing primitives), per-cell alpha blending, row-level animations, and the window management + compositor layer.
119
119
120
120
### Window Management
121
121
@@ -208,8 +208,8 @@ XenoAtom.Terminal.UI has the most sophisticated layout system with a proper `Fle
|**.NET version**| .NET Standard 2.0+ | .NET 10 (v2 beta) | .NET 10 only | .NET 8.0+ |
214
214
|**License**| MIT | MIT | BSD-2-Clause | MIT |
215
215
|**Repo age**|~5 years |~7 years |~2 months |~1 year |
@@ -224,15 +224,15 @@ Be honest about the right tool:
224
224
-**Building a simple single-screen form?****Terminal.Gui** has the widest mature control library. **XenoAtom.Terminal.UI** has the most modern architecture with reactive bindings, but requires .NET 10.
225
225
-**Need maximum community and ecosystem?** The bigger libraries have more users, more contributors, more blog posts, and more StackOverflow answers.
226
226
-**Targeting .NET 6 or older?** SharpConsoleUI requires .NET 8+. Spectre.Console and Terminal.Gui v1 support .NET Standard 2.0. XenoAtom requires .NET 10.
227
-
-**Need DatePicker, Slider, ColorPicker, or HexView?** Terminal.Gui has these built-in. XenoAtom has Slider and ColorPicker. SharpConsoleUI doesn't (yet).
227
+
-**Need ColorPicker or HexView?** Terminal.Gui has these built-in. XenoAtom has ColorPicker. SharpConsoleUI doesn't (yet).
228
228
-**Need source-generated reactive bindings?** XenoAtom's `[Bindable]` source-generated property system with automatic dependency tracking is more sophisticated than SharpConsoleUI's lambda-based MVVM bindings.
229
229
230
230
## When SharpConsoleUI Shines
231
231
232
232
SharpConsoleUI is the right choice when you need:
233
233
234
234
-**Multi-window desktop-style apps** -- overlapping windows with drag, resize, minimize, maximize, taskbar. No other .NET library does this in a stable release.
235
-
-**Visual effects and compositing** -- gradient backgrounds, blur, fade transitions, custom buffer effects via PreBufferPaint/PostBufferPaint. The compositor pipeline is unique in the .NET TUI space.
235
+
-**Visual effects and compositing** -- per-cell RGBA alpha blending, gradient backgrounds, blur, fade transitions, row animations (flash, highlight, fade-out removal), custom buffer effects via PreBufferPaint/PostBufferPaint. The compositor pipeline is unique in the .NET TUI space.
236
236
-**Dashboard / monitoring tools** -- independent async window threads mean each panel updates on its own schedule without blocking the UI.
237
237
-**IDE-like tools** -- [LazyDotIDE](https://github.com/nickprotop/LazyDotIDE) is a working .NET IDE built entirely on SharpConsoleUI, proving the framework handles complex, multi-window applications.
238
238
-**Embedded terminal + UI** -- TerminalControl gives you a real PTY-backed terminal emulator inside a window, alongside your UI controls. Unique in the .NET ecosystem.
@@ -401,7 +401,7 @@ Different languages have their own established TUI frameworks. Here's how the ma
401
401
|**Architecture**| Compositor | Retained + segment compositor | Immediate-mode | Elm (TEA) | Retained, shared buffer |
402
402
|**Overlapping windows**| Yes | Screens (modal stack) | No | No | v2 beta |
403
403
|**Window management**| Drag, resize, minimize, maximize | No | No | No | v2 beta |
404
-
|**Built-in animations**| Frame-coupled tweens | CSS-like transitions | Via tachyonfx crate | No | No |
404
+
|**Built-in animations**| Frame-coupled tweens + row animations | CSS-like transitions | Via tachyonfx crate | No | No |
0 commit comments