CSS classes reference

Stylable classes

The general purpose classes are intended to be used for any language, but the other classes may also be used when they are semantically correct. For example if you had a general purpose language that allowed inline URLs:

var GOOGLE = https://www.google.com/

It would be wholly reasonable to use the link class for this, even though your language is not considered a “Markup” language.

General purpose
keyword keyword in a regular Algol-style language
built_in built-in or library object (constant, class, function)
type data type (in a language with syntactically significant types) (string, int, array, etc.)
literal special identifier for a built-in value (true, false, null, etc.)
number number, including units and modifiers, if any.
operator operators: +, -, >>, |, ==
punctuation aux. punctuation that should be subtly highlighted (parentheses, brackets, etc.)
regexp literal regular expression
string literal string, character
subst parsed section inside a literal string
symbol symbolic constant, interned string, goto label
class class or class-level declaration (interfaces, traits, modules, etc), typically includes a title submode
function function or method declaration
variable variables
title name of a class or a function at the place of declaration
params block of function arguments (parameters) at the place of declaration
comment comments
doctag documentation markup within comments
meta flags, modifiers, annotations, processing instructions, preprocessor directives, etc
meta-keyword keyword or built-in within meta construct
meta-string string within meta construct
Tags, attributes, configs
section heading of a section in a config file, heading in text markup
tag XML/HTML tag
name name of an XML tag, the first word in an s-expression
builtin-name s-expression name from the language standard library
attr name of an attribute with no language defined semantics (keys in JSON, setting names in .ini), also sub-attribute within another highlighted object, like XML tag
attribute name of an attribute followed by a structured value part, like CSS properties
Text Markup
bullet list item bullet
code code block
emphasis emphasis
strong strong emphasis
formula mathematical formula
link hyperlink
quote quotation or blockquote
selector-tag tag selector
selector-id #id selector
selector-class .class selector
selector-attr [attr] selector
selector-pseudo :pseudo selector
template-tag tag of a template language
template-variable variable in a template language
addition added or changed line
deletion deleted line

A note on newer classes

Some classes have been added more recently and do not enjoy universal theme support. For themes without support, these items will simply not be highlighted. This doesn’t mean not to use them, only that they will be highlighted better as support improves over time.

A list of these classes:

  • operator
  • punctuation

Reserved classes

The below classes (ReasonML) are left here for documentation purposes but may not be used in other grammars because they are very poorly supported by all themes.

If you’d like to help out with the larger issue here:

pattern-match pattern matching matchers
typing type signatures on function parameters
constructor type constructors
module-access scope access into a module
module module reference within scope access

Language names and aliases

The language names and aliases table has moved to SUPPORTED_LANGUAGES.md.