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

Navbar

navbar אחד לכל האתרים. כל האפשרויות שלו בעמוד אחד: מה כל אחת, איך מפעילים אותה, ואיפה רואים אותה חיה.

איך הניווט בנוי, ממבט על:

nav-config.ts                       the menu as data, one file per site
└─ <UkNavbar config={…} />           the bar's look: glass, sticky, hideOnScroll…
   ├─ Topbar                         topbar: { start, end }   phone, hours, address
   ├─ the bar
   │  ├─ logo                        logo: { light, dark, alt, href }
   │  ├─ items[]                     each one: link · dropdown · mega
   │  │  └─ mega panel
   │  │     ├─ groups[]              titles and links (UkNavbarMegaGroups)
   │  │     ├─ megaPanel             a panel of your own
   │  │     │  └─ 🏆 UkMegaMenuCard   the card inside it
   │  │     └─ megaPanelFooter       the "see all" link
   │  └─ actions[]                   cta · link · search · icon-link · lang-switch
   └─ under 1024px: the phone menu (UkNavbarMobile)
      ├─ 🍔 Hamburger
      ├─ mobileMode                  overlay · drawer
      ├─ mobile                      accordion · drill-down   (the sub-menus)
      └─ mobileContent               a menu of your own, instead of items[]

מה שרואים מ-1024px ומעלה. שם הפס עובר מפריסת הטלפון (המבורגר, גובה 64px) לפריסת הדסקטופ (הקישורים, 80px), וזו נקודת השבירה של הפריסה שלו (uk-navbar.css). חוץ ממנה יש רק אחת: הריווח של floating מהקצוות גדל ב-768. אפשר לשלב: למשל Topbar עם שקוף מעל hero, או סימון העמוד הנוכחי עם קו תחתון.

אפשרותמה זהאיך מגדיריםאיפה לראות
רגיללוגו בצד, הקישורים, כפתור בצד השני.(ברירת מחדל)יוגה
Topbarפס דק מעל הפס הראשי: טלפון, שעות, כתובת. נגלל ונעלם, הפס הראשי נשאר.topbar: { start: [...], end: [...] } // ב-nav-configאתר למרפאה
Glassפס מטושטש ושקוף שנשאר על המסך, והעמוד רץ מאחוריו. --uk-sticky-top הוא 0, אז כל אפקט סטיקי תופס את כל גובה המסך.לגלילה ארוכה עם אפקטים (סקיל scroll-chain). הירו מתחתיו מרחיק את עצמו עם --uk-navbar-h. הגוון: --uk-navbar-glass-bg.<UkNavbar glass scrollBehavior="fixed" />-
Floatingהפס כגלולה צפה, עם מרווח מהקצוות.לא עובד יחד עם topbar.<UkNavbar floating />-
סימון העמוד הנוכחיקו מתחת לפריט של העמוד, שזז בין העמודים.<UkNavbar indicator="underline" />אתר לכנס מקצועי
Bottom borderקו של פיקסל בתחתית הפס, בצבע הטקסט שלו בשקיפות, אז הוא נראה גם מעל hero כהה.<UkNavbar bottomBorder />אתר למאפרתאתר למורה לנגינה
שקוף מעל heroהפס שקוף וטקסט בהיר מעל תמונה כהה, ומתמלא בגלילה.data-navbar-transparent data-navbar-light // על עוטף העמודאתר לסוכנות דיגיטלאתר לסיורים מודרכיםועוד 18
התנהגות בגלילהfixed: צף מעל התוכן (דף בית עם hero). sticky: בתוך הזרימה ונדבק למעלה (עמוד פנימי). static: נגלל עם הדף. auto-hide: כמו fixed, ונעלם בגלילה למטה.<UkNavbar scrollBehavior="sticky" />אתר לסוכנות דיגיטלאתר לכנס מקצועיועוד 5
נעלם בגלילה (headroom)נעלם בגלילה למטה וחוזר בגלילה הראשונה למעלה, על fixed או sticky. על sticky הוא ממשיך לשמור את הגובה שלו, אז עמוד פנימי לא צריך spacer.<UkNavbar hideOnScroll />אתר לחדר כושראתר למעצבת פניםועוד 2
רוחבהקונטיינר בתוך הפס, כדי שהלוגו יישב על אותו קו עם התוכן של הדף: default (1200), small (900), large (1400), expand.<UkNavbar containerSize="large" />אתר לסוכנות דיגיטלאתר למספרהועוד 15
כפתור מצב כההשמש/ירח (UkDarkMode) ליד הכפתורים, בדסקטופ בלבד. דלוק כברירת מחדל.כל הדמואים והסטודיו מעבירים false: אתר בלי ערכת צבעים כהה לא צריך אותו.<UkNavbar showDarkMode={false} />-

