# Built-in cards

> Canonical HTML: https://screenrig.ai/docs/cards/

Add live components to a playlist: menus, clocks, queues, scores, weather and gauges. Choose a card, set its properties and publish.

A card is a built-in component on a playlist canvas. It fills its rectangle with a clock, menu, queue or other live detail, and can sit over images or video.

## Views

| View | Use it for |
| --- | --- |
| canvas | The full design, filling its canvas rectangle. |
| corner | A compact plate over other content, anchored to a corner. |
| chip | A single line over other content, anchored to a corner. |

Choose `params.view` and `params.corner`: `top-left`, `top-right`, `bottom-left` or `bottom-right`. Canvas forms follow the rectangle: strip, landscape, square, portrait or tower. Each card lists the forms and views it supports.

## Themes

Choose `params.theme`: `neomustard` (NeoMustard), `aurora` (Aurora), `folio` (Folio), `signal` (Signal), `manifesto` (Manifesto), `bloom` (Bloom), `clear-dark` (Clear Dark), `clear-light` (Clear Light). The gallery selects the published default theme. Set `background` to `none` for a transparent canvas backdrop. Corner and chip views use their theme’s compact plate.

<!-- common-properties:begin -->
## Common properties

These properties control the theme and position of every card. Set them in `params`.

| Name | Type | Default | Values and limits | Description |
| --- | --- | --- | --- | --- |
| `theme` | string | `"neomustard"` | `"neomustard"`, `"aurora"`, `"folio"`, `"signal"`, `"manifesto"`, `"bloom"`, `"clear-dark"`, `"clear-light"` |  |
| `background` | string | `"theme"` | `"theme"`, `"none"` | none paints no backdrop, for layering over video. |
| `accent` | string, null | `null` | pattern: `"^#[0-9A-Fa-f]{6}$"` | Overrides the theme accent. |
| `view` | string | `"canvas"` | `"canvas"`, `"corner"`, `"chip"` | canvas fills the rect with the full design; corner is a compact plate and chip a one-line pill, both overlaying content and hugging `corner`. |
| `corner` | string | `"top-right"` | `"top-left"`, `"top-right"`, `"bottom-left"`, `"bottom-right"` | Which corner of the rect a corner or chip view hugs. |
<!-- common-properties:end -->
## Static and dynamic properties

Static properties live in the playlist’s `params`: theme, view, corner, location, titles and layout. Change them by publishing the playlist again. Dynamic properties are the values marked `dynamic: true` in the card contract, such as menu sections, queue entries or gauge readings.

Bind the item’s `data` to a key in the project’s card data store. Players apply defaults, then static params, then the document’s dynamic properties. The live document cannot change styling. With a data key, keep dynamic properties out of `params`; without one, put the whole configuration in `params`. A card bound to a missing document stays hidden until the document is written.

## Feeds

Feeds are third-party data fetched and cached by the backend and passed to the card by the Player. For weather, set `location` with a name, latitude and longitude. The backend derives the feed key from these static properties; do not send a `feed` field in the canvas item. Feed documents carry source attribution and fetch timestamps. Each card reference names its feed schema and source attribution.

## Publish a card canvas

Follow [Start](/docs/start/) to install the official plugin, select your project and pair a Player. Use the API to publish a card canvas and set its properties. Save the following as `playlist.json`; its gauge reads live data from `gauge-main`.

```json
{
  "name": "Live gauge",
  "pages": [
    {
      "id": "main",
      "canvas": {
        "width": 1920,
        "height": 1080,
        "background": "#000000FF",
        "viewport_fit": "contain"
      },
      "transition": {
        "type": "cut"
      },
      "advance": {
        "mode": "duration",
        "after_ms": 15000
      },
      "primitives": [
        {
          "id": "gauge",
          "primitive": "card",
          "card": "gauge",
          "major": 1,
          "params": {
            "theme": "neomustard"
          },
          "data": "gauge-main",
          "rect": {
            "x": 0,
            "y": 0,
            "width": 1920,
            "height": 1080
          },
          "layer": 0,
          "content_fit": "fill"
        }
      ]
    }
  ]
}
```

Use [API authentication](/docs/authentication/) for an authorized identity or project bearer. `ScreenRig-Project` selects the project for an identity bearer and must match a project bearer’s bound project. The environment variables below stand for your authorization and project; keep their values outside playlist files.

```console
curl --request POST "https://api.screenrig.ai/api/playlists" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "ScreenRig-Project: $SCREENRIG_PROJECT" \
  --header "Content-Type: application/json" \
  --data @playlist.json
```

The response identifies the playlist with a `pl_` id. A `pending_review` response waits for the project’s review before going live. To change static properties, send the edited `{name, pages}` document with `PUT /api/playlists/{id}`. A card’s `major` pins its contract; omitting it selects the current major when the playlist is stored.

