Skip to content

Plugin CSS contract

First-party plugin CSS uses stable plugin-prefixed selectors and shared theme variables.

Use your plugin id as the selector prefix:

  • search-...
  • graph-...
  • canvas-...
  • bases-...
  • tasks-...
  • notebook-...

Use semantic variables such as --background-primary, --background-primary-alt, --background-modifier-border, --text-normal, --text-muted, --interactive-accent, and --text-on-accent.

  • Hard-coded app palette values in plugin chrome.
  • Workspace-global selectors for plugin-owned surfaces.
  • Component-local CSS for repeated plugin semantics that should be part of the plugin stylesheet.

Community plugins should follow the same spirit: local selectors, scoped styles, and no assumptions about undocumented workspace DOM.