דילוג לתוכן הראשי
Slider

Swiper Components

Live demos of every Swiper slider in the project. Each section has an #id you can reference.

swiperjs.com
🦊 engineClassicGrid: the slider the others are built on🐰 on ClassicGridbuilt on a ClassicGrid, or joined to one by swiperId🐬 add-onadded to a slider you already have: an attribute or a class🐱 ClassicGrid propnot a slider: one prop on a ClassicGrid, under section 1🐶 renderSlide supporttakes your slide template, so it fits any design⛓️‍👮‍♂️ מבנה קשיחdraws its own slide from fixed fields (in the box under the title)

שים לב: נדיר שיש במובייל קונטיינר עם רווח בצדדים: הסליידר נראה חתוך.

<div className="uk-container [--uk-container-padding-horizontal-sm:0]">   // no side padding on a phone
<ClassicGrid bleedMobile … />                                              // ClassicGrid: the track only, the title keeps it

ModeVisualCSS hookCurrent propLive example
arrows◀ ▶: two standalone buttons[swiper_btn_group]showArrows=true (default)§9 external arrows
pagination · bullets● ○ ○ ○: plain round dots (default), 6px gap inside combined nav.swiper-pagination-bullet-§1, §9
pagination · bullets-pill● ━ ○ ○: wide pill on active (opt-in per scope).swiper-pagination-bullet-active { width: 48px; border-radius: 10px }scoped CSS overridebrand scope
pagination · fill-in◯: SVG ring that fills on active[swiper_fill_in_pagination]fillInPagination=true-
pagination · fraction1 / 9: current / total counter[custom_renderFraction]fractionPagination=true§1 (lightboxNav)
pagination · on a pill● ○ ○ on a small dark pill over the picture (one picture per slide).uk-dots-pill (on a wrapper)a class, not a prop§7
combined◀ ● ━ ○ ○ ▶: single pill[swiper_nav_combined]fillInPagination=true / combinedNav=true§1, §9, §10
arrow_positionbottom · top · sides[swiper_btn_group][arrow_position]arrowPosition=§1 (lightboxNav, sides)

* fill-in inside combined nav, technically possible but looks bad. Design decision: combined always uses regular bullets.

* too many dots on a phone: paginationMobile={false}.

For every slider: components/Swiper/uk-swiper-shared.css, overridden on :root or a scope.

* Default (sample) = ערך מתוך ה-CSS לדוגמה בלבד, לא נמשך אוטומטית. ייתכן ושונה אחרי שינוי ב-uk-swiper-shared.css.

Theme & arrows

TokenDefault (sample)Affects
--swiper-theme-colorvar(--primary)Swiper's own theme color (on .swiper)
--swiper-pagination-colorvar(--primary)Pagination tint baseline (on .swiper)
--swiper-navigation-colorvar(--primary)Built-in nav color (on .swiper)
--uk-swiper-nav-glyph30% (a length works too)SwiperArrow glyph size, % of the button (NOT the button, see note below)

Pagination: bullets

TokenDefault (sample)Affects
--uk-swiper-pagination-active-colorvar(--primary)Active bullet / fill-in ring
--uk-swiper-pagination-inactive-colorcolor-mix(... foreground 25%)Inactive bullets
--uk-swiper-padding-bottom0pxBottom breathing room, opt-in per slider

Pagination: fraction (1 / 9)

TokenDefault (sample)Affects
--fraction-font-size1.25remCurrent / total numerals
--fraction-font-weight700Numerals weight
--fraction-colorvar(--uk-swiper-pagination-active-color)Numerals color
--fraction-divider-font-size0.75remThe "/" between numbers
--fraction-divider-font-weight400Divider weight
--fraction-divider-opacity0.5Divider opacity
--fraction-gap6pxGap between numerals + divider
--fraction-bg#f0f0f0Pill background
--fraction-padding4px 10pxPill inner padding
--fraction-border-radius100pxPill roundness
⚠ Arrow buttons are NOT fully tokenized.--uk-swiper-nav-glyph controls only the arrow glyph. The button itself (size, border, bg, opacity) is hard-coded in uk-swiper-shared.css on [swiper_btn_group] button (44px) and [swiper_nav_combined] button (36px). Demos that need different button styling currently override via CSS, this is the fragmentation gap.

