| # Text field styles | |
| MDC's text fields are designed to be styled by controllers implementing the `MDCTextInputController` protocol. The following controllers are included in the text field component and each one is highly customizable to express your app's branding and styling. | |
| Some of the classes are marked as "Preferred". These are known, through extensive UX research, to have big performance gains in usability. | |
| There's also a class called `MDCTextInputControllerBase`. It's meant to be used as a superclass for controllers that want default floating placeholder behavior with minimal customization. Several other controllers inherit from it. | |
| Two of the classes include "Legacy" in their names. They are included to support older designs and avoid breaking changes that come from the size of newer styles. | |
| ## MDCTextInputControllerOutlined (Preferred) | |
|  | |
| - Stroked border | |
| - Border-crossing, floating placeholder | |
| - No fill | |
| ### Notes: | |
| This class is intended for singleline text fields only. For a visually compatible multiline controller, use `MDCTextInputControllerOutlinedTextArea`. | |
| ## MDCTextInputControllerFilled (Preferred) | |
|  | |
| - Optional stroked border / underline | |
| - Floating placeholder | |
| - Colored fill | |
| ## MDCTextInputControllerOutlinedTextArea (Preferred) | |
|  | |
| - Stroked border | |
| - Border-crossing, floating placeholder | |
| - No fill | |
| ### Notes: | |
| This class is intended for multiline text fields only. For a visually compatible singleline controller, use `MDCTextInputControllerOutlined`. | |
| ## MDCTextInputControllerUnderline | |
|  | |
| - Underline | |
| - Optional floating of placeholder (default is to float) | |
| - No fill | |
| - "Classic" early Material Design look | |
| ## MDCTextInputControllerFullWidth | |
| - No border / underline | |
| - Inline placeholder | |
| - Optional fill | |
| - No leading underline label | |
| - Trailing underline label is inline with placeholder | |
| ## MDCTextInputControllerLegacyDefault | |
|  | |
| - Underline | |
| - Optional floating of placeholder (default is to float) | |
| - No fill | |
| - "Classic" early Material Design look | |
| - Legacy clear button (X) | |
| ### Notes: | |
| This class has different layout behavior and sizing than `MDCTextInputControllerDefault` but is included for backward compatibility. | |
| ## MDCTextInputControllerLegacyFullWidth | |
| - No border / underline | |
| - Inline placeholder | |
| - Optional fill | |
| - No leading underline label | |
| - Trailing underline label is inline with placeholder | |
| - Legacy clear button (X) | |
| ### Notes: | |
| This class has different layout behavior and sizing than `MDCTextInputControllerFullWidth` but is included for backward compatibility. |