Carousel

Use a carousel when you need rotating slides with controls or indicators, often for hero content.

Use a carousel when several related messages or images deserve the same prominent spot but should not all appear at once. Content authors maintain which pages or slides appear; visual designers set timing, height, and motion so the experience stays calm and readable. Always provide a way to pause or move slides manually.

Behaviour

  • Slides advance with controls and optional auto-play timing.
  • Edit mode exposes drop targets for authoring slide pages.

Anatomy

  1. Carousel root with a unique id.
  2. Slide region with one panel visible at a time.
  3. Previous and next controls (and optional indicators).

Carousel (placeholder)

Replace with controls, indicators, and pause behaviour.

Content guidelines

Authors maintain the pages multifield (or equivalent), height, randomization, and advanced classes through the component dialog.

Best practices

Do

  • Provide non-motion alternatives or ensure pause is discoverable where policy requires.
  • Limit slide count to keep load and authoring manageable.

Don't

  • Don't set very fast intervals; it harms reading and vestibular comfort.

When to use

  • Hero-style rotating banners tied to existing pages or shared slide content.
  • When auto-rotation is acceptable and can be paused by the user.

When not to use

  • Arbitrary component slides in one carousel; use Carousel (multi-item) (carousel-parsys) instead.
  • Critical content that must not move; static Hero or Grid container is safer.

CRXDE Lite query

Use this query in CRXDE Lite to find instances of this component.

/jcr:root/content//*[@sling:resourceType = 'concordia/components/carousel/carousel.jsp']

Technical behaviour

carousel.jsp (with init.jsp and related scripts) constructs a bootstrap.Carousel instance per component id. On load it wires resize handling (windowResizedCarousel), pause/play UI, and default interval (for example 8000 ms in the inline script). Edit mode exposes drop targets for pages (DropTarget CSS class prefix dd + pages).

Anatomy (implementation)

  1. Carousel root: div.carousel with unique id.
  2. Slides: carousel-inner items built from authored pages (see init.jsp and slide helpers).
  3. Controls: Previous and next; indicators optional per dialog.
  4. Scripts: Bootstrap 5 carousel API with custom resize and pause behaviour.

Instances in the codebase

LocationNotes
apps/concordia/components/carousel/carousel.jspMain script; includes init.jsp.
ItemLocation
Componentapps/concordia/components/carousel/carousel.jsp
Initialisationapps/concordia/components/carousel/init.jsp (included)

Instance ids: Sanitized resource path suffix for unique carousel ids.