NextIteration.SpectreConsole.Splash
0.1.2
dotnet add package NextIteration.SpectreConsole.Splash --version 0.1.2
NuGet\Install-Package NextIteration.SpectreConsole.Splash -Version 0.1.2
<PackageReference Include="NextIteration.SpectreConsole.Splash" Version="0.1.2" />
<PackageVersion Include="NextIteration.SpectreConsole.Splash" Version="0.1.2" />
<PackageReference Include="NextIteration.SpectreConsole.Splash" />
paket add NextIteration.SpectreConsole.Splash --version 0.1.2
#r "nuget: NextIteration.SpectreConsole.Splash, 0.1.2"
#:package NextIteration.SpectreConsole.Splash@0.1.2
#addin nuget:?package=NextIteration.SpectreConsole.Splash&version=0.1.2
#tool nuget:?package=NextIteration.SpectreConsole.Splash&version=0.1.2
NextIteration.SpectreConsole.Splash
A reusable Figgle-and-Spectre.Console splash screen for .NET CLIs.
- Configurable app name, Figgle font, gradient palette, and tagline strategy.
- Piecewise-linear gradient across an arbitrary number of
#RRGGBBstops. - Built-in pool of ~300 developer-culture taglines, or supply your own.
- Performance-first: the entire splash is assembled as one markup string and
emitted via a single
AnsiConsole.Markupcall.
Install
dotnet add package NextIteration.SpectreConsole.Splash
Usage
using NextIteration.SpectreConsole.Splash;
// One-line: defaults (Roman font, neutral blue gradient, random tagline).
SplashScreen.Show("my-cli");
// Fully configured.
SplashScreen.Show(new SplashOptions
{
AppName = "my-cli",
Font = Figgle.Fonts.FiggleFonts.Slant,
Colors = new SplashColors("#FFEB3B", "#FF9800", "#F44336"),
Tagline = SplashTagline.FromProvider(() => $"v{AppVersion.Current}"),
});
// Suppress the tagline.
SplashScreen.Show(new SplashOptions
{
AppName = "quiet",
Tagline = SplashTagline.None,
});
Defaults at a glance
| Property | Default |
|---|---|
Font |
FiggleFonts.Roman |
Colors |
#60A5FA → #1D4ED8 (neutral blue, reads on light/dark) |
Tagline |
Random pick from the built-in quote pool (~300 entries) |
Architecture
| File | Role |
|---|---|
SplashScreen.cs |
Public entry point (Show). |
SplashOptions.cs |
Per-call configuration. Only AppName is required. |
SplashColors.cs |
Gradient palette; validates #RRGGBB at construction. |
SplashTagline.cs |
Strategy for the sub-logo tagline (None / RandomBuiltIn / FromProvider). |
Internal/Gradient.cs |
Pure-function piecewise-linear interpolation, O(width) regardless of N stops. |
Internal/Renderer.cs |
Builds the full splash as one Spectre.Console markup string. |
Internal/Quotes.cs |
Built-in tagline pool. |
Performance notes
The original internal precursor of this library emitted one
AnsiConsole.Write(char) call per visible logo character — ~250 calls for
a typical Roman logo, each flushing its own ANSI colour-change escape.
This rewrite batches the entire splash (logo + tagline) into a single
Spectre markup string and does one AnsiConsole.Markup call. Measured
cold start on a 64×7 Roman logo: ~60 ms before, <10 ms after.
Additional wins:
FiggleFonts.Roman.Renderruns on the firstShowcall, not at class-load.- Line endings normalise on
\nand trim trailing\r— no more Windows-only logo splits breaking silently on Unix. - Space characters skip the colour-escape wrapper entirely (saves ~14 markup chars per space).
License
MIT — see LICENSE.
| 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
- Figgle (>= 0.6.5)
- Figgle.Fonts (>= 0.6.5)
- Spectre.Console (>= 0.55.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.