#swiper-classic-grid

1. Classic Grid

🦊 engine🐶 renderSlide support

לאיזה תוכן4 עד 12 פריטים מאותו סוג (שירותים, חדרים, פרויקטים, מוצרים), לכל אחד תמונה וכותרת

השאלהיש רשימה של פריטים דומים שלא נכנסת בשורה אחת?

<ClassicGrid slides={slides} slidesPerView={3} slidesPerViewMobile={1.3} centerMode offsetBefore={100} offsetAfter={100} />
// freeMode: no snap, it drifts with momentum

offsetBefore / offsetAfter do not work with loop

Slide 1
01 · Alpine Vista
Switzerland
Slide 2
02 · Morning Mist
Pacific Northwest
Slide 3
03 · Deep Forest
Germany
Slide 4
04 · Golden Fields
Tuscany
Slide 5
05 · Lake Serenity
Norway
Slide 6
06 · Sunset Road
California
Slide 7
07 · Glass Tower
Manhattan

1.1 Centered peek

<ClassicGrid centerMode slidesPerView={1.33} slidesPerViewMobile={1.33} …rest of the code />
Sport shoes
Football goal
Sports gear
Cleats

1.2 lightboxNav

🐱 ClassicGrid prop
<ClassicGrid lightboxNav slidesPerView={1}>…</ClassicGrid>
// click the start half: prev · the end half: next
Slide 1
Slide 2
Slide 3
Slide 4

1.3 renderSlide

🐱 ClassicGrid prop
<ClassicGrid items={items} renderSlide={(item) => <MySlide {...item} />} />

This component library has been a game-changer for our design process. Everything just works.

AM
Alice Martin
Lead Designer

The attention to detail in every slider and animation is impressive. Highly recommend.

BT
Ben Torres
Frontend Engineer

We shipped our client project in half the time thanks to these reusable components.

CW
Clara Wu
Project Manager

Beautiful defaults with enough flexibility to customize for any brand.

DO
Daniel Okafor
Creative Director

Finally, scroll animations that feel polished without writing GSAP from scratch.

EL
Eva Lindström
UX Engineer

1.4 moreSlide

🐱 ClassicGrid prop

לאיזה תוכןשורה שמראה 4 עד 6 פריטים מתוך רשימה ארוכה, ובסופה כרטיס שמוביל לעמוד המלא

השאלההסליידר מראה רק חלק מרשימה שיש לה עמוד משלה?

<ClassicGrid slides={slides.slice(0, 5)} moreSlide={{ href: '/works' }} loop={false} />   // label defaults to "הצג עוד"

loop must be false

Another picture ratio: --uk-cg-more-ratio on .uk-cg-more

Slide 1
01 · Alpine Vista
Switzerland
Slide 2
02 · Morning Mist
Pacific Northwest
Slide 3
03 · Deep Forest
Germany
Slide 4
04 · Golden Fields
Tuscany
Slide 5
05 · Lake Serenity
Norway

1.5 externalScrollbarSelector

🐱 ClassicGrid prop

קו שאפשר לגרור, ליד החצים: ה-scrollbar של Swiper עצמו, באלמנט מחוץ לסליידר, בשורה של uk-swiper-bar. הסליידר מקבל רק selectors, אז השורה יושבת איפה שהעיצוב רוצה. לקוחות אוהבים את זה.

<div className="uk-swiper-bar">
  <button className="uk-swiper-bar__arrow" data-swiper-prev="feed" aria-label="הקודם">…</button>
  <button className="uk-swiper-bar__arrow" data-swiper-next="feed" aria-label="הבא">…</button>
  <span className="uk-swiper-bar__label">מהסטודיו</span>
  <div className="uk-swiper-line" data-swiper-line="feed" />
</div>
<ClassicGrid externalPrevSelector='[data-swiper-prev="feed"]' externalNextSelector='[data-swiper-next="feed"]'
             externalScrollbarSelector='[data-swiper-line="feed"]' pagination={false} … />

// tied by an attribute, not a class: a class is design and gets renamed in a design pass.
// One name per slider: the first match on the page wins.
// On a phone the arrows can go (max-uk-s:hidden on the buttons): you swipe, and the line shows it moves

