{"id":50255482,"url":"https://github.com/kud/shui","last_synced_at":"2026-05-27T05:38:02.631Z","repository":{"id":349638291,"uuid":"1203232396","full_name":"kud/shui","owner":"kud","description":"🌊 Fluid terminal UI for Zsh — a design system for the shell","archived":false,"fork":false,"pushed_at":"2026-04-23T23:02:48.000Z","size":1378,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-24T01:16:55.945Z","etag":null,"topics":["cli","components","design-system","shell","terminal","theme","tui","ui","zsh","zsh-library"],"latest_commit_sha":null,"homepage":"https://kud.github.io/shui","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-06T21:12:56.000Z","updated_at":"2026-04-23T23:02:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kud/shui","commit_stats":null,"previous_names":["kud/shui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kud/shui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fshui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fshui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fshui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fshui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kud","download_url":"https://codeload.github.com/kud/shui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fshui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33553127,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","components","design-system","shell","terminal","theme","tui","ui","zsh","zsh-library"],"created_at":"2026-05-27T05:38:01.630Z","updated_at":"2026-05-27T05:38:02.606Z","avatar_url":"https://github.com/kud.png","language":"Shell","funding_links":[],"categories":["Styling \u0026 Output"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"icon.png\" width=\"128\" alt=\"shui\" /\u003e\n  \u003ch1\u003eshui · 水\u003c/h1\u003e\n  \u003cp\u003e\u003cstrong\u003eShell UI for Zsh. 水 — fluid by design.\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/badge/zsh-5.0%2B-blue?style=flat-square\" alt=\"Zsh 5.0+\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/dependencies-none-22C55E?style=flat-square\" alt=\"No dependencies\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-22C55E?style=flat-square\" alt=\"MIT\" /\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"#-features\"\u003eFeatures\u003c/a\u003e •\n    \u003ca href=\"#-quick-start\"\u003eQuick Start\u003c/a\u003e •\n    \u003ca href=\"#-component-reference\"\u003eComponent Reference\u003c/a\u003e •\n    \u003ca href=\"#-development\"\u003eDevelopment\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n**shui** = Shell UI. 水 = water in Chinese — fluid, effortless, takes the shape of its container.\n\nMost Zsh scripts scatter raw `echo -e \"\\033[32m...\"` calls everywhere. shui gives you a proper design system instead — semantic components, a token-based theme engine, and a single consistent API.\n\nOne file to source. No dependencies. Pure Zsh.\n\n\u003e Examples below use `SHUI_ICONS=emoji` — works everywhere without a Nerd Font.\n\u003e Swap to `SHUI_ICONS=nerd` for richer glyphs if you have one installed.\n\n---\n\n## ✨ Features\n\n- **Unified message API** — `shui message \u003ctype\u003e \u003ctext\u003e` covers success, error, warning, info, and muted in a single consistent command\n- **Token-based theme engine** — swap colours, icons, and styles via environment variables without touching component code\n- **Inline components** — `badge` and `pill` write to stdout without a newline, composing naturally inside `$(...)` expressions\n- **Interactive prompts** — `confirm`, `select`, `radio`, `multiselect`, and `input` with keyboard navigation and sensible defaults\n- **Progress \u0026 spinners** — `progress`, `spinner`, and `loader` with optional native iTerm2 dock badge integration\n- **Zero dependencies** — a single `source shui.zsh` is all you need; no npm, no brew, no external tools\n- **NO_COLOR aware** — respects the [NO_COLOR](https://no-color.org/) convention; degrades gracefully to plain ASCII in constrained environments\n\n---\n\n## 🚀 Quick Start\n\n```zsh\ngit clone https://github.com/kud/shui ~/.shui\nsource ~/.shui/shui.zsh\n\nshui message success \"Deployment complete\"\nshui message error   \"Build failed\"\nshui message warning \"Deprecated flag used\"\nshui message info    \"Running in dry-run mode\"\nshui message muted   \"Skipped (already up-to-date)\"\n```\n\n```console\n✅ Deployment complete\n❌ Build failed\n⚠️ Deprecated flag used\nℹ️ Running in dry-run mode\n   Skipped (already up-to-date)\n```\n\n### Importing in a script\n\nSource shui at the top of any Zsh script:\n\n```zsh\n#!/usr/bin/env zsh\nsource \"${0:A:h}/lib/shui/shui.zsh\"\n```\n\n`${0:A:h}` is the Zsh idiom for the absolute directory of the current script — the path resolves correctly regardless of where you call the script from.\n\nTo select a theme before loading:\n\n```zsh\nSHUI_THEME=minimal SHUI_ICONS=emoji source shui.zsh\n```\n\n---\n\n## 📖 Component Reference\n\n### Messages\n\n`shui message` is the preferred unified API for inline messages. It replaces the old `*-simple` shorthand commands.\n\n```zsh\nshui message \u003ctype\u003e \u003ctext\u003e\n```\n\n| Type      | Output                       |\n| --------- | ---------------------------- |\n| `success` | Icon + success-coloured text |\n| `error`   | Icon + error-coloured text   |\n| `warning` | Icon + warning-coloured text |\n| `info`    | Icon + info-coloured text    |\n| `muted`   | Italic dimmed text, no icon  |\n\n```zsh\nshui message success \"Deployed to production\"\nshui message error   \"Connection refused\"\nshui message warning \"API key expires in 3 days\"\nshui message info    \"Running in dry-run mode\"\nshui message muted   \"Skipped — already installed\"\n```\n\n```console\n✅ Deployed to production\n❌ Connection refused\n⚠️ API key expires in 3 days\nℹ️ Running in dry-run mode\n   Skipped — already installed\n```\n\n\u003e **Deprecated commands** — `shui info-simple`, `shui warning-simple`, `shui success-simple`, and `shui error-simple` still work but print a deprecation warning to stderr and will be removed in a future release. Migrate to `shui message \u003ctype\u003e \u003ctext\u003e`.\n\nThe top-level shorthand commands `shui success`, `shui error`, `shui warning`, and `shui info` remain available for quick one-liners.\n\n---\n\n### Text\n\nInline text formatting and semantic colour helpers.\n\n```zsh\nshui bold      \"Bold text\"\nshui dim       \"Dimmed text\"\nshui italic    \"Italic text\"\nshui underline \"Underlined text\"\n\nshui text --color=success \"Success colour\"\nshui text --color=muted   \"Muted colour\"\n```\n\nAvailable colour types: `success` `error` `warning` `info` `primary` `muted` `accent`\n\n---\n\n### Layout\n\nStructure your script output with sections, headings, and spacing.\n\n```zsh\nshui section    \"Setup\"\nshui subtitle   \"Installing packages\"\nshui subsection \"npm dependencies\"\nshui subsection \"brew formulae\"\nshui divider\nshui spacer\nshui spacer 3\n```\n\n```console\n\nSetup\n\n◆ Installing packages\n• npm dependencies\n• brew formulae\n────────────────────────────────────────────────────────────────────────────────\n```\n\n---\n\n### Screen\n\nRenders a section header, runs a command, then prints elapsed time. Returns the command's exit code.\n\n```zsh\nshui screen \"Building\" -- npm run build\nshui screen \"Running tests\" -- zsh tests/test-components.zsh\n```\n\n```console\n\nBuilding\n\n✅ Build complete\n⏱ Building · 3s\n```\n\n```zsh\nshui screen \u003ctitle\u003e -- \u003ccommand\u003e [args…]\n```\n\n---\n\n### Timer\n\nLightweight per-step timing. Call `timer-start` before a block and `timer-end \u003clabel\u003e` after — prints elapsed time in muted colour without affecting output or exit codes.\n\n```zsh\nshui timer-start\nmise plugins update\nshui timer-end \"Plugin index update\"\n```\n\n```console\n⏱ Plugin index update · 2s\n```\n\n```zsh\nshui timer-start\nshui timer-end \u003clabel\u003e\n```\n\n---\n\n### Badge\n\nSolid background inline label. Writes to stdout **without a newline** — use inside `$(...)`.\n\n```zsh\necho \"Version: $(shui badge success v2.0)\"\necho \"Build:   $(shui badge error FAIL)  $(shui badge success PASS)  $(shui badge muted SKIP)\"\n```\n\n```zsh\nshui badge \u003ctype\u003e \u003ctext\u003e\n```\n\nAvailable types: `success` `error` `warning` `info` `primary` `muted`\n\n---\n\n### Pill\n\nRounded-edge inline tag. Writes to stdout **without a newline** — use inside `$(...)`.\n\n```zsh\necho \"Status: $(shui pill warning beta)\"\necho \"$(shui pill success stable)  $(shui pill muted deprecated)\"\n```\n\n```zsh\nshui pill \u003ctype\u003e \u003ctext\u003e\nshui pill 135 \"custom\"   # any 256-colour code (0–255)\n```\n\nAvailable types: `success` `error` `warning` `info` `primary` `muted` `accent` or any `0–255` colour code\n\n---\n\n### Box\n\nBordered content block with an optional title. Inline components work inside content.\n\n```zsh\nshui box \"Simple content inside a box\"\nshui box --title=\"Summary\" \"3 installed\\n1 skipped\\n0 errors\"\nshui box --title=\"Status\" \"$(shui badge success OK) All systems nominal\"\n```\n\n```console\n┌────────────────────────────────────────────┐\n│  Simple content inside a box               │\n└────────────────────────────────────────────┘\n\n┌──────────────── Summary ───────────────────┐\n│  3 installed                               │\n│  1 skipped                                 │\n│  0 errors                                  │\n└────────────────────────────────────────────┘\n```\n\n---\n\n### Table\n\nPipe-separated (`|`) rows by default. First argument is the header. Column widths adjust automatically. Use `--sep` to change the delimiter.\n\n```zsh\nshui table \\\n  \"Package|Version|Status\" \\\n  \"node|20.11.0|$(shui badge success OK)\" \\\n  \"bun|1.1.3|$(shui badge success OK)\" \\\n  \"python|3.12.0|$(shui badge warning outdated)\"\n```\n\n```console\n┌─────────┬──────────┬──────────┐\n│ Package │ Version  │ Status   │\n├─────────┼──────────┼──────────┤\n│ node    │ 20.11.0  │  OK      │\n│ bun     │ 1.1.3    │  OK      │\n│ python  │ 3.12.0   │  outdated│\n└─────────┴──────────┴──────────┘\n```\n\n---\n\n### Progress\n\nAdds a newline by default. Use `--inline` for loop-based updates.\n\n```zsh\nshui progress 50 100\nshui progress 50 100 --width=30 --label=\"Downloading \"\n\n# loop use\nfor i in {1..100}; do\n  shui progress $i 100 --inline\n  sleep 0.05\ndone\necho\n```\n\n```console\n████████████████████░░░░░░░░░░░░░░░░░░░░ 50%\nDownloading ██████████░░░░░░░░░░░░░░░░░░░░ 50%\n```\n\n**iTerm2 Dock/tab badge** — pass `--iterm` (or `--iterm=\u003cstate\u003e`) to also update the native macOS progress indicator. No-op in other terminals.\n\n| Flag                         | iTerm2 state             |\n| ---------------------------- | ------------------------ |\n| `--iterm` / `--iterm=normal` | Normal (blue)            |\n| `--iterm=success`            | Success (green)          |\n| `--iterm=warning`            | Warning (yellow)         |\n| `--iterm=error`              | Error (red)              |\n| `--iterm=indeterminate`      | Spinning (no percentage) |\n| `--iterm=clear`              | Dismiss the indicator    |\n\n---\n\n### Spinner\n\nRuns a command in the background with a spinner. Exits with the command's exit code.\n\nIn iTerm2, automatically emits an indeterminate badge while running, switches to success or error on completion, then clears.\n\n```zsh\nshui spinner \"Installing…\" -- brew install ripgrep\n\nshui spinner \\\n  --success=\"Installed!\" \\\n  --fail=\"Installation failed\" \\\n  \"Installing…\" -- npm install\n```\n\n---\n\n### Loader\n\nIndeterminate loading indicator — loops for a fixed duration then clears the line. Use when you can't wrap a command in `spinner`.\n\n```zsh\nshui loader \"Installing packages\"\nshui loader --duration=10 \"Building\"\nshui loader --style=dots    \"Connecting\"   # default\nshui loader --style=pulse   \"Connecting\"\nshui loader --style=spinner \"Connecting\"\n```\n\n```zsh\nshui loader [--style=dots|pulse|spinner] [--duration=N] \u003cmsg\u003e\n```\n\n| Style     | Description                        |\n| --------- | ---------------------------------- |\n| `dots`    | Cycling dot trail — `.` `..` `...` |\n| `pulse`   | Bold/dim alternating text          |\n| `spinner` | Braille spinner character          |\n\n---\n\n### Animation\n\nOne-shot text effects — play once and exit.\n\n```zsh\nshui typewriter \"Deploying to production…\"\nshui typewriter --delay=0.05 --color=success \"Done!\"\n\nshui fade-in \"Welcome\"\nshui fade-in --steps=10 \"Welcome\"\n```\n\n```zsh\nshui typewriter [--delay=N] [--color=\u003ctype\u003e] \u003ctext\u003e\nshui fade-in    [--steps=N] \u003ctext\u003e\n```\n\n---\n\n### Interactive\n\nPrompt the user for confirmation, a selection, or free-form input.\n\n```zsh\n# Confirm — exits 0 for yes, 1 for no\nshui confirm \"Deploy to production?\"\nshui confirm --default=y \"Continue?\"\n\n# Select — numbered list, prints the chosen option to stdout\nchoice=$(shui select \"Pick a profile:\" work personal staging)\n\n# Radio — ↑↓ to move, Enter to confirm. Prints chosen option to stdout.\nenv=$(shui radio \"Target environment:\" development staging production)\n\n# Multiselect — ↑↓ to move, Space to toggle, Enter to confirm.\n# Returns selected options newline-separated to stdout.\nchoices=$(shui multiselect \"Which packages?\" brew npm cargo)\nselected=(\"${(@f)choices}\")\n\n# Input — prints the entered value to stdout\nname=$(shui input \"Your name:\")\nname=$(shui input --default=\"world\" \"Your name:\")\n```\n\n---\n\n## Themes\n\n### Built-in themes\n\n| Theme     | Description                                  |\n| --------- | -------------------------------------------- |\n| `default` | 256-colour with automatic 16-colour fallback |\n| `minimal` | Clean 16-colour ANSI palette                 |\n| `plain`   | No colour — text and ASCII icons only        |\n\n### Selecting a theme\n\n```zsh\nSHUI_THEME=minimal source shui.zsh\n```\n\nOr export from your shell profile so all scripts pick it up automatically:\n\n```zsh\nexport SHUI_THEME=minimal\n```\n\n### NO_COLOR\n\nshui respects the [NO_COLOR](https://no-color.org/) convention. When `$NO_COLOR` is set, inline components (`badge`, `pill`) fall back to ASCII representations and no colour codes are emitted.\n\n### Custom themes\n\nGenerate a new theme pre-filled with all tokens:\n\n```zsh\nshui theme create mytheme\n# → src/themes/mytheme.zsh\n```\n\nA custom theme sources `default.zsh` first — only override the tokens you want to change:\n\n```zsh\n# src/themes/mytheme.zsh\nsource \"${SHUI_DIR}/src/themes/default.zsh\"\n\nSHUI_COLOR_PRIMARY=$(_shui_color \"38;5;135\" \"0;35\")  # purple\nSHUI_COLOR_ACCENT=$(_shui_color  \"38;5;135\" \"0;35\")\n```\n\nLoad it:\n\n```zsh\nSHUI_THEME=mytheme source shui.zsh\n```\n\nManage themes:\n\n```zsh\nshui theme list       # list available themes\nshui theme validate   # check all required tokens are defined\n```\n\n### Token reference\n\n| Token                                                                                                                 | Purpose                  |\n| --------------------------------------------------------------------------------------------------------------------- | ------------------------ |\n| `SHUI_RESET`                                                                                                          | Reset all styles         |\n| `SHUI_BOLD` `SHUI_DIM` `SHUI_ITALIC` `SHUI_UNDERLINE`                                                                 | Text styles              |\n| `SHUI_COLOR_PRIMARY`                                                                                                  | Primary accent colour    |\n| `SHUI_COLOR_SUCCESS`                                                                                                  | Success colour           |\n| `SHUI_COLOR_WARNING`                                                                                                  | Warning colour           |\n| `SHUI_COLOR_ERROR`                                                                                                    | Error colour             |\n| `SHUI_COLOR_INFO`                                                                                                     | Info colour              |\n| `SHUI_COLOR_MUTED`                                                                                                    | Secondary / dim text     |\n| `SHUI_COLOR_ACCENT`                                                                                                   | Highlight accent         |\n| `SHUI_BG_SUCCESS` `SHUI_BG_WARNING` `SHUI_BG_ERROR` `SHUI_BG_INFO` `SHUI_BG_PRIMARY` `SHUI_BG_MUTED`                  | Badge background colours |\n| `SHUI_ICON_SUCCESS` `SHUI_ICON_ERROR` `SHUI_ICON_WARNING` `SHUI_ICON_INFO`                                            | Status icons             |\n| `SHUI_ICON_BULLET` `SHUI_ICON_ARROW` `SHUI_ICON_CHECK` `SHUI_ICON_CROSS`                                              | UI icons                 |\n| `SHUI_ICON_ROBOT` `SHUI_ICON_APPLE` `SHUI_ICON_GIT` `SHUI_ICON_FOLDER` `SHUI_ICON_LINK` `SHUI_ICON_CLOUD`             | Infrastructure icons     |\n| `SHUI_ICON_NODE` `SHUI_ICON_PYTHON` `SHUI_ICON_RUBY` `SHUI_ICON_RUST` `SHUI_ICON_GO` `SHUI_ICON_GEM` `SHUI_ICON_BREW` | Language \u0026 tool icons    |\n\n---\n\n## Icons\n\n### Icon sets\n\n| Set       | Requires                                | Description                              |\n| --------- | --------------------------------------- | ---------------------------------------- |\n| `nerd`    | [Nerd Font](https://www.nerdfonts.com/) | Rich glyphicons _(default)_              |\n| `emoji`   | Nothing                                 | Unicode emoji, works everywhere          |\n| `none`    | Nothing                                 | No icons — text only                     |\n| `unicode` | Nothing                                 | Base layer — always loaded automatically |\n\n\u003e `unicode.zsh` is sourced before the selected icon set on every load. It defines geometric symbols (`›`, `●`, `▲`, etc.) that work in any terminal. The selected icon set can override them — `none` blanks them all, `emoji` inherits them unchanged.\n\n### Selecting an icon set\n\n```zsh\nSHUI_ICONS=emoji source shui.zsh   # emoji\nSHUI_ICONS=nerd  source shui.zsh   # nerd font (default)\nSHUI_ICONS=none  source shui.zsh   # no icons\n```\n\nCombine freely with any theme:\n\n```zsh\nSHUI_THEME=minimal SHUI_ICONS=emoji source shui.zsh\nSHUI_THEME=plain   SHUI_ICONS=none   source shui.zsh   # fully plain\n```\n\n---\n\n## Installation\n\n### Manually\n\n```zsh\ngit clone https://github.com/kud/shui ~/.shui\n```\n\n### As a project submodule (recommended for scripts)\n\n```zsh\ngit submodule add https://github.com/kud/shui lib/shui\n```\n\n### Antidote\n\nAdd to your `.zsh_plugins.txt`:\n\n```\nkud/shui\n```\n\nThen reload:\n\n```zsh\nantidote load\n```\n\n### Zinit\n\n```zsh\nzinit light kud/shui\n```\n\n### Oh My Zsh\n\nClone into your custom plugins directory:\n\n```zsh\ngit clone https://github.com/kud/shui ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/shui\n```\n\nThen add `shui` to the `plugins` array in `~/.zshrc`:\n\n```zsh\nplugins=(... shui)\n```\n\n### Zplug\n\n```zsh\nzplug \"kud/shui\"\n```\n\n---\n\n## 🔧 Development\n\n### Project structure\n\n```\nshui/\n├── shui.zsh              # entry point — source this\n├── src/\n│   ├── components/       # message, badge, pill, box, table, progress, spinner…\n│   ├── icons/            # nerd.zsh, emoji.zsh, unicode.zsh, none.zsh\n│   ├── themes/           # default.zsh, minimal.zsh, plain.zsh\n│   └── tokens/           # colors.zsh, contract.zsh\n└── tests/                # Zsh test harness + suites\n```\n\n### Task runner\n\nTasks are managed with [mise](https://mise.jdx.dev/):\n\n| Task            | Description                       |\n| --------------- | --------------------------------- |\n| `mise run test` | Run all test suites               |\n| `mise run lint` | Syntax-check all Zsh source files |\n| `mise run demo` | Run the visual component demo     |\n\n### Tests\n\nThe test suite lives in `tests/` and uses a lightweight Zsh harness with inline ✓/✗ output per assertion.\n\n```zsh\nmise run test\n\n# or run a single suite directly\nzsh tests/test-components.zsh\n```\n\nThe shared harness (`tests/_harness.zsh`) provides `assert_eq`, `assert_contains`, `assert_not_contains`, `assert_exit_ok`, and `strip_ansi`.\n\n### Syntax check\n\n```zsh\nmise run lint\n# equivalent to:\nzsh -n shui.zsh \u0026\u0026 zsh -n src/**/*.zsh\n```\n\n### Demo\n\n```zsh\nzsh demo.zsh\nzsh demo.zsh --interactive   # includes confirm, select, and input\n```\n\n---\n\n## Requirements\n\n- Zsh 5.0+\n- A [Nerd Font](https://www.nerdfonts.com/) for the `default` and `minimal` themes — or use `SHUI_ICONS=emoji` or `SHUI_ICONS=none`\n\n---\n\n## License\n\nMIT © [kud](https://github.com/kud) — Made with ❤️\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkud%2Fshui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkud%2Fshui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkud%2Fshui/lists"}