candycore/candy-kit

PHP port of charmbracelet/fang — opinionated CLI presentation helpers: StatusLine (✓/✗/⚠/ℹ), Banner, Section header, Stage step, HelpText page, and 6 stock themes (ansi/plain/charm/dracula/nord/catppuccin).

Maintainers

Package info

github.com/sugarcraft/candy-kit

Documentation

pkg:composer/candycore/candy-kit

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v0.2.0 2026-05-07 02:01 UTC

This package is not auto-updated.

Last update: 2026-05-08 01:43:30 UTC


README

candy-kit

CandyKit

CI codecov Packagist Version License PHP

demo

composer require sugarcraft/candy-kit

PHP port of charmbracelet/fang — opinionated CLI presentation helpers that turn ordinary command- line output into something that matches the rest of the SugarCraft stack. CandyKit is library-only — drop it into any Composer project, no Symfony Console requirement.

use SugarCraft\Kit\StatusLine;
use SugarCraft\Kit\Banner;
use SugarCraft\Kit\Theme;

echo Banner::title('CandyApp', 'v0.1.0'), "\n\n";
echo StatusLine::info('connecting to https://example.com'), "\n";
echo StatusLine::success('done in 0.4s'), "\n";
echo StatusLine::warn('disk almost full'), "\n";
echo StatusLine::error('connection refused'), "\n";

Components

  • Theme — palette of Sprinkles\Style objects keyed by status level (success / error / warn / info / prompt / accent / muted). Theme::ansi() ships a sensible default; bring your own theme by passing styles to the constructor.
  • StatusLinesuccess / error / warn / info static helpers returning a glyph + message string styled per the active theme.
  • Banner — render a bordered title block with optional subtitle, rounded by default. Useful for app intros / --version output.

Test

cd candy-kit && composer install && vendor/bin/phpunit