How do I add a CSS class to a form label?
I know this is an old thread, but for anyone Googling.

The clue to this is in template_preprocess_form_element().

$element += [
    '#title_display' =&gt; 'before',
    '#wrapper_attributes' =&gt; [],
    '#label_attributes' =&gt; [],
  ];


#label_attributes is a standard attribute array, so very easy to set a class with ['class' =&gt; ['my-class', 'other-class']]

#title_display takes 3 values:


before: The label is output before the element. This is the default.
after: The label is output after the element. For example, this is used for radio and checkbox #type elements. 
invisible: Labels are critical for screen readers to enable them to properly navigate through forms but can be visually distracting. This property hides the label for everyone except screen readers.
attribute: Set the title attribute on the element to create a tooltip but output no label element. This is supported only for checkboxes and radios