מה שנפתח מכפתור ההמבורגר, מתחת ל-1024px. שתי החלטות נפרדות: איך התפריט נפתח (מגירה או מסך מלא), ואיך נפתח תפריט משנה בתוכו (במקום או כמסך חדש). במחשב רואים את זה בתצוגת מובייל: F12 ואז Ctrl+Shift+M.

אפשרותמה זהאיך מגדיריםאיפה לראות
מגירההתפריט נכנס מהצד ומשאיר פס מהעמוד מאחוריו.<UkNavbar mobileMode="drawer" />אתר לסוכנות דיגיטלאתר לסיורים מודרכיםועוד 21
המבורגר ליד הלוגוכפתור התפריט לפני הלוגו, והחיפוש לבד בקצה השני, בתוך עיגול. כך החיפוש לא מסתיר את ההמבורגר. כמו Google Workspace.drawerSide הוא צד פיזי: באתר בעברית right, כדי שהמגירה תיכנס מהצד של הכפתור.<UkNavbar hamburgerPosition="start" drawerSide="right" />אתר הסטודיו
מסך מלאהתפריט מכסה את כל המסך, הפס הראשי נשאר מעליו.<UkNavbar mobileMode="overlay" /> // ברירת המחדלקוסמטיקה
תפריט משנה נפתח במקום (accordion)פריט עם תפריט משנה נפתח מתחתיו, והשאר זזים למטה.mobile: 'accordion' // ב-nav-config, ברירת מחדלרוב הדמואים
תפריט משנה כמסך חדש (drill-down)פריט עם תפריט משנה מחליף את כל הרשימה בילדים שלו, עם "חזרה" למעלה. כמו הגדרות באייפון.mobile: 'drill-down' // ב-nav-configאתר לקוסמטיקאיתאתר לבית ספר לגלישה
תפריט משלך (div חופשי)המעטפת נשארת של ה-navbar (פתיחה, סגירה, X, אנימציה), ובתוכה קומפוננטה שלך עם כל עיצוב שתרצה. היא מקבלת isOpen, ו-navTo(href) שעובר לעמוד וסוגר את התפריט.זה הפתח הכללי: ארסנל לא יכול להכיל כל עיצוב, אז כשהתפריט צריך משהו אחר, כותבים אותו כאן. שתי השורות הבאות הן דוגמאות שלו, לא סוגים נוספים.mobileContent: MyMenu // ב-nav-configאתר לסוכנות דיגיטלאתר לכנס מקצועיועוד 1
דוגמה: מגירה עם אייקוניםשורות עם אייקון וחץ, העמוד הנוכחי מודגש, כרטיס ספח עם התאריך והכפתור. נכנס בהחלקה.mobileContent של הכנס (_components/ConfMobileMenu.tsx).mobileMenu: 'drawer' // שורת הגרסה ב-variants.tsאתר לכנס מקצועי
דוגמה: מסך מלא ממוספרשורות גדולות וממוספרות שעולות עם קפיצה קטנה, כרטיס פרטים וכפתור בתחתית.mobileContent של הכנס (_components/ConfMobileMenu.tsx).mobileMenu: 'overlay' // שורת הגרסה ב-variants.tsאתר לכנס מקצועי
  • Topbar כשיש פרט שהגולש מחפש מיד: טלפון של מרפאה, שעות, תאריך של אירוע.
  • שקוף מעל hero בדף בית שנפתח בתמונה כהה, עם scrollBehavior="fixed". בעמודים הפנימיים sticky.
  • drill-down כשלתפריטי המשנה יש הרבה פריטים. עם שניים או שלושה, accordion מספיק.
  • תפריט מעוצב משלך כשהתפריט במובייל הוא חלק מהמותג, או כשיש בו יותר מקישורים (תאריך, כפתור, תמונות).
  • לוגו באמצע אין כאן: מצב ה-split הוסר מהקומפוננטה, כי לוגו במרכז דורש כיוון של הלשוניות לכל אתר. ניווט כזה נבנה custom.

