diff --git a/formatters/html/html.go b/formatters/html/html.go
index 336a5bb..17a129a 100644
--- a/formatters/html/html.go
+++ b/formatters/html/html.go
@@ -246,11 +246,14 @@ func (f *Formatter) styleToCSS(style *chroma.Style) map[chroma.TokenType]string
 	classes := map[chroma.TokenType]string{}
 	bg := style.Get(chroma.Background)
 	// Convert the style.
-	for _, t := range style.Types() {
+	for t := range chroma.StandardTypes {
 		entry := style.Get(t)
 		if t != chroma.Background {
 			entry = entry.Sub(bg)
 		}
+		if entry.IsZero() {
+			continue
+		}
 		classes[t] = StyleEntryToCSS(entry)
 	}
 	classes[chroma.Background] += f.tabWidthStyle()
diff --git a/remap_test.go b/remap_test.go
index 55d8f0f..7aa25c5 100644
--- a/remap_test.go
+++ b/remap_test.go
@@ -13,8 +13,8 @@ func TestRemappingLexer(t *testing.T) {
 			{`\w+`, Name, nil},
 		},
 	})
-	lexer = TypeRemappingLexer(lexer, TypeRemappingMap{
-		{Name, Keyword}: {"if", "else"},
+	lexer = TypeRemappingLexer(lexer, TypeMapping{
+		{Name, Keyword, []string{"if", "else"}},
 	})
 
 	it, err := lexer.Tokenise(nil, `if true then print else end`)