Agent skill

Ctkfontawesome Usage

by avalon60 in avalon60/ctk_theme_builder

A skill your agent uses when implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package.

MITAuto-check passedFrontend & Design

Install Ctkfontawesome Usage

skills CLI
$ npx skills add avalon60/ctk_theme_builder --skill ctkfontawesome-usage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install avalon60/ctk_theme_builder ctkfontawesome-usage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/avalon60/ctk_theme_builder.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/ctkfontawesome-usage .claude/skills/ctkfontawesome-usage && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ctkfontawesome-usage
GitHub stars
328
Token cost
~1.2k tokens
SKILL.md length
431 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package.

  • Works in 5 steps: Find the icon name. → Create the image with icon_to_image(...). → Store the image on a persistent object… → …
  • Implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package
  • SKILL.md covers Core Facts, Default Workflow, Preferred Pattern and Rules For Codex, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Ctkfontawesome Usage is an agent skill from avalon60/ctk_theme_builder. Use when implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package. Covers how to find icon names, create icon images, keep image references alive, size and recolor icons, and attach them to CTk widgets such as CTkButton and CTkLabel.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design. It works with Python. The repository describes itself as: CTk Theme Builder for CustomTkinter, a comprehensive and easy solution, for creating CustomTkinter themes. The licence is MIT.

When your agent uses it

  • Implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package

Example prompts

  • “/ctkfontawesome-usage”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Find the icon name.
  2. Create the image with icon_to_image(...).
  3. Store the image on a persistent object attribute so Tk does not garbage-collect it.
  4. Pass that image to the CTk widget.
  5. If the widget state changes, regenerate the icon if the color or size should also change.

What it can do on your machine

Read from SKILL.md and the folder at commit 41a86c7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ctkfontawesome Usage loads about 1.2k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 431 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~71
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from avalon60/ctk_theme_builder at commit 41a86c7, republished under its MIT licence (© avalon60). 431 words, ~1,180 tokens.