--uk-swiper-line-track · --uk-swiper-line-fill · --uk-swiper-line-size · --uk-swiper-bar-arrow
מהסטודיו
Slide 1
01 · Alpine Vista
Switzerland
Slide 2
02 · Morning Mist
Pacific Northwest
Slide 3
03 · Deep Forest
Germany
Slide 4
04 · Golden Fields
Tuscany
Slide 5
05 · Lake Serenity
Norway
Slide 6
06 · Sunset Road
California
Slide 7
07 · Glass Tower
Manhattan

#swiper-scale-active

2. Creative Scale Active

לאיזה תוכןלפחות 5 תמונות חזקות שכל אחת עומדת לבד (עבודות, חללים, רגעים), כשהאמצעית בפוקוס

השאלהיש סדרה של תמונות שראוי להציג אחת-אחת במרכז הבמה?

⛓️‍👮‍♂️ מבנה קשיח{ src, title?, subtitle?, href? }השדות חובה בכל פריט, העיצוב גמיש

import ScaleActive from '@/components/Swiper/creative_scale_active/creative_scale_active'

<ScaleActive
  swiperId="works"
  slides={[
    { src: img1, title: 'Sunset Road', subtitle: 'California' },
    { src: img2, title: 'Peak View', subtitle: 'Alps' },
    // at least 5 for the loop to look right
  ]}
/>
slides: 5centeredSlides: trueloop: true
⚠ Note: This creative effect requires at least 5 slides to loop smoothly. With fewer slides, the centered 1.5-view layout causes visible gaps during loop cloning.
Slide 1
01 · Sunset Road
California
Slide 2
02 · Peak View
Alps
Slide 3
03 · Woodland
Bavaria
Slide 4
04 · Fjord Light
Scandinavia
Slide 5
05 · Golden Fields
Tuscany

#swiper-tabs-slider

3. Tabs Slider

🐶 renderSlide support

לאיזה תוכן3 עד 6 נושאים בעלי שם קצר, לכל אחד תמונה וטקסט (מתקני מלון, תחומי טיפול)

השאלהיש כמה נושאים שהגולש בוחר ביניהם לפי שם, ואחד מוצג בכל רגע?

Swiper APIThumbs module (the tab strip is the thumbs swiper)

import SwiperTabsSlider from '@/components/Swiper/swiper_tabs_slider/swiper_tabs_slider'

<SwiperTabsSlider
  swiperId="facilities"
  autoplay
  autoplayDelay={5000}
  items={facilities.map((f) => ({ ...f, label: f.title }))}   // label = the tab
  slides={facilities.map((f) => <FacilitySlide key={f.slug} {...f} />)}   // any slide, in a server page
/>
slides: 4autoplay: trueautoplayDelay: 4000loop (content): truerenderSlide: ✅ supported
Mountains
Alpine Peaks
Elevated views
Forest
Ancient Woods
Timeless canopy
Lake
Still Waters
Mirror reflections
Road
Open Road
Endless horizon

#swiper-sync-vertical-text

4. Sync with Vertical Text

לאיזה תוכןגלריה של יעדים או פרויקטים שלכל תמונה כותרת קצרה ומשפט (סיורים, נכסים)

השאלהיש סדרת תמונות שכל אחת צריכה שם ומשפט שמתחלפים איתה?

Swiper APIno module: slideToLoop(realIndex) on slideChange

⛓️‍👮‍♂️ מבנה קשיח{ title, src, label?, href? }השדות חובה בכל פריט, העיצוב גמיש

import SyncWithVerticalText from '@/components/Swiper/sync_with_vertical_text/SyncWithVerticalText'

<SyncWithVerticalText
  swiperId="tours"
  arrowColor="#fff"
  items={[
    { label: 'Nature', title: 'Nature Never Compromises', src: img1, href: '/tours/nature' },
    { label: 'Design', title: 'Design Shapes the World', src: img2 },
  ]}
