Mobile এবং Tablet জন্য Responsive Design Techniques

Web Development - অ্যাঙ্গুলার গুগল চার্ট (Angular Google Charts) - Responsive Charts (রেসপন্সিভ চার্টস তৈরি) |

Responsive Design একটি ওয়েব ডিজাইন কৌশল যা ওয়েবপেজের কন্টেন্ট এবং লেআউটকে স্বয়ংক্রিয়ভাবে ডিভাইসের স্ক্রীন সাইজের সাথে সামঞ্জস্যপূর্ণ করে তোলে। এটি মোবাইল, ট্যাবলেট এবং ডেস্কটপের মতো বিভিন্ন ধরনের ডিভাইসে ওয়েবসাইটের পারফরম্যান্স এবং ইউজার অভিজ্ঞতা উন্নত করতে সহায়তা করে। Google Charts ব্যবহার করে চার্টের রেসপন্সিভ ডিজাইন কাস্টমাইজ করার জন্য কিছু পদ্ধতি এবং টেকনিক্স তুলে ধরা হলো।


1. Viewport Meta Tag (ViewPort সেট করা)

Responsive Design-এর প্রথম ধাপ হলো Viewport সঠিকভাবে সেট করা, যাতে ওয়েব পেজটি ডিভাইসের স্ক্রীন সাইজের সাথে ফিট হয়ে যায়। এই ট্যাগটি ওয়েবপেজের <head> ট্যাগে যোগ করতে হয়।

<meta name="viewport" content="width=device-width, initial-scale=1.0">

এটি আপনার ওয়েবপেজকে মোবাইল-ফ্রেন্ডলি করে তোলে, কারণ এটি ব্রাউজারকে জানায় যে স্ক্রীন সাইজের উপর ভিত্তি করে কন্টেন্টটি স্কেল বা রিসাইজ হতে হবে।


2. CSS Media Queries (CSS Media Query ব্যবহার)

Media Queries হল CSS এর একটি ফিচার, যার সাহায্যে আপনি বিভিন্ন স্ক্রীন সাইজের জন্য আলাদা স্টাইল অ্যাপ্লাই করতে পারেন। এটি মোবাইল, ট্যাবলেট এবং ডেস্কটপের জন্য পৃথক স্টাইল তৈরি করতে সহায়তা করে।

Media Query উদাহরণ:

/* Default style for larger screens */
.chart-container {
  width: 80%;
  height: 500px;
}

/* For tablets (max-width: 768px) */
@media screen and (max-width: 768px) {
  .chart-container {
    width: 90%;
    height: 400px;
  }
}

/* For mobile devices (max-width: 480px) */
@media screen and (max-width: 480px) {
  .chart-container {
    width: 100%;
    height: 300px;
  }
}

এখানে, আপনি max-width ব্যবহার করে মোবাইল এবং ট্যাবলেটের জন্য আলাদা স্টাইল সেট করেছেন। width এবং height রেসপন্সিভভাবে মোবাইল এবং ট্যাবলেটের স্ক্রীন সাইজের সাথে সামঞ্জস্যপূর্ণ।


3. Google Chart এর জন্য Responsive Design

Google Charts-এ responsive ডিজাইন তৈরি করতে, আপনি চার্টের পাত্র বা কন্টেইনারের আকার CSS এর মাধ্যমে কাস্টমাইজ করতে পারেন। এর ফলে চার্টের আকার ডিভাইসের স্ক্রীন সাইজ অনুযায়ী পরিবর্তিত হবে।

Responsive Chart Container Example:

<div id="chart_div" style="width: 100%; height: 100%;"></div>

এখানে, width এবং height কে 100% দিয়ে সেট করা হয়েছে, যা চার্টের কন্টেইনারকে ওয়েবপেজের চাহিদা অনুযায়ী সাইজ পরিবর্তন করতে সক্ষম করবে।

Responsive Google Chart Example:

google.charts.load('current', {'packages':['corechart', 'pie']});
google.charts.setOnLoadCallback(drawChart);

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['Task', 'Hours per Day'],
    ['Work', 8],
    ['Eat', 2],
    ['Commute', 2],
    ['Watch TV', 2],
    ['Sleep', 8]
  ]);

  var options = {
    title: 'My Daily Activities',
    pieHole: 0.4,
    width: '100%',  // Set width to 100%
    height: '100%'  // Set height to 100%
  };

  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data, options);
}

এখানে, width এবং height এর মান '100%' সেট করা হয়েছে, যাতে চার্টের আকার ডিভাইসের স্ক্রীন সাইজ অনুযায়ী পরিবর্তিত হয়।


