跳到正文
册页

网站

Media - 影像集合

照片集合、灯箱、图片详情与地图控件。

用法

什么时候用它

组合图片浏览和地图展示界面,图片与地图生命周期由应用管理。

来自@misoto22/folio/website

TSX
import { MediaMasthead } from '@misoto22/folio/website'

说明

图片集合的简洁开场,位于控件和作品之前。

实践建议

推荐

  • 提供本地化标签、含义明确的链接和有用的图片替代文本。

避免

  • 不要在展示组件中放入服务凭据、路由逻辑或后端模型。

示例

照片集合

图库接收链接和图片插槽,同时保留每张作品的方向。示意图代替应用提供的照片,并保留描述清楚的替代文本。

照片详情

媒体详情保留应用提供的返回链接,并在浏览器子像素取整后仍维持可测得的触控尺寸。

组成部分

在调用处组合,而不是通过 props 配置——所以这个组件没有预料到的布局,依然表达得出来。

PhotographFeature

将照片与编辑式介绍组合展示,保留原图比例。

PhotographFeature props
属性类型默认值说明
image必填ReactNode
title必填ReactNode
actionReactNode
captionReactNode
descriptionReactNode
eyebrowReactNode

同时接受 Omit<HTMLAttributes<HTMLElement>, 'title'> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaCollection

页面级图库组合;应用负责筛选和内容集合。

MediaCollection props
属性类型默认值说明
masthead必填ReactNode
collectionIdstring
controlsReactNode
footerReactNode

同时接受 HTMLAttributes<HTMLDivElement> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaGallery

用齐平的展示框对齐不同比例的图片,同时保留作品完整画面。

MediaGallery props
属性类型默认值说明
childrenReactNode
emptyActionReactNode
emptyTitleReactNode集合可能没有内容时,提供本地化的空状态文字。

同时接受 HTMLAttributes<HTMLUListElement> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaGalleryItem

MediaGalleryItem props
属性类型默认值说明
children必填ReactElement包含图片的应用链接。组件包负责作品的展示布局。
title必填ReactNode
indexReactNode
locationReactNode
orientation'portrait' | 'landscape' | 'square'

同时接受 Omit<HTMLAttributes<HTMLLIElement>, 'title'> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaGallerySkeleton

MediaGallerySkeleton props
属性类型默认值说明
label必填string
countnumber6

MediaDetailLayout

竖图与说明并排展示,横图以通栏画面开场。

MediaDetailLayout props
属性类型默认值说明
backLink必填ReactElement
media必填ReactNode
notesLabel必填string
orientation必填'portrait' | 'landscape' | 'square'
title必填ReactNode
titleId必填string
actionsReactNode
categoryReactNode
headingLevel1 | 2 | 3 | 4 | 5 | 61当页面组合嵌入另一份文档时,指定标题层级。
indexReactNode
lightReactNode
locationReactNode
metadataReactNode
pagerReactNode
relatedReactNode

同时接受 Omit<HTMLAttributes<HTMLElement>, 'title'> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaMetadata

MediaMetadata props
属性类型默认值说明
items必填DescriptionListItem[]

同时接受 HTMLAttributes<HTMLDListElement> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaPager

MediaPager props
属性类型默认值说明
label必填string
nextReactNode
previousReactNode

同时接受 HTMLAttributes<HTMLElement> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaPagerItem

MediaPagerItem props
属性类型默认值说明
direction必填'previous' | 'next'
label必填ReactNode
link必填ReactElement
title必填ReactNode
imageReactNode

MediaThumbnailStrip

MediaThumbnailStrip props
属性类型默认值说明
heading必填ReactNode

同时接受 HTMLAttributes<HTMLElement> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaThumbnail

MediaThumbnail props
属性类型默认值说明
children必填ReactElement

MediaLightNote

应用提供观察内容和格式化标签;此组件仅负责展示。

MediaLightNote props
属性类型默认值说明
label必填ReactNode
lines必填MediaLightNoteLine[]

MediaMapSection

MediaMapSection props
属性类型默认值说明
map必填ReactNode
preview必填ReactNode
title必填ReactNode
aliasIdstring可选的旧版锚点,由应用定义和命名。
hintReactNode

同时接受 Omit<HTMLAttributes<HTMLElement>, 'title'> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaMapFrame

MediaMapFrame props
属性类型默认值说明
compactbooleanfalse
hintReactNode
labelReactNode
navigationReactNode

同时接受 HTMLAttributes<HTMLDivElement> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaMapNavigation

MediaMapNavigation props
属性类型默认值说明
onZoomIn必填() => void
onZoomOut必填() => void
zoomInLabel必填string
zoomOutLabel必填string

MediaMapCanvas

具有明确尺寸的地图容器。地图创建、主题和地理计算保留在应用中。

同时接受 ComponentPropsWithRef<'div'> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaMapPreview

MediaMapPreview props
属性类型默认值说明
title必填ReactNode
actionReactNode
childrenReactNode
coordinatesReactNode
imageReactNode
placeReactNode

MediaMapAreaList

MediaMapAreaList props
属性类型默认值说明
items必填MediaMapArea[]
onValueChange必填(value: string) => void
valuestring

MediaMapMarker

适用于应用地图门户的 44px 标记,支持键盘操作。

MediaMapMarker props
属性类型默认值说明
label必填string
activebooleanfalse

同时接受 Omit<Extract<ButtonProps, { href?: undefined }>, 'children' | 'iconOnly'> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。

MediaMapPin

MediaMapPin props
属性类型默认值说明
activebooleanfalse

MediaMapSkeleton

这个组件没有自己的属性。

MediaLightbox

图片及其受控全屏弹窗,打开时焦点限制在弹窗内。

MediaLightbox props
属性类型默认值说明
aspectRatio必填number原始宽度除以高度;尺寸无效时使用安全的回退值。
closeLabel必填string
media必填ReactNode
onOpenChange必填(open: boolean) => void
open必填boolean
title必填string
triggerLabel必填string
expandedMediaReactNodemedia