/>
slides: 5loop: truespeed: 1000centeredSlides: trueslidesPerView: 1.2spaceBetween: 16slidesPerView@768: 1.5spaceBetween@768: 20slideToClickedSlide: trueparallax: truekeyboard.enabled: truekeyboard.onlyInViewport: truenavigation: prev / nextpagination: fill-in, clickableimg parallax-scale: 1.5
text.direction: verticaltext.loop: truetext.speed: 1000text.slidesPerView: 1text.spaceBetween: 40text.allowTouchMove: false
⚠️ Requires a minimum of 5 slides for loop to work smoothly without visible gaps.
Sync readout (slide badges, event log): open with ?debug

#swiper-sub-menu-demo

5. Sub Menu: Scroll Sync

<Component />

לאיזה תוכןעמוד ארוך עם 4 עד 8 חלקים בעלי שם (עמוד סיור, מוצר, תוכנית)

השאלההעמוד ארוך מספיק כדי שגולש ירצה לקפוץ ישר לחלק מסוים?

⛓️‍👮‍♂️ מבנה קשיח{ label, href }השדות חובה בכל פריט, העיצוב גמיש

import SwiperSubMenu from '@/components/Swiper/swiper_sub_menu/SwiperSubMenu'

<SwiperSubMenu
  stickyOffset="auto"
  items={[
    { label: 'המסלול', href: '#route' },
    { label: 'מה כלול', href: '#included' },
    { label: 'מחיר', href: '#price' },
  ]}
/>
{/* tab order = section order; each href is a section id below */}
<section id="route">…</section>
Auto sticky-top: with stickyOffset="auto" the sub-menu calculates its own top from the navbar height (reads --uk-navbar-h, falls back to measuring [uk_navbar]). Pass a number for a manual override.

01

Architecture

Clean lines and bold structures define modern urban spaces. Every detail is considered, from facade materials to natural light pathways. We design buildings that work with their environment, not against it.

Our approach combines structural innovation with aesthetic precision, creating landmarks that stand the test of time.

Architecture: Glass tower
Interiors: Living room

02

Interiors

Thoughtful interiors balance function, comfort, and style. Spatial planning meets human behavior to create spaces people love to live and work in.

From material selection to lighting design, every element serves a purpose while contributing to the overall atmosphere.

03

Landscape

Blending built environments with natural surroundings. Green infrastructure, terrain sensitivity, and seasonal planting strategies create outdoor spaces that breathe.

We believe the boundary between architecture and nature should be intentionally blurred, creating seamless transitions between indoor and outdoor living.

Landscape: Golden fields
Residential: Modern home

04

Residential

Homes designed around people's lives, flexible layouts, quality materials, and a deep respect for neighborhood context.

Every residential project starts with understanding how people actually live, then designing spaces that enhance daily life without imposing rigid structures.


#swiper-slider-sync-accordion

6. Slider Sync Accordion

<Component />🐰 on ClassicGrid

לאיזה תוכןרשימת יתרונות או שירותים, לכל פריט שם, פסקה ותמונה משלו

השאלהיש רשימה שכל פריט בה נפתח להסבר ומחליף את התמונה לצדו?

Swiper APIno module: the accordion calls slideToLoop(index)

⛓️‍👮‍♂️ מבנה קשיח{ title, description, src, href?, ctaLabel? }השדות חובה בכל פריט, העיצוב גמיש

import SliderSyncAccordion from '@/components/Swiper/slider_sync_accordion/SliderSyncAccordion'

<SliderSyncAccordion
  swiperId="services"
  items={[
    { title: 'Architecture', description: 'One paragraph that opens under the title.', src: img1, href: '/services/architecture', ctaLabel: 'More' },
    { title: 'Interiors', description: '…', src: img2 },
  ]}
/>

Below 960px: no slider, each panel shows its own still

slidesPerView: 1loop: falsesync: selector menu ↔ sections< 960px: still per panel, no slider

Architecture

Clean lines and bold structures define modern urban spaces. Every detail is considered, from facade materials to natural light pathways.

Interiors

Thoughtful interiors balance function, comfort, and style. Spatial planning meets human behavior to create spaces people love.

Landscape

Blending built environments with natural surroundings. Green infrastructure, terrain sensitivity, and seasonal planting strategies.

Residential

Homes designed around people's lives, flexible layouts, quality materials, and a deep respect for neighborhood context.

