---
title: "Indication"
description: "Indication represents visual effects that occur when certain interactions happens. For example:
showing a ripple effect when a component is pressed, or a highlight when a component is focused.

To implement your own Indication, see [IndicationNodeFactory] - an optimized [Indication] that
allows for more efficient implementations than the deprecated [rememberUpdatedInstance].

Indication is typically provided throughout the hierarchy through [LocalIndication] - you can
provide a custom Indication to [LocalIndication] to change the default [Indication] used for
components such as [clickable]."
type: "interface"
---

<div class='type'>Interface</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>



```kotlin
interface Indication
```


Indication represents visual effects that occur when certain interactions happens. For example:
showing a ripple effect when a component is pressed, or a highlight when a component is focused.

To implement your own Indication, see `IndicationNodeFactory` - an optimized `Indication` that
allows for more efficient implementations than the deprecated `rememberUpdatedInstance`.

Indication is typically provided throughout the hierarchy through `LocalIndication` - you can
provide a custom Indication to `LocalIndication` to change the default `Indication` used for
components such as `clickable`.


## Functions

```kotlin
@Composable
    fun rememberUpdatedInstance(interactionSource: InteractionSource): IndicationInstance
```


`remember`s a new `IndicationInstance`, and updates its state based on `Interaction`s emitted
via `interactionSource` . Typically this will be called by `indication`, so one
`IndicationInstance` will be used for one component that draws `Indication`, such as a
button.

Implementations of this function should observe `Interaction`s using `interactionSource`,
using them to launch animations / state changes inside `IndicationInstance` that will then be
reflected inside `IndicationInstance.drawIndication`.

#### Parameters

| | |
| --- | --- |
| interactionSource | the `InteractionSource` representing the stream of `Interaction`s the returned `IndicationInstance` should represent |


#### Returns

| | |
| --- | --- |
|  | an `IndicationInstance` that represents the stream of `Interaction`s emitted by `interactionSource` |