#uk-navbar

UkNavbar

<Component />

הפס העליון של כל אתר: לוגו, פריטים עם dropdown או mega-menu, כפתורים ותפריט מובייל. קומפוננטה אחת לכל הדמואים ולסטודיו, וההגדרות של כל אתר ב-nav-config שלו. הוא יושב ב-layout (בדמו עם כמה דפי בית: ב-layout של הגרסה). לא בונים header ביד לאתר חדש.

למטה ה-navbar האמיתי, עם scrollBehavior="static" כדי שיישב בתוך הדף. מ-1024px מעבר על "דוקס" פותח mega-menu, ו-"Navbar" מסומן כי זה העמוד הזה. מתחת ל-1024px רואים את ההמבורגר, והוא פותח מגירה עם כפתור סגירה משלה.

<UkNavbar
  config={navConfig}
  scrollBehavior="static"   // this box only; a site: "fixed" or "sticky"
  startActive
  mobileMode="drawer"
  drawerSide="left"   // physical: the hamburger's side in RTL
/>

Props

configSiteNavConfigחובה
הלוגו, הפריטים, הכפתורים, ה-topbar ותפריט המובייל. הצורה ב-config/uk-nav-config.ts, וכל דמו מחזיק את שלו ב-nav-config.
scrollBehavior"fixed" | "sticky" | "static" | "auto-hide" | "overlay"ברירת מחדל "fixed"
overlay: שקוף מעל ה-hero, נגלל עם הדף ולא חוזר, כשתת-ניווט דביק תופס את הראש (דף הבית של הסטודיו). fixed: צף מעל התוכן, לדף בית עם hero מאחוריו. sticky: בתוך הזרימה ונדבק למעלה, ושומר את הגובה שלו (עמוד פנימי, בלי spacer). static: בזרימה ונגלל עם הדף, כשמשהו אחר תופס את הראש (תפריט משנה של עמוד). auto-hide: כמו fixed, ונעלם בגלילה למטה.
hideOnScrollbooleanברירת מחדל false
נעלם בגלילה למטה, חוזר בגלילה הראשונה למעלה. על fixed או על sticky; על sticky הגובה נשמר. כשהוא דלוק --uk-sticky-top הוא 0, אז דברים שנדבקים לא מחכים לפס.
startActivebooleanברירת מחדל false
מלא (המצב "נגלל") מהציור הראשון, ומוסיף את האטריבוט dark_global_navbar.
scrollThresholdnumberברירת מחדל 20
כמה פיקסלים של גלילה עד שהפס מתמלא וה-topbar יוצא.
inverseColorbooleanברירת מחדל false
טקסט לבן (.isInverse) עד הגלילה. אף אתר לא מעביר אותו: הדרך החיה היא data-navbar-light על עוטף הדף.
mobileMode"overlay" | "drawer"ברירת מחדל "overlay"
איך נפתח התפריט מתחת ל-1024px: מסך מלא, או מגירה מהצד.
drawerSide"left" | "right"ברירת מחדל "left"
הצד שממנו נכנסת המגירה. צד פיזי, לא לוגי: אתר בעברית שרוצה מגירה מימין כותב right.
hamburgerPosition"end" | "start"ברירת מחדל "end"
end: ההמבורגר בקצה, עם החיפוש ואייקוני ה-topbar. start: לפני הלוגו, והחיפוש לבד בקצה השני בתוך עיגול של 40px. להצמיד drawerSide מאותו צד (בעברית right).
swipeToClosebooleanברירת מחדל true
גרירה סוגרת את המגירה (ב-drawer בלבד). לכבות כשבתפריט יש משהו שנגלל לצד.
glassbooleanברירת מחדל false
מטושטש ושקוף, העמוד רץ מאחוריו ו---uk-sticky-top הוא 0. עם scrollBehavior="fixed".
floatingbooleanברירת מחדל false
גלולה צפה, 12px מהקצוות (20px מ-768px). לא יחד עם topbar.
showDarkModebooleanברירת מחדל true
כפתור שמש/ירח (UkDarkMode) ליד הכפתורים, בדסקטופ בלבד. כל הדמואים והסטודיו מעבירים false.
containerSize"default" | "small" | "large" | "expand"ברירת מחדל "default"
הקונטיינר בתוך הפס: 1200, 900, 1400 או כל הרוחב. אותו רוחב כמו הסקשנים של הדף, אחרת הלוגו והתוכן יושבים על שני קווים.
indicator"underline"
כבוי כשלא מעבירים. קו בתחתית הפס מתחת לפריט של העמוד, שזז בין העמודים. צבע --uk-nav-indicator-color (ברירת מחדל: צבע הטקסט), עובי --uk-nav-indicator-h (3px).
bottomBorderbooleanברירת מחדל false
קו של פיקסל בתחתית הפס (inset box-shadow, הגובה לא זז), בצבע הטקסט ב-10%. צבע --uk-navbar-bottom-border. לא על floating. בטלפון הוא גם מרחיק את פירורי הלחם ל-16px מתחתיו במקום 10.
defaultClassstringברירת מחדל ""
מוגדר בממשק, אבל הקומפוננטה לא משתמשת בו: אין לו השפעה.