Architecture
Architecture
Interiors
Interiors
Landscape
Landscape
Residential
Residential

#swiper-dots-pill

7. Dots on a pill (uk-dots-pill)

🐬 add-on

לאיזה תוכןכרטיס עם כמה תמונות, כשהנקודות יושבות על התמונה (נכס, חדר, מוצר)

השאלההנקודות של הגלריה יושבות על תמונה, ובהירה עלולה להעלים אותן?

Dots on a picture only. Not ClassicGrid's dots

Mountains over a lake
Mountain ridge at dawn
Green hills
Road through the mountains
Forest valley
Valley in the mist
default
Mountains over a lake
Mountain ridge at dawn
Green hills
Road through the mountains
Forest valley
Valley in the mist
className="uk-dots-pill" on the wrapper
<div className="uk-dots-pill">
  <UkCardGallery images={images} />            {/* Swiper */}
</div>

<div className="uk-dots-pill">
  <BookingGallery images={images} preview="slider" />   {/* Fancybox */}
</div>

/* tokens: on the wrapper, or a scope ([data-demo="x"] { ... }) */
--uk-dots-pill-bg: rgb(0 0 0 / 0.38);
--uk-dots-pill-bottom: 12px;

#swiper-trigger-slide

8. Slide Timeline (trigger_slide)

[attribute]🐬 add-on

לאיזה תוכןסליידר של שקופית אחת במסך, שבכל שקופית שלו כמה חלקים זזים שמתנגנים מחדש בכל החלפה (הירו מתחלף, שלבים, השקת מוצר)

השאלהרואים שקופית אחת בכל פעם, ומה שבתוכה צריך לזוז בכל פעם שהיא מגיעה?

Swiper APIno Swiper events: a MutationObserver on .swiper-slide-active, any slider

תוכן חופשיכל שקופית היא JSX שלכם

attributes, any sliderone slide per view (peek ≤ 1.2)an entrance: ≤ 6 parts, ≤ 2.5swatches .swiper-slide-active

A GSAP timeline per slide, replayed when the slide becomes active. Each [trigger_slide] is one tween in it.

One slide per view only

An entrance only: up to 6 parts, 2.5s

מעל העננים

לכל שקופית טיימליין משלו, שמתנגן מההתחלה בכל פעם שהיא מגיעה.

כפתור

ערפל של בוקר

כל אלמנט הוא שלב בטיימליין: אפקט מוכן או כל אנימציה של GSAP.

כפתור

יער עמוק

ובכל החלפה הכול יוצא ונכנס מחדש, קדימה ואחורה.

כפתור
<ClassicGrid slidesPerView={1} slidesPerViewTablet={1} slidesPerViewMobile={1} loop effect="fade">
  {slides.map((s) => (
    <div key={s.id}>
      <img trigger_slide="" trigger_slide_effect="settle" src={s.src} alt="" />
      <span trigger_slide="" trigger_slide_from='{"scale":2.4,"rotation":-14,"opacity":0}' trigger_slide_duration="1.1">{s.number}</span>
      <span trigger_slide="" trigger_slide_from='{"x":260,"y":-220,"rotation":200,"opacity":0}'
            trigger_slide_at="0.45" trigger_slide_duration="1.3">חדש</span>
      <div trigger_slide="" trigger_slide_from='{"scaleX":0}' trigger_slide_stagger="0.08">
        <span /><span /><span /><span /><span />
      </div>
      <h3 trigger_slide="" trigger_slide_effect="mask_up">{s.title}</h3>
      <div trigger_slide="" trigger_slide_effect="blur_up">…</div>
    </div>
  ))}
</ClassicGrid>

#swiper-sync-slider

9. Sync Slider

לאיזה תוכןמראה ייחודי יותר מסליידר אחד: חלקי הפריט (תמונה, טקסט) בשני אזורים, כל אחד בעיצוב ובתנועה משלו, והם מתחלפים יחד

השאלהרוצים להפריד בין התמונה לטקסט של כל פריט לשני אזורים בעיצוב, כשהם עדיין זזים יחד?

Swiper APIController module (two-way control)

