Cartão de linha do tempo

Marcos datados em uma linha: um roteiro com um marcador Hoje e o próximo marco destacado, um histórico por ano ou fases do projeto escaladas pelo progresso.

Marcos fornecidos aparecem como um roteiro, histórico datado ou fases de projeto desenhadas em escala. Poucos marcos definem tipo maior e muitos o apertam, o próximo marco é destacado com Hoje marcado ao lado, e uma página de vários marcos ajusta suas palavras à página. Primetime adiciona uma contagem crescente, uma linha que se desenha e entradas escalonadas de marcos, acentos ciano na linha do tempo, um fundo lento de tripé de topógrafo e sinais silenciosos de meia-noite local em limites datados. Precisão de data existente, bandeiras de conclusão fornecidas, progresso de fase e regras de paginação permanecem inalterados.

Cartão ao vivo

Este cartão é desenhado no seu navegador pelo mesmo código que os Players executam, com dados de exemplo.

Categoria: Eventos. Etiquetas: Programações, Contagens regressivas e temporizadores, Escritórios e locais de trabalho, Saguões e recepção.

Layouts

Este cartão em tela cheia preenche toda a tela em paisagem ou retrato e não é colocado como canto, chip ou faixa.

Layouts: cheio. Formas: paisagem, retrato.

Layouts, temas e publicação de cartões. Veja os cartões.

Dados e privacidade

Este cartão usa suas propriedades configuradas e dados ao vivo do cartão.

Propriedades

Para tema, fundo, destaque e posição, veja Propriedades comuns.

Defina as propriedades estáticas nos params do cartão ao criá-lo. O documento de dados dele contém apenas propriedades dinâmicas. Linhas aninhadas descrevem o conteúdo da propriedade pai.

Propriedades estáticas

NomeTipoPadrãoValores e limitesDescrição
titlestring""maxLength: 40Um título.
modestring"roadmap""roadmap", "history", "phases"roadmap: feito, hoje e próximo. history: os anos, grandes. phases: barras na escala de progresso do projeto.
showNowbooleantrueUm marcador Hoje em um roteiro.
pageSecondsinteger12mínimo: 4; máximo: 60Quanto tempo cada página de marcos mostra quando há mais do que cabe.
timeZonestring, nulonull
backgroundColorstring, nulonullpadrão: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Substitui o fundo e a placa do cartão por uma cor plana ordenada por CSS. #RRGGBBAA fornece opacidade. background none tem precedência.
textColorstring, nulonullpadrão: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Substitui as cores do texto principal e secundário. As cores de destaque e status semântico mantêm seus papéis.

Propriedades dinâmicas

NomeTipoPadrãoValores e limitesDescrição
itemsarray[{"date":"2026-03-02","title":"Kickoff","detail":"Team, scope and budget agreed."},{"date":"2026-05-18","title":"Design complete","detail":"Screens signed off by operations."},{"date":"2026-07-27","title":"Alpha","detail":"Internal pilot on two floors."},{"date":"2026-09-14","title":"Pilot opens","detail":"Three sites go live."},{"date":"2026-11-06","title":"Beta launch","detail":"Every site, with the new dashboard."},{"date":"2027-01-18","title":"General availability","detail":"Open to all customers."},{"date":"2027-03-29","title":"Integrations","detail":"Calendar and payroll connect."},{"date":"2027-06-14","title":"Version 2","detail":"Mobile and an open API."}]minItems: 0; maxItems: 24Marcos (ou, no modo fases, fases com fim). Uma data é AAAA, YYYY-MM ou YYYY-MM-DD.
items[].datestringmaxLength: 10; Obrigatório
items[].endstring, nulonullmaxLength: 10Modo de fases: o último dia da fase.
items[].titlestringminLength: 1; maxLength: 48; Obrigatório
items[].detailstring""maxLength: 120
items[].iconnulo, stringnullnull, "activity-01", "air-vent", "airplane-01", "alert-01", "alert-02", "american-football", "analytics-up", "apple", "arrow-down-01", "arrow-down-right-01", "arrow-up-01", "arrow-up-right-01", "award-01", "baseball", "basketball-01", "battery-full", "bell-ring", "bicycle", "birthday-cake", "bitcoin", "bus-01", "calendar-03", "calendar-04", "calendar-add-01", "calendar-check", "call-02", "camera-01", "cancel-circle", "car-01", "champion", "chart-decrease", "chart-increase", "checkmark-circle-02", "clock-01", "clock-02", "cloud", "cloud-angled-rain", "cloud-angled-zap", "cloud-big-rain", "cloud-drizzle", "cloud-fog", "cloud-hailstone", "cloud-snow", "coffee-01", "coffee-02", "contact-01", "container-truck-01", "cricket-bat", "crown", "delivery-truck-01", "dices", "discord", "discount-tag-01", "dollar-02", "door-closed-locked", "door-open", "drink", "droplet", "ethereum", "euro", "exchange-01", "facebook-01", "factory", "fast-wind", "favourite", "ferry-boat", "fire", "fire-02", "first-aid-kit", "flag-01", "flag-02", "flash", "flower-01", "football", "gauge", "gift", "git-branch", "globe-02", "google", "hand-prayer", "heart", "help-circle", "home-01", "hourglass", "humidity", "ice-hockey", "information-circle", "instagram", "lamp-01", "lantern", "leaf-01", "leaf-02", "lightbulb", "link-01", "linkedin-01", "litecoin", "location-01", "location-04", "mail-01", "medal-first-place", "medical-mask", "meeting-room", "megaphone-01", "message-01", "money-exchange-02", "moon-02", "moon-cloud", "moon-star", "music-note-01", "navigation-03", "new-releases", "new-twitter", "news", "news-01", "noodles", "package-delivered", "parking-area-square", "party", "party-popper", "pause-circle", "percent-circle", "pinterest", "pizza-01", "play-circle", "play-store", "podium", "pound", "pumpkin", "qr-code", "qr-code-01", "queue-01", "quote-down", "quote-up", "ranking", "restaurant-01", "rocket-01", "rss", "running-shoes", "sale-tag-01", "security-check", "shop-sign", "shopping-bag-01", "siren", "smart-phone-01", "snapchat", "snowflake", "sparkles", "spotify", "star", "star-half", "star-off", "stop-circle", "store-01", "sun-03", "sun-cloud-02", "sunrise", "sunset", "swimming", "tag-01", "target-02", "temperature", "tennis-ball", "thermometer", "thermometer-cold", "thermometer-warm", "threads", "ticket-01", "tiktok", "time-quarter-pass", "timer-01", "tornado-02", "train-01", "tram", "trophy", "tropical-storm", "tsunami", "user-02", "user-group", "user-love-01", "vegetarian-food", "volleyball", "volume-high", "vote", "walking", "warehouse", "waves", "whatsapp", "wheat-off", "wifi-01", "wifi-full-signal", "wifi-lock", "wrench-01", "yen", "youtube"
items[].donebooleanfalseMarca um marco concluído independentemente da data.

