format numbers

When editing .tsx files, ensure all user-facing numbers are formatted using the formatNumber utility from @tryghost/shade .

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "format numbers" with this command: npx skills add tryghost/ghost/tryghost-ghost-format-numbers

Format Numbers

When editing .tsx files, ensure all user-facing numbers are formatted using the formatNumber utility from @tryghost/shade .

Import

import {formatNumber} from '@tryghost/shade';

When to use formatNumber

Use formatNumber() when rendering any numeric value that is displayed to the user, including:

  • Member counts, visitor counts, subscriber counts

  • Email engagement metrics (opens, clicks, bounces)

  • Revenue amounts (combine with centsToDollars() for monetary values)

  • Post analytics (views, link clicks)

  • Any count or quantity shown in UI

Correct usage

<span>{formatNumber(totalMembers)}</span> <span>{formatNumber(link.count || 0)}</span> <span>{${currencySymbol}${formatNumber(centsToDollars(mrr))}}</span> <span>{post.members > 0 ? +${formatNumber(post.members)} : '0'}</span>

Antipatterns to avoid

Do NOT use any of these patterns for formatting numbers in TSX files:

// BAD: raw .toLocaleString() <span>{count.toLocaleString()}</span>

// BAD: manual Intl.NumberFormat <span>{new Intl.NumberFormat('en-US').format(count)}</span>

// BAD: raw number without formatting <span>{memberCount}</span>

// BAD: manual regex formatting <span>{count.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}</span>

Related utilities

  • formatPercentage()

  • for percentages (e.g., open rates, click rates)

  • abbreviateNumber()

  • for compact notation (e.g., 1.2M, 50k)

  • centsToDollars()

  • convert cents to dollars before passing to formatNumber

All are imported from @tryghost/shade .

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

add admin api endpoint

No summary provided by upstream source.

Repository SourceNeeds Review
General

create database migration

No summary provided by upstream source.

Repository SourceNeeds Review
General

ghost

No summary provided by upstream source.

Repository SourceNeeds Review