@1upvision/sdk.
Layout
Box, CompactView, List, VStack, HStack
Display
Text, Image
Inputs
Button, Toggle, TextField, Dropdown, and more
Custom Styling
All components accept an optionalstyle prop of type VisionStyle. This is a typed subset of CSS properties that gets sanitized by the host before rendering as inline styles.
Fonts
The SDK supports two font-loading paths for extensions:- Google Fonts via
vision.config.json
- Local fonts via
localFont()
public/ directory.
They are copied into dist/ automatically by the CLI.
Supported Properties
Security Restrictions
For security, the following are blocked by the host sanitizer:position: "fixed"andposition: "sticky"— only"relative"and"absolute"are allowedurl()values in component styles — uselocalFont()for fonts and<Image>for imagesexpression(),javascript:,@import, and other injection vectors
Keyframe Animations
UsedefineKeyframes to create CSS @keyframes animations. Define keyframes at module scope and reference them in animation or animationName style properties.
from, to, or percentage values like 0%, 50%, 100%. Each stop accepts the same VisionStyle properties. The host sanitizes all keyframe values using the same security rules as inline styles.
Overlay Example
Build a custom scoreboard overlay usingBox and styled components:
Behavior by Target
Components behave differently depending on where they render:
Input components are fully interactive in the editor and interactive page. On the OBS layer, they degrade to static display since viewers can’t interact with the overlay.