## Write live values

Use `PUT /api/card-data/{key}` with a `{document}` body. Writes replace the whole document. The document contains only dynamic properties accepted by every card bound to that key. Keys are 1–256 characters from letters, digits, `.`, `_`, `:`, `/` and `-`, start with a letter or digit, and cannot start with `feed:`. Documents are JSON objects of at most 1 MiB.

```console
curl --request PUT "https://api.screenrig.ai/api/card-data/gauge-main" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "ScreenRig-Project: $SCREENRIG_PROJECT" \
  --header "Content-Type: application/json" \
  --data '{"document":{"metrics":[{"label":"Capacity","value":72,"unit":"%"}]}}'
```

Screens showing the card refetch the document and update it in place. Read a document with `GET /api/card-data/{key}`; its revision ETag can be sent as `If-Match` on the next write. Add `Idempotency-Key` for a safely repeatable write. List keys with `GET /api/card-data` and its `after` cursor; delete a document with `DELETE /api/card-data/{key}` and its `If-Match` revision.

Images in card properties use `media:<mediaId>`, referencing a ready image in the same project. A live data write requires those images to be approved. Never put an image URL in a card property.

## Assign and verify with the CLI

Use the official plugin’s bundled CLI with the same project. Take the playlist id from the API response and the screen id from `screen list`, then assign and inspect the result:

```console
screenrig screen list
screenrig screen assign scr_EXAMPLE --playlist-id pl_EXAMPLE
screenrig screen screenshot scr_EXAMPLE
```

