InventingAnimals.Ink.Localization
0.6.0
See the version list below for details.
dotnet add package InventingAnimals.Ink.Localization --version 0.6.0
NuGet\Install-Package InventingAnimals.Ink.Localization -Version 0.6.0
<PackageReference Include="InventingAnimals.Ink.Localization" Version="0.6.0" />
<PackageVersion Include="InventingAnimals.Ink.Localization" Version="0.6.0" />
<PackageReference Include="InventingAnimals.Ink.Localization" />
paket add InventingAnimals.Ink.Localization --version 0.6.0
#r "nuget: InventingAnimals.Ink.Localization, 0.6.0"
#:package InventingAnimals.Ink.Localization@0.6.0
#addin nuget:?package=InventingAnimals.Ink.Localization&version=0.6.0
#tool nuget:?package=InventingAnimals.Ink.Localization&version=0.6.0
Ink
This project is in very early, heavy development. Expect breaking changes, missing features, and rough edges. It is not ready for use.
UI component library for Avalonia applications, supporting Desktop (Windows, Linux, macOS), Mobile (iOS, Android), and WASM.
What's included
Ink
InventingAnimals.Ink - UI components and theming for Avalonia applications. Documentation
- InkTheme with a built-in color palette, typography, and metric tokens
- Dark and light theme support out of the box
Ink.Platform
InventingAnimals.Ink.Platform - cross-platform service abstractions. Documentation
IWindowService- opens a new window on Desktop/Mobile and a new browser tab on Web (always non-modal)ISettingsService/FileSettingsService- persistent key-value storage backed by a JSON file; trim and NativeAOT safeIRouter/InMemoryRouter- client-side navigation with full URL parsing (path, segments, query, fragment)
Ink.Platform.Browser
InventingAnimals.Ink.Platform.Browser - browser/WASM implementations of the platform services.
LocalStorageSettingsService- settings backed by browserlocalStorageBrowserHistoryRouter- routing via the History API (pushState/popstate)
Ink.FontAwesome
InventingAnimals.Ink.FontAwesome - optional Font Awesome icon control and generated icon definitions for Ink applications.
FontAwesomeIconcontrol with strongly typedIconandFaceproperties- Generated icon metadata in C# so applications do not allocate one object per icon definition
- Consumer applications provide the actual Font Awesome font files and configure the face-to-font-family mapping
- Separate package so applications only take the dependency when they want the icon set
Ink.Localization
InventingAnimals.Ink.Localization - client and server localization with no Avalonia dependency.
ILocalizationService/LocalizationService- client-side string lookup backed byResourceManagerIApiLocalizationService/ApiLocalizationService- server-side variant with explicitCultureInfoper callLoc- static ambient accessor for use in ViewModels (Loc.Get("key"),Loc.Plural(...))- CLDR plural rules via
PluralSelector; trim and NativeAOT safe
Ink.Data
InventingAnimals.Ink.Data - shared query model for DataGrid with no Avalonia or database dependency. Documentation
DataQuerywith composable filter trees (FilterAnd,FilterOr,FilterNot,FilterCondition)FilterOp- extensible operators; built-in set covers equality, comparison, range, null, in/not-in, and string opsSortDescriptor,DataPage<T>,IDataSource<T>- Full JSON round-trip via
System.Text.Json; WASM-safe
Ink.DataGrid
InventingAnimals.Ink.DataGrid - DataGrid control for Avalonia applications. Documentation
- Columns and data source defined entirely in the view model - no XAML column configuration required
DataGridModel<T>base class wires anIDataSource<T>to the grid; inherit it in your view modelListDataSource<T>inInk.Datafor in-memory collections; plug in anyIDataSource<T>for remote or database-backed data
Ink.Data.EFCore
InventingAnimals.Ink.Data.EFCore - server-side EF Core query translator. Documentation
EFCoreQueryTranslator<T>- translatesDataQueryintoIQueryable<T>filter, sort, and pagination- Type-safe column registration via expressions (
x => x.Name); unregistered fields throwUnauthorizedFieldException - Extensible with custom operators via
HandleOp
Installation
dotnet add package InventingAnimals.Ink
For platform services:
dotnet add package InventingAnimals.Ink.Platform
dotnet add package InventingAnimals.Ink.Platform.Browser # WASM projects only
dotnet add package InventingAnimals.Ink.FontAwesome # optional icon resources
dotnet add package InventingAnimals.Ink.Localization
Example:
using Avalonia.Media;
using Ink.FontAwesome;
FontAwesomeFontFamilies.ClassicSolid = new FontFamily("avares://MyApp/Assets/Font Awesome 7 Free-Solid-900.otf#Font Awesome 7 Free");
FontAwesomeFontFamilies.ClassicRegular = new FontFamily("avares://MyApp/Assets/Font Awesome 7 Free-Regular-400.otf#Font Awesome 7 Free");
FontAwesomeFontFamilies.Brands = new FontFamily("avares://MyApp/Assets/Font Awesome 7 Brands-Regular-400.otf#Font Awesome 7 Brands");
<Window
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:fa="using:Ink.FontAwesome">
<fa:FontAwesomeIcon
Icon="{x:Static fa:Icon.RectanglePro}"
Face="ClassicThin" />
</Window>
For the DataGrid control:
dotnet add package InventingAnimals.Ink.DataGrid
dotnet add package InventingAnimals.Ink.Data # included transitively, but useful standalone
For the server-side EF Core translator:
dotnet add package InventingAnimals.Ink.Data.EFCore # server only
Contact
- Security isssues: security@inventing-animals.com
- Talk to us at: hello@inventing-animals.com
License
MIT
Acknowledgements
All third party licenses are listed in the THIRD-PARTY-NOTICES file.
| Project | Acknowledgement | License |
|---|---|---|
| avaloniaui/avalonia | Built on top of | MIT |
| accntech/shad-ui | Code patterns borrowed from | MIT |
| heroui-inc/heroui | Visual design inspired by | MIT |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Microsoft.CodeAnalysis.NetAnalyzers (>= 10.0.102)
- Roslynator.Analyzers (>= 4.12.0)
- StyleCop.Analyzers (>= 1.2.0-beta.556)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.