Code/Sailwind.FontSizes.cs
using System.Collections.Generic;
using System.Text;

namespace Sailwind;

partial class SailwindPanelComponent
{
	private readonly Dictionary<string, int> fontSizes = new()
	{
		["xs"] = 12,
		["sm"] = 14,
		["base"] = 16,
		["lg"] = 18,
		["xl"] = 20,
		["2xl"] = 24,
		["3xl"] = 30,
		["4xl"] = 36,
		["5xl"] = 48,
		["6xl"] = 60,
		["7xl"] = 72,
		["8xl"] = 96,
		["9xl"] = 128
	};

	private void GenerateFontUtilities( StringBuilder sb )
	{
		foreach ( var (name, size) in fontSizes )
		{
			GenerateUtility( sb, $"text-{name}", $"font-size: {size}px", includePointer: true );
		}

		// Font weights with hover
		GenerateUtility( sb, "font-normal", "font-weight: 400", includePointer: true );
		GenerateUtility( sb, "font-medium", "font-weight: 500", includePointer: true );
		GenerateUtility( sb, "font-bold", "font-weight: 700", includePointer: true );
	}

	private void GenerateTextTransforms( StringBuilder sb )
	{
		GenerateUtility( sb, "uppercase", "text-transform: uppercase", includePointer: true );
		GenerateUtility( sb, "lowercase", "text-transform: lowercase", includePointer: true );
		GenerateUtility( sb, "capitalize", "text-transform: capitalize", includePointer: true );
		GenerateUtility( sb, "normal-case", "text-transform: none", includePointer: true );
	}

	private void GenerateTextAligns( StringBuilder sb )
	{
		GenerateUtility( sb, "text-left", "text-align: left", includePointer: true );
		GenerateUtility( sb, "text-center", "text-align: center", includePointer: true );
		GenerateUtility( sb, "text-right", "text-align: right", includePointer: true );
		// GenerateUtility( sb, "text-justify", "text-align: justify", includePointer: true ); // Unsupported
		// GenerateUtility( sb, "text-start", "text-align: start", includePointer: true ); // Unsupported
		// GenerateUtility( sb, "text-end", "text-align: end", includePointer: true ); // Unsupported
	}
}