peek-carousel 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +238 -0
  3. package/README.md +234 -0
  4. package/dist/peek-carousel.css +1 -0
  5. package/dist/peek-carousel.esm.js +1368 -0
  6. package/dist/peek-carousel.esm.js.map +1 -0
  7. package/dist/peek-carousel.esm.min.js +8 -0
  8. package/dist/peek-carousel.esm.min.js.map +1 -0
  9. package/dist/peek-carousel.js +1376 -0
  10. package/dist/peek-carousel.js.map +1 -0
  11. package/dist/peek-carousel.min.css +1 -0
  12. package/dist/peek-carousel.min.js +8 -0
  13. package/dist/peek-carousel.min.js.map +1 -0
  14. package/examples/example-built.html +367 -0
  15. package/examples/example.css +2216 -0
  16. package/examples/example.js +404 -0
  17. package/examples/example.min.css +1 -0
  18. package/examples/example.min.js +1 -0
  19. package/package.json +92 -0
  20. package/src/core/PeekCarousel.js +294 -0
  21. package/src/core/config.js +49 -0
  22. package/src/core/constants.js +73 -0
  23. package/src/modules/Animator.js +244 -0
  24. package/src/modules/AutoRotate.js +43 -0
  25. package/src/modules/EventHandler.js +390 -0
  26. package/src/modules/Navigator.js +116 -0
  27. package/src/modules/UIManager.js +170 -0
  28. package/src/peek-carousel.d.ts +34 -0
  29. package/src/styles/base/_accessibility.scss +16 -0
  30. package/src/styles/base/_mixins.scss +7 -0
  31. package/src/styles/base/_variables.scss +75 -0
  32. package/src/styles/components/_carousel.scss +5 -0
  33. package/src/styles/components/_counter.scss +109 -0
  34. package/src/styles/components/_indicators.scss +154 -0
  35. package/src/styles/components/_navigation.scss +193 -0
  36. package/src/styles/components/carousel/_carousel-base.scss +99 -0
  37. package/src/styles/components/carousel/_carousel-classic.scss +76 -0
  38. package/src/styles/components/carousel/_carousel-mixins.scss +18 -0
  39. package/src/styles/components/carousel/_carousel-radial.scss +72 -0
  40. package/src/styles/components/carousel/_carousel-stack.scss +84 -0
  41. package/src/styles/components/carousel/_carousel-variables.scss +118 -0
  42. package/src/styles/peek-carousel.scss +11 -0
  43. package/src/utils/dom.js +53 -0
  44. package/src/utils/helpers.js +46 -0
  45. package/src/utils/icons.js +92 -0
  46. package/src/utils/preloader.js +69 -0
  47. package/types/index.d.ts +34 -0