כללים

  • נקודת השבירה היא 1024px: מתחתיה המבורגר וגובה 64px, ממנה הקישורים וגובה 80px (--uk-navbar-h). כל ה-media queries של ה-navbar וה-lg: בקומפוננטה הם אותה נקודה, חוץ מהריווח של floating (md:, 768).
  • containerSize כמו הקונטיינר של הסקשנים בדף: אתר שבנוי על uk-container-large מעביר large.
  • hideOnScroll ו-auto-hide לא עובדים עם startActive: פס שמלא מההתחלה לא מגיב לגלילה (חוץ מה-topbar).

איפה זה חי: הסטודיו (start, drawer מימין, bottomBorder), חדר כושר (hideOnScroll), הכנס (indicator), סוכנות (static), עורך דין (containerSize large).

שני סימונים, ושניהם בלי קוד בעמוד: aria-current="page", שה-navbar שם על הפריט שלו בדסקטופ, ו-class is-current, שסקריפט גלובלי שם על כל קישור באתר שמוביל לעמוד הזה (תפריט המובייל, הפוטר, תוכן). עמוד נוכחי בפוטר או בתפריט משלך מעצבים דרך .is-current, ולא מחשבים אותו בקומפוננטה.

הקישור הראשון מוביל לעמוד הזה, אז הסקריפט סימן אותו is-current, והוא בצבע המותג.

/* uk-navbar-colors.css: the navbar's own */
.uk-nav-item[aria-current="page"],
.uk-nav-item.is-current,
.uk-mobile-nav a.is-current:not(.uk-button) {
  color: var(--uk-nav-text-accent, var(--primary));
  opacity: 1;
}

