@ngdoc overview
@name Developer Guide: Templates: Working With CSS in Angular
@description


Angular sets these CSS classes. It is up to your application to provide useful styling.

# CSS classes used by angular

* `ng-invalid`, `ng-valid`
  - **Usage:** angular applies this class to an input widget element if that element's input does
    notpass validation. (see {@link api/angular.widget.input input} widget).

* `ng-pristine`, `ng-dirty`
  - **Usage:** angular {@link api/angular.widget.input input} widget applies `ng-pristine` class
    to a new input widget element which did not have user interaction. Once the user interacts with
    the input widget the class is changed to `ng-dirty`.

# Marking CSS classes

* `ng-widget`, `ng-directive`
  -  **Usage:** angular sets these class on elements where {@link api/angular.widget widget} or
     {@link api/angular.directive directive} has bound to.


* Old browser support
  - Pre v9, IE browsers could not select `ng:include` elements in CSS, because of the `:`
    character. For this reason angular also sets `ng-include` class on any element which has `:`
    character in the name by replacing `:` with `-`.

## Related Topics

* {@link dev_guide.templates Angular Templates}
* {@link dev_guide.forms Angular Forms}
