Skip to content

← All components

Brand and content

MediaGrid

Responsive one- or two-column list for image, video, and audio media.

Live example

  • Abstract blue geometric landscape
  • Abstract blue geometric landscape at night

Usage

Each example includes the complete adapter-specific parameter reference. Copy it as a starting point, then remove options your use case does not need.

React

tsx
import { MediaGrid } from "@cofob/design-system-react";

/**
 * Complete MediaGrid parameter reference.
 * @param as
 *   type: element name (adapter-specific union)
 *   default: "ul"
 *   example: "article"
 * @param children
 *   type: ReactNode | Svelte Snippet | child HTML
 *   default: —
 *   example: children / snippet / child HTML
 * @param container attributes
 *   type: native element attributes
 *   default: —
 *   example: class / style / aria-* / data-*
 */
export function MediaGridExample() {
  return (
    <MediaGrid>{mediaItems}</MediaGrid>
  );
}

Svelte

svelte
<script lang="ts">
  import { MediaGrid } from "@cofob/design-system-svelte";

  // Complete MediaGrid parameter reference.
  // as
  //   type: element name (adapter-specific union)
  //   default: "ul"
  //   example: "article"
  // children
  //   type: ReactNode | Svelte Snippet | child HTML
  //   default: —
  //   example: children / snippet / child HTML
  // container attributes
  //   type: native element attributes
  //   default: —
  //   example: class / style / aria-* / data-*
</script>

<MediaGrid>{mediaItems}</MediaGrid>

HTML

html
<!--
  Complete MediaGrid parameter reference.
  as
    type: element name (adapter-specific union)
    default: "ul"
    example: "article"
  children
    type: ReactNode | Svelte Snippet | child HTML
    default: —
    example: children / snippet / child HTML
  container attributes
    type: native element attributes
    default: —
    example: class / style / aria-* / data-*
-->
<ul class="cf-media-grid"><li><img src="image.jpg" alt="Description" /></li></ul>

Parameters

Adapter differences are explicit. Native element attributes are forwarded in React and Svelte and can be written directly in HTML.

ParameterTypeDefaultAdaptersExampleDescription
aselement name (adapter-specific union)"ul"React · Svelte · HTML"article"Chooses the rendered semantic element.
childrenReactNode | Svelte Snippet | child HTMLReact · Svelte · HTMLchildren / snippet / child HTMLIdiomatic adapter composition content.
container attributesnative element attributesReact · Svelte · HTMLclass / style / aria-* / data-*Forwards native class/style, accessibility, event, and data attributes to the root element.