Assignment records the desired playlist. Inspect Player evidence before reporting that it plays. [CLI reference](/docs/cli/) · [API reference](/docs/api/#group-card-data).

## Card reference

<!-- cards:begin -->
- [Activity feed](https://screenrig.ai/docs/cards/activity-feed/)
- [Activity timer](https://screenrig.ai/docs/cards/activity-timer/)
- [Air quality](https://screenrig.ai/docs/cards/air-quality/)
- [Andon board](https://screenrig.ai/docs/cards/andon/)
- [Announcement](https://screenrig.ai/docs/cards/announcement/)
- [Athletics board](https://screenrig.ai/docs/cards/athletics-board/)
- [Attendance](https://screenrig.ai/docs/cards/attendance/)
- [Auction board](https://screenrig.ai/docs/cards/auction-board/)
- [Availability board](https://screenrig.ai/docs/cards/availability/)
- [Baseball board](https://screenrig.ai/docs/cards/baseball-board/)
- [Basketball board](https://screenrig.ai/docs/cards/basketball-board/)
- [Bell schedule](https://screenrig.ai/docs/cards/bell-schedule/)
- [Bike share](https://screenrig.ai/docs/cards/bike-share/)
- [Bingo board](https://screenrig.ai/docs/cards/bingo-board/)
- [Blood supply](https://screenrig.ai/docs/cards/blood-supply/)
- [Bowling board](https://screenrig.ai/docs/cards/bowling-board/)
- [Bracket](https://screenrig.ai/docs/cards/bracket/)
- [Build board](https://screenrig.ai/docs/cards/build-board/)
- [Celebrations](https://screenrig.ai/docs/cards/celebrations/)
- [Chart](https://screenrig.ai/docs/cards/chart/)
- [Class challenge](https://screenrig.ai/docs/cards/class-challenge/)
- [Clock](https://screenrig.ai/docs/cards/clock/)
- [Combo meals](https://screenrig.ai/docs/cards/combo-meals/)
- [Computer labs](https://screenrig.ai/docs/cards/computer-labs/)
- [Conditions report](https://screenrig.ai/docs/cards/conditions/)
- [Conference schedule](https://screenrig.ai/docs/cards/conference/)
- [Countdown](https://screenrig.ai/docs/cards/countdown/)
- [Course timetable](https://screenrig.ai/docs/cards/course-timetable/)
- [Court docket](https://screenrig.ai/docs/cards/court-docket/)
- [Cricket board](https://screenrig.ai/docs/cards/cricket-board/)
- [Crypto](https://screenrig.ai/docs/cards/crypto/)
- [Cue board](https://screenrig.ai/docs/cards/cue-board/)
- [Curling board](https://screenrig.ai/docs/cards/curling-board/)
- [Currency exchange](https://screenrig.ai/docs/cards/currency/)
- [Darts board](https://screenrig.ai/docs/cards/darts-board/)
- [Data table](https://screenrig.ai/docs/cards/table/)
- [Daylight](https://screenrig.ai/docs/cards/daylight/)
- [Departures](https://screenrig.ai/docs/cards/departures/)
- [Dining halls](https://screenrig.ai/docs/cards/dining-halls/)
- [Directory](https://screenrig.ai/docs/cards/directory/)
- [Dismissal](https://screenrig.ai/docs/cards/dismissal/)
- [Donor wall](https://screenrig.ai/docs/cards/donor-wall/)
- [Drug alerts](https://screenrig.ai/docs/cards/drug-alerts/)
- [Earthquakes](https://screenrig.ai/docs/cards/earthquakes/)
- [ED board](https://screenrig.ai/docs/cards/ed-board/)
- [Election results](https://screenrig.ai/docs/cards/election-results/)
- [Emergency message](https://screenrig.ai/docs/cards/emergency/)
- [Energy](https://screenrig.ai/docs/cards/energy/)
- [Esports board](https://screenrig.ai/docs/cards/esports-board/)
- [Events](https://screenrig.ai/docs/cards/events/)
- [Exam board](https://screenrig.ai/docs/cards/exam-board/)
- [Fantasy board](https://screenrig.ai/docs/cards/fantasy-board/)
- [Fight board](https://screenrig.ai/docs/cards/fight-board/)
- [Flap board](https://screenrig.ai/docs/cards/flap-board/)
- [Flights](https://screenrig.ai/docs/cards/flights/)
- [Follow us](https://screenrig.ai/docs/cards/follow-us/)
- [Fulfillment board](https://screenrig.ai/docs/cards/fulfillment-board/)
- [Gauge](https://screenrig.ai/docs/cards/gauge/)
- [Golf board](https://screenrig.ai/docs/cards/golf-board/)
- [Greeting](https://screenrig.ai/docs/cards/greeting/)
- [Gridiron board](https://screenrig.ai/docs/cards/gridiron-board/)
- [Happy hour](https://screenrig.ai/docs/cards/happy-hour/)
- [Heart-rate wall](https://screenrig.ai/docs/cards/heart-rate-wall/)
- [Hockey board](https://screenrig.ai/docs/cards/hockey-board/)
- [House points](https://screenrig.ai/docs/cards/house-points/)
- [Huddle board](https://screenrig.ai/docs/cards/huddle-board/)
- [Interval timer](https://screenrig.ai/docs/cards/timer/)
- [Jackpot board](https://screenrig.ai/docs/cards/jackpot-board/)
- [Kitchen display](https://screenrig.ai/docs/cards/kitchen-display/)
- [Kudos](https://screenrig.ai/docs/cards/kudos/)
- [Launch tracker](https://screenrig.ai/docs/cards/launch-tracker/)
- [Laundry room](https://screenrig.ai/docs/cards/laundry-room/)
- [Leaderboard](https://screenrig.ai/docs/cards/leaderboard/)
- [Live poll](https://screenrig.ai/docs/cards/live-poll/)
- [Live visitors](https://screenrig.ai/docs/cards/live-visitors/)
- [Meeting room](https://screenrig.ai/docs/cards/room/)
- [Menu board](https://screenrig.ai/docs/cards/menu/)
- [Message wall](https://screenrig.ai/docs/cards/message-wall/)
- [Month calendar](https://screenrig.ai/docs/cards/month/)
- [Moon](https://screenrig.ai/docs/cards/moon/)
- [Nearby](https://screenrig.ai/docs/cards/nearby/)
- [Network status](https://screenrig.ai/docs/cards/network-status/)
- [News](https://screenrig.ai/docs/cards/news/)
- [Next appointment](https://screenrig.ai/docs/cards/next-appointment/)
- [Noise meter](https://screenrig.ai/docs/cards/noise-meter/)
- [Now hiring](https://screenrig.ai/docs/cards/now-hiring/)
- [Now playing](https://screenrig.ai/docs/cards/now-playing/)
- [Now serving](https://screenrig.ai/docs/cards/queue/)
- [Number tiles](https://screenrig.ai/docs/cards/kpi/)
- [Occupancy](https://screenrig.ai/docs/cards/occupancy/)
- [Offer](https://screenrig.ai/docs/cards/offer/)
- [Office hours](https://screenrig.ai/docs/cards/office-hours/)
- [Opening hours](https://screenrig.ai/docs/cards/opening-hours/)
- [Order confirmation](https://screenrig.ai/docs/cards/order-confirmation/)
- [Order status](https://screenrig.ai/docs/cards/order-status/)
- [Outdoor safety](https://screenrig.ai/docs/cards/outdoor-safety/)
- [Pharmacy pickup](https://screenrig.ai/docs/cards/pharmacy-pickup/)
- [Planes overhead](https://screenrig.ai/docs/cards/planes-overhead/)
- [Practitioners today](https://screenrig.ai/docs/cards/practitioners-today/)
- [Prayer times](https://screenrig.ai/docs/cards/prayer-times/)
- [Price matrix](https://screenrig.ai/docs/cards/price-matrix/)
- [Prize draw](https://screenrig.ai/docs/cards/raffle-draw/)
- [Product grid](https://screenrig.ai/docs/cards/product-grid/)
- [Production tracker](https://screenrig.ai/docs/cards/production-tracker/)
- [Progress](https://screenrig.ai/docs/cards/progress/)
- [Promo](https://screenrig.ai/docs/cards/promo/)
- [Property listings](https://screenrig.ai/docs/cards/property-listings/)
- [Public alerts](https://screenrig.ai/docs/cards/alerts/)
- [QR code](https://screenrig.ai/docs/cards/qr-code/)
- [Quiz board](https://screenrig.ai/docs/cards/quiz-board/)
- [Quote](https://screenrig.ai/docs/cards/quote/)
- [Race tracker](https://screenrig.ai/docs/cards/race-tracker/)
- [Racing board](https://screenrig.ai/docs/cards/racing-board/)
- [Rate board](https://screenrig.ai/docs/cards/rate-board/)
- [Recess call](https://screenrig.ai/docs/cards/recess-call/)
- [Recipe](https://screenrig.ai/docs/cards/recipe/)
- [Respiratory activity](https://screenrig.ai/docs/cards/respiratory-activity/)
- [Reviews](https://screenrig.ai/docs/cards/reviews/)
- [Room board](https://screenrig.ai/docs/cards/room-board/)
- [Safety counter](https://screenrig.ai/docs/cards/safety-counter/)
- [Sales pulse](https://screenrig.ai/docs/cards/sales-pulse/)
- [School buses](https://screenrig.ai/docs/cards/school-buses/)
- [School lunch](https://screenrig.ai/docs/cards/school-lunch/)
- [Scores](https://screenrig.ai/docs/cards/scores/)
- [Sensor readout](https://screenrig.ai/docs/cards/sensors/)
- [Shooting match](https://screenrig.ai/docs/cards/shooting-match/)
- [Showtimes](https://screenrig.ai/docs/cards/showtimes/)
- [Soccer board](https://screenrig.ai/docs/cards/soccer-board/)
- [Social wall](https://screenrig.ai/docs/cards/social-wall/)
- [Staff spotlight](https://screenrig.ai/docs/cards/spotlight/)
- [Standings](https://screenrig.ai/docs/cards/standings/)
- [Status page](https://screenrig.ai/docs/cards/status-page/)
- [Stocks](https://screenrig.ai/docs/cards/stocks/)
- [Study rooms](https://screenrig.ai/docs/cards/study-rooms/)
- [Surgery status](https://screenrig.ai/docs/cards/surgery-status/)
- [Swimming board](https://screenrig.ai/docs/cards/swimming-board/)
- [Task board](https://screenrig.ai/docs/cards/task-board/)
- [Tennis board](https://screenrig.ai/docs/cards/tennis-board/)
- [Ticker](https://screenrig.ai/docs/cards/ticker/)
- [Tides](https://screenrig.ai/docs/cards/tides/)
- [Timeline](https://screenrig.ai/docs/cards/timeline/)
- [Timing tower](https://screenrig.ai/docs/cards/timing-tower/)
- [Today](https://screenrig.ai/docs/cards/today/)
- [Travel times](https://screenrig.ai/docs/cards/travel-times/)
- [Trivia](https://screenrig.ai/docs/cards/trivia/)
- [UV index](https://screenrig.ai/docs/cards/uv-index/)
- [Vaccines today](https://screenrig.ai/docs/cards/vaccines-today/)
- [Vessel traffic](https://screenrig.ai/docs/cards/vessel-traffic/)
- [Visiting status](https://screenrig.ai/docs/cards/visiting-status/)
- [Visual schedule](https://screenrig.ai/docs/cards/visual-schedule/)
- [Volleyball board](https://screenrig.ai/docs/cards/volleyball-board/)
- [Wait times](https://screenrig.ai/docs/cards/wait-times/)
- [Wallboard](https://screenrig.ai/docs/cards/wallboard/)
- [Wayfinding](https://screenrig.ai/docs/cards/wayfinding/)
- [Weather](https://screenrig.ai/docs/cards/weather/)
- [Week schedule](https://screenrig.ai/docs/cards/week-schedule/)
- [Welcome board](https://screenrig.ai/docs/cards/welcome/)
- [Who's on](https://screenrig.ai/docs/cards/whos-on/)
- [Wi-Fi](https://screenrig.ai/docs/cards/wifi/)
- [Win alert](https://screenrig.ai/docs/cards/win-alert/)
- [Word of the day](https://screenrig.ai/docs/cards/word-of-the-day/)
- [Workout board](https://screenrig.ai/docs/cards/workout-board/)
- [Workplace posts](https://screenrig.ai/docs/cards/workplace-posts/)
- [World clock](https://screenrig.ai/docs/cards/world-clock/)
<!-- cards:end -->
