Tesserae UI Components Library
A UI toolkit for building web-based user interfaces in C#, compiled to JavaScript via the Transpose C#-to-JavaScript compiler.
Tesserae is distributed as a .NET Standard UI toolkit on NuGet, compatible with most .NET platforms and project types. The library uses the Transpose compiler to translate C# UI components into JavaScript, so you can build web UIs using standard .NET tools and workflows.
What's in this documentation
Get started Install Tesserae from NuGet, set up a project, and learn the styling, layout and routing basics.
Core concepts How components are composed, how state flows through them, and how rendering meets the Transpose compiler.
The component catalog Every component, grouped below by what you are trying to do — lay a page out, capture a value, navigate, show a collection, float a dialog above the page. Each page carries a live sample and the generated API reference.
Extending Tesserae Build your own component, call JavaScript from C#, and wrap a third-party JS library.
Layout
Containers you build a page out of.
Stack
A Stack is a container component that abstracts the implementation of a flexbox to layout its children components. It is useful...
Grid
The Grid component provides a flexible layout container that arranges its child components into a grid structure. It is used pr...
Split View
The SplitView component creates a two-pane container that arranges two child components separated by a draggable splitter. This...
Horizontal Split View
A two-pane horizontal container with a draggable splitter for resizing each pane.
Section Stack
SectionStack is a container component used to organize content into distinct sections presented in a vertical layout. It handle...
Card
The Card component provides a contained surface for displaying related content with a title and content sections.
Accordion
The Accordion contains a list of expanders that can be toggled to reveal more information, useful for organizing content into manageable chunks.
Expander
A single expand / collapse section, with a clickable header that reveals its body content. Used standalone for "show more" affordances, o...
Masonry
The Masonry component arranges its child components in a dynamic, grid-like layout where items are organized into columns of eq...
Text & Content
Text, labels and rich content blocks.
Text Block
TextBlock is a display component used to render text in a consistent and customizable manner. It is part of the Components grou...
Label
The Label component is used to provide a descriptive title or identifier for a UI element or group of elements. It is typically...
List Item Text
A two-line list item that pairs a bold title with a lighter subtitle, with an optional leading icon in a rounded-square background.
SectionTitle
A heading used to label a section of a form or page, with optional subtitle and trailing actions. Pairs well with [SectionStack](../surfa...
Badge
A compact label component for displaying status, counts, or short tags inline with other content.
Buttons & Commands
Things the user clicks to make something happen.
Button
The Button component provides an interactive UI element that the user can click to trigger an action. It is an essential compon...
Action Button
The ActionButton component is a composite UI control that combines a display area and an associated action button. It is design...
ToggleButton
A button that maintains a checked state. Created by calling .ToToggle() on an existing Button, so all standard button styling (icons,...
IconToggle
A group of icon buttons of which exactly one is selected at a time, like a segmented control. Each item carries a UIcons glyph, a toolt...
Overflow Set
The OverflowSet component is a container designed to manage a set of UI items that may overflow the available display space. It...
Menu
A menu surface composed of clickable items, optional headers, dividers and arbitrarily deep nested submenus. Built on top of the [Popover...
Inputs
Form controls that capture a value.
Text Box
The TextBox component enables users to input text data in your application. It is designed for use in forms or any area where t...
Editable Label
EditableLabel is a UI component that displays text which can be clicked to switch into an inline editing mode. In this mode, us...
Editable Area
EditableArea is an inline editing component for multi-line text. It displays formatted text until the user enters edit mode, then swaps t...
Annotated Text Editor
A specialized editor for annotating text with custom highlights, comments, or marks.
Check Box
The CheckBox component is a UI element used for binary selection, allowing users to toggle between two states: checked and unch...
Toggle
The Toggle component represents a physical switch that allows users to turn a setting on or off. It is ideal for binary operati...
Choice Group
The ChoiceGroup component allows users to select a single option from a set of mutually exclusive choices, similar to a group o...
Option
The Option component represents a single mutually exclusive choice inside a ChoiceGroup. In the public API, the helper method is `Choic...
Dropdown
The Dropdown component renders an interactive list of options with a single visible selected item by default. When a user click...
Picker
Picker is a versatile UI component used for selecting items from a list of suggestions. It provides support for both multi-sele...
TagsInput
A form input that lets the user assemble a list of short string values ("tags" or "chips") by typing them in and confirming each with a d...
Number Picker
The NumberPicker component is a numeric input control that leverages the native HTML number input field. It provides a fluent A...
Slider
The Slider component represents a range input control that allows users to select a numeric value within a specific range. It i...
Color Picker
The ColorPicker component provides a native browser widget for selecting colors. It is part of the Tesserae UI library's Compon...
Date & Time
Calendar, clock and schedule pickers.
Date Picker
The DatePicker is a UI component that allows users to select a date using the native browser date picker widget. As part of the...
DateRangePicker
A composite picker for selecting a contiguous range of dates ("from" → "to"). Internally composed of two DatePicker instances joined by...
Date Time Picker
The DateTimePicker component provides a native browser widget for selecting date and time values. It is designed for situations...
Forms & Validation
Binding a form to data, validating it and saving it.
Validator
The Validator is a utility component designed to orchestrate and centralize the validation of multiple UI elements. It register...
Navigation
Moving between pages, sections and tabs.
Pivot
The Pivot component is a tab-based container used to organize and display content panels within a user interface. It allows use...
Breadcrumb
The Breadcrumb component is used to display a navigational trail, indicating the user's current page within a hierarchical stru...
Text Breadcrumbs
The TextBreadcrumbs component is used as a navigational container that aggregates multiple TextBreadcrumb components. It displa...
Lists & Data
Rendering a collection of items.
Items List
ItemsList is a flexible list component designed for displaying small sets of items. It belongs to the Collections group and can...
Details List
DetailsList is a robust component for displaying an information-rich collection of items. It extends the basic List capabilitie...
Virtualized List
VirtualizedList is a collection component designed to efficiently render large sets of items by virtualizing the DOM content. I...
Infinite Scrolling List
InfiniteScrollingList is a dynamic component designed to display a paginated list of UI elements that loads additional content ...
Observable Stack
ObservableStack is a container component that manages the display of its child components using a flexbox-inspired layout and a...
Search
Search inputs and the surfaces that show their results.
Search Box
SearchBox provides a dedicated input field for searching through content. It is designed to capture search queries either when ...
Searchable List
The SearchableList component is a generic list container designed to display and filter a collection of items that implement th...
Charts & Visualization
Numbers and relationships, drawn.
Feedback & Status
Progress, notifications, tooltips and empty states.
Message
An inline notification component for displaying success, warning, error, or informational content.
Toast
The Toast component provides short-lived notifications that alert users with important messages, such as success, information, ...
Spinner
The Spinner component is a visual indicator that displays an animated circle outline, suggesting that a background process is r...
Progress Indicator
The ProgressIndicator is a UI component used to visually represent the completion status of an operation when the total units o...
Overlays & Dialogs
Surfaces that float above the page.
Dialog
The Dialog component is a modal overlay that is used to display temporary content and gather user confirmation or input. It blo...
Modal
The Modal component provides a temporary overlay window that can be used to display contextual information or gather user input...
Panel
The Panel component creates a modal or non-modal overlay that presents contextual content, such as forms or informational messa...
Popover
A reusable, anchored overlay surface used to display arbitrary IComponent content next to another component (the anchor). Popovers are...
Float
The Float component is part of the Surfaces group and is designed to create absolute-positioned overlays within other container...
AI & Chat
Conversation, tool calls and the context around them.
Context Card
A card describing one piece of context attached to a conversation, and the group that folds several of them behind one summary
Media & Graphics
Images, avatars and embedded content.
Carousel
The Carousel component cycles through a list of items, typically images, in a horizontal sliding fashion.
Theming & Icons
Colours, gradients, icons and emoji.
Utilities & Behaviors
Helpers that render little or nothing on their own.
Extending Tesserae
The IComponent Interface
The interface every component implements, and the fluent extension methods shared across all of them.
Who this is for
- .NET developers building web UIs in C#.
- Teams using the Transpose compiler to run C# in the browser.
- Anyone looking for a strongly-typed C# component library for web UIs.
About Tesserae
Tesserae lets you write UI components in C# and compile them to JavaScript using the Transpose toolchain, so the same language can be used across the web application stack. The toolkit focuses on type safety, composability, and a fluent API surface for C# developers.
If you're new here, start with Project Setup, then read Layout & Alignment to build your first Tesserae UI.