TKCode.Arc 0.3.0-preview.5

This is a prerelease version of TKCode.Arc.
dotnet add package TKCode.Arc --version 0.3.0-preview.5
                    
NuGet\Install-Package TKCode.Arc -Version 0.3.0-preview.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TKCode.Arc" Version="0.3.0-preview.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TKCode.Arc" Version="0.3.0-preview.5" />
                    
Directory.Packages.props
<PackageReference Include="TKCode.Arc" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TKCode.Arc --version 0.3.0-preview.5
                    
#r "nuget: TKCode.Arc, 0.3.0-preview.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TKCode.Arc@0.3.0-preview.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TKCode.Arc&version=0.3.0-preview.5&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=TKCode.Arc&version=0.3.0-preview.5&prerelease
                    
Install as a Cake Tool

TKCode.Arc

English | 简体中文

Arc-style components for Avalonia, built on AtomUI. TKCode.Arc ports the free components of Arc — 110 components in 22 groups — with Arc's visual language and spring motion.

  • Targets net10.0 and net11.0; desktop (Windows, macOS, Linux).
  • Depends on AtomUI 6.2.8 and Avalonia 12.1.4 (exact versions), and on StreamMark for Markdown and code highlighting.
  • Design documents: design/overview.md.
  • Live demo: https://docs.tkcode.si/ (the gallery of every component, in the browser).

Packages

Package Contents
TKCode.Arc The components (UseArc()), organized like Arc's sidebar, plus a streaming Markdown control.
TKCode.Arc.Core ArcDesign tokens and palette, the spring motion engine, shared primitives, 187 built-in Lucide glyphs.
TKCode.Arc.Icons.Lucide The full Lucide set (2155 icons): LucideIcon control and LucideGeometry markup extension.
TKCode.Arc.Fonts Geist and Geist Mono (WithArcFonts()); body text uses Inter from Avalonia.Fonts.Inter.

Install

The latest preview is 0.3.0-preview.5 on NuGet:

dotnet add package TKCode.Arc --version 0.3.0-preview.5
dotnet add package TKCode.Arc.Fonts --version 0.3.0-preview.5           # optional: Geist and Geist Mono
dotnet add package TKCode.Arc.Icons.Lucide --version 0.3.0-preview.5    # optional: the full Lucide set

TKCode.Arc brings in TKCode.Arc.Core. TKCode.Arc.Blocks, TKCode.Arc.AdvancedCharts and TKCode.Arc.Special (the animated AI explainers of the Special components section) are separate packages on NuGet; TKCode.Arc.Workflow (the workflow canvas, UseArcWorkflow()) ships with them too. Versions carry a -preview suffix, so the API may still change between releases.

Getting started

AppBuilder.Configure<App>()
    .UsePlatformDetect()
    .WithInterFont()
    .WithArcFonts()          // optional: Geist display type and Geist Mono code type
    .UseAtomUI(builder =>
    {
        builder.UseDesktopControls();
        builder.UseArc();
    });

public partial class App : Application { }
<Window xmlns:arc="https://github.com/AIDotNet/TKCode.Arc">
  <StackPanel Spacing="12">
    <arc:Button Content="Save changes" />
    <arc:Button Content="Cancel" Variant="Secondary" />
    <arc:Switch Content="Email notifications" IsChecked="True" />
    <arc:CopyButton Value="npx arc add copy-button" />
    <arc:Button Content="Share" arc:Tooltip.Tip="Copy link" />
    <arc:Calendar ShowToday="True" />
  </StackPanel>
</Window>

Icons: Arc's built-in glyphs ({x:Static arc:ArcIcons.Check}) cover every icon the components use; any other Lucide icon comes from the icons package:

<Window xmlns:lucide="https://github.com/AIDotNet/TKCode.Arc/lucide">
  <lucide:LucideIcon Kind="Sparkles" Size="20" />
</Window>

Accent, appearance and motion level:

var config = new ThemeConfigBuilder()
    .WithAlgorithms(ThemeAlgorithm.Default, ThemeAlgorithm.Dark)
    .WithArc(arc => arc.Accent(ArcAccentPreset.Violet))
    .Build();
await Application.Current!.GetThemeManager()!.ApplyThemeAsync(
    new ThemeRequest(IThemeManager.DEFAULT_THEME_ID, config, ThemeTransitionReason.UserRequest));

ArcMotion.SetLevel(window, ArcMotionLevel.Reduced);   // Full, Reduced or Off

Markdown and code: CodeBlock highlights out of the box (TextMate grammars painted in Arc's palette), and Markdown renders a document or a streamed reply with the same styling:

var reply = new Markdown();
reply.Append("Here is the **fix**:\n\n```csharp\n");
reply.Append("var total = items.Sum(i => i.Price);\n```\n");
reply.Complete();

Notes for applications:

  • Do not enable InvariantGlobalization (number and date formatting needs culture data).
  • Anchored popups (menus, selects, tooltips, popovers) are drawn in the window's overlay layer, so they sit exactly sideOffset away from their trigger and never cover it.
  • Button, Calendar, Carousel, ContextMenu, DatePicker, Slider, SplitButton, TabItem, TimePicker, TreeView and TreeViewItem share names with Avalonia.Controls; alias one namespace when a file imports both.

Building

Requires the .NET 11 SDK (see global.json) and the .NET 10 runtime (AtomUI build tasks run on it).

dotnet build TKCode.Arc.slnx
dotnet test tests/TKCode.Arc.Core.Tests
dotnet test tests/TKCode.Arc.Tests
dotnet run --project gallery/TKCode.Arc.Gallery.Desktop -f net10.0

Sponsors

TKCode.Arc is mainly sponsored by nextco.work, which provides affordable, easy-to-use access to Claude, OpenAI and DeepSeek models. Thank you for supporting the project.

License

MIT. See THIRD-PARTY-NOTICES.md for Arc (MIT), Lucide (ISC), fonts (OFL), StreamMark, TextMateSharp, Oniguruma and Markdig, and the AtomUI (LGPL-3.0) dependency.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on TKCode.Arc:

Package Downloads
TKCode.Arc.Blocks

Page-level block compositions for TKCode.Arc, built from Arc components. Ports Arc's free blocks and adds original ones.

TKCode.Arc.AdvancedCharts

Advanced charts for TKCode.Arc: DataGrid, a spreadsheet grid with range selection, inline editing, a fill handle, Excel and Sheets clipboard, undo, sorting, filtering, grouping, totals and export.

TKCode.Arc.Special

Special components for TKCode.Arc, the uiarc.dev "Special components" section: animated AI explainers (prompt cache, reasoning tree, speculative decoding, mixture of experts, agent loop).

TKCode.Arc.Workflow

Workflow canvas for TKCode.Arc: show and edit graphs of steps and connections on a dotted canvas, watch a run step by step, pan and zoom, arrange automatically and undo.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on TKCode.Arc:

Repository Stars
AIDotNet/Avalonia-Assistant
Windows 桌面 AI 助理。Agent 循环用 pi.net 的 Pi.CodingAgent, 界面用 TKCode.Arc,交互参考 WorkBuddy:左侧任务与空间, 中间对话,输入框里带模型、权限和工作区选择。
Version Downloads Last Updated
0.3.0-preview.5 0 10/24/2026
0.3.0-preview.4 43 10/23/2026
0.3.0-preview.3 48 10/23/2026
0.3.0-preview.2 50 10/23/2026
0.3.0-preview.1 52 10/21/2026
0.2.0-preview.1 48 10/21/2026
0.1.1-preview.1 57 10/21/2026
0.1.0-preview.1 43 10/20/2026