Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

epic(esl carousel): esl-carousel component initial beta #2185

Merged
merged 158 commits into from
Apr 12, 2024
Merged
Show file tree
Hide file tree
Changes from 150 commits
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
5b6fc64
feat(esl-carousel): new `esl-carousel` component introduced according…
julia-murashko May 18, 2023
a6917ca
refactor(esl-carousel): draft of the SlideCarousel renderer
julia-murashko May 18, 2023
19bd241
feat(esl-carousel): complete support of the navigation plugins for ES…
ala-n May 18, 2023
94bc18f
feat(esl-carousel): complete support of the drag (touch) for ESLCarousel
julia-murashko May 18, 2023
29641f7
refactor(esl-carousel): drafts of the link and autoplay carousel plugins
ala-n May 18, 2023
f0787fc
refactor(esl-carousel): update global cumulative files
ala-n May 18, 2023
fcce6d4
refactor(gh-pages): new image assets for future carousel demo
ala-n May 18, 2023
d33c5a0
refactor(gh-pages): dev test pages for esl-carousel
julia-murashko May 18, 2023
c57c1f4
refactor(gh-pages): add marquee-carousel test sample
NastaLeo May 18, 2023
91b50d6
refactor(gh-pages): draft of the official carousel demo pages
ala-n May 18, 2023
b83d581
refactor(esl-carousel): temporary fix for side-effects handling
ala-n May 18, 2023
c04b6de
refactor(esl-carousel): update for marquee-carousel example, fix for …
ala-n May 18, 2023
1deea71
feat(esl-carousel): support for autoplay mixin plugin for ESLCarousel…
ala-n May 19, 2023
77cbbd9
feat(esl-carousel): support for relation mixin plugin for ESLCarousel…
ala-n May 19, 2023
557d4ad
refactor(esl-carousel): fixes and improvements for the touch plugin
ala-n May 19, 2023
44ff021
refactor(esl-carousel): remove legacy plugin implementations
ala-n May 19, 2023
c3f0d98
refactor(esl-carousel): mixin plugin base
ala-n May 19, 2023
2c0ad6a
style(esl-carousel): fix naming
ala-n May 19, 2023
24b0e18
refactor(esl-carousel): draft for keyboard support mixin
ala-n May 19, 2023
5629830
docs(esl-carousel): documentation fixes for carousel plugins
ala-n May 19, 2023
a84d409
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
ala-n May 22, 2023
ff208fb
refactor(esl-carousel): restructuring for the views and fixes for car…
ala-n May 21, 2023
1fa157e
refactor(esl-carousel): draft arrow rework
ala-n May 22, 2023
a8b2bbb
refactor(esl-carousel): structure main rework (views -> renderers)
ala-n May 22, 2023
03083f2
refactor(esl-carousel): temporary remove Slide Carousel Renderer (not…
ala-n May 22, 2023
21fbb45
refactor(esl-carousel): move and fix keyboard an touch plugins
ala-n May 22, 2023
f2b7c64
refactor(esl-carousel): Carousel Public API - rename `firstIndex` to …
ala-n May 22, 2023
d50ab63
refactor(esl-carousel): small corrections in internal API and styles
ala-n May 23, 2023
54c8bd4
Merge pull request #1666 from exadel-inc/feat/esl-carousel-restructuring
ala-n May 23, 2023
469bf11
refactor(esl-carousel): events rework draft
ala-n May 25, 2023
ead3375
refactor(esl-carousel): refactor multi-renderer
ala-n May 25, 2023
7fb4816
refactor(esl-carousel): events update and change observation
ala-n May 25, 2023
f6b08d1
refactor(esl-carousel): fix event handling
ala-n May 25, 2023
9dbabfc
feat(esl-utils): introduce `promisifyTransition` utility
ala-n May 26, 2023
fc78b8c
refactor(esl-carousel): fix relation mixin
ala-n May 26, 2023
6d3e23d
refactor(esl-carousel): fix navigation non-loop case
ala-n May 26, 2023
6f2e5f7
refactor(esl-carousel): optimizations for renderer and carousel API
ala-n May 26, 2023
b6a8edb
refactor(esl-carousel): improvements for multi-slide renderer
ala-n May 26, 2023
146f2b5
Merge pull request #1678 from exadel-inc/feat/esl-carousel-restructuring
ala-n May 26, 2023
8cd8fdb
refactor(esl-carousel): example updates
ala-n May 29, 2023
2a4c8c5
feat(esl-utils): utility to postpone execution to microtask
ala-n May 30, 2023
c3d1406
refactor(esl-carousel): events and config API rework
ala-n May 30, 2023
1a2e4a2
test(esl-carousel): fix tests signature
ala-n May 30, 2023
864df21
refactor(esl-carousel): improve rendering mechanic
ala-n May 30, 2023
2b41d29
refactor(esl-carousel): update a11y of slides and dots
julia-murashko May 30, 2023
7e4d738
refactor(esl-carousel): update a11ty for slides and dots
julia-murashko May 30, 2023
58a77d5
style(esl-carousel): js doc fixes
ala-n May 30, 2023
15b1d21
Merge pull request #1685 from exadel-inc/feat/esl-carousel-restructuring
ala-n May 30, 2023
be16a50
Merge branch 'epic/esl-carousel' into epic/esl-carousel-temp
ala-n May 30, 2023
3f775fc
style(esl-carousel): fix return type
ala-n May 30, 2023
49b4e84
Merge pull request #1689 from exadel-inc/epic/esl-carousel-temp
ala-n May 30, 2023
33578dd
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
ala-n May 30, 2023
7ecc242
test(esl-carousel): add additional tests for indexToGroup
NastaLeo May 31, 2023
3ee49a2
refactor(esl-carousel): refactor indexToGroup method
NastaLeo May 31, 2023
f16fdc0
Merge branch 'epic/esl-carousel' of https://github.com/exadel-inc/esl…
NastaLeo May 31, 2023
5661b2f
Merge pull request #1692 from exadel-inc/bugfix/esl-carousel-dots
ala-n May 31, 2023
3503b87
Merge remote-tracking branch 'origin/main' into epic/esl-carousel
ala-n Jun 1, 2023
f158131
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
ala-n Jun 1, 2023
e71e9ab
refactor(esl-carousel): fix touch move for non fulfilled carousel
ala-n Jun 2, 2023
08ccf52
refactor(esl-carousel): slide mutation fixes
ala-n Jun 2, 2023
9c640fe
refactor(esl-carousel): multiple base fixes
ala-n Jun 2, 2023
b12fd0a
refactor(esl-carousel): fix offset move calculations
ala-n Jun 2, 2023
7b38095
Merge remote-tracking branch 'origin/main' into epic/esl-carousel
ala-n Jun 9, 2023
ade1d27
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
ala-n Jun 15, 2023
c016068
style(esl-carousel): small fixes for marquee example
ala-n Jun 18, 2023
26e9eb1
refactor(esl-carousel): change loading structure to simplify it for now
ala-n Jun 18, 2023
0af6f27
refactor(esl-carousel): blinking while `commit` stage after touch move
julia-murashko Jul 10, 2023
5531435
Merge remote-tracking branch 'origin/epic/esl-carousel' into epic/esl…
julia-murashko Jul 10, 2023
f8b9f2f
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
ala-n Jul 11, 2023
fd90c5b
Merge pull request #1785 from exadel-inc/epic/esl-carousel-temp
ala-n Jul 11, 2023
707efdd
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
ala-n Jul 18, 2023
61c828f
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
ala-n Jul 18, 2023
3e77a60
Merge remote-tracking branch 'origin/epic/esl-carousel' into epic/esl…
ala-n Jul 18, 2023
6ae13a9
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
ala-n Sep 12, 2023
6b3fc2c
Merge remote-tracking branch 'origin/main' into epic/esl-carousel
julia-murashko Oct 17, 2023
41b62f7
refactor(esl-carousel): use ready decorator
julia-murashko Dec 4, 2023
1644cc2
refactor(esl-carousel): create esl slide and vertical carousel
julia-murashko Dec 4, 2023
14fb2ca
refactor(esl-carousel): update semicolons
julia-murashko Dec 4, 2023
fb38759
Merge branch 'main-beta' into epic/esl-carousel
ala-n Dec 27, 2023
07dea6d
chore: update according 5.0.0 version deprecations
ala-n Dec 28, 2023
fb69f43
Merge branch 'main-beta' of github.com:exadel-inc/esl into epic/esl-c…
ala-n Dec 30, 2023
5961f6a
Merge branch 'main-beta' into epic/esl-carousel
ala-n Jan 4, 2024
3569274
Merge branch 'main-beta' of github.com:exadel-inc/esl into epic/esl-c…
ala-n Jan 6, 2024
a421428
refactor(esl-carousel): fix keyboard support mixin
ala-n Jan 6, 2024
748390c
feat(esl-carousel): add `esl-carousel` mouse wheel control support mixin
ala-n Jan 6, 2024
f9e6742
Merge branch 'main-beta' into epic/esl-carousel
ala-n Jan 18, 2024
2577e8b
refactor(esl-carousel): eliminate css renderer until it's become prod…
ala-n Jan 7, 2024
b738e5f
refactor(esl-carousel): move orientation to the `vertical` config pro…
ala-n Jan 10, 2024
880e92a
refactor(esl-carousel): rework renderer creation process
ala-n Jan 10, 2024
b6cc16f
refactor(esl-carousel): renderer API improvements
ala-n Jan 11, 2024
a3e7c5c
style(esl-carousel): remove unused import statement
ala-n Jan 11, 2024
58154aa
style(esl-carousel): rename renderer to configuration compare method
ala-n Jan 12, 2024
e4fb592
style(esl-carousel): fix prettier warnings
ala-n Jan 12, 2024
970b6aa
refactor(esl-carousel): add pre-active marker
julia-murashko Jan 15, 2024
cc70537
refactor(esl-carousel): pr update
julia-murashko Jan 23, 2024
019715c
feat(esl-event-listener): add `isVertical` property to `ESLSwipeGestu…
NastaLeo Jan 24, 2024
480bac1
feat(esl-carousel): `ESLCarouselTouchMixin` plugin is ready for usage…
NastaLeo Jan 24, 2024
92d77b5
style(esl-carousel): change examples
NastaLeo Jan 25, 2024
3199e9d
style(esl-carousel): change examples
NastaLeo Jan 25, 2024
747213e
style(esl-carousel): change examples
NastaLeo Jan 25, 2024
e762179
Merge pull request #2170 from exadel-inc/feat/esl-carousel-preactive
ala-n Jan 25, 2024
4a86af5
refactor(esl-carousel): fix defaults and apply review notes
ala-n Jan 26, 2024
47500d9
Merge pull request #2190 from exadel-inc/feat/esl-carousel-touch
ala-n Jan 26, 2024
bc3ad68
Merge branch 'main-beta' of github.com:exadel-inc/esl into epic/esl-c…
ala-n Jan 26, 2024
a5a3b78
Merge branch 'main-beta' into epic/esl-carousel
ala-n Jan 29, 2024
afaaa40
refactor(esl-carousel): fix a11y for carousel control
ala-n Jan 29, 2024
e55915d
Merge branch 'main-beta' into epic/esl-carousel
ala-n Jan 29, 2024
0d88e71
refactor(esl-carousel): carousel touch plugin reworked to respect the…
ala-n Jan 30, 2024
6ec23ab
docs(esl-carousel): apply comments spelling fixes
ala-n Jan 30, 2024
f26c3f5
refactor(esl-carousel): refactor touch plugin to have conditions chai…
ala-n Jan 31, 2024
70e4a72
Merge remote-tracking branch 'origin/feat/touch-support-extended' int…
ala-n Jan 31, 2024
9e50caf
refactor(esl-carousel): remove unused variable
ala-n Jan 31, 2024
7ddf9ae
refactor(esl-carousel): touch plugin refactoring and tests
ala-n Feb 1, 2024
eb918be
refactor(esl-carousel): refactor touch plugin conditions
ala-n Feb 1, 2024
7c0a128
Merge pull request #2202 from exadel-inc/feat/touch-support-extended
ala-n Feb 1, 2024
eaea901
refactor(esl-carousel): improve carousel a11ty
ala-n Feb 6, 2024
0bb5eda
Merge branch 'main-beta' into epic/esl-carousel
ala-n Feb 7, 2024
dee4dfb
refactor(esl-carousel): fix jumping during commit animation
julia-murashko Feb 7, 2024
4105755
refactor(esl-carousel): fix the final position of the slide
julia-murashko Feb 7, 2024
e875564
Merge pull request #2224 from exadel-inc/feat/esl-carousel-rework
ala-n Feb 12, 2024
f0d76c8
refactor(esl-carousel): add `proactive` processing logic to relation …
ala-n Feb 12, 2024
6a87e41
refactor(esl-carousel): refactor renderers structure
ala-n Feb 12, 2024
e058bed
refactor(slide): fix css mode renderer name
ala-n Feb 12, 2024
2a99e4b
Merge branch 'main-beta' into epic/esl-carousel
ala-n Feb 15, 2024
ae002fa
refactor(esl-carousel): refactor slide carousel animation
julia-murashko Mar 12, 2024
342baa0
refactor(esl-carousel): update slide carousel
julia-murashko Mar 15, 2024
f070877
refactor(esl-carousel): update animation marker
julia-murashko Mar 20, 2024
7168e0e
Merge pull request #2284 from exadel-inc/feat/esl-carousel-rework
ala-n Apr 7, 2024
bdfea06
Merge branch 'main-beta' into epic/esl-carousel
ala-n Apr 7, 2024
20d337d
refactor(esl-carousel): fix default renderer uninitializer
ala-n Apr 7, 2024
dffbc53
fix(esl-utils): fix event cancellation handling
ala-n Apr 7, 2024
2b54da7
refactor(esl-carousel): small progressive update of overflow CSS opti…
ala-n Apr 7, 2024
6d5e211
refactor(esl-carousel): simplify change event dispatching
ala-n Apr 7, 2024
d581c79
refactor(esl-carousel): rework `default` carousel renderer to use neg…
ala-n Apr 7, 2024
7e41bfd
refactor(esl-carousel): change carousel JS API
ala-n Apr 8, 2024
f6f07e4
refactor(esl-carousel): update ordering behaviour and ootb possibilit…
ala-n Apr 8, 2024
63bebc9
refactor(esl-carousel): cosmetic updates in default renderer logic
ala-n Apr 8, 2024
cff2a78
refactor(esl-carousel): introduce `none` renderer to make carousel in…
ala-n Apr 8, 2024
6659889
refactor(esl-carousel): rework a11ty, introduce `next`/`prev` markers
ala-n Apr 8, 2024
eb8c6d1
refactor(esl-carousel): fix active/prev/next markers calculation
ala-n Apr 9, 2024
78b29c7
chore: remove outdated example page
ala-n Apr 9, 2024
003f85a
chore: temporary remove `css.renderer`
ala-n Apr 9, 2024
1400b6e
Merge remote-tracking branch 'origin/main-beta' into epic/esl-carousel
ala-n Apr 9, 2024
d6d6e34
style(esl-carousel): apply cosmetic updates from code review
ala-n Apr 9, 2024
d27dcb2
refactor(esl-carousel): fix clearing of the memoized `*Rules` propert…
ala-n Apr 9, 2024
bafd8d0
test(esl-carousel): `ESLCarouselRenderer` base class tests
ala-n Apr 10, 2024
a0eb3ae
chore: fix duplicated `sideEffects` path
ala-n Apr 10, 2024
e0b2836
refactor(esl-carousel): add missing TSDoc, some small utils simplific…
ala-n Apr 10, 2024
b415431
style(esl-carousel): review suggestions for `esl-carousel.nav.dots.ts`
ala-n Apr 10, 2024
765795e
Merge remote-tracking branch 'origin/main-beta' into epic/esl-carousel
ala-n Apr 10, 2024
c60b29e
refactor(esl-carousel): rename slide change events
ala-n Apr 10, 2024
462df5b
style(esl-carousel): fix points found during review
ala-n Apr 10, 2024
0bf3788
refactor(esl-carousel): refactor subscription actions of `ESLCarousel…
ala-n Apr 10, 2024
1f7c88e
Merge remote-tracking branch 'origin/main-beta' into epic/esl-carousel
ala-n Apr 10, 2024
1e53470
docs(esl-carousel): fix TSDoc on `esl-carousel.nav.mixin`
ala-n Apr 11, 2024
56e8a01
refactor(esl-carousel): replace confusing flexbox as a slide layout b…
ala-n Apr 11, 2024
e2b0936
chore: fix `sideEffects` list of core `package.json`
ala-n Apr 12, 2024
0d4909f
docs(esl-carousel): small doc update `esl-carousel.slide.ts`
ala-n Apr 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,15 @@
"modules/lib.js",
"modules/esl-media/providers/**/*.js",
"modules/esl-share/actions/**/*.js",
"modules/esl-carousel/core.js",
"modules/esl-carousel/renderers/**/*.js",
"modules/esl-share/buttons/**/*.js",
"src/modules/lib.js",
ala-n marked this conversation as resolved.
Show resolved Hide resolved
"src/modules/esl-media/providers/**/*.ts",
"src/modules/esl-share/actions/**/*.ts",
"src/modules/esl-share/buttons/**/*.ts",
"src/modules/esl-carousel/core.ts",
"src/modules/esl-carousel/renderers/**/*.ts",
"src/modules/lib.ts",
"polyfills/**/*.js",
"src/polyfills/**/*.ts"
Expand Down
17 changes: 17 additions & 0 deletions site/src/common/card.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
.card {
position: relative;
display: flex;
width: 100%;
height: 100%;
min-height: 100px;
flex-direction: column;
background: #fff;
box-shadow: 1px 1px 4px 2px rgba(0, 0, 0, 0.3);

&-image {
flex: 0 0 auto;
}
&-content {
flex: 1 1 auto;
}
}
76 changes: 76 additions & 0 deletions site/src/esl-carousel-demo/test-carousel.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
@import (reference) '../common/variables.less';

.marquee-carousel [esl-carousel-container] {
esl-carousel {
margin: 0;
padding: 0;
}
.img-container {
width: 100%;
height: 100%;
}

button.arrow-prev {
left: 0;
&::before {
background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' fill='%23fff'%3E%3Cpath d='M31 40 16 25l15-15 2 2-13 13 13 13z'/%3E%3C/svg%3E");
}
}
button.arrow-next {
right: 0;
&::before {
background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' fill='%23fff'%3E%3Cpath d='M31 40 16 25l15-15 2 2-13 13 13 13z'/%3E%3C/svg%3E");
}
}
button.arrow-prev::before,
button.arrow-next::before {
width: 60px;
height: 60px;
}
.carousel-dots-wrapper {
position: absolute;
bottom: 50px;
left: 50%;
margin-right: -50%;
transform: translate(-50%, 0%);
@media @lg-xl {
display: none;
}
}

&.main-carousel {
div[data-slides-area] {
min-height: 500px;
gap: 0;
}
esl-carousel-slide {
padding: 0;
}
button.arrow-prev,
button.arrow-next {
@media @lg-xl {
display: none;
}
}
}

&.marquee-nav-carousel {
padding: 0 60px;
esl-carousel-slide {
margin: 10px 0;
}
&::before {
position: absolute;
content: '';
background: black;
height: 100%;
width: 100%;
top: 0;
left: 0;
overflow: hidden;
}
@media @xs-md {
display: none;
}
}
}
2 changes: 2 additions & 0 deletions site/src/localdev.less
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
@import './common/badge.less';
@import './common/buttons.less';
@import './common/code.less';
@import './common/card.less';
@import './common/links.less';
@import './common/close.less';
@import './common/containers.less';
Expand All @@ -38,6 +39,7 @@
@import './collection-grid/collection-grid.less';
@import './esl-share/esl-share.less';
@import './esl-events-demo/esl-events-demo.less';
@import './esl-carousel-demo/test-carousel.less';

@import './back-link/back-link';

Expand Down
20 changes: 19 additions & 1 deletion site/src/localdev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,16 @@ import {
ESLAnimate,
ESLAnimateMixin,
ESLRelatedTarget,
ESLOpenState
ESLOpenState,

ESLCarousel,
ESLCarouselNavDots,
ESLCarouselNavMixin,
ESLCarouselTouchMixin,
ESLCarouselWheelMixin,
ESLCarouselKeyboardMixin,
ESLCarouselRelateToMixin,
ESLCarouselAutoplayMixin
} from '@exadel/esl/modules/all';

import {ESLRandomText} from '@exadel/esl/modules/esl-random-text/core';
Expand Down Expand Up @@ -106,6 +115,15 @@ ESLNote.register();
ESLNoteIgnore.register();
ESLTooltip.register();

ESLCarousel.register();
ESLCarouselNavDots.register();
ESLCarouselNavMixin.register();
ESLCarouselTouchMixin.register();
ESLCarouselKeyboardMixin.register();
ESLCarouselRelateToMixin.register();
ESLCarouselAutoplayMixin.register();
ESLCarouselWheelMixin.register();

ESLAnimate.register();
ESLAnimateMixin.register();

Expand Down
59 changes: 59 additions & 0 deletions site/views/examples/carousel.11tydata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
cards:
- name: Slide 1
color: #f0f
- name: Slide 2
color: #f0f
- name: Slide 3
color: #f0f
- name: Slide 4
color: #f0f
- name: Slide 5
color: #f0f
- name: Slide 6
color: #f0f
- name: Slide 7
color: #f0f
- name: Slide 8
color: #f0f
- name: Slide 9
color: #f0f
- name: Slide 10
color: #f0f
- name: Slide 11
color: #f0f
- name: Slide 12
color: #f0f
- name: Slide 13
color: #f0f
- name: Slide 14
color: #f0f
- name: Slide 15
color: #f0f
- name: Slide 16
color: #f0f

items:
- name: 1.Rome
background: '#FED6BC'
- name: 2.Paris
background: '#FFFADD'
- name: 3.Madrid
background: '#DEF7FE'
- name: 4.London
background: '#E7ECFF'
- name: 5.Berlin
background: '#C3FBD8'
- name: 6.Lisbon
background: '#FDEED9'
- name: 7.Barcelona
background: '#F6FFF8'
- name: 8.New York
background: '#B5F2EA'
- name: 9.Vena
background: '#C6D8FF'
- name: 10.Bern
background: '#F2E8C9'
- name: 11.Tokio
background: '#F5FFFA'
- name: 12.Warsaw
background: '#CCCCFF'
9 changes: 9 additions & 0 deletions site/views/examples/carousel.marquee.11tydata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
slides:
- name: Slide 1
- name: Slide 2
- name: Slide 3
- name: Slide 4
- name: Slide 5
- name: Slide 6
- name: Slide 7
- name: Slide 8
55 changes: 55 additions & 0 deletions site/views/examples/carousel.marquee.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
layout: content
title: Carousel Marquee
seoTitle: Carousel UI examples based on ESL web components
name: Carousel Marquee
tags: [examples, draft]
icon: examples/carousel.svg
---

<section class="marquee-carousel">
<div class="flex-column main-carousel" esl-carousel-container>
<esl-carousel id="main-carousel"
type="default"
esl-carousel-touch
esl-carousel-relate-to="#nav-carousel">
<div data-slides-area>
{% for item in slides %}
<esl-carousel-slide>
<div class="img-container">
<esl-image mode="cover" lazy
data-alt="{{ 'Carousel slide ' + loop.index }}"
data-src="{{ '/assets/carousel/' + loop.index + '-sm.jpg' | url }}"></esl-image>
</div>
</esl-carousel-slide>
{% endfor %}
</div>
</esl-carousel>

<esl-carousel-dots class="carousel-dots-wrapper"></esl-carousel-dots>
</div>
<div class="flex-column marquee-nav-carousel" esl-carousel-container>
<button class="esl-carousel-arrow inner icon-arrow-prev" esl-carousel-nav="-4"></button>

<esl-carousel id="nav-carousel"
esl-carousel-touch
type="default"
count="5">
<div data-slides-area>
{% for item in slides %}
<esl-carousel-slide>
<div class="img-container img-container-4-3"
esl-carousel-nav="slide:{{ loop.index - 1 }}"
esl-carousel-nav-target="#main-carousel">
<esl-image mode="cover" lazy
data-alt="{{ 'Carousel slide ' + loop.index }}"
data-src="{{ '/assets/carousel/' + loop.index + '-sm.jpg' | url }}"></esl-image>
</div>
</esl-carousel-slide>
{% endfor %}
</div>
</esl-carousel>

<button class="esl-carousel-arrow inner icon-arrow-next" esl-carousel-nav="+4"></button>
</div>
</section>
Loading
Loading