{"id":28928202,"url":"https://github.com/ktsu-dev/tui","last_synced_at":"2026-05-01T01:04:08.861Z","repository":{"id":296117606,"uuid":"992344245","full_name":"ktsu-dev/TUI","owner":"ktsu-dev","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-03T23:16:38.000Z","size":378,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T01:24:28.436Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ktsu-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT.md","agents":null,"dco":null,"cla":null}},"created_at":"2025-05-29T02:20:33.000Z","updated_at":"2026-04-03T23:15:57.000Z","dependencies_parsed_at":"2025-05-29T03:35:38.099Z","dependency_job_id":"e4b31be8-2dd2-4922-8385-bb7859a0ea74","html_url":"https://github.com/ktsu-dev/TUI","commit_stats":null,"previous_names":["ktsu-dev/tui"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/ktsu-dev/TUI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsu-dev%2FTUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsu-dev%2FTUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsu-dev%2FTUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsu-dev%2FTUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ktsu-dev","download_url":"https://codeload.github.com/ktsu-dev/TUI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktsu-dev%2FTUI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31495466,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-22T14:12:27.999Z","updated_at":"2026-04-07T01:01:38.001Z","avatar_url":"https://github.com/ktsu-dev.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ktsu.TUI\n\nA modern, extensible Text User Interface (TUI) library for .NET applications built on top of Spectre.Console. This library provides a clean, object-oriented approach to building interactive terminal applications with rich visual features.\n\n## Overview\n\nktsu.TUI is designed with SOLID principles and provides a modular architecture for creating terminal-based user interfaces. It features:\n\n- **Modular Architecture**: Clean separation of concerns with contracts, models, services, and UI elements\n- **Event-Driven Rendering**: Efficient rendering system that only updates when needed\n- **Extensible Design**: Easy to extend with custom UI elements and layouts\n- **Provider Abstraction**: Pluggable console providers (currently supports Spectre.Console)\n- **Dependency Injection Ready**: Built with DI in mind for easy integration\n\n## Features\n\n✓ **Rich Text Styling**: Bold, italic, underline, colors, and background colors  \n✓ **Border Elements**: Multiple border styles (single, double, rounded, thick, ASCII, none)  \n✓ **Layout System**: Stack panels with horizontal/vertical orientation and spacing  \n✓ **Input Handling**: Keyboard input processing with ESC to exit  \n✓ **Alignment Support**: Horizontal and vertical text alignment  \n✓ **Padding \u0026 Positioning**: Flexible positioning and padding system  \n✓ **Responsive Design**: Automatic sizing based on content and container dimensions  \n\n## Architecture\n\n```\nContracts → Models → Services\n    ↓         ↓         ↓\nElements → Layouts → Primitives\n    ↓\nProvider Abstraction\n```\n\n- **Contracts**: Interfaces defining the core abstractions\n- **Models**: Data structures for styling, positioning, and input\n- **Services**: Core application logic and console providers  \n- **Elements**: UI components (primitives like borders/text, layouts like stack panels)\n- **Extensions**: Helper methods and utilities\n\n## Installation\n\nAdd the NuGet package:\n\n```bash\ndotnet add package ktsu.TUI\n```\n\n## Quick Start\n\n```csharp\nusing ktsu.TUI.Core.Services;\nusing ktsu.TUI.Core.Elements.Primitives;\nusing ktsu.TUI.Core.Elements.Layouts;\nusing ktsu.TUI.Core.Models;\n\n// Create console provider\nvar consoleProvider = new SpectreConsoleProvider();\n\n// Create a simple UI\nvar ui = new BorderElement\n{\n    Title = \"My TUI App\",\n    BorderStyle = BorderStyle.Double,\n    Child = new TextElement\n    {\n        Text = \"Hello, TUI World!\",\n        Style = new TextStyle { IsBold = true, Foreground = \"green\" }\n    }\n};\n\n// Create and run application\nvar app = UIApplication.CreateBuilder(consoleProvider)\n    .UseRootElement(ui)\n    .Build();\n\nawait app.RunAsync();\n```\n\n## Demo Applications\n\nThe library includes several demonstration applications:\n\n- **Sample App** (default): Advanced demo showcasing architecture and features\n- **Interactive Demo**: Interactive controls and real-time updates (`--interactive`)  \n- **Showcase Demo**: Visual demonstration of all styling features (`--showcase`)\n\nRun demos:\n```bash\ndotnet run --project TUI.App                    # Sample app\ndotnet run --project TUI.App -- --interactive   # Interactive demo\ndotnet run --project TUI.App -- --showcase      # Showcase demo\n```\n\n## Key Components\n\n### UI Elements\n- `TextElement`: Styled text display\n- `BorderElement`: Bordered containers with titles\n- `StackPanel`: Horizontal/vertical layout container\n\n### Styling\n- `TextStyle`: Font styling (bold, italic, underline, colors)\n- `BorderStyle`: Border appearance (single, double, rounded, etc.)\n- `Padding`: Space around content\n- `Position`: Element positioning\n\n### Input System\n- Keyboard input handling\n- ESC key to exit applications\n- Extensible input event system\n\n## Contributing\n\nThis project follows clean architecture principles and emphasizes:\n- SOLID design principles\n- DRY (Don't Repeat Yourself) implementation\n- Comprehensive testing\n- Clear separation of concerns\n\n## License\n\nMIT License. Copyright (c) ktsu.dev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fktsu-dev%2Ftui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fktsu-dev%2Ftui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fktsu-dev%2Ftui/lists"}