Skip to content

Plan SyncDeck host theme contract - #241

Draft
mrbdahlem wants to merge 1 commit into
mainfrom
plan/syncdeck-host-theme-contract
Draft

Plan SyncDeck host theme contract#241
mrbdahlem wants to merge 1 commit into
mainfrom
plan/syncdeck-host-theme-contract

Conversation

@mrbdahlem

@mrbdahlem mrbdahlem commented Apr 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR adds a planning document for a SyncDeck host theme contract so embedded and instructor-launched activities can inherit deck colors and typography instead of falling back to the host's default white UI.

Proposed Direction

  • define a normalized host theme token contract for brand, surface, text, typography, radius, and shadow
  • start with a per-deck global theme passed once during presentation startup
  • support optional per-activity ui.theme overrides on top of the deck theme
  • keep host-owned fallback tokens so existing decks continue to render safely
  • have the host map resolved theme tokens into CSS variables instead of hard-coded styling

Recommended Merge Order

host fallback theme
  -> deck theme
  -> per-activity override theme

Why This Shape

  • presentation authors keep ownership of course/deck styling
  • the host keeps ownership of rendering and CSS application
  • payloads stay smaller when multiple activities share the same deck theme
  • per-activity overrides remain available as an escape hatch instead of the default transport

Planning Scope

The plan covers:

  • token families and fallback behavior
  • deck startup/bootstrap integration
  • payload validation and sanitization
  • candidate host integration points
  • compatibility expectations for existing decks
  • implementation checklist and open questions

Validation

Docs-only change.

  • verified the new plan file content on branch plan/syncdeck-host-theme-contract

Notes

If implementation changes SyncDeck launch payload formats, we should also update:

  • skills/syncdeck/references/ACTIVITY_PAYLOADS.md
  • .agent/knowledge/data-contracts.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant