Kestros is currently in beta, all documentation is subject to change. Additional documentation will be added in subsequent releases. Beta releases are not recommended for production use.

Basic Components

Content Components

  • Alert /apps/kestros/commons/components/content/alert
  • Button /apps/kestros/commons/components/content/button
  • Code /apps/kestros/commons/components/content/code
  • Heading /apps/kestros/commons/components/content/heading
  • Page Title /apps/kestros/commons/components/content/page-title
  • RichText /apps/kestros/commons/components/content/richtext
  • Text /apps/kestros/commons/components/content/text

Structure Components

  • Container /apps/kestros/commons/components/structure/container
  • Grid /apps/kestros/commons/components/structure/grid
  • Navigation /apps/kestros/commons/components/structure/navigation
  • Top Navigation /apps/kestros/commons/components/structure/top-navigation

Additional basic component will be added in subsequent releases.

Adding a New UI Framework View to a Basic Component

To add a new view for your UI Framework to an existing Component Type, create the directory structure matching the Component Type path above. For this example, we'll add a new view to the Button Component Type, so we will need a folder structure matching frontend/src/content/jcr_root/apps/kestros/commons/components/content/button.

Once the folder structure has been created, create a folder matching your UI Framework's kes:uiFrameworkCode property value, for this case it would be my-view. Once the folder for you UI Framework has been created, add a content.html, where the view's HTML code will be added.

<sly\n    data-sly-use.link="${'io.kestros.cms.components.basic.content.button.Button'}"\n    data-sly-use.context="${'io.kestros.cms.foundation.content.ComponentRequestContext'}"/>\n\n<button href="${button.link}" class="my-button-class ${context.inlineVariations}">${button.text}</button>

Adding the View to Package Filters

Just like with Vendor Libraries and UI Frameworks, you will need to add a new filter to the content package's filter.xml file.

<filter root="/libs/kestros/commons/components/content/button/my-view"/>

It is important to specify the path to your view, rather than the parent ComponentType path. Specifying the Component Type path will overwrite/remove any files installed by other packages.

Your filter.xml should now look something like:

<?xml version="1.0" encoding="UTF-8"?>\n<workspaceFilter version="1.0">\n    <filter root="/apps/my-site"/>\n    <filter root="/apps/my-site/install" mode="update">\n        <include pattern=".*my-site-core-bundle.*.jar"/>\n    </filter>\n\n    <filter root="/libs/kestros/commons/components/content/button/my-view"/>\n\n    <filter root="/etc/ui-frameworks/my-site-framework"/>\n    <filter root="/etc/ui-frameworks/my-first-ui-framework"/>\n    \n    <filter root="/etc/vendor-libraries/my-site-vendor-library"/>\n    <filter root="/etc/vendor-libraries/my-first-library"/>\n</workspaceFilter>