Exemplo de tela

Salve as propriedades estáticas como params.json e crie o cartão. O resultado traz o id crd_ dele.

{
  "theme": "neomustard"
}
screenrig card create --type timeline --major 1 --file params.json

Adicione este item aos primitives de uma página da playlist, com esse id no lugar do id do exemplo. Publique a playlist e atribua uma tela.

{
  "id": "timeline",
  "primitive": "card",
  "card": "crd_01EXAMPLECARD000000000",
  "layout": "full",
  "content_fit": "fill"
}

Escrever dados ao vivo

Escreva o documento no cartão depois de criá-lo e depois substitua-o para atualizar a tela sem republicar. O cartão verifica cada gravação contra suas propriedades dinâmicas e recusa um documento que ele rejeita. Use o mesmo projeto da playlist.

Salve o documento como card-data.json. O CLI lê o documento em si, sem invólucro:

{
  "items": [
    {
      "date": "2026-03-02",
      "title": "Kickoff",
      "detail": "Team, scope and budget agreed."
    },
    {
      "date": "2026-05-18",
      "title": "Design complete",
      "detail": "Screens signed off by operations."
    },
    {
      "date": "2026-07-27",
      "title": "Alpha",
      "detail": "Internal pilot on two floors."
    },
    {
      "date": "2026-09-14",
      "title": "Pilot opens",
      "detail": "Three sites go live."
    },
    {
      "date": "2026-11-06",
      "title": "Beta launch",
      "detail": "Every site, with the new dashboard."
    },
    {
      "date": "2027-01-18",
      "title": "General availability",
      "detail": "Open to all customers."
    },
    {
      "date": "2027-03-29",
      "title": "Integrations",
      "detail": "Calendar and payroll connect."
    },
    {
      "date": "2027-06-14",
      "title": "Version 2",
      "detail": "Mobile and an open API."
    }
  ]
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json

Ou chame a API diretamente. A API envolve o mesmo documento em um campo document. Um token de agente já nomeia seu projeto, então nenhum cabeçalho de projeto é enviado; se você enviar ScreenRig-Project, ele deve corresponder ao projeto do token. Forneça sua autorização de API pelo ambiente; veja Autenticação da API.

curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{"document":{"items":[{"date":"2026-03-02","title":"Kickoff","detail":"Team, scope and budget agreed."},{"date":"2026-05-18","title":"Design complete","detail":"Screens signed off by operations."},{"date":"2026-07-27","title":"Alpha","detail":"Internal pilot on two floors."},{"date":"2026-09-14","title":"Pilot opens","detail":"Three sites go live."},{"date":"2026-11-06","title":"Beta launch","detail":"Every site, with the new dashboard."},{"date":"2027-01-18","title":"General availability","detail":"Open to all customers."},{"date":"2027-03-29","title":"Integrations","detail":"Calendar and payroll connect."},{"date":"2027-06-14","title":"Version 2","detail":"Mobile and an open API."}]}}'