/* any other scope: a footer, a sidebar */
.my-footer a.is-current { color: var(--primary); }
  • aria-current (UkNavbar.tsx, בדסקטופ): התאמת תחילית, אז /services מסומן גם ב-/services/x. התאמה מדויקת כשלאח יש href שיושב מתחתיו (דף בית /demos/x ליד /demos/x/about). פריט בלי href מסומן כשאחד מה-children שלו מתאים. indicator="underline" קורא את אותו סימון.
  • is-current (update_active_links() ב-es-scripts/_init/active_link_marker.js, ש-uk_global_init מריץ בכל טעינה ובכל מעבר עמוד): עובר על כל a[href] במסמך. התאמה מדויקת של ה-pathname (סלאש בסוף לא משנה), אז קישור ל-/services לא מסומן ב-/services/x. מדלג על #, mailto:, tel: ודומיין אחר.
  • הצבע הוא --uk-nav-text-accent: המותג על פס בהיר, צבע הטקסט של הפס מעל hero כהה (data-navbar-light), ובתפריט המובייל תמיד --primary. כפתור (uk-button) שומר על הצבעים שלו.

איפה זה חי: כל navbar, למשל הסטודיו, הקו של indicator: הכנס.

ה-navbar יושב ב-layout פעם אחת. דף שנפתח ב-hero כהה ורוצה navbar שקוף עם טקסט בהיר מוסיף שני אטריבוטים על העוטף שלו, וה-CSS עושה את השאר דרך :has(). בלי JS, בלי import ובלי !important. לדף בית עם תמונה כהה מאחורי פס fixed; עמוד פנימי עם sticky לא צריך אותם.

/* no override */
BrandראשיאודותשירותיםCTA
דף רגיל (אודות, שירותים, תקנון)הניווט רגיל מההתחלה
// a page with a dark hero: two attributes on its wrapper
export default function HomePage() {
  return (
    <div data-navbar-transparent data-navbar-light>
      <section>...dark hero...</section>
    </div>
  );
}

