Skip to main content
Glama
schema.py4.35 kB
# chuk-motion/src/chuk_motion/components/content/WebPage/schema.py """WebPage component schema and Pydantic models.""" from pydantic import BaseModel, Field from ...base import ComponentMetadata class WebPageProps(BaseModel): """Properties for WebPage component.""" html: str = Field( '<div style="padding: 40px; text-align: center;"><h1>Hello World</h1><p>This is a web page.</p></div>', description="HTML content to render", ) css: str = Field("", description="Custom CSS styles") base_styles: bool = Field(True, description="Include default styling for common HTML elements") scale: float = Field(1.0, description="Zoom level (1.0 = 100%)") scroll_y: float = Field(0, description="Vertical scroll position in pixels") animate_scroll: bool = Field(False, description="Animate scroll from 0 to scroll_y") scroll_duration: float = Field(60, description="Duration of scroll animation in frames") theme: str = Field("light", description="Visual theme: light or dark") start_time: float | None = Field(None, description="When to show (seconds)") duration: float | None = Field(None, description="How long to show (seconds)") class Config: extra = "forbid" # Component metadata METADATA = ComponentMetadata( name="WebPage", description="Render real HTML content with CSS styling - perfect for showing actual web pages", category="content", ) # MCP schema MCP_SCHEMA = { "description": "Render real HTML content with CSS styling - perfect for showing actual web pages", "category": "content", "schema": { "html": { "type": "string", "default": '<div style="padding: 40px; text-align: center;"><h1>Hello World</h1><p>This is a web page.</p></div>', "description": "HTML content to render", }, "css": {"type": "string", "default": "", "description": "Custom CSS styles"}, "base_styles": { "type": "boolean", "default": True, "description": "Include default styling for common HTML elements", }, "scale": {"type": "float", "default": 1.0, "description": "Zoom level (1.0 = 100%)"}, "scroll_y": { "type": "float", "default": 0, "description": "Vertical scroll position in pixels", }, "animate_scroll": { "type": "boolean", "default": False, "description": "Animate scroll from 0 to scroll_y", }, "scroll_duration": { "type": "float", "default": 60, "description": "Duration of scroll animation in frames", }, "theme": { "type": "enum", "default": "light", "values": ["light", "dark"], "description": "Visual theme", }, "start_time": {"type": "float", "description": "When to show (seconds)"}, "duration": {"type": "float", "description": "How long to show (seconds)"}, }, "example": { "html": """ <div style="max-width: 1200px; margin: 0 auto;"> <header style="text-align: center; padding: 60px 0;"> <h1>Welcome to Our Product</h1> <p style="font-size: 20px; opacity: 0.8;">The best solution for your needs</p> <button>Get Started</button> </header> <section style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 40px;"> <div style="padding: 30px; border: 1px solid #ddd; border-radius: 8px;"> <h3>Feature One</h3> <p>Amazing capability that solves your problem.</p> </div> <div style="padding: 30px; border: 1px solid #ddd; border-radius: 8px;"> <h3>Feature Two</h3> <p>Another incredible feature you'll love.</p> </div> <div style="padding: 30px; border: 1px solid #ddd; border-radius: 8px;"> <h3>Feature Three</h3> <p>The feature that ties it all together.</p> </div> </section> </div> """.strip(), "css": """ h1 { color: #333; font-size: 48px; } button { background: #0066ff; color: white; padding: 12px 24px; border-radius: 6px; } """.strip(), "base_styles": True, "scale": 1.0, "scroll_y": 0, "animate_scroll": False, "theme": "light", "start_time": 0.0, "duration": 5.0, }, }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrishayuk/chuk-mcp-remotion'

If you have feedback or need assistance with the MCP directory API, please join our Discord server