⛓️‍👮‍♂️ מבנה קשיח{ title, description, src, label?, linkText?, linkHref? }השדות חובה בכל פריט, העיצוב גמיש

import SyncSlider from '@/components/Swiper/sync_sliders_classic/SyncSlidersClassic'

{/* inside a uk-container: it has none of its own */}
<SyncSlider
  swiperId="process"
  items={[
    { label: '01', title: 'Architecture', description: 'One paragraph per item.', src: img1, linkText: 'More', linkHref: '/services/architecture' },
    { label: '02', title: 'Interiors', description: '…', src: img2 },
  ]}
/>
2 sliders, syncedslides: 3swiperId: "demo_sync"
contentSwiper.controller.control = gallerySwiper;   // the line that joins them
gallerySwiper.controller.control = contentSwiper;
סליידר 1: התמונותסליידר 2: הטקסט
1swiperId="demo_sync"
1↔2מחוברים דרך אותו demo_sync, לחיצה על כל אחד מזיז את השני
2swiper_target="demo_sync"outside component →

#swiper-material-you

10. Material You Slider

לאיזה תוכןכמה קטגוריות או תחומים עם תמונה גדולה ושם, כשהפעיל נפתח והאחרים צרים

השאלהיש קטגוריות שכדאי להציג יחד, אחת בהבלטה?

⛓️‍👮‍♂️ מבנה קשיח{ src, label?, href? }השדות חובה בכל פריט, העיצוב גמיש

import MaterialYouSlider from '@/components/Swiper/ui-initiative/material_you_slider/MaterialYouSlider'

<MaterialYouSlider
  swiperId="categories"
  slidesPerView={2}
  centeredSlides
  loop={false}
  height={560}
  combinedNav
  slides={[
    { src: img1, label: 'Alpine Vista', href: '/category/alpine' },
    { src: img2, label: 'Morning Mist' },
  ]}
/>
slidesPerView: 2centeredSlides: trueloop: falseheight: 560combinedNav: true
Slide 1Alpine Vista
Slide 2Morning Mist
Slide 3Deep Forest
Slide 4Golden Fields
Slide 5Lake Serenity
Slide 6Sunset Road
Slide 7Architecture
Slide 8City Lights
Slide 9Glass Tower

#swiper-fashion

11. Fashion Slider

לאיזה תוכןקולקציה של 3 עד 5 פריטים, לכל אחד צבע משלו ותמונה על כל המסך (שמלות, מוצרים)

השאלהכל פריט הוא עולם שלם עם צבע משלו, ומגיע לו מסך מלא?

⛓️‍👮‍♂️ מבנה קשיח{ title, src, bgColor }השדות חובה בכל פריט, העיצוב גמיש

import FashionSlider from '@/components/Swiper/ui-initiative/fashion_slider/FashionSlider'

<FashionSlider
  swiperId="collection"
  slides={[
    { src: img1, title: 'Alpine Vista', bgColor: '#1a1a2e' },
    { src: img2, title: 'Deep Forest', bgColor: '#16213e' },
  ]}
/>
slides: 4parallax titlebgColor per slide
ℹ️ Height is controlled by the wrapper element, FashionSlider itself is height: 100%. Set height or min-height on the parent div/section.
Alpine Vista
Alpine Vista
Deep Forest
Deep Forest
Lake Serenity
Lake Serenity
Glass Tower
Glass Tower

#swiper-tabs-panels

12. Tabs + Panels (SwiperTabsPanels)

לאיזה תוכןכמה קטגוריות, ובכל אחת רשימה שלמה משלה (חוף / תרבות / סקי, סוגי טיפולים)

השאלההגולש בוחר קטגוריה ואז רואה רשימה שלמה שלה?

תוכן חופשיכל שקופית היא JSX שלכם

style: Hotels.com appa tab = a whole paneltab strip: Swiper, freeMode, slidesPerView autorole=tablist, arrow keysslidingLine (experiment)

A tab = a panel of any content (§3 Tabs Slider: a tab = a slide).

Nature 1
Nature 2
Nature 3
Nature 4
Nature 5
<SwiperTabsPanels
  ariaLabel="סוגי דמואים"
  navWrapClassName="uk-container"      // panels full-bleed, tabs on the text's edge
  className="uk-tabs-panels--center"   // centred while the row fits
  tabs={groups.map(g => ({ id: g.id, label: g.label, count: g.items.length,
                           content: <ClassicGrid swiperId={`row_${g.id}`} items={g.items} /> }))}
