✨ feat: add new contact form, hero, features, and richtext blocks; implement scroll-reveal action and update styles
- Introduced ContactFormBlock, FeaturesBlock, HeroBlock, and RichtextBlock components. - Implemented a scroll-reveal action for animations on element visibility. - Enhanced CSS styles for better theming and prose formatting. - Added localization support for new components and updated existing translations. - Created e2e tests for demo pages including contact form validation and navigation. - Added a video tour showcasing the demo pages and interactions.
This commit is contained in:
171
api/collections/content.yml
Normal file
171
api/collections/content.yml
Normal file
@@ -0,0 +1,171 @@
|
||||
########################################################################
|
||||
# Content collection — CMS-managed pages with pagebuilder blocks
|
||||
########################################################################
|
||||
|
||||
name: content
|
||||
meta:
|
||||
label: { de: "Inhalte", en: "Content" }
|
||||
muiIcon: article
|
||||
rowIdentTpl: { twig: "{{ name }}" }
|
||||
|
||||
views:
|
||||
- type: simpleList
|
||||
mediaQuery: "(max-width: 600px)"
|
||||
primaryText: name
|
||||
secondaryText: lang
|
||||
tertiaryText: path
|
||||
- type: table
|
||||
columns:
|
||||
- name
|
||||
- source: lang
|
||||
filter: true
|
||||
- source: type
|
||||
filter: true
|
||||
- source: path
|
||||
- source: active
|
||||
filter: true
|
||||
|
||||
permissions:
|
||||
public:
|
||||
methods:
|
||||
get: true
|
||||
user:
|
||||
methods:
|
||||
get: true
|
||||
post: true
|
||||
put: true
|
||||
delete: true
|
||||
|
||||
fields:
|
||||
- name: active
|
||||
type: boolean
|
||||
meta:
|
||||
label: { de: "Aktiv", en: "Active" }
|
||||
- name: type
|
||||
type: string
|
||||
meta:
|
||||
label: { de: "Typ", en: "Type" }
|
||||
- name: lang
|
||||
type: string
|
||||
meta:
|
||||
label: { de: "Sprache", en: "Language" }
|
||||
- name: translationKey
|
||||
type: string
|
||||
meta:
|
||||
label: { de: "Übersetzungsschlüssel", en: "Translation Key" }
|
||||
- name: name
|
||||
type: string
|
||||
meta:
|
||||
label: { de: "Name", en: "Name" }
|
||||
- name: path
|
||||
type: string
|
||||
meta:
|
||||
label: { de: "Pfad", en: "Path" }
|
||||
- name: alternativePaths
|
||||
type: object[]
|
||||
meta:
|
||||
label: { de: "Alternative Pfade", en: "Alternative Paths" }
|
||||
subFields:
|
||||
- name: path
|
||||
type: string
|
||||
- name: thumbnail
|
||||
type: string
|
||||
meta:
|
||||
label: { de: "Vorschaubild", en: "Thumbnail" }
|
||||
- name: teaserText
|
||||
type: string
|
||||
meta:
|
||||
label: { de: "Teasertext", en: "Teaser Text" }
|
||||
- name: blocks
|
||||
type: object[]
|
||||
meta:
|
||||
label: { de: "Inhaltsblöcke", en: "Content Blocks" }
|
||||
subFields:
|
||||
- name: hide
|
||||
type: boolean
|
||||
- name: type
|
||||
type: string
|
||||
- name: headline
|
||||
type: string
|
||||
- name: headlineH1
|
||||
type: boolean
|
||||
- name: subline
|
||||
type: string
|
||||
- name: tagline
|
||||
type: string
|
||||
- name: anchorId
|
||||
type: string
|
||||
- name: containerWidth
|
||||
type: string
|
||||
- name: background
|
||||
type: object
|
||||
subFields:
|
||||
- name: color
|
||||
type: string
|
||||
- name: image
|
||||
type: string
|
||||
- name: padding
|
||||
type: object
|
||||
subFields:
|
||||
- name: top
|
||||
type: string
|
||||
- name: bottom
|
||||
type: string
|
||||
- name: callToAction
|
||||
type: object
|
||||
subFields:
|
||||
- name: buttonText
|
||||
type: string
|
||||
- name: buttonLink
|
||||
type: string
|
||||
- name: buttonTarget
|
||||
type: string
|
||||
- name: heroImage
|
||||
type: object
|
||||
subFields:
|
||||
- name: image
|
||||
type: string
|
||||
- name: text
|
||||
type: string
|
||||
- name: imagePosition
|
||||
type: string
|
||||
- name: imageRounded
|
||||
type: string
|
||||
- name: image
|
||||
type: string
|
||||
- name: accordionItems
|
||||
type: object[]
|
||||
subFields:
|
||||
- name: question
|
||||
type: string
|
||||
- name: answer
|
||||
type: string
|
||||
- name: open
|
||||
type: boolean
|
||||
- name: imageGallery
|
||||
type: object
|
||||
subFields:
|
||||
- name: images
|
||||
type: object[]
|
||||
subFields:
|
||||
- name: image
|
||||
type: string
|
||||
- name: caption
|
||||
type: string
|
||||
- name: showCaption
|
||||
type: boolean
|
||||
- name: showImageCaption
|
||||
type: boolean
|
||||
- name: imageCaption
|
||||
type: string
|
||||
- name: meta
|
||||
type: object
|
||||
meta:
|
||||
label: { de: "SEO", en: "SEO" }
|
||||
subFields:
|
||||
- name: title
|
||||
type: string
|
||||
- name: description
|
||||
type: string
|
||||
- name: keywords
|
||||
type: string
|
||||
Reference in New Issue
Block a user