Skip to content

Text

Text component is a basic text component in Miuix, used to display text content. It supports customizing various text styles, alignment, and decoration effects.

Import

kotlin
import top.yukonga.miuix.kmp.basic.Text

Basic Usage

The simplest text display:

kotlin
Text("This is a basic text")

Text Styles

Miuix provides multiple predefined text styles:

kotlin
Text(
    text = "Title Text",
    style = MiuixTheme.textStyles.headline1
)

Text(
    text = "Subtitle Text",
    style = MiuixTheme.textStyles.subtitle
)
Text(
    text = "Summary Text",
    style = MiuixTheme.textStyles.body2
)

Text(
    text = "Main Text",
    style = MiuixTheme.textStyles.main
)

Text Color

kotlin
Text(
    text = "Default Color Text",
    color = MiuixTheme.colorScheme.onBackground
)

Text(
    text = "Primary Color Text",
    color = MiuixTheme.colorScheme.primary
)

Text(
    text = "Secondary Text",
    color = MiuixTheme.colorScheme.onSurfaceVariant
)

Properties

Property NameTypeDescriptionDefault ValueRequired
textString / AnnotatedStringThe text content to display-Yes
modifierModifierModifiers applied to the textModifierNo
colorColorText colorMiuixTheme.colorScheme.onBackgroundNo
fontSizeTextUnitText sizeTextUnit.UnspecifiedNo
fontStyleFontStyle?Text font style (e.g., italic)nullNo
fontWeightFontWeight?Text font weightnullNo
fontFamilyFontFamily?Text font familynullNo
letterSpacingTextUnitLetter spacingTextUnit.UnspecifiedNo
textDecorationTextDecoration?Text decoration (e.g., underline)nullNo
textAlignTextAlign?Text alignmentnullNo
lineHeightTextUnitLine heightTextUnit.UnspecifiedNo
overflowTextOverflowText overflow handlingTextOverflow.ClipNo
softWrapBooleanWhether to wrap text automaticallytrueNo
maxLinesIntMaximum number of linesInt.MAX_VALUENo
minLinesIntMinimum number of lines1No
onTextLayout(TextLayoutResult) -> UnitCallback after text layout is completednullNo
styleTextStyleText styleMiuixTheme.textStyles.mainNo
inlineContentMap<String, InlineTextContent>Mapping for inserting inline composable itemsmapOf()No

Advanced Usage

Multi-line Text Truncation

kotlin
Text(
    text = "This is a very long text that will be truncated and show ellipsis when there is not enough space. This is useful for displaying long content summaries.",
    maxLines = 2,
    overflow = TextOverflow.Ellipsis
)

Text Decoration

kotlin
Text(
    text = "Underlined Text",
    textDecoration = TextDecoration.Underline
)

Text(
    text = "Strikethrough Text",
    textDecoration = TextDecoration.LineThrough
)

Rich Text Mixing

kotlin
Text(
    buildAnnotatedString {
        withStyle(style = SpanStyle(color = MiuixTheme.colorScheme.primary)) {
            append("Miuix ")
        }
        withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
            append("UI Library")
        }
        append(", this is a piece of rich text")
    }
)

Released under the Apache-2.0 License