MoonBit palette accessibility guard for WCAG contrast reports and design-token checks.
Jay7724/paletteguardmoon add Jay7724/paletteguardimport {
"Jay7724/paletteguard" @paletteguard,
}let palette = [
@paletteguard.swatch("text", @paletteguard.rgb(18, 24, 38).unwrap(), @paletteguard.RoleText),
@paletteguard.swatch("paper", @paletteguard.rgb(255, 255, 255).unwrap(), @paletteguard.RoleBackground),
]
let report = @paletteguard.audit_palette(palette, @paletteguard.policy_aa())
println(report.to_markdown())
println(@paletteguard.contrast_matrix(palette, @paletteguard.policy_aa()))moon run cmd/mainmoon check
moon build
moon test
moon run cmd/main
moon publish --dry-runmoon login
moon publish --dry-run
moon publishpub(all) struct ColorProfile {
color : Color
hex : String
luminance : Double
brightness : Double
saturation : Double
hue : Double
temperature : Temperature
ideal_text : Color
} derive(Eq, Debug)pub(all) struct DocumentAudit {
tokens : TokenParseReport
palette : PaletteReport
stats : PaletteStats
} derive(Eq, Debug)pub(all) struct RepairCandidate {
color : Color
ratio : Double
delta : Double
strategy : RepairStrategy
steps : Int
} derive(Eq, Debug)pub(all) enum SwatchParse {
SwatchParsed(Swatch)
SwatchParseFailed(String, ParseError)
} derive(Eq, Debug)pub(all) struct TokenDiagnostic {
line : Int
column : Int
token : String
severity : Severity
kind : TokenDiagnosticKind
message : String
} derive(Eq, Debug)pub(all) enum TokenDiagnosticKind {
DiagnosticEmptyName
DiagnosticMissingAssignment
DiagnosticUnknownRole
DiagnosticBadColor(ParseError)
} derive(Eq, Debug)MoonBit palette accessibility guard for WCAG contrast reports and design-token checks.