mirror of
https://github.com/tiennm99/HugoBlox-kit.git
synced 2026-10-11 12:11:45 +00:00
- New `content.media` field accepts image (Hugo-pipeline-processed for
responsive srcset) or video (passes through as <video>). Optional
`dark_src` provides a dark-mode image variant.
- New `design.layout` enum: centered (default) | split-left |
split-right | stacked. Split layouts auto-set alignment to 'left'
unless explicitly overridden.
- Bump trust-strip star size from w-4 to w-5 for visual presence.
- Two new shared partials in layouts/_partials/functions/:
- resolve_image_resource: path → {resource | fallback_url}
- process_image_for_props: path → {src, srcset, width, height}
These factor out the resource-resolution + responsive-processing
pipeline so media-bearing blocks don't have to inline it.
- Capabilities registry: media-image, media-video, split-layouts.
- Landing page _index.md: keeps the centered hero (no behavioural
change) but documents the opt-in pattern for split layouts inline.
180 lines
5.4 KiB
JSON
180 lines
5.4 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft-07/schema#",
|
|
"title": "HugoBlox Block Registry",
|
|
"description": "Discovery registry for HugoBlox blocks. For full schemas with validation, hints, and design options, see schemaUrl (requires API access).",
|
|
"type": "object",
|
|
"properties": {
|
|
"version": {
|
|
"const": "1.0.0"
|
|
},
|
|
"blocks": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/BlockEntry"
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"BlockEntry": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": ["registry:block"]
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"categories": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"meta": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hugoblox": {
|
|
"type": "object",
|
|
"properties": {
|
|
"capabilities": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"complexity": {
|
|
"type": "string",
|
|
"enum": ["simple", "moderate", "complex"]
|
|
},
|
|
"preact": {
|
|
"type": "boolean"
|
|
},
|
|
"schemaUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": ["name", "type", "title", "description", "categories"]
|
|
}
|
|
},
|
|
"version": "1.0.0",
|
|
"blocks": [
|
|
{
|
|
"name": "hero",
|
|
"type": "registry:block",
|
|
"title": "Hero Section",
|
|
"description": "Eye-catching landing section with a bold headline, supporting text, an optional announcement banner, and primary + secondary call-to-action buttons.",
|
|
"categories": ["marketing", "landing"],
|
|
"meta": {
|
|
"hugoblox": {
|
|
"capabilities": [
|
|
"headline",
|
|
"title-highlight",
|
|
"eyebrow",
|
|
"subtitle",
|
|
"dual-cta",
|
|
"cta-styles",
|
|
"announcement-banner",
|
|
"announcement-badge",
|
|
"trust-strip",
|
|
"size-presets",
|
|
"alignment",
|
|
"media-image",
|
|
"media-video",
|
|
"split-layouts"
|
|
],
|
|
"complexity": "simple",
|
|
"preact": true,
|
|
"schemaUrl": "https://api.hugoblox.com/v1/blocks/hero/schema"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "stats",
|
|
"type": "registry:block",
|
|
"title": "Statistics",
|
|
"description": "Showcase key metrics and achievements with animated counters that count up as visitors scroll into view.",
|
|
"categories": ["social-proof", "marketing"],
|
|
"meta": {
|
|
"hugoblox": {
|
|
"capabilities": ["animated-counters", "multiple-layouts", "icons"],
|
|
"complexity": "moderate",
|
|
"preact": true,
|
|
"schemaUrl": "https://api.hugoblox.com/v1/blocks/stats/schema"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "features",
|
|
"type": "registry:block",
|
|
"title": "Features Grid",
|
|
"description": "Highlight product or service capabilities in a clean grid layout, each with an icon, heading, and short description.",
|
|
"categories": ["features", "marketing"],
|
|
"meta": {
|
|
"hugoblox": {
|
|
"capabilities": ["icon-grid", "section-header", "responsive-columns"],
|
|
"complexity": "simple",
|
|
"preact": true,
|
|
"schemaUrl": "https://api.hugoblox.com/v1/blocks/features/schema"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "testimonials",
|
|
"type": "registry:block",
|
|
"title": "Testimonials",
|
|
"description": "Build trust with customer quotes displayed alongside their photo, name, and role.",
|
|
"categories": ["social-proof", "marketing"],
|
|
"meta": {
|
|
"hugoblox": {
|
|
"capabilities": ["quote-cards", "avatars", "section-header"],
|
|
"complexity": "simple",
|
|
"preact": true,
|
|
"schemaUrl": "https://api.hugoblox.com/v1/blocks/testimonials/schema"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "cta-image-paragraph",
|
|
"type": "registry:block",
|
|
"title": "CTA Image Paragraph",
|
|
"description": "Tell your story with alternating image-and-text rows, each with a feature checklist and a call-to-action button.",
|
|
"categories": ["cta", "marketing", "landing"],
|
|
"meta": {
|
|
"hugoblox": {
|
|
"capabilities": ["alternating-layout", "responsive-images", "feature-list", "cta-button"],
|
|
"complexity": "moderate",
|
|
"preact": true,
|
|
"schemaUrl": "https://api.hugoblox.com/v1/blocks/cta-image-paragraph/schema"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "cta-card",
|
|
"type": "registry:block",
|
|
"title": "CTA Card",
|
|
"description": "Drive conversions with a bold, centered card featuring a headline, supporting text, and a prominent call-to-action button.",
|
|
"categories": ["cta", "marketing"],
|
|
"meta": {
|
|
"hugoblox": {
|
|
"capabilities": ["glassmorphism", "auto-text-color", "gradient-background", "cta-button"],
|
|
"complexity": "moderate",
|
|
"preact": true,
|
|
"schemaUrl": "https://api.hugoblox.com/v1/blocks/cta-card/schema"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|