@@ -0,0 +1,367 @@
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PeekCarousel - iPhone 17 Pro inspired carousel library</title>
7
+ <meta name="description" content="A modular carousel library with 3 layout modes (Stack/Card, Radial, Classic) featuring peek effect, touch/drag support, and full accessibility.">
8
+ <meta name="keywords" content="carousel, slider, peek, stack, card, swipe, gallery, apple, responsive, touch, drag, mobile, vanilla javascript, ES6">
9
+ <meta name="author" content="PeekCarousel">
10
+ <meta name="theme-color" content="#667eea">
11
+
12
+ <meta property="og:type" content="website">
13
+ <meta property="og:url" content="https://lledellebell.github.io/peek-carousel/examples/example-built.html">
14
+ <meta property="og:title" content="PeekCarousel - iPhone 17 Pro inspired carousel library">
15
+ <meta property="og:description" content="A modular carousel library with 3 layout modes (Stack/Card, Radial, Classic) featuring peek effect, touch/drag support, and full accessibility.">
16
+ <meta property="og:image" content="https://lledellebell.github.io/peek-carousel/public/assets/share_image.png">
17
+ <meta property="og:image:width" content="1200">
18
+ <meta property="og:image:height" content="630">
19
+ <meta property="og:image:alt" content="PeekCarousel Demo - Interactive carousel with peek effect">
20
+ <meta property="og:site_name" content="PeekCarousel">
21
+ <meta property="og:locale" content="ko_KR">
22
+
23
+ <meta property="twitter:card" content="summary_large_image">
24
+ <meta property="twitter:url" content="https://lledellebell.github.io/peek-carousel/examples/example-built.html">
25
+ <meta property="twitter:title" content="PeekCarousel - iPhone 17 Pro inspired carousel library">
26
+ <meta property="twitter:description" content="A modular carousel library with 3 layout modes (Stack/Card, Radial, Classic) featuring peek effect, touch/drag support, and full accessibility.">
27
+ <meta property="twitter:image" content="https://lledellebell.github.io/peek-carousel/public/assets/share_image.png">
28
+ <meta property="twitter:image:alt" content="PeekCarousel Demo - Interactive carousel with peek effect">
29
+
30
+ <link rel="canonical" href="https://lledellebell.github.io/peek-carousel/examples/example-built.html">
31
+
32
+ <link rel="icon" type="image/png" sizes="32x32" href="../public/favicon-32x32.png">
33
+ <link rel="icon" type="image/png" sizes="16x16" href="../public/favicon-16x16.png">
34
+ <link rel="apple-touch-icon" sizes="180x180" href="../public/apple-touch-icon.png">
35
+
36
+ <link rel="stylesheet" href="../dist/peek-carousel.min.css">
37
+ <link rel="stylesheet" href="./example.min.css">
38
+ </head>
39
+ <body>
40
+ <div class="wrapper">
41
+ <a href="https://github.com/lledellebell/peek-carousel" class="github__link circle__button" target="_blank" rel="noopener noreferrer" aria-label="View source on GitHub" data-tooltip="View on GitHub">
42
+ <svg width="32" height="32" viewBox="0 0 16 16" fill="currentColor">
43
+ <path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/>
44
+ </svg>
45
+ <span class="tooltip">View on GitHub</span>
46
+ </a>
47
+
48
+ <header class="intro__text">
49
+ <h1>PeekCarousel</h1>
50
+ <p>스와이프 또는 드래그로 이동하세요</p>
51
+ </header>
52
+
53
+ <div class="top__controls">
54
+ <button class="keyboard__toggle circle__button" aria-label="Toggle keyboard shortcuts panel" aria-expanded="false" data-tooltip="Keyboard Shortcuts">
55
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
56
+ <rect x="2" y="4" width="20" height="16" rx="2"/>
57
+ <path d="M6 8h.01M10 8h.01M14 8h.01M18 8h.01M8 12h.01M12 12h.01M16 12h.01M7 16h10"/>
58
+ </svg>
59
+ <span class="tooltip">키보드 단축키</span>
60
+ </button>
61
+
62
+ <button class="mouse__toggle circle__button" aria-label="Toggle mouse and wheel panel" aria-expanded="false" data-tooltip="Mouse & Wheel">
63
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
64
+ <path d="M12 2C8.5 2 6 4.5 6 8v8c0 3.5 2.5 6 6 6s6-2.5 6-6V8c0-3.5-2.5-6-6-6z"/>
65
+ <path d="M12 6v4"/>
66
+ </svg>
67
+ <span class="tooltip">마우스 & 휠</span>
68
+ </button>
69
+
70
+ <button class="controls__toggle circle__button" aria-label="Toggle settings panel" aria-expanded="false" data-tooltip="Settings">
71
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
72
+ <path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/>
73
+ <circle cx="12" cy="12" r="3"/>
74
+ </svg>
75
+ <span class="tooltip">설정</span>
76
+ </button>
77
+
78
+ <button class="share__toggle circle__button" aria-label="Toggle share panel" aria-expanded="false" data-tooltip="Share">
79
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
80
+ <circle cx="18" cy="5" r="3"/>
81
+ <circle cx="6" cy="12" r="3"/>
82
+ <circle cx="18" cy="19" r="3"/>
83
+ <line x1="8.59" y1="13.51" x2="15.42" y2="17.49"/>
84
+ <line x1="15.41" y1="6.51" x2="8.59" y2="10.49"/>
85
+ </svg>
86
+ <span class="tooltip">공유하기</span>
87
+ </button>
88
+ </div>
89
+
90
+ <div class="keyboard__panel">
91
+ <div class="keyboard__header">
92
+ <h3>키보드 단축키</h3>
93
+ </div>
94
+ <div class="keyboard__shortcuts">
95
+ <div class="shortcut__item">
96
+ <kbd class="shortcut__key">←</kbd>
97
+ <span class="shortcut__description">이전 슬라이드</span>
98
+ </div>
99
+ <div class="shortcut__item">
100
+ <kbd class="shortcut__key">→</kbd>
101
+ <span class="shortcut__description">다음 슬라이드</span>
102
+ </div>
103
+ <div class="shortcut__item">
104
+ <kbd class="shortcut__key">Home</kbd>
105
+ <span class="shortcut__description">첫 번째 슬라이드</span>
106
+ </div>
107
+ <div class="shortcut__item">
108
+ <kbd class="shortcut__key">End</kbd>
109
+ <span class="shortcut__description">마지막 슬라이드</span>
110
+ </div>
111
+ <div class="shortcut__item">
112
+ <kbd class="shortcut__key shortcut__key--range">1 - 9</kbd>
113
+ <span class="shortcut__description">슬라이드 번호로 이동</span>
114
+ </div>
115
+ <div class="shortcut__item">
116
+ <kbd class="shortcut__key">Space</kbd>
117
+ <span class="shortcut__description">자동 회전 토글</span>
118
+ </div>
119
+ </div>
120
+ </div>
121
+
122
+ <div class="mouse__panel">
123
+ <div class="mouse__header">
124
+ <h3>마우스 & 휠</h3>
125
+ </div>
126
+ <div class="mouse__controls">
127
+ <div class="control__item">
128
+ <div class="control__icon">
129
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
130
+ <path d="M12 2C8.5 2 6 4.5 6 8v8c0 3.5 2.5 6 6 6s6-2.5 6-6V8c0-3.5-2.5-6-6-6z"/>
131
+ <path d="M12 6v4"/>
132
+ </svg>
133
+ </div>
134
+ <div class="control__content">
135
+ <span class="control__title">마우스 휠 (수직)</span>
136
+ <span class="control__description">위/아래 스크롤로 슬라이드 이동</span>
137
+ </div>
138
+ </div>
139
+ <div class="control__item">
140
+ <div class="control__icon">
141
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
142
+ <rect x="3" y="5" width="18" height="14" rx="2"/>
143
+ <path d="M8 12h8M12 8v8"/>
144
+ </svg>
145
+ </div>
146
+ <div class="control__content">
147
+ <span class="control__title">트랙패드 (수직)</span>
148
+ <span class="control__description">두 손가락 상하 스크롤</span>
149
+ </div>
150
+ </div>
151
+ <div class="control__item">
152
+ <div class="control__icon">
153
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
154
+ <rect x="3" y="5" width="18" height="14" rx="2"/>
155
+ <path d="M8 12h8"/>
156
+ </svg>
157
+ </div>
158
+ <div class="control__content">
159
+ <span class="control__title">트랙패드 (수평)</span>
160
+ <span class="control__description">두 손가락 좌우 스와이프</span>
161
+ </div>
162
+ </div>
163
+ <div class="control__item">
164
+ <div class="control__icon">
165
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
166
+ <path d="M12 5v14M5 12h14"/>
167
+ </svg>
168
+ </div>
169
+ <div class="control__content">
170
+ <span class="control__title">마우스 드래그</span>
171
+ <span class="control__description">클릭 후 좌우로 드래그하여 이동</span>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </div>
176
+
177
+ <div class="controls__panel">
178
+ <div class="controls__header">
179
+ <h3>설정</h3>
180
+ </div>
181
+
182
+ <!-- 레이아웃 모드 버튼 그룹 -->
183
+ <div class="control__section">
184
+ <label class="section__label">레이아웃 모드</label>
185
+ <div class="button__group" role="group" aria-label="Layout mode selection">
186
+ <button class="button__group-item button__group-item--active" data-layout="stack" aria-pressed="true">
187
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
188
+ <rect x="3" y="3" width="7" height="7"/>
189
+ <rect x="3" y="14" width="7" height="7"/>
190
+ <rect x="14" y="3" width="7" height="7"/>
191
+ <rect x="14" y="14" width="7" height="7"/>
192
+ </svg>
193
+ 스택
194
+ </button>
195
+ <button class="button__group-item" data-layout="radial" aria-pressed="false">
196
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
197
+ <circle cx="12" cy="12" r="10"/>
198
+ <circle cx="12" cy="12" r="6"/>
199
+ <circle cx="12" cy="12" r="2"/>
200
+ </svg>
201
+ 원형
202
+ </button>
203
+ <button class="button__group-item" data-layout="classic" aria-pressed="false">
204
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
205
+ <rect x="2" y="7" width="20" height="10" rx="2"/>
206
+ <line x1="7" y1="12" x2="17" y2="12"/>
207
+ </svg>
208
+ 클래식
209
+ </button>
210
+ </div>
211
+ </div>
212
+
213
+ <!-- UI 토글 스위치 -->
214
+ <div class="control__section">
215
+ <label class="section__label">UI 요소</label>
216
+
217
+ <div class="switch__group">
218
+ <label class="switch__item">
219
+ <span class="switch__label">네비게이션</span>
220
+ <input type="checkbox" id="showNavigation" checked>
221
+ <span class="switch__slider"></span>
222
+ </label>
223
+
224
+ <label class="switch__item">
225
+ <span class="switch__label">카운터</span>
226
+ <input type="checkbox" id="showCounter" checked>
227
+ <span class="switch__slider"></span>
228
+ </label>
229
+
230
+ <label class="switch__item">
231
+ <span class="switch__label">인디케이터</span>
232
+ <input type="checkbox" id="showIndicators" checked>
233
+ <span class="switch__slider"></span>
234
+ </label>
235
+
236
+ <label class="switch__item">
237
+ <span class="switch__label">자동 회전</span>
238
+ <input type="checkbox" id="showAutoRotateButton" checked>
239
+ <span class="switch__slider"></span>
240
+ </label>
241
+ </div>
242
+ </div>
243
+ </div>
244
+
245
+ <div class="share__panel">
246
+ <div class="share__header">
247
+ <h3>공유하기</h3>
248
+ </div>
249
+ <div class="share__buttons">
250
+ <a href="https://twitter.com/intent/tweet?url=https://lledellebell.github.io/peek-carousel/examples/example-built.html&text=PeekCarousel - iPhone 17 Pro inspired carousel library"
251
+ target="_blank"
252
+ rel="noopener noreferrer"
253
+ class="share__item share__item--twitter">
254
+ <div class="share__icon">
255
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
256
+ <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>
257
+ </svg>
258
+ </div>
259
+ <div class="share__content">
260
+ <span class="share__title">Twitter</span>
261
+ <span class="share__description">트위터에 공유하기</span>
262
+ </div>
263
+ </a>
264
+ <a href="https://www.facebook.com/sharer/sharer.php?u=https://lledellebell.github.io/peek-carousel/examples/example-built.html"
265
+ target="_blank"
266
+ rel="noopener noreferrer"
267
+ class="share__item share__item--facebook">
268
+ <div class="share__icon">
269
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
270
+ <path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/>
271
+ </svg>
272
+ </div>
273
+ <div class="share__content">
274
+ <span class="share__title">Facebook</span>
275
+ <span class="share__description">페이스북에 공유하기</span>
276
+ </div>
277
+ </a>
278
+ <a href="https://www.linkedin.com/sharing/share-offsite/?url=https://lledellebell.github.io/peek-carousel/examples/example-built.html"
279
+ target="_blank"
280
+ rel="noopener noreferrer"
281
+ class="share__item share__item--linkedin">
282
+ <div class="share__icon">
283
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
284
+ <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
285
+ </svg>
286
+ </div>
287
+ <div class="share__content">
288
+ <span class="share__title">LinkedIn</span>
289
+ <span class="share__description">링크드인에 공유하기</span>
290
+ </div>
291
+ </a>
292
+ <a href="https://www.reddit.com/submit?url=https://lledellebell.github.io/peek-carousel/examples/example-built.html&title=PeekCarousel - iPhone 17 Pro inspired carousel library"
293
+ target="_blank"
294
+ rel="noopener noreferrer"
295
+ class="share__item share__item--reddit">
296
+ <div class="share__icon">
297
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
298
+ <path d="M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.232-.095z"/>
299
+ </svg>
300
+ </div>
301
+ <div class="share__content">
302
+ <span class="share__title">Reddit</span>
303
+ <span class="share__description">레딧에 공유하기</span>
304
+ </div>
305
+ </a>
306
+ </div>
307
+ </div>
308
+
309
+ <div class="peek-carousel" id="myCarousel">
310
+ <div class="peek-carousel__track">
311
+ <div class="peek-carousel__item">
312
+ <figure class="peek-carousel__figure">
313
+ <img class="peek-carousel__image" src="https://picsum.photos/id/1015/650/490.webp" alt="Image 1" width="650" height="490" />
314
+ <figcaption class="peek-carousel__caption">
315
+ <span class="peek-carousel__caption-title">Image 1</span>
316
+ <span class="peek-carousel__caption-subtitle">Beautiful landscape</span>
317
+ </figcaption>
318
+ </figure>
319
+ </div>
320
+
321
+ <div class="peek-carousel__item">
322
+ <figure class="peek-carousel__figure">
323
+ <img class="peek-carousel__image" src="https://picsum.photos/id/1018/650/490.webp" alt="Image 2" width="650" height="490" />
324
+ <figcaption class="peek-carousel__caption">
325
+ <span class="peek-carousel__caption-title">Image 2</span>
326
+ <span class="peek-carousel__caption-subtitle">Mountain view</span>
327
+ </figcaption>
328
+ </figure>
329
+ </div>
330
+
331
+ <div class="peek-carousel__item">
332
+ <figure class="peek-carousel__figure">
333
+ <img class="peek-carousel__image" src="https://picsum.photos/id/1019/650/490.webp" alt="Image 3" width="650" height="490" />
334
+ <figcaption class="peek-carousel__caption">
335
+ <span class="peek-carousel__caption-title">Image 3</span>
336
+ <span class="peek-carousel__caption-subtitle">Ocean waves</span>
337
+ </figcaption>
338
+ </figure>
339
+ </div>
340
+
341
+ <div class="peek-carousel__item">
342
+ <figure class="peek-carousel__figure">
343
+ <img class="peek-carousel__image" src="https://picsum.photos/id/1025/650/490.webp" alt="Image 4" width="650" height="490" />
344
+ <figcaption class="peek-carousel__caption">
345
+ <span class="peek-carousel__caption-title">Image 4</span>
346
+ <span class="peek-carousel__caption-subtitle">Forest path</span>
347
+ </figcaption>
348
+ </figure>
349
+ </div>
350
+
351
+ <div class="peek-carousel__item">
352
+ <figure class="peek-carousel__figure">
353
+ <img class="peek-carousel__image" src="https://picsum.photos/id/1035/650/490.webp" alt="Image 5" width="650" height="490" />
354
+ <figcaption class="peek-carousel__caption">
355
+ <span class="peek-carousel__caption-title">Image 5</span>
356
+ <span class="peek-carousel__caption-subtitle">City lights</span>
357
+ </figcaption>
358
+ </figure>
359
+ </div>
360
+ </div>
361
+ </div>
362
+ </div>
363
+
364
+ <script src="../dist/peek-carousel.min.js"></script>
365
+ <script src="./example.min.js"></script>
366
+ </body>
367
+ </html>