Skip to content

Instantly share code, notes, and snippets.

@julrich
Created August 1, 2024 13:51
Show Gist options
  • Save julrich/83d73910ee039df78b6d2ba9d1c40b69 to your computer and use it in GitHub Desktop.
Save julrich/83d73910ee039df78b6d2ba9d1c40b69 to your computer and use it in GitHub Desktop.
JSON Schema for UI / content
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schema.redacted.de/hero.schema.json",
"title": "Hero",
"description": "Prominente Bild- oder Videodarstellung mit Option für Text und Cta",
"type": "object",
"properties": {
"textPosition": {
"type": "string",
"title": "Textposition",
"description": "Vertikale Platzierung des Textes",
"enum": ["bottom", "center", "top"],
"default": "center",
"x-cms-group-name": "module",
"x-cms-group-title": "Einstellungen",
"x-cms-group-icon": "gear"
},
"hideTextDesktop": {
"title": "Text ausblenden auf Desktop?",
"description": "Text auf Desktop ausblenden",
"type": "boolean",
"default": false,
"x-cms-group-name": "module",
"x-cms-group-title": "Einstellungen",
"x-cms-group-icon": "gear"
},
"hideTextTablet": {
"title": "Text ausblenden auf Tablet?",
"description": "Text auf Tablet ausblenden",
"type": "boolean",
"default": false,
"x-cms-group-name": "module",
"x-cms-group-title": "Einstellungen",
"x-cms-group-icon": "gear"
},
"hideTextMobile": {
"title": "Text ausblenden auf Mobile?",
"description": "Text auf Mobile ausblenden",
"type": "boolean",
"default": false,
"x-cms-group-name": "module",
"x-cms-group-title": "Einstellungen",
"x-cms-group-icon": "gear"
},
"overlay": {
"allOf": [
{
"title": "Gradient?",
"description": "Ein Farbverlauf über dem Bild",
"x-cms-group-name": "module",
"x-cms-group-title": "Einstellungen",
"x-cms-group-icon": "gear"
},
{
"$ref": "http://schema.kickstartds.com/content/visual.schema.json#/properties/overlay"
}
]
},
"noCrop": {
"title": "Kein Bildzuschnitt?",
"description": "Volle Bildhöhe anzeigen",
"type": "boolean",
"default": false,
"x-cms-group-name": "module",
"x-cms-group-title": "Einstellungen",
"x-cms-group-icon": "gear"
},
"module": {
"title": "Einstellungen",
"description": "Einstellungen für das gesamte Modul.",
"type": "object",
"x-cms-group-inline": true,
"x-cms-group-name": "module",
"x-cms-group-title": "Einstellungen",
"x-cms-group-icon": "gear",
"properties": {
"headline": {
"allOf": [
{
"x-cms-group-name": "content"
},
{
"$ref": "http://schema.redacted.de/module.schema.json#/properties/headline"
}
]
},
"text": {
"allOf": [
{
"x-cms-group-name": "content"
},
{
"$ref": "http://schema.redacted.de/module.schema.json#/properties/text"
}
]
},
"ctaGroup": {
"allOf": [
{
"x-cms-group-name": "content"
},
{
"$ref": "http://schema.redacted.de/module.schema.json#/properties/ctaGroup"
}
]
},
"align": {
"$ref": "http://schema.redacted.de/module.schema.json#/properties/align"
},
"inverted": {
"$ref": "http://schema.redacted.de/module.schema.json#/properties/inverted"
}
},
"additionalProperties": false
},
"imageMobile": {
"allOf": [
{
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
{
"$ref": "http://schema.redacted.de/visual.schema.json#/properties/image/properties/srcMobile"
}
]
},
"imageTablet": {
"allOf": [
{
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
{
"$ref": "http://schema.redacted.de/visual.schema.json#/properties/image/properties/srcTablet"
}
]
},
"imageDesktop": {
"allOf": [
{
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
{
"$ref": "http://schema.redacted.de/visual.schema.json#/properties/image/properties/srcDesktop"
}
]
},
"videoMobile": {
"allOf": [
{
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
{
"$ref": "http://schema.redacted.de/visual.schema.json#/properties/video/properties/srcMobile"
}
]
},
"videoTablet": {
"allOf": [
{
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
{
"$ref": "http://schema.redacted.de/visual.schema.json#/properties/video/properties/srcTablet"
}
]
},
"videoDesktop": {
"allOf": [
{
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
{
"$ref": "http://schema.redacted.de/visual.schema.json#/properties/video/properties/srcDesktop"
}
]
},
"videoFallbackImage": {
"title": "Bild für Video-Platzhalter",
"description": "Bild, das angezeigt wird, während das Video geladen wird",
"type": "string",
"format": "image",
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
"alt": {
"allOf": [
{
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
{
"$ref": "http://schema.redacted.de/visual.schema.json#/properties/image/properties/alt"
}
]
},
"caption": {
"allOf": [
{
"x-cms-group-name": "image",
"x-cms-group-title": "Bild",
"x-cms-group-icon": "image"
},
{
"$ref": "http://schema.redacted.de/visual.schema.json#/properties/image/properties/caption"
}
]
}
},
"additionalProperties": false
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schema.redacted.de/page.schema.json",
"title": "Page",
"description": "Eine Seite mit verschiedenen Abschnitten und grundsätzlichen Einstellungen",
"type": "object",
"required": ["sections", "title", "description"],
"properties": {
"title": {
"type": "string",
"title": "Seitentitel",
"description": "Der Titel der Seite"
},
"description": {
"type": "string",
"title": "Seitenbeschreibung",
"description": "Die Beschreibung der Seite"
},
"shareDescription": {
"type": "string",
"title": "Beschreibung beim Teilen",
"description": "Die Beschreibung, die beim Teilen der Seite angezeigt wird"
},
"shareImage": {
"type": "string",
"format": "image",
"title": "Bild beim Teilen",
"description": "Das Bild, das beim Teilen der Seite angezeigt wird"
},
"sections": {
"type": "array",
"title": "Abschnitte",
"description": "Sammlung von Abschnitten (mit ihrem Inhalt), die auf der Seite angezeigt werden sollen",
"items": {
"anyOf": [
{
"$ref": "http://schema.redacted.de/collapsible-story.schema.json"
},
{
"$ref": "http://schema.redacted.de/content-boxes.schema.json"
},
{
"$ref": "http://schema.redacted.de/cta-text.schema.json"
},
{
"$ref": "http://schema.redacted.de/donation-teasers.schema.json"
},
{
"$ref": "http://schema.redacted.de/donation-visual.schema.json"
},
{
"$ref": "http://schema.redacted.de/faq.schema.json"
},
{
"$ref": "http://schema.redacted.de/gallery-slider.schema.json"
},
{
"$ref": "http://schema.redacted.de/gallery.schema.json"
},
{
"$ref": "http://schema.redacted.de/hero.schema.json"
},
{
"$ref": "http://schema.redacted.de/image-slider.schema.json"
},
{
"$ref": "http://schema.redacted.de/image-story.schema.json"
},
{
"$ref": "http://schema.redacted.de/product-teasers.schema.json"
},
{
"$ref": "http://schema.redacted.de/quote-slider.schema.json"
},
{
"$ref": "http://schema.redacted.de/story-slider.schema.json"
},
{
"$ref": "http://schema.redacted.de/storytelling.schema.json"
},
{
"$ref": "http://schema.redacted.de/video-embed.schema.json"
}
],
"title": "Abschnitt",
"description": "Ein Abschnitt auf der Seite"
},
"default": []
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment