# CurvedScope

Artifact: [androidx.wear.compose:compose-foundation](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/foundation/CurvedContainer.kt+class:androidx.wear.compose.foundation.CurvedScope) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)


```
@LayoutScopeMarker
class CurvedScope
```

<br />

*** ** * ** ***

Layout scope used for curved containers. This is the base of a DSL that specifies what components can be added to a curved layout.

## Summary

| ### Extension functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow,kotlin.Function0)( text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier, angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular?, overflow: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/style/TextOverflow, style: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow,kotlin.Function0)` is a component allowing developers to easily write curved text following the curvature of a circle (usually at the edge of a circular screen). |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)( text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle, modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier, angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular?, overflow: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/style/TextOverflow )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` is a component allowing developers to easily write curved text following the curvature of a circle (usually at the edge of a circular screen). |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).confirmationDialogCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedTextStyle)( text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle )` A customized variation of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` that displays text along a curved path. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).curvedBox(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedAlignment.Angular,kotlin.Function1)( modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier, radialAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial?, angularAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular?, contentBuilder: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` A layout composable that places its children on top of each other and on an arc. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).curvedColumn(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Radial,androidx.wear.compose.foundation.CurvedAlignment.Angular,kotlin.Function1)( modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier, radialDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Radial?, angularAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular?, contentBuilder: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` A curved layout composable that places its children stacked as part of an arc (the first child will be the outermost). |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).curvedComposable(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,kotlin.Boolean,kotlin.Function1)( modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier, radialAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial, rotationLocked: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Component that allows normal composables to be part of a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).curvedRow(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)( modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier, radialAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial?, angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular?, contentBuilder: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` A layout composable that places its children in an arc, rotating them as needed. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)( text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier, background: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color, color: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color, fontSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, fontFamily: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontFamily?, fontWeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight?, fontStyle: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontStyle?, fontSynthesis: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontSynthesis?, style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle?, angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular?, overflow: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/style/TextOverflow )` CurvedText is a component allowing developers to easily write curved text following the curvature a circle (usually at the edge of a circular screen). |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)( text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier, maxSweepAngle: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, background: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color, color: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color, fontSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, fontFamily: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontFamily?, fontWeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight?, fontStyle: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontStyle?, fontSynthesis: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontSynthesis?, letterSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, letterSpacingCounterClockwise: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle?, angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular?, overflow: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/style/TextOverflow )` CurvedText is a component allowing developers to easily write curved text following the curvature of a circle (usually at the edge of a circular screen). |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).openOnPhoneDialogCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedTextStyle)( text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle )` A customized variation of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` that displays text along a curved path. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).timeTextCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedTextStyle)(time: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle?)` Default curved text to use in a `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`, for displaying the time |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope#(androidx.wear.compose.foundation.CurvedScope).timeTextSeparator(androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.ArcPaddingValues)( curvedTextStyle: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle?, contentArcPadding: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ArcPaddingValues )` A default implementation of Separator, to be shown between any text/composable and the time. |

## Extension functions

### CurvedScope.basicCurvedText

Artifact: [androidx.wear.compose:compose-foundation](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/foundation/BasicCurvedText.kt+function:basicCurvedText)

