# Select icon
Icons describe the type of input a select requires. They can also be interaction targets.
## Basic usage
### HTML structure
```html
event
```
#### Icon set
We recommend using [Material Icons](https://material.io/tools/icons/) from Google Fonts:
```html
Pick a Food Group
event
...
```
In outlined select:
```html
```
## API
### CSS classes
CSS Class | Description
--- | ---
`mdc-select__icon` | Mandatory.
### Sass mixins
Mixin | Description
--- | ---
`size($size)` | Customizes the size (both width and height) of the icon.
`icon-color($color)` | Customizes the color for the leading icon.
`disabled-icon-color($color)` | Customizes the color for the leading icon when disabled.
## `MDCSelectIcon` properties and methods
Property | Value Type | Description
--- | --- | ---
`foundation` | `MDCSelectIconFoundation` | Returns the icon's foundation. This allows the parent `MDCSelect` component to access the public methods on the `MDCSelectIconFoundation` class.
## Usage within frameworks
If you are using a JavaScript framework, such as React or Angular, you can create a Select Icon for your framework. Depending on your needs, you can use the _Simple Approach: Wrapping MDC Web Vanilla Components_, or the _Advanced Approach: Using Foundations and Adapters_. Please follow the instructions [here](../../../docs/integrating-into-frameworks.md).
### `MDCSelectIconAdapter`
Method Signature | Description
--- | ---
`getAttr(attr: string) => string` | Gets the value of an attribute on the icon element.
`setAttr(attr: string, value: string) => void` | Sets an attribute with a given value on the icon element.
`removeAttr(attr: string) => void` | Removes an attribute from the icon element.
`setContent(content: string) => void` | Sets the text content of the icon element.
`registerInteractionHandler(evtType: string, handler: EventListener) => void` | Registers an event listener for a given event.
`deregisterInteractionHandler(evtType: string, handler: EventListener) => void` | Deregisters an event listener for a given event.
`notifyIconAction() => void` | Emits a custom event "MDCSelect:icon" denoting a user has clicked the icon, which bubbles to the top-level select element.
### `MDCSelectIconFoundation`
Method Signature | Description
--- | ---
`setDisabled(disabled: boolean) => void` | Updates the icon's disabled state.
`setAriaLabel(label: string) => void` | Updates the icon's aria-label.
`setContent(content: string) => void` | Updates the icon's text content.
`handleInteraction(evt: Event) => void` | Handles a select interaction event.