// an inner page (about, services, terms): nothing, the default
  • data-navbar-transparent: הרקע שקוף (--uk-nav-bg: transparent).
  • data-navbar-light: הטקסט בהיר (--uk-nav-text: var(--uk-navbar-is_inverse-color, #ffffff)), וסימון העמוד הנוכחי בצבע הטקסט ולא במותג.
  • השניים בלתי תלויים: אפשר אחד מהם או את שניהם. בלי אף אחד, הניווט במצב הרגיל.

איך זה עובד

ב-app/globals.css שני משתנים, --uk-nav-bg ו---uk-nav-text, והניווט רק קורא אותם. שלושה מקורות דורסים אותם, והאחרון מנצח כי הוא יושב על הניווט עצמו. הלשוניות יורשות (color: inherit), אז שינוי של המשתנה מגיע לכולן בלי סלקטור לכל פריט.

/* 1. :root, the default */
:root { --uk-nav-bg: hsl(0 0% 100% / 0.15); --uk-nav-text: var(--foreground); }

/* 2. per page: the attributes on the wrapper */
body:has([data-navbar-transparent]) { --uk-nav-bg: transparent; }
body:has([data-navbar-light])       { --uk-nav-text: var(--uk-navbar-is_inverse-color, #ffffff); }

/* 3. scrolled: on the nav itself, so it wins */
[uk_navbar].isActive { --uk-nav-bg: var(--background); --uk-nav-text: var(--foreground); }

/* the navbar only reads */
[uk_navbar] { background-color: var(--uk-nav-bg); color: var(--uk-nav-text); }
[uk_navbar] .uk-nav-item, [uk_navbar] a { color: inherit; }

איפה זה חי: Lumiere, דף הבית.

#mobile-content

תפריט מובייל משלך (mobileContent)

ברירת המחדל בטלפון היא רשימה שנבנית מפריטי הניווט. mobileContent ב-SiteNavConfig מחליף את הרשימה (ואת ה-CTA שלה) בקומפוננטה חופשית: div רגיל, מעוצב כמו כל סקשן. ההדר של התפריט (לוגו וסגירה) נשאר, ומגירה עם תוכן משלה מתרחבת ל-min(440px, 92vw) במקום min(380px, 86vw), כדי שייכנסו שתי עמודות. כשמספיקה רשימה, accordion או drill-down ב-nav-config.

אין כאן תצוגה חיה: התפריט נפתח רק מתחת ל-1024px. לראות אותו: האתר של הסטודיו בטלפון (או F12 ואז Ctrl+Shift+M), כפתור התפריט.

// config/studio-nav-config.tsx
export const studioNavConfig: SiteNavConfig = {
  ...,
  mobileContent: StudioMobileMenu,        // replaces the generated list
};

// components/studio/StudioMobileMenu.tsx
export default function StudioMobileMenu({ isOpen, navTo }: UkMobileContentProps) {
  // navTo(href) closes the menu, then routes
  return <div>...anything...</div>;
}

// the navbar: no swipe-to-close when the content scrolls sideways
<UkNavbar config={studioNavConfig} mobileMode="drawer" swipeToClose={false} />

Props של הקומפוננטה שלך

isOpenboolean
התפריט פתוח. לאנימציית כניסה משלך.
navTo(href: string) => void
סוגר את התפריט ועובר לעמוד (באותו עמוד: גולל למעלה). href שמתחיל ב-# גולל לאלמנט, מתחת לפס.
  • בלי <li> בתוכן: ה-CSS של התפריט מסתיר כל li עד אנימציית הכניסה של הרשימה, שלא רצה כאן.
  • ניווט דרך navTo(href) ולא Link בלבד, כדי שהתפריט ייסגר. התפריט נפתח תמיד מלמעלה (הגלילה שלו מתאפסת בפתיחה).
  • config שמחזיק mobileContent נבנה פעם אחת (ברמת המודול או ב-useMemo): פונקציה חדשה בכל render טוענת את התפריט מחדש.

איפה זה חי: הסטודיו, כנס AI (מגירה), כנס תיירות (מסך מלא), צלם, סוכנות.

#awwwards-menu

תפריט מסך מלא בדסקטופ (menuOnDesktop)

<Component />

המראה של אתרי Awwwards: בדסקטופ הבר הוא רק לוגו ועיגול המבורגר, ובלחיצה נפתח מסך מלא עם הקישורים בכותרות ענק, הדף הנוכחי בצבע המותג, ושורת רשתות למטה. יפה ולא שימושי: כל מעבר דף הוא שתי לחיצות, בשביל שלושה פריטים. אף פעם לא ברירת מחדל, רק כשלקוח מבקש. ואחד מהשניים: או הפריטים בבר, או התפריט מאחורי ההמבורגר, אף פעם לא שניהם.

<UkNavbar config={navConfig} menuOnDesktop scrollBehavior="sticky" />

// nav-config: the row at the foot of the menu (optional)
menuSocial: [
  { label: 'Instagram', href: '…' },
  { label: 'LinkedIn',  href: '…' },
],

ההמבורגר תקוע במקום, וזה כל הסוד

אין בתפריט כפתור סגירה משלו. הבר יושב מעל התפריט (z-index 50 מול 49), ולכן ההמבורגר נשאר גלוי, מסתובב ל-✕ (האנימציה הקיימת של הטלפון), והוא הסגירה. הוא לא זז מילימטר: כשהבר sticky הוא נדבק למעלה, וכשהבר static הדף לא נגלל בזמן שהתפריט פתוח (Lenis עוצר). בשני המקרים ה-✕ נמצא בדיוק איפה שלחצת. בלי מדידה, בלי כפתור שני, בלי מלחמת z-index בין הבר לתפריט.

  • הבר נדבק אבל לא צובע רקע: מצב ה-active בגלילה לא משנה לו צבע, והוא עובר את העכבר לדף שמתחתיו (רק הלוגו והעיגול לחיצים). ולכן הוא לא מכסה כלום: --uk-sticky-top הוא 0, ואפקטים דביקים מקבלים את כל גובה המסך.
  • העיגול: --uk-burger-size (64px), --uk-burger-bg, --uk-burger-fg (הפסים), ו---uk-burger-inset (20px אוויר מעליו ומתחתיו, שלא נדחף על הדף).
  • מגנטי: נמשך קצת אל העכבר וחוזר, ב-mouse_move_on_element של ה-kit, בלי קוד תנועה חדש.

סוגי פתיחה: שתי צורות, והדפדפן עושה את השאר

התפריט הוא שכבה על כל המסך, ו-clip-path קובע איזה חלק ממנה רואים. סגור הוא צורה שלא מראה כלום, פתוח הוא צורה שמראה הכל, ו-transition מנגן ביניהן. הדפדפן מחשב לבד כל צורה שבאמצע. המחיר כמעט אפס: מאפיין CSS אחד שזז, בלי JavaScript בכל פריים, והתוכן מתחת לא נוגעים בו. סוג הפתיחה הוא רק איזה זוג צורות שמים, שתי שורות ב-CSS של האתר:

/* in the site's CSS, ON the menu itself (so --cx / --cy resolve) */
.uk-awwwards-menu {
  /* grow out of the hamburger: the theme of the animation home */
  --uk-awwwards-menu-from: circle(0px at var(--cx) var(--cy));
  --uk-awwwards-menu-to:   circle(var(--cr) at var(--cx) var(--cy));
  --uk-awwwards-menu-duration: 0.9s;
}

/* the default, nothing to write: a wipe down from the top */
--uk-awwwards-menu-from: inset(0 0 100% 0);
--uk-awwwards-menu-to:   inset(0);

/* a slit that opens from the middle, like an eye */
--uk-awwwards-menu-from: inset(50% 0 50% 0);
--uk-awwwards-menu-to:   inset(0);
  • הכלל היחיד: שתי הצורות מאותו סוג (inset עם inset, circle עם circle, ופוליגון עם אותו מספר נקודות). אחרת אין מעבר, רק קפיצה. תריסים, למשל, הם פוליגון אחד של שמונה פסים, מרוחב 0 לרוחב מלא.
  • הרכיב מודד ומפרסם: --cx ו---cy (מרכז ההמבורגר), --cr (המרחק לפינה הרחוקה). עיגול גדול מזה מבזבז חצי מהזמן מחוץ למסך ונראה כמו יריה.
  • יש טריליון סוגי פתיחה, ואף אחד לא שימושי יותר מאחר, ורוב הפתיחה מוסתרת ממילא מאחורי המילים שעולות. לכן אתר בוחר ב-CSS, ושום prop לא נוסף ל-kit לכל סוג.
  • שלוש שכבות שלא תלויות זו בזו: הפתיחה של המסך (clip-path), הכניסה של התוכן (כל מילה עולה ממסכה משלה, בתורה), והכפתור (spin ל-✕).

מעבר דף מהתפריט

לחיצה על קישור לדף אחר לא סוגרת את התפריט. הוא נשאר מעל הדף הישן עד שהחדש נטען, ואז נסגר: הסגירה שלו היא מעבר הדף. אם לדף החדש יש לאודר או מעבר משלו, הוא נכנס מעליו באותו צבע (גם התפריט וגם UkPageLoader הם --foreground כברירת מחדל), בלי קפיצה. מי שמשנה את --uk-awwwards-menu-bg משנה גם את --uk-page-loader-bg.

  • העור: --uk-awwwards-menu-bg, -fg, -accent (הדף הנוכחי והמעבר מעל מילה), -size (גודל המילים).
  • מעבר עכבר הוא לכל מילה: רק המילה שמתחת לעכבר מקבלת את צבע המותג, השאר נשארות כמו שהן.
  • דסקטופ בלבד (1024 ומעלה). בטלפון התפריט הרגיל של UkNavbarMobile, מנגנון אחר.

איפה זה חי: סוכנות (ניגוב מלמעלה), סטודיו לאנימציה (עיגול מההמבורגר).

#hamburger

Hamburger

<Component />

האייקון של כפתור התפריט: שלושה פסים שהופכים ל-X. ויזואלי בלבד (div), הכפתור סביבו הוא של מי שמשתמש בו. בתוך UkNavbar הוא כבר שם (UkNavbarHamburger, עם spin); לבד, לכפתור תפריט משלך (sidebar, פאנל).

import Hamburger from '@/components/uikit/uk-navbar/Hamburger/Hamburger'

<button type="button" aria-expanded={isOpen} aria-label="תפריט" onClick={toggle}>
  <Hamburger isOpen={isOpen} variant="squeeze" />
</button>
isOpenbooleanחובה
פתוח: w--open על העוטף, והפסים הופכים ל-X.
variant"spin" | "squeeze" | "elastic" | "boring" | …ברירת מחדל "spin"
האנימציה. רק לארבעת אלה יש CSS (ראו הכללים).
classNamestringברירת מחדל ""
על ה-.hamburger הפנימי.
  • רק לארבעה variants יש CSS: spin, squeeze ו-elastic מונפשים, boring קופץ ל-X בלי אנימציה. ה-type מונה 31 שמות, ול-27 האחרים אין CSS ב-uk-hamburger.css: הם מציירים שלושה פסים שרק משנים צבע בפתיחה.
  • הצבע מהמשתנים, לא מ-className: סגור --hamburger_close_color (currentColor, בהיר מעל hero כהה), פתוח --hamburger_open_color (--foreground, כי התפריט הפתוח בהיר).
  • הגודל: --hamburger-width ו---hamburger-height (24px), --hamburger-bar-height (1px), --hamburger-bar-spacing (6px), ו---hamburger-spacing לריפוד (5px).

איפה זה חי: כל UkNavbar מתחת ל-1024px, למשל הסטודיו.

#uk-mega-menu-card

UkMegaMenuCard

<Component />

לאיזה תוכןכרטיס בתוך תפריט נפתח: שירות או קטגוריה עם תמונה, שם ומשפט

השאלהפריט בתפריט צריך תמונה ומשפט, ולא רק שם?

הכרטיס שיושב בתוך פאנל של mega-menu. בסיס אחד לכל הדמואים, כך ששינוי במקום אחד משנה את כולם. ברירת מחדל שורה (תמונה בצד, מלל לצידה, בעברית התמונה מימין). דרך class אפשר להפוך ל-סטאק (תמונה מעל), כולל רספונסיבי.

hrefimgimgAltimgBasisimgRatioclassName

Layout: הפרופ layout

row שורה (ברירת מחדל) ·stack סטאק תמיד ·stack-md סטאק מ-768px ומעלה, שורה מתחת ·overlay-md הכותרת על התמונה מ-768px ומעלה; במגירה של הטלפון תמונה עגולה קטנה ליד שתי שורות. המבנה קבוע; דמו משנה רק את העור, בטוקנים --mmc-* (הרשימה בראש הקומפוננטה).

stack-md: הקטן/הגדל את החלון: מתחת ל-768px שורה, מעל סטאק.

components/uikit/uk-navbar/UkNavbar.tsx

הקומפוננטה והממשק שלה (UkNavbarProps). לרוב ה-props יש הערה ליד ההגדרה; הטבלה בבלוק UkNavbar היא הרשימה המלאה.

components/uikit/uk-navbar/uk-navbar.css

נקודת השבירה (1024px), --uk-navbar-h, המגירה, הקו התחתון וה-indicator.

components/uikit/uk-navbar/uk-navbar-colors.css

צבע העמוד הנוכחי, צבעי ההמבורגר, וה-floating.

config/uk-nav-config.ts

הצורה של nav-config: items, actions, topbar, mobile, mobileContent.

app/demos/<demo>/nav-config.ts

ההגדרות של כל דמו. כאן בוחרים topbar, accordion או drill-down, ותפריט משלך.

components/uikit/UkMegaMenuCard/UkMegaMenuCard.tsx

הכרטיס בתוך פאנל של mega-menu, וה-classes של הפריסה שלו (uk-mmc-*) ב-styles/uk-components.css.

es-scripts/_init/active_link_marker.js

ה-class is-current על כל קישור לעמוד הנוכחי, בכל מעבר עמוד.

.claude/skills/uikit-navbar/SKILL.md

ההסבר המלא לכלי AI: פאנלים, שקיפות לפי עמוד, נגישות, אנימציות.