Skip to content

Card ​

一个中性的内容表面,包含顶部媒体槽位(省略时显示占位符)、eyebrow/title/description 文本块、自由形式的主体内容以及可选的页脚。设置 interactive 或传入 onClick 可得到一个可点击、带抬升效果的卡片。用它把相关内容组合成一个可点按的单元。

Import ​

kotlin
import io.github.heartcoolman.prism.ui.PrismCard

Basic usage ​

使用文本块参数即可实现常见的 eyebrow / title / description 布局。

kotlin
PrismCard(
    eyebrow = "DESIGN SYSTEM",
    title = "Prism Card",
    description = "Eyebrow + title + description slots.",
)

Clickable card ​

传入 onClick(或设置 interactive = true)可得到一个带抬升效果、可点按的卡片。你也可以在 content 内部组合这些文本块辅助函数。

kotlin
PrismCard(onClick = {}) {
    PrismCardEyebrow("DESIGN SYSTEM")
    PrismCardTitle("Prism Card")
    PrismCardDescription("Eyebrow + title + description slots.")
}

提供一个 media 槽位(以 16:9 渲染)和一个用于放置操作的 footer。

kotlin
PrismCard(
    media = { PrismImage() },
    title = "With media",
    description = "Top media slot plus a footer row.",
    footer = { PrismButton(onClick = {}) { Text("Open") } },
)

API ​

参数类型默认值说明
modifierModifierModifier应用于卡片表面的 Modifier。
media(@Composable () -> Unit)?null顶部媒体槽位(16:9)。省略时显示带色调的占位符。
eyebrowString?null标题上方的小号 overline 文本。
titleString?null醒目的卡片标题。
descriptionString?null一到两行的辅助描述。
footer(@Composable () -> Unit)?null用于放置操作或链接的页脚槽位。
interactiveBooleanfalse为可点击卡片添加悬停抬升(elevation)效果。
onClick(() -> Unit)?null使整张卡片可点击并带抬升效果。
content@Composable ColumnScope.() -> Unit{}渲染在文本块与页脚之间的自由形式主体内容。

Text-block helpers ​

用于在 content 内手动构建卡片主体的独立 composable。

kotlin
@Composable fun PrismCardEyebrow(text: String)
@Composable fun PrismCardTitle(text: String)
@Composable fun PrismCardDescription(text: String)

基于 MIT 许可发布。