UsageEdit

Shows a full list of available values. Does not include the header. Invoked with {{#invoke:Storm categories|demo}}.

Full list of available valuesEdit

Legend

  1. 1.0 1.1 Overriden from original color (Template:Color box #5ebaff)
  2. 2.0 2.1 Overriden from original icon (File:Severe tropical storm icon.png)
  3. 3.0 3.1 3.2 Overriden from original icon (TC)
IconIDNameColorSortkey
BasinNameBasinSortkey
File:Aus 1 icon.pngaus1Category 1 tropical cyclone#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Aus/Fiji40006
File:Aus 2 icon.pngaus2Category 2 tropical cyclone#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Aus/Fiji40008
File:Aus 3 icon.pngaus3Category 3 severe tropical cyclone#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
Aus/Fiji40010
File:Aus 4 icon.pngaus4Category 4 severe tropical cyclone#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Aus/Fiji40013
File:Aus 5 icon.pngaus5Category 5 severe tropical cyclone#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Aus/Fiji40015
TCbeaufort0Calm (Force 0)#FFFFFF
CTB: 21.00 (AAA)
CTL: 8.53 (AAA)
CTVL: 15.84 (AAA)
Global1500
TCbeaufort1Light Air (Force 1)#757575[W 1][W 2]
CTB: 4.56 (AA)
CTL: 1.85 (NC)
CTVL: 3.44 (NC)
Global1510
TCbeaufort10Storm (Force 10)#AAFD9C
CTB: 17.24 (AAA)
CTL: 7.00 (AAA)
CTVL: 13.00 (AAA)
Global1600
TCbeaufort11Violent Storm (Force 11)#D6FFA4
CTB: 18.70 (AAA)
CTL: 7.59 (AAA)
CTVL: 14.10 (AAA)
Global1610
TCbeaufort12Hurricane-force (Force 12)#FFFCD1
CTB: 20.10 (AAA)
CTL: 8.16 (AAA)
CTVL: 15.16 (AAA)
Global1620
TCbeaufort2Light Breeze (Force 2)#909090[W 1]
CTB: 6.58 (AA)
CTL: 2.67 (NC)
CTVL: 4.96 (AA)
Global1520
TCbeaufort3Gentle Breeze (Force 3)#B7B7B7[W 1]
CTB: 10.47 (AAA)
CTL: 4.25 (NC)
CTVL: 7.90 (AAA)
Global1530
TCbeaufort4Moderate Breeze (Force 4)#D2D2D2
CTB: 13.89 (AAA)
CTL: 5.64 (AA)
CTVL: 10.48 (AAA)
Global1540
TCbeaufort5Fresh Breeze (Force 5)#F1F1F1
CTB: 18.59 (AAA)
CTL: 7.55 (AAA)
CTVL: 14.02 (AAA)
Global1550
TCbeaufort6Strong Breeze (Force 6)#007FCE[W 1][W 2]
CTB: 4.93 (AA)
CTL: 2.00 (NC)
CTVL: 3.72 (NC)
Global1560
TCbeaufort7Near Gale (Force 7)#46A1FF[W 1]
CTB: 7.80 (AAA)
CTL: 3.17 (NC)
CTVL: 5.88 (AA)
Global1570
TCbeaufort8Gale (Force 8)#5EDBF8
CTB: 12.96 (AAA)
CTL: 5.26 (AA)
CTVL: 9.78 (AAA)
Global1580
TCbeaufort9Strong Gale (Force 9)#3BFDFD
CTB: 16.65 (AAA)
CTL: 6.76 (AA)
CTVL: 12.56 (AAA)
Global1590
File:Category 1 hurricane icon.pngcat1atlCategory 1 hurricane#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
Atl/EPac/SAtl80010
defaultCategory 1-equivalent tropical cyclone
epacCategory 1 hurricane
satlCategory 1 hurricane
wpacCategory 1-equivalent typhoon
File:Category 2 hurricane icon.pngcat2atlCategory 2 hurricane#ffe775
CTB: 16.94 (AAA)
CTL: 6.88 (AA)
CTVL: 12.78 (AAA)
Atl/EPac/SAtl80020
defaultCategory 2-equivalent tropical cyclone
epacCategory 2 hurricane
satlCategory 2 hurricane
wpacCategory 2-equivalent typhoon
File:Category 3 hurricane icon.pngcat3atlCategory 3 hurricane#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Atl/EPac/SAtl80030
defaultCategory 3-equivalent tropical cyclone
epacCategory 3 hurricane
satlCategory 3 hurricane
wpacCategory 3-equivalent typhoon
File:Category 4 hurricane icon.pngcat4atlCategory 4 hurricane#ff8f20[W 1]
CTB: 9.20 (AAA)
CTL: 3.74 (NC)
CTVL: 6.94 (AA)
Atl/EPac/SAtl80040
defaultCategory 4-equivalent tropical cyclone
epacCategory 4 hurricane
satlCategory 4 hurricane
wpacCategory 4-equivalent typhoon
File:Category 5 hurricane icon.pngcat5atlCategory 5 hurricane#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Atl/EPac/SAtl80050
defaultCategory 5-equivalent tropical cyclone
epacCategory 5 hurricane
satlCategory 5 hurricane
wpacCategory 5-equivalent super typhoon
File:Cyclonic storm icon.pngcsCyclonic storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
NIO50006
File:Cyclonic storm icon.pngcyclstormCyclonic storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
NIO50006
File:Tropical Depression.pngdTropical depression#80ccff[1]
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global90
File:Deep depression icon.pngddDeep depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
NIO50002
File:Deep depression icon.pngdeepdepressionDeep depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
NIO50002
File:Tropical Depression.pngdepressionTropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global90
File:Disturbance icon.pngdiTropical disturbance#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global80
File:Disturbance icon.pngdisturbanceTropical disturbance#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global80
File:Ef-scale0.pngef0EF0 tornado#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Global1000
File:Ef-scale1.pngef1EF1 tornado#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
Global1010
File:Ef-scale2.pngef2EF2 tornado#ffe775
CTB: 16.94 (AAA)
CTL: 6.88 (AA)
CTVL: 12.78 (AAA)
Global1020
File:Ef-scale3.pngef3EF3 tornado#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Global1030
File:Ef-scale4.pngef4EF4 tornado#ff8f20[W 1]
CTB: 9.20 (AAA)
CTL: 3.74 (NC)
CTVL: 6.94 (AA)
Global1040
File:Ef-scale5.pngef5EF5 tornado#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Global1050
File:Ef-scaleU.pngefuEFU tornado#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global1001
File:Extremely severe cyclonic storm icon.pngescsExtremely severe cyclonic storm#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
NIO50015
File:Extremely severe cyclonic storm icon.pngesvrcyclstormExtremely severe cyclonic storm#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
NIO50015
File:Extratropical cyclone icon.pngetExtratropical cyclone#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global50
File:Extratropical cyclone icon.pngexExtratropical cyclone#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global50
File:Extratropical cyclone icon.pngextratropicalExtratropical cyclone#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global50
TCf0Calm (Force 0)#FFFFFF
CTB: 21.00 (AAA)
CTL: 8.53 (AAA)
CTVL: 15.84 (AAA)
Global1500
TCf1Light Air (Force 1)#757575[W 1][W 2]
CTB: 4.56 (AA)
CTL: 1.85 (NC)
CTVL: 3.44 (NC)
Global1510
TCf10Storm (Force 10)#AAFD9C
CTB: 17.24 (AAA)
CTL: 7.00 (AAA)
CTVL: 13.00 (AAA)
Global1600
TCf11Violent Storm (Force 11)#D6FFA4
CTB: 18.70 (AAA)
CTL: 7.59 (AAA)
CTVL: 14.10 (AAA)
Global1610
TCf12Hurricane-force (Force 12)#FFFCD1
CTB: 20.10 (AAA)
CTL: 8.16 (AAA)
CTVL: 15.16 (AAA)
Global1620
TCf2Light Breeze (Force 2)#909090[W 1]
CTB: 6.58 (AA)
CTL: 2.67 (NC)
CTVL: 4.96 (AA)
Global1520
TCf3Gentle Breeze (Force 3)#B7B7B7[W 1]
CTB: 10.47 (AAA)
CTL: 4.25 (NC)
CTVL: 7.90 (AAA)
Global1530
TCf4Moderate Breeze (Force 4)#D2D2D2
CTB: 13.89 (AAA)
CTL: 5.64 (AA)
CTVL: 10.48 (AAA)
Global1540
TCf5Fresh Breeze (Force 5)#F1F1F1
CTB: 18.59 (AAA)
CTL: 7.55 (AAA)
CTVL: 14.02 (AAA)
Global1550
TCf6Strong Breeze (Force 6)#007FCE[W 1][W 2]
CTB: 4.93 (AA)
CTL: 2.00 (NC)
CTVL: 3.72 (NC)
Global1560
TCf7Near Gale (Force 7)#46A1FF[W 1]
CTB: 7.80 (AAA)
CTL: 3.17 (NC)
CTVL: 5.88 (AA)
Global1570
TCf8Gale (Force 8)#5EDBF8
CTB: 12.96 (AAA)
CTL: 5.26 (AA)
CTVL: 9.78 (AAA)
Global1580
TCf9Strong Gale (Force 9)#3BFDFD
CTB: 16.65 (AAA)
CTL: 6.76 (AA)
CTVL: 12.56 (AAA)
Global1590
File:Aus 1 icon.pngfiji1Category 1 tropical cyclone#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Aus/Fiji40006
File:Aus 2 icon.pngfiji2Category 2 tropical cyclone#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Aus/Fiji40008
File:Aus 3 icon.pngfiji3Category 3 severe tropical cyclone#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
Aus/Fiji40010
File:Aus 4 icon.pngfiji4Category 4 severe tropical cyclone#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Aus/Fiji40013
File:Aus 5 icon.pngfiji5Category 5 severe tropical cyclone#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Aus/Fiji40015
File:Intense tropical cyclone icon.pngintenseIntense tropical cyclone#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
SWIO30008
File:Intense tropical cyclone icon.pngitcIntense tropical cyclone#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
SWIO30008
File:Land depression icon.pnglandLand depression#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
NIO50000
File:Land depression icon.pnglanddepressionLand depression#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
NIO50000
File:Land depression icon.pngldLand depression#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
NIO50000
File:Tropical Low.pnglowTropical low#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Aus/Fiji40002
File:Monsoon Depression icon.pngmdMonsoon depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global30
TCmoddepressionModerate tropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global95
File:Monsoon Depression icon.pngmonsoondepressionMonsoon depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global30
File:Moderate tropical storm icon.pngmstormModerate tropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
SWIO30004
File:Moderate tropical storm icon.pngmtsModerate tropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
SWIO30004
File:Moderate tropical storm icon.pngmtstormModerate tropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Global105
File:Cyclonic storm icon.pngniocycloneCyclonic storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
NIO50006
File:Depression icon.pngniodepressionDepression#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
NIO50001
File:Land depression icon.pngniolandLand depression#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
NIO50000
File:Tropical Depression.pngnwpdepressionTropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global90
File:Severe tropical storm icon.pngnwpsevereSevere tropical storm#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Global120
File:Tropical storm icon.pngnwpstormTropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Global100
File:Depression icon.pngodOverland depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global60
File:Depression icon.pngoverlandOverland depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global60
File:Depression icon.pngoverlanddepressionOverland depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global60
File:Post tropical cyclone icon.pngpostPost-tropical depression#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global70
File:Post tropical cyclone icon.pngposttropicalPost-tropical depression#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global70
File:Potential tropical cyclone icon.pngpotentialPotential tropical cyclone#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global25
File:Potential tropical cyclone icon.pngpotentialtropicalcyclonePotential tropical cyclone#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global25
File:Potential tropical cyclone icon.pngptPotential tropical cyclone#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global25
File:Remnant low icon.pngremnantPost-tropical depression#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global70
File:Remnant low icon.pngremnantlowPost-tropical depression#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global70
File:Remnant low icon.pngrlPost-tropical depression#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Global70
File:RsiC0.pngrsi0Category 0 "Nuisance"#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Atl/EPac/SAtl80100
File:RsiC1.pngrsi1Category 1 "Notable"#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
Atl/EPac/SAtl80110
File:RsiC2.pngrsi2Category 2 "Minor"#ffe775
CTB: 16.94 (AAA)
CTL: 6.88 (AA)
CTVL: 12.78 (AAA)
Atl/EPac/SAtl80120
File:RsiC3.pngrsi3Category 3 "Major"#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Atl/EPac/SAtl80130
File:RsiC4.pngrsi4Category 4 "Crippling"#ff8f20[W 1]
CTB: 9.20 (AAA)
CTL: 3.74 (NC)
CTVL: 6.94 (AA)
Atl/EPac/SAtl80140
File:RsiC5.pngrsi5Category 5 "Extreme"#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Atl/EPac/SAtl80150
File:RsiC4.pngrsicripplingCategory 4 "Crippling"#ff8f20[W 1]
CTB: 9.20 (AAA)
CTL: 3.74 (NC)
CTVL: 6.94 (AA)
Atl/EPac/SAtl80140
File:RsiC5.pngrsiextremeCategory 5 "Extreme"#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Atl/EPac/SAtl80150
File:RsiC3.pngrsimajorCategory 3 "Major"#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Atl/EPac/SAtl80130
File:RsiC2.pngrsiminorCategory 2 "Minor"#ffe775
CTB: 16.94 (AAA)
CTL: 6.88 (AA)
CTVL: 12.78 (AAA)
Atl/EPac/SAtl80120
File:RsiC1.pngrsinotableCategory 1 "Notable"#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
Atl/EPac/SAtl80110
File:RsiC0.pngrsinuisanceCategory 0 "Nuisance"#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Atl/EPac/SAtl80100
File:Severe cyclonic storm icon.pngscsSevere cyclonic storm#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
NIO50008
File:Subtropical Depression icon.pngsdSubtropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global62
File:Severe tropical storm icon.pngsevereSevere tropical storm#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Global120
TCseveredepSevere tropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global120
File:Severe tropical storm icon.pngseveretsSevere tropical storm#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Global120
File:Tropical Depression.pngshdepressionTropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global90
TCshem1Tropical cyclone#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Historical20008
TCshem2Tropical cyclone#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Historical20008
TCshem3Tropical cyclone#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
SWIO30006
TCshem4Tropical cyclone#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Historical20008
TCshem5Severe tropical cyclone#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Historical20010
File:Tropical Depression.pngshemdepressionTropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global90
TCshemsvrtcSevere tropical cyclone#ffe775
CTB: 16.94 (AAA)
CTL: 6.88 (AA)
CTVL: 12.78 (AAA)
Historical20020
TCshemtcTropical cyclone#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
SWIO30006
File:Tropical Depression.pngspdepressionTropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global90
File:Super cyclonic storm icon.pngsprcyclstormSuper cyclonic storm#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
NIO50020
File:Subtropical storm icon.pngssSubtropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Global65
File:Tropical storm icon.pngstormTropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Global100
File:Severe tropical storm icon.pngstrongSevere tropical storm#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Global120
File:Severe tropical storm icon.pngstsSevere tropical storm#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Global120
TCstyCategory 4 super typhoon#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Atl/EPac/SAtl80045
TCstyphoonSupertyphoon#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
WPAC60050
File:Moderate tropical storm icon.pngsubModerate tropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
SWIO30004
File:Subtropical Depression icon.pngsubdepressionSubtropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global62
File:Disturbance icon.pngsubdisturbanceSubtropical disturbance#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global55
TCsublowSubtropical low#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Aus/Fiji40000
File:Subtropical storm icon.pngsubtropicalSubtropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Global65
TCsubtropicalcycloneSubtropical cyclone#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Global70
File:Super cyclonic storm icon.pngsucsSuper cyclonic storm#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
NIO50020
TCsupertyphoonCategory 4 super typhoon#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Atl/EPac/SAtl80045
File:Severe cyclonic storm icon.pngsvrcyclstormSevere cyclonic storm#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
NIO50008
TCsvtyphoonSevere typhoon#ff8f20[W 1]
CTB: 9.20 (AAA)
CTL: 3.74 (NC)
CTVL: 6.94 (AA)
WPAC60015
File:Tropical Depression.pngswiodepressionTropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global90
File:Disturbance icon.pngswiodisturbanceTropical disturbance#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global80
File:Severe tropical storm south icon.png[2]swiostsSevere tropical storm#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
Global120
File:SWIO tropical cyclone icon.png[3]swiotcTropical cyclone#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
SWIO30006
File:Subtropical Depression icon.pngswsubdepSubtropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global62
File:SWIO tropical cyclone icon.png[3]tcTropical cyclone#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
SWIO30006
File:Tropical Depression.pngtdTropical depression#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Global90
File:Disturbance icon.pngtdistTropical disturbance#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Global80
File:Tropical Low.pngtlTropical low#5ebaff[W 1]
CTB: 9.94 (AAA)
CTL: 4.04 (NC)
CTVL: 7.50 (AAA)
Aus/Fiji40002
TCtropicalcycloneTropical cyclone#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
SWIO30006
File:Tropical storm icon.pngtsTropical storm#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
Global100
File:Typhoon icon.pngtyTyphoon#fdaf9a
CTB: 11.78 (AAA)
CTL: 4.78 (AA)
CTVL: 8.88 (AAA)
WPAC60010
File:Typhoon icon.pngtyphoonTyphoon#fdaf9a
CTB: 11.78 (AAA)
CTL: 4.78 (AA)
CTVL: 8.88 (AAA)
WPAC60010
?unknownUnknown strength tropical cyclone#c0c0c0
CTB: 11.54 (AAA)
CTL: 4.69 (AA)
CTVL: 8.71 (AAA)
Global0
File:Very intense tropical cyclone icon.pngvintenseVery intense tropical cyclone#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
SWIO30010
File:Very intense tropical cyclone icon.pngvitcVery intense tropical cyclone#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
SWIO30010
File:Violent typhoon icon.pngvityViolent typhoon#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
WPAC60030
File:Violent typhoon icon.pngvityphoonViolent typhoon#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
WPAC60030
File:Very severe cyclonic storm icon.pngvscsVery severe cyclonic storm#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
NIO50010
File:Very strong typhoon icon.pngvstrtyphoonVery strong typhoon#fe887d[W 1]
CTB: 9.03 (AAA)
CTL: 3.67 (NC)
CTVL: 6.81 (AA)
WPAC60020
File:Very strong typhoon icon.pngvstyVery strong typhoon#fe887d[W 1]
CTB: 9.03 (AAA)
CTL: 3.67 (NC)
CTVL: 6.81 (AA)
WPAC60020
File:Very strong typhoon icon.pngvstyphoonVery strong typhoon#fe887d[W 1]
CTB: 9.03 (AAA)
CTL: 3.67 (NC)
CTVL: 6.81 (AA)
WPAC60020
File:Very severe cyclonic storm icon.pngvsvrcyclstormVery severe cyclonic storm#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
NIO50010
File:RsiC0.pngwssi0No impacts#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Atl/EPac/SAtl80200
File:RsiC1.pngwssi1Limited impacts#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Atl/EPac/SAtl80210
File:RsiC2.pngwssi2Minor impacts#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Atl/EPac/SAtl80220
File:RsiC3.pngwssi3Moderate impacts#ff8f20[W 1]
CTB: 9.20 (AAA)
CTL: 3.74 (NC)
CTVL: 6.94 (AA)
Atl/EPac/SAtl80230
File:RsiC4.pngwssi4Major impacts#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Atl/EPac/SAtl80240
File:RsiC5.pngwssi5Extreme impacts#cf75ff[W 1]
CTB: 7.64 (AAA)
CTL: 3.10 (NC)
CTVL: 5.76 (AA)
Atl/EPac/SAtl80250
File:RsiC5.pngwssiextremeExtreme impacts#cf75ff[W 1]
CTB: 7.64 (AAA)
CTL: 3.10 (NC)
CTVL: 5.76 (AA)
Atl/EPac/SAtl80250
File:RsiC1.pngwssilimitedLimited impacts#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
Atl/EPac/SAtl80210
File:RsiC4.pngwssimajorMajor impacts#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
Atl/EPac/SAtl80240
File:RsiC2.pngwssiminorMinor impacts#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
Atl/EPac/SAtl80220
File:RsiC3.pngwssimoderateModerate impacts#ff8f20[W 1]
CTB: 9.20 (AAA)
CTL: 3.74 (NC)
CTVL: 6.94 (AA)
Atl/EPac/SAtl80230
File:RsiC0.pngwssinoneNo impacts#cccccc
CTB: 13.08 (AAA)
CTL: 5.31 (AA)
CTVL: 9.86 (AAA)
Atl/EPac/SAtl80200
File:Disturbed weather icon.pngzodwZone of disturbed weather#80ccff
CTB: 12.00 (AAA)
CTL: 4.87 (AA)
CTVL: 9.05 (AAA)
SWIO30000
File:Category 1 hurricane icon.png1not available#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
not available
File:Category 2 hurricane icon.png2not available#ffe775
CTB: 16.94 (AAA)
CTL: 6.88 (AA)
CTVL: 12.78 (AAA)
not available
File:Category 3 hurricane icon.png3not available#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
not available
File:Category 4 hurricane icon.png4not available#ff8f20[W 1]
CTB: 9.20 (AAA)
CTL: 3.74 (NC)
CTVL: 6.94 (AA)
not available
File:Category 5 hurricane icon.png5not available#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
not available
File:Aus 1 icon.pnga1not available#00faf4
CTB: 15.98 (AAA)
CTL: 6.49 (AA)
CTVL: 12.05 (AAA)
not available
File:Aus 2 icon.pnga2not available#ccffff
CTB: 19.32 (AAA)
CTL: 7.84 (AAA)
CTVL: 14.57 (AAA)
not available
File:Aus 3 icon.pnga3not available#ffffcc
CTB: 20.43 (AAA)
CTL: 8.30 (AAA)
CTVL: 15.41 (AAA)
not available
File:Aus 4 icon.pnga4not available#ffc140
CTB: 12.95 (AAA)
CTL: 5.26 (AA)
CTVL: 9.77 (AAA)
not available
File:Aus 5 icon.pnga5not available#ff6060[W 1]
CTB: 7.09 (AAA)
CTL: 2.88 (NC)
CTVL: 5.35 (AA)
not available
File:Extratropical storm icon.pnget2not available
File:Extratropical storm icon.pngex2not available
File:Extratropical storm icon.pngextratropical2not available
File:Severe tropical storm south icon.pngstssnot available

Warnings

This table contains warnings than should be addressed. Please note that some warnings cannot be fully addressed without changes that would require consensus.

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 1.41 1.42 1.43 1.44 1.45 1.46 1.47 1.48 1.49 1.50 1.51 1.52 1.53 1.54 1.55 1.56 1.57 1.58 1.59 1.60 1.61 1.62 1.63 1.64 1.65 This color has contrast issues with links (not WCAG 2.0 AA-compatible). It should not be used in conjunction with a link.
  2. 2.0 2.1 2.2 2.3 2.4 This color has contrast issues with visited links (not WCAG 2.0 AA-compatible with #0b0080). It should not be used in conjunction with a visited link.

--
-- This module handles demonstration and list of possible values for all storm
-- category templates! Please test this module on [[Module:Storm categories/demo/doc]]
-- before publishing to avoid errros. Thank you!
--
local colorRatio = require("Module:Color contrast")._ratio
local TableTools = require("Module:TableTools")
local stormcats = require("Module:Storm categories")
local cats = require("Module:Storm categories/categories").cats
local colors = require("Module:Storm categories/colors").colors
local icons = require("Module:Storm categories/icons").icons
local p = {}

local customKeys = {}
for k, v in pairs(colors) do
	table.insert(customKeys, k)
end
for k, v in pairs(icons) do
	table.insert(customKeys, k)
end
TableTools.removeDuplicates(customKeys)

function tableEmpty(_table)
	for k, v in pairs(_table) do
		return false
	end
	return true
end

--- Generates and renderds the demo table.
-- @param frame The Scribunto frame.
function p.demo(frame)
	local plain = (frame.args["plain"] or frame:getParent().args["plain"] or "") ~= ""
	local verbose = (frame.args["verbose"] or frame:getParent().args["verbose"] or "") ~= ""
	
	local legend = setmetatable({}, { refgroupname = "" })
	local errors = setmetatable({}, { refgroupname = "E" })
	local warnings = setmetatable({}, { refgroupname = "W" })
	
	--- Builds the entire reflist
	-- @param _group The group to build for. Uses `legend` by default.
	function buildReflist(_group)
		group = _group or legend
		return frame:expandTemplate{ title = 'reflist', args = {
			group = getmetatable(group)["refgroupname"]
		} }
	end
	
	--- Returns a single <ref> tag containing the legend provided and
	-- attaches the note definition to the list of notes.
	-- @param details The details of the legend.
	-- @param _group The group to write in. Uses `legend` by default.
	function createLegend(details, _group)
		hash = string.sub(mw.hash.hashValue("md5", details), 0, 8)
		group = _group or legend
		if group[hash] == nil then
			group[hash] = plain and "" or frame:extensionTag{ 
				-- <ref name="hash">details</ref>
				name = 'ref',
				content = mw.ustring.gsub(details, "%[%[File:([^%|]+)[^%]]*%]%]", "[[:File:%1]]"),
				args = { 
					name = hash, 
					group = getmetatable(group)["refgroupname"]
				}
			}
		end
		
		-- <ref name="hash"/>
		return plain and "" or frame:extensionTag{ name = 'ref', args = { 
			name = hash,
			group = getmetatable(group)["refgroupname"]
		} }
	end
	
	--- Checks for color contrast issues and tags accordingly.
	-- Returns the refernce tag, so this should be used in conjunction with an
	-- HTML node's :wikitext function.
	function contrastCheck(color)
		local catColorBlackRatio = colorRatio({ "#" .. color, "black" })
		local catColorLinkRatio = colorRatio({ "#" .. color, "#0645ad" })
		local catColorVisitedLinkRatio = colorRatio({ "#" .. color, "#0b0080" })
		
		local finalWikitext = ""
		if catColorBlackRatio == "?" or catColorLinkRatio == "?" or catColorVisitedLinkRatio == "?" then
			finalWikitext = finalWikitext ..
				createLegend("This color must be a hexadecimal color.", errors)
		else
			if catColorBlackRatio < 4.5 then
				finalWikitext = finalWikitext ..
					createLegend("This color has [[MOS:COLOR|contrast issues]] with black (not WCAG 2.0 AA-compatible). It will be unusable on all infoboxes and storm season summaries.", errors)
			end
			if catColorLinkRatio < 4.5 then
				finalWikitext = finalWikitext ..
					createLegend("This color has [[MOS:COLOR|contrast issues]] with links (not WCAG 2.0 AA-compatible). It should not be used in conjunction with a link.", warnings)
			end
			if catColorVisitedLinkRatio < 4.5 then
				finalWikitext = finalWikitext ..
					createLegend("This color has [[MOS:COLOR|contrast issues]] with visited links (not WCAG 2.0 AA-compatible with #0b0080). It should not be used in conjunction with a visited link.", warnings)
			end
			if actualCat == "c0c0c0" and cat[sortkey] ~= 0 then
				finalWikitext = finalWikitext ..
					createLegend("This category is using a color reserved specifically for the \"unknown\" category.", warnings)
			end
		end
		return finalWikitext
	end
	
	function colorInfo(color, verbose, extra)
		local catColorBlackRatio = colorRatio({ "#" .. color, "black" })
		local catColorLinkRatio = colorRatio({ "#" .. color, "#0645ad" })
		local catColorVisitedLinkRatio = colorRatio({ "#" .. color, "#0b0080" })
		
		local nc = tostring(mw.html.create("abbr")
			:wikitext("NC")
			:attr("title", "Does not satisfy the minimum WCAG 2.1 compliance level for color contrast (AA)")
		);
		local aa = tostring(mw.html.create("abbr")
			:wikitext("AA")
			:attr("title", "WCAG 2.1 Level AA: Acceptable compliance")
		);
		local aaa = tostring(mw.html.create("abbr")
			:wikitext("AAA")
			:attr("title", "WCAG 2.1 Level AAA: Optimal compliance")
		);
		
		function contrastLevel(contrast)
			return contrast >= 7 and aaa or (contrast >= 4.5 and aa or nc)
		end
		
		return mw.html.create("td")
			:attr("data-sort-value", math.min(catColorBlackRatio))
			:wikitext(
				"#" .. color .. (extra or "") .. contrastCheck(color) .. (verbose and ("<br/>"
				.. tostring(
					mw.html.create("abbr")
						:attr("title", "Contrast to black")
						:wikitext("CTB")
				) .. ": " .. string.format("%.2f", catColorBlackRatio) .. " (" .. contrastLevel(catColorBlackRatio) .. ")<br/>"
				.. tostring(
					mw.html.create("abbr")
						:attr("title", "Contrast to links")
						:wikitext("CTL")
				) .. ": " .. string.format("%.2f", catColorLinkRatio) .. " (" .. contrastLevel(catColorLinkRatio) .. ")<br/>"
				.. tostring(
					mw.html.create("abbr")
						:attr("title", "Contrast to visited links")
						:wikitext("CTVL")
				) .. ": " .. string.format("%.2f", catColorVisitedLinkRatio) .. " (" .. contrastLevel(catColorVisitedLinkRatio) .. ")") or "")
			)
	end
	
	local categoryTable = mw.html.create("table")
		:addClass("wikitable")
		:addClass("sortable")
		:attr("style", "width: 100%")
		
	categoryTable
		:node(
			mw.html.create("tr")
				:node(mw.html.create("th"):wikitext("Icon")
					:attr("class", "unsortable")
					:attr("rowspan", "2")
					:css("width", "0"))
				:node(mw.html.create("th"):wikitext("ID")
					:attr("rowspan", "2"))
				:node(mw.html.create("th"):wikitext("Name")
					:attr("colspan", "2"))
				:node(mw.html.create("th"):wikitext("Color")
					:attr("rowspan", "2")
					:attr("colspan", "2"))
				:node(mw.html.create("th"):wikitext("Sortkey")
					:attr("colspan", "2"))
		):node(
			mw.html.create("tr")
				:node(mw.html.create("th"):wikitext("Basin"))
				:node(mw.html.create("th"):wikitext("Name"))
				:node(mw.html.create("th"):wikitext("Basin"))
				:node(mw.html.create("th"):wikitext("Sortkey")
					:attr("data-sort-type", "number"))
		)
	
	for name, cat in TableTools.sortedPairs(cats) do
		local rows = { mw.html.create("tr") }
		local row = rows[1]
		
		local actualIcon = stormcats._icon(name)
		local icon = mw.html.create("td")
			:wikitext(actualIcon)
		if cat["icon"] ~= nil and actualIcon ~= cat["icon"] then
			icon:wikitext(
				createLegend("Overriden from original icon (" .. cat["icon"] .. ")")
			)
		end
			
		local id = mw.html.create("td")
			:wikitext(name)
		local actualColor = stormcats._color(name)
		local colorPreview = mw.html.create("td")
			:attr("style", "background-color: #" .. actualColor .. "; padding: 0; width: 1.8em")
		local color = colorInfo(
			actualColor,
			verbose,
			actualColor ~= cat["color"] and createLegend(
				"Overriden from original color ({{color box|#"
				.. cat["color"]
				.. "}} #"
				.. cat["color"]
				.. ")"
			) or ""
		):css("width", "0"):css("white-space", "nowrap")
		
		local sortkeyCategory = mw.html.create("td")
			:attr("data-sort-value", cat["sortkey"])
		local sortkey = mw.html.create("td")
			:attr("data-sort-value", cat["sortkey"])
			:wikitext(cat["sortkey"])
			
		if cat["sortkey"] < 0 then
			sortkeyCategory:wikitext("Invalid")
		elseif cat["sortkey"] < 20000 then
			sortkeyCategory:wikitext("Global")
		elseif cat["sortkey"] < 30000 then
			sortkeyCategory:wikitext("Historical")
		elseif cat["sortkey"] < 40000 then
			sortkeyCategory:wikitext("SWIO")
		elseif cat["sortkey"] < 50000 then
			sortkeyCategory:wikitext("Aus/Fiji")
		elseif cat["sortkey"] < 60000 then
			sortkeyCategory:wikitext("NIO")
		elseif cat["sortkey"] < 80000 then
			sortkeyCategory:wikitext("WPAC")
		elseif cat["sortkey"] < 90000 then
			sortkeyCategory:wikitext("Atl/EPac/SAtl")
		elseif cat["sortkey"] < 100000 then
			sortkeyCategory:attr("style", "color: gray")
			sortkeyCategory:wikitext("''Global''")
		else
			sortkeyCategory:wikitext("Invalid")
		end
		
		if type(cat["name"]) == "string" then
			local name = mw.html.create("td")
				:attr("colspan", "2")
				:wikitext(cat["name"])
			row:node(icon)
			row:node(id)
			row:node(name)
		else
			local nameTableLength = TableTools.size(cat["name"])
			icon:attr("rowspan", nameTableLength)
			id:attr("rowspan", nameTableLength)
			colorPreview:attr("rowspan", nameTableLength)
			color:attr("rowspan", nameTableLength)
			sortkeyCategory:attr("rowspan", nameTableLength)
			sortkey:attr("rowspan", nameTableLength)
			
			row:node(icon)
			row:node(id)
			local firstDone = false
			for key, basinName in TableTools.sortedPairs(cat["name"]) do
				if firstDone then
					local nameRow = mw.html.create("tr")
					
					nameRow
						:node(mw.html.create("td"):wikitext(key))
						:node(mw.html.create("td"):wikitext(basinName))
						
					table.insert(rows, nameRow)	
				else
					firstDone = true
					row
						:node(mw.html.create("td"):wikitext(key))
						:node(mw.html.create("td"):wikitext(basinName))
				end
			end
		end
		
		row:node(colorPreview)
		row:node(color)
		row:node(sortkeyCategory)
		row:node(sortkey)
		
		for _, _row in TableTools.sortedPairs(rows) do
			categoryTable:node(_row)
		end
	end
	
	for name, _ in TableTools.sortedPairs(TableTools.listToSet(customKeys)) do
		if cats[name] == nil then
			local row = mw.html.create("tr")
			
			local icon = stormcats._icon(name, true)
			row
				:node(mw.html.create("td")
					:wikitext(
						icon ~= nil
						and icon
						or "''<span style=\"color:gray\">N/A</span>''"
					))
				:node(mw.html.create("td"):wikitext(name))
			
			local color = stormcats._color(name, true)
			-- Add more conditions eventually
			if color ~= nil then
				row
					:node(mw.html.create("td")
						:attr("colspan", "2")
						:wikitext("''<span style=\"color:gray\">not available</span>''"))
					:node(mw.html.create("td")
						:attr("style", "background-color: #" .. color .. "; padding: 0; width: 1.8em"))
					:node(colorInfo(color, verbose))
						:css("width", "0")
						:css("white-space", "nowrap")
					:node(mw.html.create("td")
						:attr("colspan", "2")
						:wikitext("''<span style=\"color:gray\">not available</span>''"))
			else
				row
					:node(mw.html.create("td")
						:attr("colspan", "6")
						:wikitext("''<span style=\"color:gray\">not available</span>''"))
			end
			categoryTable:node(row)
		end
	end
	
	out = ""
	if not plain and not tableEmpty(errors) then
		out = out
			.. tostring(mw.html.create("h4"):wikitext("Error"))
		    .. tostring(mw.html.create("p"):wikitext("This table contains errors than need to be addressed immediately, as it may cause errors on a large amount of pages."))
		    .. buildReflist(errors)
	end
	if not plain and not tableEmpty(legend) then
		out = out
			.. tostring(mw.html.create("h4"):wikitext("Legend"))
		    .. buildReflist(legend)
	end
	out = out .. tostring(categoryTable)
	if not plain and not tableEmpty(warnings) then
		out = out
			.. tostring(mw.html.create("h4"):wikitext("Warnings"))
		    .. tostring(mw.html.create("p"):wikitext("This table contains warnings than should be addressed. Please note that some warnings cannot be fully addressed without changes that would require consensus."))
		    .. buildReflist(warnings)
	end
	
	return mw.text.trim(out)
end

return p