/>
/* tokens: --uk-tabs-panels-accent (the active line), --uk-tabs-panels-gap */

#swiper-sync-layer

13. Sync Layer (SwiperSyncLayer)

<Component />🐰 on ClassicGrid

לאיזה תוכןסליידר שהרקע של הסקשן שלו משתנה לפי הפריט (המלצות עם דיוקן מטושטש, מוצרים בצבע שלהם)

השאלהלכל פריט יש תמונה או צבע שראוי למלא איתם את כל הרקע, ורואים פריט אחד בכל פעם?

Swiper APIno Controller: EffectFade layer, main.on('realIndexChange') → layer.slideTo(realIndex), one way

תוכן חופשיכל שקופית היא JSX שלכם

one tinyCMS list, two sliderslayer: Swiper, effect fade, no touchfollows realIndexChangerenderLayer: picture / colour / gradientone slide per view (peek ≤ 1.2)

A layer behind the slider that crossfades with the active slide (renderLayer).

טיולים

לאן יוצאים השנה?

מעל העננים

מעל העננים

זריחה על הפסגות, כשהעמק עוד ישן.

אגם בין הרים

אגם בין הרים

מים בצבע טורקיז וסירה אחת.

שביל ביער

שביל ביער

צל, ירוק ושקט עד הערב.

גבעות בערפל

גבעות בערפל

אור זהוב שנשפך על העמק.

עמק ירוק

עמק ירוק

ערפל בבוקר ודרך שמתפתלת למטה.

גבעה בשקיעה

גבעה בשקיעה

שדה עגול ושקט כשהשמש יורדת.

כביש החוף

כביש החוף

דרך מתפתלת בין ירוק לים.

const PLACES = [
  { title: 'מעל העננים', src: '…', bg: 'linear-gradient(135deg, #ece1f3, #f7d3c6)' },
  { title: 'אגם בין הרים', src: '…', bg: 'linear-gradient(135deg, #d6f1f0, #9ad8d4)' },
]

<SwiperSyncLayer swiperId="places" items={PLACES}
  renderLayer={(p) => <div style={{ background: p.bg }} />}>
  <h3>…</h3>
  <ClassicGrid swiperId="places" items={PLACES} renderSlide={(p) => <PlaceCard {...p} />} />
</SwiperSyncLayer>

מהרעיון ועד אתר שעובד

נועה שגב
״הרגשנו שמקשיבים לנו, ואז מכוונים אותנו בעדינות למה שחשוב באמת.״
72%יותר זמן באתר
נועה שגבצלמת אירועים
רותם אלון
״קיבלנו אתר שנראה כמו המקום שלנו, ולא כמו תבנית.״
2xיותר תורים מהאתר
רותם אלוןבעלת מספרה
אורית נחום
״כל שאלה קיבלה תשובה באותו יום, גם אחרי ההשקה.״
24hזמן תגובה
אורית נחוםמאמנת עסקית
מיכל דגן
״התהליך היה מסודר: שלבים ברורים, ותמיד ידענו מה הבא.״
6שבועות עד העלייה
מיכל דגןצלמת אוכל
שירה לב
״דף הבית סוף סוף מסביר בשתי שניות מה אני עושה.״
40%פחות נטישה
שירה לבמעצבת שיער לכלות
דנה פרץ
״האתר עושה את העבודה בשבילי, גם כשאני באמצע טיפול.״
3xיותר פניות
דנה פרץקוסמטיקאית
<SwiperSyncLayer swiperId="quotes" items={QUOTES}
  renderLayer={(q) => <img src={q.photo} alt="" />}
  className="my-dark-panel">           /* --uk-sync-layer-blur: 40px; --uk-sync-layer-scale: 1.3;
                                          --uk-sync-layer-overlay: rgb(0 0 0 / .38) */
  <ClassicGrid swiperId="quotes" items={QUOTES} renderSlide={(q) => <QuoteCard {...q} />} />
</SwiperSyncLayer>