অ্যাঙ্কর পজিশনিং ট্যাব আন্ডারলাইন

ট্যাব মেনুতে, ব্যবহারকারী কোন পৃষ্ঠায় আছেন সেই সম্পর্কে আপনাকে ভিজ্যুয়াল ইঙ্গিত দিতে হবে। একটি বিকল্প হল ট্যাবের নিচে দাগ দেওয়া। অ্যাঙ্কর পজিশনিংয়ের মাধ্যমে, আপনি আন্ডারলাইনের পজিশনের মধ্যে একটি মসৃণ অ্যানিমেশন তৈরি করতে পারবেন। অ্যাক্টিভ ট্যাব পরিবর্তন করার ফলে নতুন ওয়েব পেজ লোড হলে এটি কাজ করে না।

এছাড়াও, উল্লম্ব ট্যাব বারে অ্যাক্টিভ ট্যাব দেখানোর জন্য অ্যানিমেটেড ডট যোগ করতে আপনি এই এফেক্ট ব্যবহার করতে পারেন।

<li> এলিমেন্ট আছে এমন <ul>-এ ::before ছদ্ম-এলিমেন্ট ব্যবহার করে আন্ডারলাইন তৈরি করুন। সিউডো-এলিমেন্ট ব্যবহার করা হল সবচেয়ে ভালো পদ্ধতি কারণ এটি DOM পরিষ্কার রাখে এবং শুধুমাত্র সাজানোর জন্য অতিরিক্ত এলিমেন্ট যোগ করা এড়িয়ে যায়।

ul::before {
  /* Use a pseudo-element on the container to represent the animated indicator */
  content: '';
}

anchor-name প্রপার্টি যোগ করে অ্যাক্টিভ লিস্ট আইটেমকে অ্যাঙ্কর করুন, যার ভ্যালু -- দিয়ে শুরু হয়।

li.active {
  /* Make a unique anchor-name for the active element. */
  anchor-name: --active;
}

অ্যাঙ্করে anchor-name-এর সাথে মেলে এমন position-anchor-এর সাহায্যে অ্যাক্টিভ আইটেম অ্যাঙ্করে আন্ডারলাইন টেথার করুন এবং এটিকে position: absolute করুন।

ul::before {
  /* Tether the underline to the active element. */
  position: absolute;
  position-anchor: --active;
}

ইনসেট প্রপার্টি ও anchor() ফাংশন ব্যবহার করে অ্যাঙ্করের সাপেক্ষে আন্ডারলাইনের পজিশন সেট করুন।

ul::before {
  /* DO NOT use position-area, which can not be transitioned. */
  /* Use calc() to offset the top slightly */
  inset-block-start: calc(anchor(bottom) + .1lh);
  inset-inline-start: anchor(left);
  inset-inline-end: anchor(right);
}

উচ্চতা এবং অন্যান্য ভিজ্যুয়াল স্টাইল যোগ করুন।

ul::before {
  /* Apply your project's styles for the indicator */
  block-size: .25lh;
  background: red;
}

সবশেষে, inset প্রপার্টিতে ট্রানজিশন যোগ করুন।

ul::before {
  @media (prefers-reduced-motion: no-preference) {
    /* MANDATORY: The transition must be wrapped in a prefers-reduced-motion media query to respect user preferences. */
    transition: inset .2s;
  }
}

এটি শুধুমাত্র একটি ভিজ্যুয়াল ইন্ডিকেটর এবং উপযুক্ত aria-current="page" বা aria-selected aria ভ্যালু সেট করার বিকল্প হিসেবে ব্যবহার করা যাবে না।

<!-- MANDATORY: Provide explicit assistive technology state alongside the visual tab underline -->
<nav aria-label="Primary">
  <ul>
    <li class="active">
      <a href="/home" aria-current="page">Home</a>
    </li>
    <li>
      <a href="/about">About</a>
    </li>
  </ul>
</nav>

ফলব্যাক স্ট্র্যাটেজি

ব্রাউজারে অ্যাঙ্কর পজিশনিং কাজ না করলে, আন্ডারলাইন যোগ করতে border-bottom ব্যবহার করুন। এটি অ্যানিমেট করা হবে না।

ul li.active {
  @supports not (position-anchor: auto) {
    /* Choose a color appropriate to the app theme. */
    border-bottom: .25lh var(--primary) solid;
  }
}