Angular Material এর Sidenav একটি জনপ্রিয় কম্পোনেন্ট যা সাইটের নেভিগেশন বা মেনু সিস্টেম তৈরি করতে ব্যবহৃত হয়। এটি একটি স্লাইডিং প্যানেল যা সাধারণত ডিভাইসের বাম অথবা ডান পাশে স্লাইড করে। Sidenav ব্যবহার করা হয় সাধারণত মোবাইল বা ডেস্কটপ অ্যাপ্লিকেশনে যেখানে ইউজারের জন্য একটি সেকেন্ডারি নেভিগেশন সিস্টেম প্রদান করা হয়।
Angular Material-এ Sidenav ব্যবহার করতে হলে, আপনাকে MatSidenavModule
এবং MatListModule
ইমপোর্ট করতে হবে।
প্রথমে, Angular Material ইন্সটল করতে হবে:
ng add @angular/material
এরপর, আপনার app.module.ts ফাইলে MatSidenavModule
এবং MatListModule
ইমপোর্ট করুন:
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatListModule } from '@angular/material/list';
@NgModule({
imports: [
MatSidenavModule,
MatListModule
],
})
export class AppModule { }
এখন, HTML ফাইলে সাইডন্যাভ ব্যবহার করতে পারেন। নিচে একটি সাধারণ উদাহরণ দেওয়া হলো:
<mat-sidenav-container class="example-container">
<mat-sidenav #sidenav mode="side" opened>
<mat-nav-list>
<mat-list-item>Home</mat-list-item>
<mat-list-item>About</mat-list-item>
<mat-list-item>Contact</mat-list-item>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<button mat-button (click)="sidenav.toggle()">Toggle Sidenav</button>
<h1>Welcome to Angular Material Sidenav Example</h1>
</mat-sidenav-content>
</mat-sidenav-container>
এখানে:
#sidenav
: এটি সাইডন্যাভের একটি টেমপ্লেট রেফারেন্স।mode="side"
: এটি সাইডন্যাভের মুড নির্ধারণ করে (এটি সাইডে স্থায়ীভাবে প্রদর্শিত হবে)।opened
: এটি সাইডন্যাভের শুরুর অবস্থায় খোলা থাকবে।Sidenav রেসপন্সিভ করার জন্য, Angular Material এর mode এবং breakpoints ব্যবহার করা যায়। আপনি চাইলে mode="over" সেট করতে পারেন, যাতে এটি মোবাইল স্ক্রীনে একটি হ্যামবার্গার মেনু হিসেবে প্রদর্শিত হয়।
<mat-sidenav-container class="example-container">
<mat-sidenav #sidenav mode="over" position="start">
<mat-nav-list>
<mat-list-item>Home</mat-list-item>
<mat-list-item>About</mat-list-item>
<mat-list-item>Contact</mat-list-item>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<button mat-button (click)="sidenav.toggle()">Toggle Sidenav</button>
<h1>Welcome to the Responsive Sidenav Example</h1>
</mat-sidenav-content>
</mat-sidenav-container>
এখানে:
আপনি সাইডন্যাভের মধ্যে অন্যান্য Angular Material উপাদানও ব্যবহার করতে পারেন, যেমন mat-list, mat-button ইত্যাদি।
<mat-sidenav-container class="example-container">
<mat-sidenav #sidenav mode="side" opened>
<mat-nav-list>
<mat-list-item><button mat-button>Dashboard</button></mat-list-item>
<mat-list-item><button mat-button>Profile</button></mat-list-item>
<mat-list-item><button mat-button>Settings</button></mat-list-item>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<button mat-button (click)="sidenav.toggle()">Toggle Sidenav</button>
<h1>Welcome to the Application</h1>
</mat-sidenav-content>
</mat-sidenav-container>
এখানে mat-button ব্যবহার করা হয়েছে সাইডন্যাভের লিস্ট আইটেমগুলোর মধ্যে।
Angular Material Sidenav হল একটি শক্তিশালী এবং রেসপন্সিভ কম্পোনেন্ট যা আপনার অ্যাপ্লিকেশনে একটি স্লাইডিং নেভিগেশন প্যানেল তৈরি করতে সাহায্য করে। এটি Mobile-first এবং Responsive Design নিশ্চিত করার জন্য উপযুক্ত, যা মোবাইল, ট্যাবলেট এবং ডেস্কটপ স্ক্রীনে সুন্দরভাবে কাজ করে। Sidenav ব্যবহার করে আপনি সহজেই নেভিগেশন সিস্টেম তৈরি করতে পারেন যা ব্যবহারকারীর অভিজ্ঞতা উন্নত করে এবং অ্যাপ্লিকেশনের ইউজার ইন্টারফেসের পরিপূর্ণতা বৃদ্ধি করে।
Angular Material এর সাহায্যে একটি রেসপন্সিভ সাইডন্যাভ (Sidenav) তৈরি করা খুবই সহজ এবং এটি একটি জনপ্রিয় উপাদান (component) যা মোবাইল, ট্যাবলেট, এবং ডেস্কটপ ডিভাইসে একটি উন্নত এবং ব্যবহারকারী-বান্ধব লেআউট প্রদান করে। সাইডন্যাভ সাধারণত নেভিগেশন বার হিসেবে ব্যবহৃত হয়, যেখানে ইউজাররা বিভিন্ন পেজ বা সেকশনে সহজে নেভিগেট করতে পারেন।
Angular Material এর MatSidenav
কম্পোনেন্ট ব্যবহার করে আপনি খুব সহজেই একটি রেসপন্সিভ সাইডন্যাভ তৈরি করতে পারেন।
MatSidenavModule এবং MatButtonModule সহ কিছু অন্যান্য Angular Material মডিউল ইনপোর্ট করতে হবে।
import { NgModule } from '@angular/core';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
imports: [
BrowserAnimationsModule,
MatSidenavModule,
MatButtonModule,
MatIconModule
],
...
})
export class AppModule {}
এখন, আপনি MatSidenav কম্পোনেন্ট ব্যবহার করে সাইডন্যাভ তৈরি করতে পারবেন। একটি সাইডন্যাভ সাধারণত দুটি অংশে বিভক্ত থাকে: main content এবং sidenav (নেভিগেশন)। সাইডন্যাভ মোবাইল এবং ডেস্কটপ ডিভাইসে বিভিন্ন আকারে প্রদর্শিত হতে পারে।
<mat-sidenav-container class="example-container">
<mat-sidenav #sidenav mode="side" opened>
<mat-nav-list>
<a mat-list-item href="#">Home</a>
<a mat-list-item href="#">About</a>
<a mat-list-item href="#">Contact</a>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<button mat-button (click)="sidenav.toggle()">Toggle Sidenav</button>
<h1>Welcome to My Website</h1>
</mat-sidenav-content>
</mat-sidenav-container>
এখানে:
mode="side"
: সাইডন্যাভের স্টাইল নির্ধারণ করে। এটি side বা over হিসেবে হতে পারে। side মানে সাইডন্যাভ ডিফল্টভাবে দৃশ্যমান থাকবে, এবং over মানে এটি বাম বা ডান দিক থেকে স্লাইড হয়ে আসবে।opened
: সাইডন্যাভ শুরুতে খোলা থাকবে।মোবাইল এবং ট্যাবলেট ডিভাইসে সাইডন্যাভের আচরণ পরিবর্তন করার জন্য, MatSidenav
এর mode
এবং opened
প্রপার্টি কনফিগার করা যায়। আপনি চাইলে angular flex layout বা CSS media queries ব্যবহার করে এটি রেসপন্সিভ করতে পারেন।
<mat-sidenav-container class="example-container">
<mat-sidenav #sidenav [mode]="isHandset ? 'over' : 'side'" [opened]="!isHandset">
<mat-nav-list>
<a mat-list-item href="#">Home</a>
<a mat-list-item href="#">About</a>
<a mat-list-item href="#">Contact</a>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<button mat-button (click)="sidenav.toggle()">Toggle Sidenav</button>
<h1>Welcome to My Website</h1>
</mat-sidenav-content>
</mat-sidenav-container>
এখানে আমরা isHandset ব্যবহার করেছি, যা Breakpoints চেক করে মোবাইল বা ট্যাবলেট ডিভাইসে অ্যাপ্লিকেশনটি রেসপন্সিভ করে।
import { Component } from '@angular/core';
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
isHandset: boolean = false;
constructor(private breakpointObserver: BreakpointObserver) {
this.breakpointObserver.observe([Breakpoints.Handset])
.subscribe(result => {
this.isHandset = result.matches;
});
}
}
এখানে:
Handset
(মোবাইল) ডিভাইস চেক করতে। যখন মোবাইল ডিভাইসে থাকবে, তখন সাইডন্যাভের মোড over হবে, এবং ডেস্কটপে side হবে।CSS বা SCSS ব্যবহার করে সাইডন্যাভের আউটলুক কাস্টমাইজ করা যায়। উদাহরণস্বরূপ, সাইডন্যাভের ব্যাকগ্রাউন্ড, সাইডন্যাভের প্রস্থ এবং অন্যান্য উপাদান কাস্টমাইজ করা যেতে পারে।
.example-container {
height: 100%;
}
mat-sidenav {
width: 250px;
background: #3f51b5;
}
mat-sidenav-content {
padding: 20px;
}
এখানে, সাইডন্যাভের প্রস্থ 250px এবং ব্যাকগ্রাউন্ড কালার #3f51b5 (নীল) দেওয়া হয়েছে।
মোবাইল ভিউতে আপনি সাইডন্যাভের জন্য একটি toggle button তৈরি করতে পারেন যা সাইডন্যাভকে খোলার এবং বন্ধ করার কাজ করবে।
<mat-sidenav-container class="example-container">
<mat-sidenav #sidenav [mode]="isHandset ? 'over' : 'side'" [opened]="!isHandset">
<mat-nav-list>
<a mat-list-item href="#">Home</a>
<a mat-list-item href="#">About</a>
<a mat-list-item href="#">Contact</a>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<button mat-icon-button (click)="sidenav.toggle()">
<mat-icon>menu</mat-icon>
</button>
<h1>Welcome to My Website</h1>
</mat-sidenav-content>
</mat-sidenav-container>
এখানে, mat-icon-button
এবং mat-icon
ব্যবহার করে সাইডন্যাভের জন্য একটি মেনু আইকন তৈরি করা হয়েছে যা সাইডন্যাভ টগল করবে।
Angular Material এর মাধ্যমে একটি রেসপন্সিভ সাইডন্যাভ তৈরি করা সহজ এবং কার্যকর। Angular Material এর MatSidenav এবং BreakpointObserver ব্যবহার করে আপনি মোবাইল এবং ডেস্কটপ ডিভাইসের জন্য উপযুক্ত সাইডন্যাভ তৈরি করতে পারেন। এটি স্বয়ংক্রিয়ভাবে সাইডন্যাভের আউটলুক কাস্টমাইজ করে এবং ব্যবহারকারীর জন্য আরও সুবিধাজনক নেভিগেশন ব্যবস্থা প্রদান করে।
Angular Material এর MatToolbar এবং MatSidenav কম্পোনেন্ট দুটি জনপ্রিয় ইউআই উপাদান, যা সাধারণত ন্যাভিগেশন এবং অ্যাপ্লিকেশনের মূল কন্টেন্টকে ডিসপ্লে করার জন্য ব্যবহার করা হয়। MatToolbar হল একটি টুলবার, যা অ্যাপ্লিকেশনের শীর্ষে থাকে, এবং MatSidenav হল একটি সাইডবার, যা সাধারণত ন্যাভিগেশন মেনু হিসেবে ব্যবহৃত হয়। এই দুটি কম্পোনেন্ট একসাথে ব্যবহার করে একটি শক্তিশালী ন্যাভিগেশন সিস্টেম তৈরি করা যায়।
এখানে MatToolbar এবং MatSidenav একসাথে কিভাবে ব্যবহার করা যায়, তার একটি উদাহরণ দেওয়া হল।
app.module.ts
ফাইলে প্রয়োজনীয় মডিউল ইমপোর্ট করাপ্রথমে, আপনাকে MatToolbarModule এবং MatSidenavModule ইমপোর্ট করতে হবে:
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatListModule } from '@angular/material/list';
@NgModule({
imports: [
MatToolbarModule,
MatSidenavModule,
MatListModule, // For list in sidenav
],
})
export class AppModule {}
এখানে একটি উদাহরণ দেওয়া হল যেখানে MatToolbar এবং MatSidenav একসাথে ব্যবহৃত হচ্ছে:
<mat-sidenav-container class="example-container">
<!-- Sidenav -->
<mat-sidenav #sidenav mode="side" opened>
<mat-nav-list>
<mat-list-item>Home</mat-list-item>
<mat-list-item>About</mat-list-item>
<mat-list-item>Services</mat-list-item>
<mat-list-item>Contact</mat-list-item>
</mat-nav-list>
</mat-sidenav>
<!-- Main content -->
<mat-sidenav-content>
<!-- Toolbar -->
<mat-toolbar color="primary">
<button mat-icon-button (click)="sidenav.toggle()">
<mat-icon>menu</mat-icon>
</button>
<span>My Application</span>
</mat-toolbar>
<div class="content">
<h1>Welcome to My Application</h1>
<p>This is the main content area.</p>
</div>
</mat-sidenav-content>
</mat-sidenav-container>
#sidenav
এর মাধ্যমে টেমপ্লেটে রেফারেন্স করা হয়েছে, যাতে সাইডবারটি টগল করা যায়।এটি আপনার অ্যাপ্লিকেশনের লেআউটকে সুন্দরভাবে সাজানোর জন্য কিছু স্টাইল যোগ করতে পারে:
.example-container {
height: 100%;
}
mat-sidenav {
width: 250px;
}
.content {
padding: 20px;
}
আমরা সাইডন্যাভ টগল করতে (click) ইভেন্ট ব্যবহার করতে পারি। ব্যবহারকারীরা যখন মেনু বাটনে ক্লিক করবেন, তখন সাইডন্যাভটি খুলে যাবে অথবা বন্ধ হয়ে যাবে।
export class AppComponent {
// MatSidenav instance for toggle
sidenav: MatSidenav;
toggleSidenav() {
this.sidenav.toggle();
}
}
এটি আপনি MatSidenav এর টগল বাটনে click
ইভেন্ট হ্যান্ডল করার জন্য ব্যবহার করতে পারেন।
MatToolbar এবং MatSidenav একসাথে ব্যবহার করার মাধ্যমে আপনি একটি শক্তিশালী এবং রেসপন্সিভ ন্যাভিগেশন সিস্টেম তৈরি করতে পারেন। টুলবারে মেনু বাটন ব্যবহার করে আপনি সহজেই সাইডন্যাভ টগল করতে পারবেন, যা আপনার অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ এবং ইউজার-বান্ধব করে তোলে। Angular Material এর এই কম্পোনেন্টগুলো ব্যবহার করে আপনি দ্রুত একটি আধুনিক এবং কার্যকরী ন্যাভিগেশন সিস্টেম তৈরি করতে পারেন।