How to Succeed with the Core Components

The Core Components are powerful, flexible, and easy to use and customize. Following a few key guidelines will ensure that your project with the Core Components is a success.

Migrating to the Core Components

Any new project should be implemented with Core Components. However existing projects will usually have extensive implementations of the Foundation Components.

Migrating from Foundation Components

A larger effort on an existing project (for example a rebranding or overall refactoring) often offers a chance to migrate to the Core Components. To facilitate this migration, Adobe has provided a number of migration tools to encourage the adoption of the Core Components and the latest AEM technology.

The AEM Modernization Tools allow for the easy conversion of:

  • Static templates to editable templates
  • Design configurations to policies
  • Foundation Components to Core Components
  • Classic UI to Touch-Enabled UI

For further information about the usage of these tools, see their documentation.

NOTE
The AEM Modernize Tools are a community effort and are not supported or warrantied by Adobe.

Migration via Move to AEM as a Cloud Service

Because AEM as a Cloud Service comes with the latest version of the Core Components automatically, when you move from an on-premises AEM installation, you will need to remove any dependency to the Core Components in your projects pom.xml file.

Your proxy components will still work as they did before because proxies point to the necessary supertype and the supertype path has the version in it. In this way, simply removing the dependency enables the Core Components to work in AEMaaCS just as they did on-premises.

Just like any other AEMaaCS project you will also need to add a dependency to the AEM SDK jar as well. This is not specific to the Core Components, but is required.

<dependency>
   <groupId>com.adobe.aem</groupId>
   <artifactId>aem-sdk-api</artifactId>
</dependency>

See the document AEM Project Structure for more information about AEMaaCS projects.

Core Component Support

Core Components are an integral part of AEM and supported as is, under the same terms and conditions as if they were delivered as part of the Quickstart.

Like other AEM product features, the general rule is: Components are first announced to be deprecated, and the earliest removed for the following AEM release. That gives customers at least one release cycle to move to the new version of the component, before dropping its support.

The version of each component clearly states the AEM versions that it supports. When support ceases for a version of AEM, then so does the support of the Core Components for that version of AEM.

For details about the support of component customizations, see the Customizing Core Components page.

Technical Capabilities

The following table gives an overview of the differences between core components and foundation components.

For details about their authoring capabilities and options to pre-configurable them, refer to the authoring page about them.

CapabilityCore ComponentFoundation Component
Logic implementationJava POJOs with Sling Models annotationsJSP code
Markup definitionHTML Template Language (HTL) syntaxJSP code
XSS sanitizationAutomated by HTLMostly manual
CSS classes namingStandardized naming convention based on Block Element Modifier (BEM) notation (as of release 2.0.0)Custom schemes
Dialog definitionCoral 3Coral 2 + Classic UI
JSON outputSling Models Exporter with Jackson serializationDefault Sling servlet
VersioningFor the model and the HTLNone
TestingUnit Tests + Integration TestsIntegration Tests
DeliveryVia public GitHubVia Quickstart
LicenseApache LicenseAdobe proprietary
ContributionVia pull requestNot possible
AccessibilityFully compliant with the WCAG 2.0 AA standardOnly partially compliant with the WCAG 2.0 AA standard

Component List

The following table lists the available Core Components, linking to their API, and indicates which foundation components they replace.

Core ComponentDescriptionReplaced Foundation Component(s)
PageResponsive page working with template editor/libs/foundation/components/page /libs/wcm/foundation/components/page
BreadcrumbPage hierarchy navigation/libs/foundation/components/breadcrumb
TitleH1-H6 title/libs/foundation/components/title /libs/wcm/foundation/components/title
TextRich text/libs/foundation/components/text /libs/foundation/components/table /libs/wcm/foundation/components/text
ImageSmart and lazy loading of optimal rendition size/libs/foundation/components/image /libs/foundation/components/adaptiveimage /libs/foundation/components/logo /libs/foundation/components/mobileimage /libs/foundation/components/mobilelogo /libs/wcm/foundation/components/image
ListList of pages/libs/foundation/components/list /libs/foundation/components/mobilelist /libs/wcm/foundation/components/list
Social Media SharingFacebook and Pinterest sharing widget-
Form ContainerResponsive form paragraph system/libs/foundation/components/form/start /libs/foundation/components/form/end
Form TextText input field/libs/foundation/components/form/text /libs/foundation/components/form/password
Form OptionsMultiple options input field/libs/foundation/components/form/checkbox /libs/foundation/components/form/radio /libs/foundation/components/form/dropdown
Form HiddenHidden input field/libs/foundation/components/form/hidden
Form ButtonSubmit or custom button/libs/foundation/components/form/submit
NavigationA site navigation component that lists the nested page hierarchy/libs/foundation/components/topnav /libs/foundation/components/mobiletopnav
Language NavigationA language and country switcher that lists the global language structure-
Quick SearchA search component that displays the results as in-place suggestions in a drop-down menu/libs/foundation/components/search
TeaserAllows the content author to easily create a teaser to further content using an image, title, or rich text and linking to further content or other actions-
TabsAllows the content author to organize page content within multiple tabs-
CarouselAllows the content author to organize content in a rotating carousel of slides/libs/foundation/components/carousel
Content FragmentAllows for the display of a content fragment-
Content Fragment ListAllows for the display a list of content fragments-
SeparatorSeparates content on a page-
AccordionOrganize content panels in a collapsible accordion-
ContainerOrganize components within a container-
ButtonCreate a button on a page-
DownloadAdd a downloadable asset to a page-
Experience FragmentAdd an experience fragment to a page/libs/cq/experience-fragments/editor/components/experiencefragment
EmbedEmbed an external resource within a page-
Progress BarProvide a visual representation of progress towards a goal-
PDF ViewerPresents a PDF document on a page-

Upgrade of Core Components

One benefit of versioned components is that it allows to separate the migration to a new AEM version from the migration to new component versions. Also, if new component versions are available, it allows for the individual migration of each component to the new version.

Migrations to a new AEM version won’t impact how the Core Components work, provided that their versions also support the new AEM version that is being migrated to. Customizations made to the Core Components should not be affected either, as long as they don’t use APIs that have been deprecated or removed.

Migrations to new versions of the Core Components won’t impact how the component works either, but new features might be introduced to page authors, which might require some configuration by a template editor, in case the default behavior isn’t desired. Customizations however might need to be adapted, for more details see the Customizing Core Components page.

Previous pageSample themes and templates
Next pageCustomizing Core Components

Experience Manager


The Perfect Blend: A New Era of Collaboration with AEM and Workfront

Adobe Customer Success Webinars

Wednesday, Apr 2, 5:00 PM UTC

Explore how Adobe Experience Manager and Workfront integrate to help teams move from ideation to delivery without the usual bottlenecks, ensuring content is organized, on-brand, and ready to go live faster.

Register

Adobe Experience Manager Sites: Top Innovations

Online | Session | General Audience

Digital interactions are the most critical touchpoints in a customer journey. Brands need to maximize the impact of content to drive...

Tue, Mar 18, 2:00 PM PDT (9:00 PM UTC)

Register

Elevate and Empower Teams with Agentic AI for Exceptional Experiences

Online | Strategy Keynote | General Audience

Elevate and empower your CX teams with AI that transforms creativity, personalization, and productivity. Discover how Adobe is...

Tue, Mar 18, 1:00 PM PDT (8:00 PM UTC)

Register

Connect with Experience League at Summit!

Get front-row access to top sessions, hands-on activities, and networking—wherever you are!

Learn more