```
fun CurvedScope.basicCurvedText(
    text: String,
    modifier: CurvedModifier = CurvedModifier,
    angularDirection: CurvedDirection.Angular? = null,
    overflow: TextOverflow = TextOverflow.Clip,
    style: @Composable () -> CurvedTextStyle = { CurvedTextStyle() }
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow,kotlin.Function0)` is a component allowing developers to easily write curved text following the curvature of a circle (usually at the edge of a circular screen). `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow,kotlin.Function0)` can be only created within a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` since it's not a composable.

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.text.BasicText
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedModifier
import androidx.wear.compose.foundation.CurvedTextStyle
import androidx.wear.compose.foundation.background
import androidx.wear.compose.foundation.basicCurvedText
import androidx.wear.compose.foundation.curvedComposable
import androidx.wear.compose.foundation.padding
import androidx.wear.compose.foundation.size
import androidx.wear.compose.material.Text

CurvedLayout(modifier = Modifier.fillMaxSize()) {
    basicCurvedText(
        "Curved Text",
        CurvedModifier.padding(10.dp),
        style = {
            CurvedTextStyle(fontSize = 16.sp, color = Color.Black, background = Color.White)
        },
    )
    curvedComposable { Box(modifier = Modifier.size(20.dp).background(Color.Gray)) }
    curvedComposable {
        BasicText(
            "Normal Text",
            Modifier.padding(5.dp),
            TextStyle(fontSize = 16.sp, color = Color.Black, background = Color.White),
        )
    }
}
```

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to display |
| `modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier = CurvedModifier` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier` to apply to this curved text. |
| `angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular? = null` | Specify if the text is laid out clockwise or anti-clockwise, and if those need to be reversed in a Rtl layout. If not specified, it will be inherited from the enclosing `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedRow(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` See `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular`. |
| `overflow: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/style/TextOverflow = TextOverflow.Clip` | How visual overflow should be handled. Note that this takes into account only explicit size curved modifiers in this element, to size this element matching the parent's, add a CurvedModifier.weight here. |
| `style: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle = { CurvedTextStyle() }` | A @Composable factory to provide the style to use. This composable SHOULDN'T generate any compose nodes. |

### CurvedScope.basicCurvedText

Artifact: [androidx.wear.compose:compose-foundation](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/foundation/BasicCurvedText.kt+function:basicCurvedText)

```
fun CurvedScope.basicCurvedText(
    text: String,
    style: CurvedTextStyle,
    modifier: CurvedModifier = CurvedModifier,
    angularDirection: CurvedDirection.Angular? = null,
    overflow: TextOverflow = TextOverflow.Clip
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` is a component allowing developers to easily write curved text following the curvature of a circle (usually at the edge of a circular screen). `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` can be only created within a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` since it's not a composable.

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.text.BasicText
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedModifier
import androidx.wear.compose.foundation.CurvedTextStyle
import androidx.wear.compose.foundation.background
import androidx.wear.compose.foundation.basicCurvedText
import androidx.wear.compose.foundation.curvedComposable
import androidx.wear.compose.foundation.padding
import androidx.wear.compose.foundation.size
import androidx.wear.compose.material.Text

CurvedLayout(modifier = Modifier.fillMaxSize()) {
    basicCurvedText(
        "Curved Text",
        CurvedModifier.padding(10.dp),
        style = {
            CurvedTextStyle(fontSize = 16.sp, color = Color.Black, background = Color.White)
        },
    )
    curvedComposable { Box(modifier = Modifier.size(20.dp).background(Color.Gray)) }
    curvedComposable {
        BasicText(
            "Normal Text",
            Modifier.padding(5.dp),
            TextStyle(fontSize = 16.sp, color = Color.Black, background = Color.White),
        )
    }
}
```

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to display |
| `style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` | A style to use. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier = CurvedModifier` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier` to apply to this curved text. |
| `angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular? = null` | Specify if the text is laid out clockwise or anti-clockwise, and if those need to be reversed in a Rtl layout. If not specified, it will be inherited from the enclosing `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedRow(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` See `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular`. |
| `overflow: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/style/TextOverflow = TextOverflow.Clip` | How visual overflow should be handled. |

### CurvedScope.confirmationDialogCurvedText

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ConfirmationDialog.kt+function:confirmationDialogCurvedText)

```
fun CurvedScope.confirmationDialogCurvedText(
    text: String,
    style: CurvedTextStyle
): Unit
```

A customized variation of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` that displays text along a curved path. This variation adopts suitable sweep angle and padding for use in `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ConfirmationDialog.composable#ConfirmationDialog(kotlin.Boolean,kotlin.Function0,kotlin.Function1,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ConfirmationDialogColors,androidx.compose.ui.window.DialogProperties,kotlin.Long,kotlin.Function0)`s.

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to display. |
| `style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` | It is recommended to use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ConfirmationDialogDefaults#curvedTextStyle()` for curved text in Confirmation Dialogs. |

### CurvedScope.curvedBox

Artifact: [androidx.wear.compose:compose-foundation](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/foundation/CurvedBox.kt+function:curvedBox)

```
fun CurvedScope.curvedBox(
    modifier: CurvedModifier = CurvedModifier,
    radialAlignment: CurvedAlignment.Radial? = null,
    angularAlignment: CurvedAlignment.Angular? = null,
    contentBuilder: CurvedScope.() -> Unit
): Unit
```

A layout composable that places its children on top of each other and on an arc. This is similar to a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/Box.composable#Box(androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Boolean,kotlin.Function1)` layout, but curved into a segment of an annulus.

The thickness of the layout (the difference between the outer and inner radius) will be the same as the thickest child, and the angle taken will be the biggest angle of the children.

Example usage:

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.wear.compose.foundation.CurvedAlignment
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedModifier
import androidx.wear.compose.foundation.background
import androidx.wear.compose.foundation.curvedBox
import androidx.wear.compose.foundation.curvedComposable
import androidx.wear.compose.foundation.size

CurvedLayout(modifier = Modifier.fillMaxSize()) {
    curvedBox(
        modifier = CurvedModifier.background(Color.Red),
        radialAlignment = CurvedAlignment.Radial.Inner,
        angularAlignment = CurvedAlignment.Angular.End,
    ) {
        curvedComposable {
            Box(modifier = Modifier.width(40.dp).height(80.dp).background(Color.Green))
        }
        curvedComposable {
            Box(modifier = Modifier.size(30.dp).clip(CircleShape).background(Color.White))
        }
    }
}
```

| Parameters |
|---|---|
| `modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier = CurvedModifier` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier` to apply to this curved box. |
| `radialAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial? = null` | Radial alignment specifies where to lay down children that are thinner than the CurvedBox, either closer to the center `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial#Inner()`, apart from the center `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial#Outer()` or in the middle point `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial#Center()`. If unspecified, they can choose for themselves. |
| `angularAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular? = null` | Angular alignment specifies where to lay down children that are thinner than the CurvedBox, either at the `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular#Start()` of the layout, at the `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular#End()`, or `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular#Center()`. If unspecified or null, they can choose for themselves. |
| `contentBuilder: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Specifies the content of this layout, currently there are 5 available elements defined in foundation for this DSL: the sub-layouts `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedBox(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedAlignment.Angular,kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedRow(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedColumn(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Radial,androidx.wear.compose.foundation.CurvedAlignment.Angular,kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).basicCurvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow,kotlin.Function0)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedComposable(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,kotlin.Boolean,kotlin.Function1)` (used to add normal composables to curved layouts) |

### CurvedScope.curvedColumn

Artifact: [androidx.wear.compose:compose-foundation](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/foundation/CurvedColumn.kt+function:curvedColumn)

```
fun CurvedScope.curvedColumn(
    modifier: CurvedModifier = CurvedModifier,
    radialDirection: CurvedDirection.Radial? = null,
    angularAlignment: CurvedAlignment.Angular? = null,
    contentBuilder: CurvedScope.() -> Unit
): Unit
```

A curved layout composable that places its children stacked as part of an arc (the first child will be the outermost). This is similar to a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/Column.composable#Column(androidx.compose.ui.Modifier,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,kotlin.Function1)` layout, but curved into a segment of an annulus.

The thickness of the layout (the difference between the outer and inner radius) will be the sum of the thickness of its children, and the angle taken will be the biggest angle of the children.

Example usage:

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.text.BasicText
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.wear.compose.foundation.CurvedAlignment
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.background
import androidx.wear.compose.foundation.curvedColumn
import androidx.wear.compose.foundation.curvedComposable
import androidx.wear.compose.foundation.curvedRow
import androidx.wear.compose.foundation.padding
import androidx.wear.compose.foundation.size
import androidx.wear.compose.material.Text

CurvedLayout(modifier = Modifier.fillMaxSize()) {
    curvedComposable { Box(modifier = Modifier.size(20.dp).background(Color.Red)) }
    curvedColumn(angularAlignment = CurvedAlignment.Angular.End) {
        repeat(3) {
            curvedRow {
                curvedComposable {
                    BasicText(
                        "Row #$it",
                        Modifier.background(Color.White).padding(2.dp),
                        TextStyle(color = Color.Black, fontSize = 14.sp),
                    )
                }
                curvedComposable {
                    Box(modifier = Modifier.size(10.dp).background(Color.Green))
                }
                curvedComposable {
                    BasicText(
                        "More",
                        Modifier.background(Color.Yellow).padding(2.dp),
                        TextStyle(color = Color.Black, fontSize = 14.sp),
                    )
                }
            }
        }
    }
    curvedComposable { Box(modifier = Modifier.size(20.dp).background(Color.Red)) }
}
```

| Parameters |
|---|---|
| `modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier = CurvedModifier` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier` to apply to this curved column. |
| `radialDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Radial? = null` | Order to lay out components, outside in or inside out. The default is to inherit from the containing `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedColumn(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedDirection.Radial,androidx.wear.compose.foundation.CurvedAlignment.Angular,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` |
| `angularAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular? = null` | Angular alignment specifies where to lay down children that are thinner than the curved column, either at the `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular#Start()` of the layout, at the `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular#End()`, or `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Angular#Center()`. If unspecified or null, they can choose for themselves. |
| `contentBuilder: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Scope used to provide the content for this column. |

### CurvedScope.curvedComposable

Artifact: [androidx.wear.compose:compose-foundation](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/foundation/CurvedComposable.kt+function:curvedComposable)

```
fun CurvedScope.curvedComposable(
    modifier: CurvedModifier = CurvedModifier,
    radialAlignment: CurvedAlignment.Radial = CurvedAlignment.Radial.Center,
    rotationLocked: Boolean = false,
    content: @Composable BoxScope.() -> Unit
): Unit
```

Component that allows normal composables to be part of a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)`.

| Parameters |
|---|---|
| `modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier = CurvedModifier` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier` to apply to this curved composable. |
| `radialAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial = CurvedAlignment.Radial.Center` | How to align this component if it's thinner than the container. |
| `rotationLocked: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | by default (when this is false), the component will be rotated as it moves around the circle, so its base always faces the center. If set to true, it won't be rotated and only moved into position, for example, an upwards pointing arrow will remain pointing upwards wherever it appears on the circle. Note that this is not taken into account when computing the size this will take in the layout, so it's best suited for square/circular things and may require manual sizing when used in other contexts. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable(s) that will be wrapped and laid out as part of the parent container. This has a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope`, since it's wrapped inside a Box. |

### CurvedScope.curvedRow

Artifact: [androidx.wear.compose:compose-foundation](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/foundation/CurvedRow.kt+function:curvedRow)

```
fun CurvedScope.curvedRow(
    modifier: CurvedModifier = CurvedModifier,
    radialAlignment: CurvedAlignment.Radial? = null,
    angularDirection: CurvedDirection.Angular? = null,
    contentBuilder: CurvedScope.() -> Unit
): Unit
```

A layout composable that places its children in an arc, rotating them as needed. This is similar to a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/Row.composable#Row(androidx.compose.ui.Modifier,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,kotlin.Function1)` layout, but curved into a segment of an annulus.

The thickness of the layout (the difference between the outer and inner radius) will be the same as the thickest child, and the total angle taken is the sum of the children's angles.

Example usage:

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.text.BasicText
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.wear.compose.foundation.CurvedAlignment
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.background
import androidx.wear.compose.foundation.curvedColumn
import androidx.wear.compose.foundation.curvedComposable
import androidx.wear.compose.foundation.curvedRow
import androidx.wear.compose.foundation.padding
import androidx.wear.compose.foundation.size
import androidx.wear.compose.material.Text

CurvedLayout(modifier = Modifier.fillMaxSize()) {
    curvedComposable { Box(modifier = Modifier.size(20.dp).background(Color.Red)) }
    curvedColumn(angularAlignment = CurvedAlignment.Angular.End) {
        repeat(3) {
            curvedRow {
                curvedComposable {
                    BasicText(
                        "Row #$it",
                        Modifier.background(Color.White).padding(2.dp),
                        TextStyle(color = Color.Black, fontSize = 14.sp),
                    )
                }
                curvedComposable {
                    Box(modifier = Modifier.size(10.dp).background(Color.Green))
                }
                curvedComposable {
                    BasicText(
                        "More",
                        Modifier.background(Color.Yellow).padding(2.dp),
                        TextStyle(color = Color.Black, fontSize = 14.sp),
                    )
                }
            }
        }
    }
    curvedComposable { Box(modifier = Modifier.size(20.dp).background(Color.Red)) }
}
```

| Parameters |
|---|---|
| `modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier = CurvedModifier` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier` to apply to this curved row. |
| `radialAlignment: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial? = null` | Radial alignment specifies where to lay down children that are thinner than the CurvedRow, either closer to the center `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial#Inner()`, apart from the center `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial#Outer()` or in the middle point `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedAlignment.Radial#Center()`. If unspecified, they can choose for themselves. |
| `angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular? = null` | Specify if the children are laid out clockwise or anti-clockwise, and if those need to be reversed in a Rtl layout. If not specified, it will be inherited from the enclosing `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedRow(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` See `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular`. |
| `contentBuilder: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Scope used to provide the content for this row. |

### CurvedScope.curvedText

Artifact: [androidx.wear.compose:compose-material](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material/CurvedText.kt+function:curvedText)

```
fun CurvedScope.curvedText(
    text: String,
    modifier: CurvedModifier = CurvedModifier,
    background: Color = Color.Unspecified,
    color: Color = Color.Unspecified,
    fontSize: TextUnit = TextUnit.Unspecified,
    fontFamily: FontFamily? = null,
    fontWeight: FontWeight? = null,
    fontStyle: FontStyle? = null,
    fontSynthesis: FontSynthesis? = null,
    style: CurvedTextStyle? = null,
    angularDirection: CurvedDirection.Angular? = null,
    overflow: TextOverflow = TextOverflow.Clip
): Unit
```

CurvedText is a component allowing developers to easily write curved text following the curvature a circle (usually at the edge of a circular screen). CurvedText can be only created within the CurvedLayout to ensure the best experience, like being able to specify to positioning.

The default `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` uses the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#LocalTextStyle()` provided by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/MaterialTheme` / components, converting it to a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle`. Note that not all parameters are used by `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)`.

If you are setting your own style, you may want to consider first retrieving `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#LocalTextStyle()`, and using `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#copy(androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.text.font.FontFamily,kotlin.String,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.style.BaselineShift,androidx.compose.ui.text.style.TextGeometricTransform,androidx.compose.ui.text.intl.LocaleList,androidx.compose.ui.graphics.Color,androidx.compose.ui.text.style.TextDecoration,androidx.compose.ui.graphics.Shadow,androidx.compose.ui.graphics.drawscope.DrawStyle,androidx.compose.ui.text.style.TextAlign,androidx.compose.ui.text.style.TextDirection,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.style.TextIndent,androidx.compose.ui.text.PlatformTextStyle,androidx.compose.ui.text.style.LineHeightStyle,androidx.compose.ui.text.style.LineBreak,androidx.compose.ui.text.style.Hyphens,androidx.compose.ui.text.style.TextMotion)` to keep any theme defined attributes, only modifying the specific attributes you want to override, then convert to `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle`

For ease of use, commonly used parameters from `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` are also present here. The order of precedence is as follows:

- If a parameter is explicitly set here (i.e, it is *not* `null` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit#Unspecified()`), then this parameter will always be used.

- If a parameter is *not* set, (`null` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit#Unspecified()`), then the corresponding value from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` will be used instead.

Additionally, for `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)`, if `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` is not set, and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` does not have a color, then `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#LocalContentColor()` will be used with an alpha of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#LocalContentAlpha()`- this allows this `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` or element containing this `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` to adapt to different background colors and still maintain contrast and accessibility.

For samples explicitly specifying style see:

```kotlin
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.wear.compose.foundation.CurvedAlignment
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedModifier
import androidx.wear.compose.foundation.curvedColumn
import androidx.wear.compose.foundation.curvedRow
import androidx.wear.compose.foundation.padding
import androidx.wear.compose.material.curvedText

CurvedLayout() {
    curvedColumn(angularAlignment = CurvedAlignment.Angular.Center) {
        curvedRow {
            curvedText("Red", color = Color.Red)
            curvedText(
                "White On Green",
                color = Color.White,
                background = Color.Green,
                modifier = CurvedModifier.padding(angular = 5.dp),
            )
            curvedText("Big", fontSize = 24.sp)
            curvedText(
                "Extra Bold",
                fontWeight = FontWeight.ExtraBold,
                modifier = CurvedModifier.padding(angular = 5.dp),
            )
        }
        curvedRow {
            curvedText("Default")
            curvedText(
                "Italic",
                fontStyle = FontStyle.Italic,
                modifier = CurvedModifier.padding(angular = 5.dp),
            )
            curvedText("Monospaced", fontFamily = FontFamily.Monospace)
        }
    }
}
```

For examples using CompositionLocal to specify the style, see:

```kotlin
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedTextStyle
import androidx.wear.compose.material.LocalContentAlpha
import androidx.wear.compose.material.LocalContentColor
import androidx.wear.compose.material.LocalTextStyle
import androidx.wear.compose.material.ProvideTextStyle
import androidx.wear.compose.material.curvedText

CompositionLocalProvider(
    LocalContentColor provides Color.Cyan,
    LocalContentAlpha provides 0.5f,
    LocalTextStyle provides TextStyle(fontFamily = FontFamily.Serif),
) {
    val greenStyle = LocalTextStyle.current.copy(color = Color.Green)
    CurvedLayout {
        curvedText("Serif Cyan 50%")
        curvedText("Green", style = CurvedTextStyle(greenStyle))
    }
}

ProvideTextStyle(
    value =
        TextStyle(color = Color.Green, background = Color.White, fontWeight = FontWeight.Bold)
) {
    CurvedLayout(anchor = 90f) { curvedText("Green On White") }
}
```

For more information, see the [Curved Text](https://developer.android.com/training/wearables/compose/curved-text) guide.

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to display |
| `modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier = CurvedModifier` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier` to apply to this curved text. |
| `background: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color = Color.Unspecified` | The background color for the text. |
| `color: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color = Color.Unspecified` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color` to apply to the text. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color#Unspecified()`, and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` has no color set, this will be `https://developer.android.com/reference/kotlin/androidx/wear/compose/material/package-summary#LocalContentColor()`. |
| `fontSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit = TextUnit.Unspecified` | The size of glyphs to use when painting the text. See `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#fontSize()`. |
| `fontFamily: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontFamily? = null` | The font family to be used when rendering the text. |
| `fontWeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight? = null` | The thickness of the glyphs, in a range of 1, 1000. see `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight` |
| `fontStyle: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontStyle? = null` | The typeface variant to use when drawing the letters (e.g. italic). |
| `fontSynthesis: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontSynthesis? = null` | Whether to synthesize font weight and/or style when the requested weight or style cannot be found in the provided font family. |
| `style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle? = null` | Specifies the style to use. |
| `angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular? = null` | Specify if the text is laid out clockwise or anti-clockwise, and if those needs to be reversed in a Rtl layout. If not specified, it will be inherited from the enclosing `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedRow(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` See `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular`. |
| `overflow: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/style/TextOverflow = TextOverflow.Clip` | How visual overflow should be handled. Note that this takes into account only explicit size curved modifiers in this element, to size this element matching the parent's, add a CurvedModifier.weight here. |

### CurvedScope.curvedText

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/CurvedText.kt+function:curvedText)

```
fun CurvedScope.curvedText(
    text: String,
    modifier: CurvedModifier = CurvedModifier,
    maxSweepAngle: Float = CurvedTextDefaults.ScrollableContentMaxSweepAngle,
    background: Color = Color.Unspecified,
    color: Color = Color.Unspecified,
    fontSize: TextUnit = TextUnit.Unspecified,
    fontFamily: FontFamily? = null,
    fontWeight: FontWeight? = null,
    fontStyle: FontStyle? = null,
    fontSynthesis: FontSynthesis? = null,
    letterSpacing: TextUnit = TextUnit.Unspecified,
    letterSpacingCounterClockwise: TextUnit = TextUnit.Unspecified,
    style: CurvedTextStyle? = null,
    angularDirection: CurvedDirection.Angular? = null,
    overflow: TextOverflow = TextOverflow.Clip
): Unit
```

CurvedText is a component allowing developers to easily write curved text following the curvature of a circle (usually at the edge of a circular screen). CurvedText can be only created within the CurvedLayout to ensure the best experience, like being able to specify positioning.

Note that Wear Material UX guidance recommends that `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` should not exceed the sweep angle `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/CurvedTextDefaults#ScrollableContentMaxSweepAngle()` on screens with scrollable content such as lists. This limit is enforced by default. For screens without scrollable content, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/CurvedTextDefaults#StaticContentMaxSweepAngle()` may be used instead.

The default `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` uses the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#LocalTextStyle()` provided by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/MaterialTheme` / components, converting it to a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle`. Note that not all parameters are used by `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)`.

If you are setting your own style, you may want to consider first retrieving `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#LocalTextStyle()`, and using `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#copy(androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.text.font.FontFamily,kotlin.String,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.style.BaselineShift,androidx.compose.ui.text.style.TextGeometricTransform,androidx.compose.ui.text.intl.LocaleList,androidx.compose.ui.graphics.Color,androidx.compose.ui.text.style.TextDecoration,androidx.compose.ui.graphics.Shadow,androidx.compose.ui.graphics.drawscope.DrawStyle,androidx.compose.ui.text.style.TextAlign,androidx.compose.ui.text.style.TextDirection,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.style.TextIndent,androidx.compose.ui.text.PlatformTextStyle,androidx.compose.ui.text.style.LineHeightStyle,androidx.compose.ui.text.style.LineBreak,androidx.compose.ui.text.style.Hyphens,androidx.compose.ui.text.style.TextMotion)` to keep any theme defined attributes, only modifying the specific attributes you want to override, then convert to `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle`

For ease of use, commonly used parameters from `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` are also present here. The order of precedence is as follows:

- If a parameter is explicitly set here (i.e., it is *not* `null` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit#Unspecified()`), then this parameter will always be used.

- If a parameter is *not* set, (`null` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit#Unspecified()`), then the corresponding value from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` will be used instead.

Additionally, for `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)`, if `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` is not set, and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` does not have a color, then `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#LocalContentColor()` will be used.

For samples using curved text in a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` see:

```kotlin
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.StrokeCap.Companion.Round
import androidx.compose.ui.unit.dp
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedModifier
import androidx.wear.compose.foundation.angularSizeDp
import androidx.wear.compose.foundation.background
import androidx.wear.compose.foundation.curvedBox
import androidx.wear.compose.foundation.curvedRow
import androidx.wear.compose.material3.MaterialTheme
import androidx.wear.compose.material3.curvedText

val backgroundColor = MaterialTheme.colorScheme.onPrimary
val customColor = MaterialTheme.colorScheme.tertiaryDim
CurvedLayout {
    curvedRow(CurvedModifier.background(backgroundColor, Round)) {
        curvedText("Calling", color = customColor)
        curvedBox(CurvedModifier.angularSizeDp(5.dp)) {}
        curvedText("Camilia Garcia")
    }
}
```

![CurvedTextTop Composite
Image](https://developer.android.com/wear/images/design/WearComposeM3_CurvedTextTop_CompositeImage.png)

```kotlin
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Warning
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.StrokeCap.Companion.Round
import androidx.compose.ui.text.style.TextOverflow
import androidx.wear.compose.foundation.CurvedDirection
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedModifier
import androidx.wear.compose.foundation.background
import androidx.wear.compose.foundation.curvedComposable
import androidx.wear.compose.foundation.curvedRow
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.CurvedTextDefaults
import androidx.wear.compose.material3.Icon
import androidx.wear.compose.material3.MaterialTheme
import androidx.wear.compose.material3.curvedText

val backgroundColor = MaterialTheme.colorScheme.onPrimary
CurvedLayout(anchor = 90f, angularDirection = CurvedDirection.Angular.Reversed) {
    curvedRow(CurvedModifier.background(backgroundColor, Round)) {
        curvedComposable {
            Icon(
                Icons.Filled.Warning,
                contentDescription = "Warning",
                modifier = Modifier.size(ButtonDefaults.IconSize),
            )
        }
        curvedText(
            "Network lost",
            maxSweepAngle = CurvedTextDefaults.StaticContentMaxSweepAngle,
            overflow = TextOverflow.Ellipsis,
        )
    }
}
```

![CurvedTextBottom Composite
Image](https://developer.android.com/wear/images/design/WearComposeM3_CurvedTextBottom_CompositeImage.png)

For more information, see the [Curved Text](https://developer.android.com/training/wearables/compose/curved-text) guide.

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to display |
| `modifier: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier = CurvedModifier` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedModifier` to apply to this curved text. |
| `maxSweepAngle: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = CurvedTextDefaults.ScrollableContentMaxSweepAngle` | The default maximum sweep angle in degrees. For screens without scrollable content, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/CurvedTextDefaults#StaticContentMaxSweepAngle()` may be used instead. |
| `background: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color = Color.Unspecified` | The background color for the text. |
| `color: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color = Color.Unspecified` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color` to apply to the text. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color#Unspecified()`, and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` has no color set, this will be `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#LocalContentColor()`. |
| `fontSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit = TextUnit.Unspecified` | The size of glyphs to use when painting the text. See `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#fontSize()`. |
| `fontFamily: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontFamily? = null` | The font family to be used when rendering the text. |
| `fontWeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight? = null` | The thickness of the glyphs, in a range of 1, 1000. see `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight` |
| `fontStyle: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontStyle? = null` | The typeface variant to use when drawing the letters (e.g. italic). |
| `fontSynthesis: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontSynthesis? = null` | Whether to synthesize font weight and/or style when the requested weight or style cannot be found in the provided font family. |
| `letterSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit = TextUnit.Unspecified` | The amount of space (in em or sp) to add between each letter, when text is going clockwise. |
| `letterSpacingCounterClockwise: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit = TextUnit.Unspecified` | The amount of space (in em or sp) to add between each letter, when text is going counterClockwise. Note that this usually needs to be bigger than `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` to account for the fact that going clockwise, text fans out from the baseline while going counter clockwise text fans in. |
| `style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle? = null` | Specifies the style to use. |
| `angularDirection: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular? = null` | Specify if the text is laid out clockwise or anti-clockwise, and if those needs to be reversed in a Rtl layout. If not specified, it will be inherited from the enclosing `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedRow(androidx.wear.compose.foundation.CurvedModifier,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedLayout.composable#CurvedLayout(androidx.compose.ui.Modifier,kotlin.Float,androidx.wear.compose.foundation.AnchorType,androidx.wear.compose.foundation.CurvedAlignment.Radial,androidx.wear.compose.foundation.CurvedDirection.Angular,kotlin.Function1)` See `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedDirection.Angular`. |
| `overflow: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/style/TextOverflow = TextOverflow.Clip` | How visual overflow should be handled. Note that this takes into account only explicit size curved modifiers in this element, to size this element matching the parent's, add a CurvedModifier.weight here. |

### CurvedScope.openOnPhoneDialogCurvedText

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/OpenOnPhoneDialog.kt+function:openOnPhoneDialogCurvedText)

```
fun CurvedScope.openOnPhoneDialogCurvedText(
    text: String,
    style: CurvedTextStyle
): Unit
```

A customized variation of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#(androidx.wear.compose.foundation.CurvedScope).curvedText(kotlin.String,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle,androidx.wear.compose.foundation.CurvedDirection.Angular,androidx.compose.ui.text.style.TextOverflow)` that displays text along a curved path. This variation adopts suitable sweep angle and padding for use in `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/OpenOnPhoneDialog.composable#OpenOnPhoneDialog(kotlin.Boolean,kotlin.Function0,kotlin.Function1,androidx.compose.ui.Modifier,androidx.wear.compose.material3.OpenOnPhoneDialogColors,androidx.compose.ui.window.DialogProperties,kotlin.Long,kotlin.Function0)`.

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to display. |
| `style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` | The style to apply to the text. It is recommended to use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/OpenOnPhoneDialogDefaults#curvedTextStyle()` for curved text in `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/OpenOnPhoneDialog.composable#OpenOnPhoneDialog(kotlin.Boolean,kotlin.Function0,kotlin.Function1,androidx.compose.ui.Modifier,androidx.wear.compose.material3.OpenOnPhoneDialogColors,androidx.compose.ui.window.DialogProperties,kotlin.Long,kotlin.Function0)`. |

### CurvedScope.timeTextCurvedText

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/TimeText.kt+function:timeTextCurvedText)

```
fun CurvedScope.timeTextCurvedText(time: String, style: CurvedTextStyle? = null): Unit
```

Default curved text to use in a `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`, for displaying the time

| Parameters |
|---|---|
| `time: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The time to display. |
| `style: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle? = null` | A `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` to override the style used. |

### CurvedScope.timeTextSeparator

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/TimeText.kt+function:timeTextSeparator)

```
fun CurvedScope.timeTextSeparator(
    curvedTextStyle: CurvedTextStyle? = null,
    contentArcPadding: ArcPaddingValues = ArcPaddingValues(angular = 4.dp)
): Unit
```

A default implementation of Separator, to be shown between any text/composable and the time.

| Parameters |
|---|---|
| `curvedTextStyle: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle? = null` | A `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` for the separator. |
| `contentArcPadding: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ArcPaddingValues = ArcPaddingValues(angular = 4.dp)` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ArcPaddingValues` for the separator text. |