Download SKILL.mdSave it as .claude/skills/ctkfontawesome-usage/SKILL.md (or your agent's skills folder).
name
ctkfontawesome-usage
description
Use when implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package. Covers how to find icon names, create icon images, keep image references alive, size and recolor icons, and attach them to CTk widgets such as CTkButton and CTkLabel.

CTkFontAwesome Usage

Use this skill when the task is to add or update an icon in a CustomTkinter UI using ctkfontawesome.

Core Facts

  • Import from ctkfontawesome, not CTkFontAwesome.
  • The main API for widgets is icon_to_image(...).
  • icon_to_image(...) returns a tkinter.PhotoImage compatible object, so it can be passed anywhere a CTk widget accepts an image= argument.
  • The optional image backend is required for icon_to_image(...). If missing, the library raises RuntimeError telling you to install ctkfontawesome[images].
  • Valid icon names are Font Awesome free icon names such as "gear", "trash", "circle-info", "floppy-disk", or "fa-gear". The fa- prefix is accepted.

Default Workflow

  1. Find the icon name.
  2. Create the image with icon_to_image(...).
  3. Store the image on a persistent object attribute so Tk does not garbage-collect it.
  4. Pass that image to the CTk widget.
  5. If the widget state changes, regenerate the icon if the color or size should also change.

Preferred Pattern

python
from ctkfontawesome import icon_to_image
import customtkinter as ctk


class Toolbar(ctk.CTkFrame):
    def __init__(self, master):
        super().__init__(master)

        self.settings_icon = icon_to_image(
            "gear",
            fill="#DCE4EE",
            scale_to_width=18,
        )

        self.settings_button = ctk.CTkButton(
            self,
            text="Settings",
            image=self.settings_icon,
            compound="left",
        )
        self.settings_button.pack(padx=12, pady=12)

Rules For Codex

  • Always keep a reference to the created image on self, a controller object, or another long-lived object.
  • Do not create the image inline without storing it first if the widget may outlive the local scope.
  • Match icon color to the current UI state. Typical choices are:
    • normal foreground text color for standard actions
    • muted text color for secondary actions
    • disabled text color for disabled controls
  • Prefer scale_to_width= for predictable sizing in buttons, labels, toolbars, and row actions.
  • If both width and height are supplied, the library uses those exact dimensions. Prefer one dimension unless distortion is intentional.
  • Regenerate the icon when appearance mode, theme, or widget state changes and the icon color should change with it.
Show full SKILL.md (162 more words)Show less

Common Widget Patterns

Icon-only button
python
self.delete_icon = icon_to_image("trash", fill="#F16C6C", scale_to_width=16)
self.delete_button = ctk.CTkButton(
    parent,
    text="",
    width=28,
    image=self.delete_icon,
)
Button with icon and text
python
self.save_icon = icon_to_image("floppy-disk", fill="#FFFFFF", scale_to_width=16)
self.save_button = ctk.CTkButton(
    parent,
    text="Save",
    image=self.save_icon,
    compound="left",
)
Label used as an icon holder
python
self.info_icon = icon_to_image("circle-info", fill="#3B8ED0", scale_to_width=18)
self.info_label = ctk.CTkLabel(parent, text="", image=self.info_icon)

Finding Icon Names

  • Use the installed browser if available: ctkfontawesome-browser
  • If code needs to inspect names programmatically:
python
from ctkfontawesome import icon_names

names = icon_names()
  • If an icon name is invalid, icon_to_svg(...) and therefore icon_to_image(...) raise ValueError.

Failure Modes

  • Missing optional image dependencies:
    • RuntimeError: svg_to_image() requires the optional image dependencies...
    • Fix by installing ctkfontawesome[images]
  • Invalid icon name:
    • ValueError
  • Image disappears from the widget:
    • usually caused by not keeping a persistent reference to the returned PhotoImage

App Integration Guidance

  • For toolbar and menu-like actions, create icons once during widget construction and reuse them.
  • For stateful controls, create separate images for normal and disabled states if the icon needs to visibly change.
  • For theme-aware UIs, derive icon color from the same theme token family as the widget text or foreground color.
  • If the task is only to render or inspect an icon without attaching it to a widget, icon_to_svg(...) is sufficient.

Minimal Snippet For Fast Edits

python
from ctkfontawesome import icon_to_image

self.my_icon = icon_to_image("gear", fill="#DCE4EE", scale_to_width=16)
widget.configure(image=self.my_icon)

© avalon60, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/ctkfontawesome-usage of avalon60/ctk_theme_builder.

Open the folder on GitHubat commit 41a86c7

Compare with similar skills

Ctkfontawesome Usage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ctkfontawesome Usage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ctkfontawesome Usage this skillavalon60/ctk_theme_builder328—~1.2kAutomated safety check: PassMIT
Claude Desktop Chinese Localizationjavaht/claude-desktop-zh-cn7.5k—~1.6kAutomated safety check: PassMIT
DocsPrefectHQ/fastmcp28k—~1kAutomated safety check: PassApache-2.0
Oil UIoil-oil/oil-ui1.1k—~1.8kAutomated safety check: PassMIT
Language Injectionmicrosoft/data-formulator18k—~1.2kAutomated safety check: PassMIT
Jarvis Setupethanplusai/jarvis843—~2.5kAutomated safety check: NotesCustom licence

Similar skills

  • Claude Desktop Chinese Localization

    javaht/claude-desktop-zh-cn

    Adds missing Simplified and Traditional Chinese translations to the Claude Desktop Chinese patch across three layers, then checks how many mappings actually hit.

    7.5k GitHub stars~1.6k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • Docs

    PrefectHQ/fastmcp

    Write or revise a page under docs/ for gofastmcp.com. An agent skill from PrefectHQ/fastmcp.

    28k GitHub stars~1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Oil UI

    oil-oil/oil-ui

    Design, improve, and review interfaces for websites, apps, dashboards, and components: explore distinct design directions, compare styles side by side, and refine visual hierarchy against real…

    1.1k GitHub stars~1.8k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Language Injection

    microsoft/data-formulator

    Official

    LLM Agent 多语言注入规范。在修改 Agent 提示词、添加新的 Agent 端点、处理用户可见的后端消息(messagecode)时使用。

    18k GitHub stars~1.2k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Jarvis Setup

    ethanplusai/jarvis

    A skill your agent uses when helping someone install, configure, or debug a fresh clone of JARVIS (this repo) — especially "the mic doesn't work", "JARVIS says his language systems are down", any…

    843 GitHub stars~2.5k tokensUpdated 29 days ago
    Frontend & DesignAuto-check: notes
  • Ibm A11y Route Scan

    langflow-ai/langflow

    Batch-scan Langflow frontend routes for accessibility issues using the Python IBM Equal Access scanner (scripts/a11y/a11yscan.py) and produce JSON/Markdown/HTML reports.

    155k GitHub stars~1.6k tokensUpdated today
    Frontend & DesignAuto-check passed

More from avalon60/ctk_theme_builder

  • Release Package

    avalon60/ctk_theme_builder

    Prepare a release artefact for this project by bumping the requested semantic version level and running the packaging script.

    328 GitHub stars~277 tokensUpdated 2 days ago
    Auto-check passed
  • Enhance Theme

    avalon60/ctk_theme_builder

    Locate, modify, and optionally promote CTk Theme Builder theme JSON files

    328 GitHub stars~354 tokensUpdated 2 days ago
    Auto-check passed
  • Generate Release Notes

    avalon60/ctk_theme_builder

    Generate release notes for CTk Theme Builder by checking for uncommitted changes, verifying the release version in .bumpversion.cfg, and appending the standard installation and upgrade footer.

    328 GitHub stars~287 tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Ctkfontawesome Usage

What does Ctkfontawesome Usage do?

A skill your agent uses when implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package. Ctkfontawesome Usage is an agent skill from avalon60/ctk_theme_builder. Use when implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package.

When should I use Ctkfontawesome Usage?

Ctkfontawesome Usage fits situations like: implementing Font Awesome icons in a CustomTkinter app with the ctkfontawesome package.

How do I install Ctkfontawesome Usage in Claude Code?

Run `npx skills add avalon60/ctk_theme_builder --skill ctkfontawesome-usage -a claude-code`. Or copy the skill folder (.agents/ctkfontawesome-usage in avalon60/ctk_theme_builder) into .claude/skills/ctkfontawesome-usage in your project. Claude Code loads it when a task matches its description.

How do I install Ctkfontawesome Usage in Codex?

Run `npx skills add avalon60/ctk_theme_builder --skill ctkfontawesome-usage -a codex`. Or copy the skill folder (.agents/ctkfontawesome-usage in avalon60/ctk_theme_builder) into .agents/skills/ctkfontawesome-usage in your project. Codex loads it when a task matches its description.

Can I use Ctkfontawesome Usage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add avalon60/ctk_theme_builder --skill ctkfontawesome-usage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ctkfontawesome-usage, .gemini/skills/ctkfontawesome-usage, .github/skills/ctkfontawesome-usage and .opencode/skills/ctkfontawesome-usage in your project.

What does Ctkfontawesome Usage need to run?

SKILL.md names no scripts, command-line tools or credentials: Ctkfontawesome Usage is instructions for the agent only. Our summary lists: Python 3.

Does Ctkfontawesome Usage access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ctkfontawesome Usage safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ctkfontawesome Usage use?

Ctkfontawesome Usage is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ctkfontawesome Usage use?

About 1.2k tokens (SKILL.md is roughly 4.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ctkfontawesome Usage?

Skills that share tags, products or a category with Ctkfontawesome Usage: Claude Desktop Chinese Localization (javaht/claude-desktop-zh-cn, 7.5k stars), Docs (PrefectHQ/fastmcp, 28k stars), Oil UI (oil-oil/oil-ui, 1.1k stars) and Language Injection (microsoft/data-formulator, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ctkfontawesome Usage?

avalon60 (a GitHub user) maintains it in avalon60/ctk_theme_builder, which has 328 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 2026.

Source: avalon60/ctk_theme_builder on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.