4. Avoid Fixed Widths (স্থির প্রস্থ পরিহার করা)

চেষ্টা করুন সব চার্ট এবং কন্টেইনারের জন্য স্থির প্রস্থ (fixed width) ব্যবহার না করার জন্য। বরং, percentage-based width ব্যবহার করা উচিত, যাতে ওয়েবপেজটি সমস্ত স্ক্রীনে রেসপন্সিভ থাকে।

ব্যাভারিক উদাহরণ:

.chart-container {
  width: 100%;
  max-width: 800px;  /* Optional: Limit the width */
  height: 400px;
  margin: 0 auto;    /* Center the chart container */
}

এখানে, width: 100% ব্যবহার করা হয়েছে যাতে এটি স্ক্রীনের আকার অনুযায়ী সাইজ নেবে, এবং max-width দিয়ে চার্টটির একটি সর্বাধিক প্রস্থ সীমাবদ্ধ করা হয়েছে।


5. Maintaining Aspect Ratio (আসপেক্ট রেশিও বজায় রাখা)

Responsive ডিজাইন তৈরি করার সময় চার্টের আসপেক্ট রেশিও বজায় রাখা খুবই গুরুত্বপূর্ণ। চার্টের আসপেক্ট রেশিও পরিবর্তন না করার জন্য আপনি padding-bottom ব্যবহার করতে পারেন।

Aspect Ratio Example:

.chart-container {
  width: 100%;
  height: 0;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio (height/width * 100) */
  position: relative;
}

#chart_div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

এখানে, padding-bottom: 56.25% দিয়ে 16:9 আসপেক্ট রেশিও বজায় রাখা হয়েছে, যা চার্টকে বিভিন্ন স্ক্রীনে সঠিকভাবে প্রদর্শন করবে।


6. Chart Redrawing on Resize (স্ক্রীন রিসাইজে চার্ট রিড্রয়িং)

যখন স্ক্রীন সাইজ পরিবর্তিত হয়, তখন আপনি resize ইভেন্ট ব্যবহার করে চার্টটি আবার রিড্রয় করা নিশ্চিত করতে পারেন। এটি আপনাকে চার্টের আকার পরিবর্তন করতে সহায়তা করবে।

google.charts.load('current', {'packages':['corechart', 'pie']});
google.charts.setOnLoadCallback(drawChart);

window.onresize = function () {
  drawChart(); // Redraw chart on resize
};

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['Task', 'Hours per Day'],
    ['Work', 8],
    ['Eat', 2],
    ['Commute', 2],
    ['Watch TV', 2],
    ['Sleep', 8]
  ]);

  var options = {
    title: 'My Daily Activities',
    pieHole: 0.4,
    width: '100%',  // Set width to 100%
    height: '100%'  // Set height to 100%
  };

  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data, options);
}

এখানে, window.onresize ব্যবহার করে স্ক্রীন রিসাইজের সময় drawChart() ফাংশনটি আবার কল করা হচ্ছে, যাতে চার্টটি নতুন স্ক্রীন সাইজ অনুযায়ী রিড্রয় হয়।


7. CSS Grid এবং Flexbox ব্যবহার

আপনি CSS Grid বা Flexbox ব্যবহার করে আপনার চার্টকে আরও ভালোভাবে রেসপন্সিভ ডিজাইনে সাজাতে পারেন। এগুলি বিভিন্ন উপাদানকে সারিবদ্ধ এবং সঠিকভাবে সাজাতে সহায়তা করে।

CSS Grid Example:

.chart-container {
  display: grid;
  place-items: center;
  width: 100%;
  height: 400px;
}

#chart_div {
  width: 80%;
  height: 100%;
}

Flexbox Example:

.chart-container {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 400px;
}

#chart_div {
  width: 80%;
  height: 100%;
}

সারাংশ

Responsive Design Techniques ব্যবহার করে আপনি মোবাইল, ট্যাবলেট এবং ডেস্কটপে Google Charts এর প্রর্দশন কাস্টমাইজ করতে পারেন। Viewport Meta Tag, CSS Media Queries, Flexbox, Grid, এবং JavaScript Resize Events-এর মাধ্যমে আপনার চার্ট এবং কন্টেইনারের আকার স্বয়ংক্রিয়ভাবে স্ক্রীনের আকার অনুযায়ী সঠিকভাবে কাস্টমাইজ করা সম্ভব। এই কৌশলগুলি আপনার চার্টের ভিজুয়াল প্রেজেন্টেশন এবং ইউজার এক্সপেরিয়েন্স উন্নত করতে সহায়তা করবে।

Content added By
Promotion