The open-source protocol for creating interactive, data-driven blocks

This document is a working draft

This specification is currently in progress. We’ve drafting it in public to gather feedback and improve the final document. If you have any suggestions or improvements you would like to add, feel free to submit a PR on our Github repo.

Appendix A: Styling


This section is still being written. Advance comments are welcome.

  • --primary-color: a primary theme color for main action elements and fills
  • --secondary-color: a secondary color for highlights and variations
  • --border-color: a color to use for borders for tables, boxes, etc
  • --border-radius: the radius of borders for tables, boxes, buttons, etc
  • --background-color: a color to use as the background for elements
  • --font-color: the default text color
  • --font-family: the default font

Embedding applications could pass different variables at different times, e.g. when a user enables/disables dark mode, different colors may be passed – or different styles may be passed for different users/orgs depending on their own preferences.

Add blocks to your app

Anyone with an existing application who wants to embed semantically-rich, reusable blocks in their product can use the protocol. Improve your app’s utility and tap into a world of structured data with no extra effort, for free.

Build your own blocks

Any developer can build and publish blocks to the global registry for other developers to use. Create blocks that solve real-world problems, and contribute to an open source community changing the landscape of interoperable data.