CSS ইউনিট কনভার্টার হলো একটি টুল যা বিভিন্ন CSS পরিমাপ পদ্ধতির মধ্যে দৈর্ঘ্যের মান রূপান্তর করে। CSS এক ডজনেরও বেশি দৈর্ঘ্য ইউনিট সংজ্ঞায়িত করে, যা দুটি গ্রুপে বিভক্ত: পরম ইউনিট যেমন px, pt, cm এবং in যা নির্দিষ্ট physical মাপে ম্যাপ হয়, এবং আপেক্ষিক ইউনিট যেমন rem, em, vw, vh এবং % যা ফন্ট সাইজ বা ভিউপোর্ট মাত্রার মতো প্রেক্ষাপটের উপর নির্ভর করে।
ব্রাউজার রেন্ডারিংয়ের সময় সমস্ত CSS দৈর্ঘ্য পিক্সেলে রূপান্তর করে। আপনি যখন 1.5rem লেখেন, ব্রাউজার 1.5 কে রুট ফন্ট-সাইজ (সাধারণত 16px) দিয়ে গুণ করে 24px পায়। যখন আপনি 50vw লেখেন, এটি বর্তমান ভিউপোর্ট প্রস্থের অর্ধেক নেয়। এই সম্পর্কগুলো বোঝাটা জরুরি — তাহলেই এমন লেআউট বানাতে পারবেন যা বিভিন্ন ডিভাইসে ঠিকমতো scale করবে এবং ব্রাউজারের কাস্টম ফন্ট সাইজের মতো user preference মেনে চলবে।
CSS Values and Units Module Level 4 স্পেসিফিকেশন (W3C) সমস্ত পরম ইউনিটের মধ্যে সঠিক রূপান্তর অনুপাত সংজ্ঞায়িত করে: 1in = 96px = 72pt = 2.54cm = 25.4mm। আপেক্ষিক ইউনিটের কোনো নির্দিষ্ট অনুপাত নেই কারণ এগুলো রানটাইম প্রেক্ষাপটের উপর নির্ভর করে। একটি বিনামূল্যে CSS ইউনিট কনভার্টার আপনাকে আপনার নির্দিষ্ট রুট ফন্ট-সাইজ এবং ভিউপোর্ট মাত্রা দিয়ে কোনো কোড না লিখেই এই সম্পর্কগুলো তাৎক্ষণিকভাবে গণনা করতে দেয়।
CSS ইউনিট কনভার্টার কেন ব্যবহার করবেন?
হাতে CSS ইউনিট রূপান্তর করতে অনুপাত মনে রাখা, ক্যালকুলেটর বের করা এবং গণনা দুবার যাচাই করা লাগে। এই টুলটি আপনার ব্রাউজারে কোনো ঝামেলা ছাড়াই রূপান্তর করে।
⚡
তাৎক্ষণিক রূপান্তর
একটি মান দিন, উৎস ইউনিট বেছে নিন এবং একসাথে সব ১০টি CSS ইউনিটে ফলাফল দেখুন। px-থেকে-rem, px-থেকে-vw বা px-থেকে-pt এর জন্য আলাদা গণনা চালানোর দরকার নেই।
🔒
আপনার ডেটা সুরক্ষিত রাখুন
সমস্ত রূপান্তর আপনার ব্রাউজারে স্থানীয়ভাবে চলে। কোনো মান সার্ভারে পাঠানো হয় না, লগ করা হয় না বা সংরক্ষণ করা হয় না। ট্যাব বন্ধ করুন এবং ডেটা চলে যায়।
🎯
নিজের প্রজেক্ট অনুযায়ী কনফিগার করুন
আপনার রুট ফন্ট-সাইজ, ভিউপোর্ট প্রস্থ, ভিউপোর্ট উচ্চতা এবং প্যারেন্ট ফন্ট-সাইজ সেট করুন। কনভার্টার rem, em, vw, vh এবং % ইউনিটের জন্য সঠিক ফলাফল তৈরি করতে এই মানগুলো ব্যবহার করে।
📏
সব CSS দৈর্ঘ্য ইউনিট কভার করুন
px, rem, em, vw, vh, %, pt, cm, mm এবং in সমর্থন করে। আপনি স্ক্রিন লেআউট, প্রিন্ট স্টাইলশিট বা রেসপন্সিভ টাইপোগ্রাফি নিয়ে কাজ করছেন কিনা, প্রতিটি ইউনিট অন্তর্ভুক্ত।
CSS ইউনিট কনভার্টারের ব্যবহারের ক্ষেত্র
ফ্রন্টএন্ড ডেভেলপমেন্ট
একটি কম্পোনেন্ট লাইব্রেরির জন্য ডিজাইন ফাইলের পিক্সেল মানগুলো rem-এ রূপান্তর করুন। যখন একটি Figma মকআপ 24px স্পেসিং নির্দিষ্ট করে, এটিকে 1.5rem-এ রূপান্তর করুন যাতে লেআউটটি ব্যবহারকারীর ফন্ট-সাইজ পছন্দের সাথে স্কেল করে।
ব্যাকএন্ড / ফুল-স্ট্যাক ইঞ্জিনিয়ারিং
PDF বা ইমেইল টেমপ্লেট তৈরি করুন যেখানে মাত্রা pt বা cm-এ নির্দিষ্ট। Puppeteer বা wkhtmltopdf এর মতো টুল দিয়ে সার্ভার-সাইড রেন্ডারিংয়ের জন্য আপনার CSS পিক্সেল মানগুলো প্রিন্ট-প্রস্তুত পয়েন্ট সাইজে রূপান্তর করুন।
DevOps / CI পাইপলাইন
যাচাই করুন যে একটি ডিজাইন সিস্টেমের স্পেসিং টোকেন বিল্ড স্টেপ জুড়ে সামঞ্জস্যপূর্ণ ইউনিট ব্যবহার করে। দ্রুত যাচাই করুন যে একটি 16px বেস জেনারেটেড CSS-এ প্রত্যাশিত rem মান তৈরি করে।
QA / ভিজ্যুয়াল টেস্টিং
ক্রস-ব্রাউজার টেস্টিংয়ের সময় কম্পিউটেড স্টাইল যাচাই করুন। Chrome DevTools যখন 14.4px এর একটি কম্পিউটেড মান দেখায়, এটিকে rem-এ রূপান্তর করুন স্টাইলশিট থেকে প্রত্যাশিত 0.9rem এর সাথে মিলছে কিনা নিশ্চিত করতে।
ডেটা ভিজ্যুয়ালাইজেশন
ভিউপোর্ট মাত্রার তুলনায় SVG বা ক্যানভাস উপাদান সাইজ করুন। নির্দিষ্ট পিক্সেল চার্ট প্রস্থগুলো vw ইউনিটে রূপান্তর করুন যাতে ভিজ্যুয়ালাইজেশন বিভিন্ন মনিটরে স্ক্রিনের একটি সামঞ্জস্যপূর্ণ শতাংশ পূর্ণ করে।
CSS শেখা
বিভিন্ন বেস সাইজ নিয়ে পরীক্ষা করে rem, em এবং px এর মধ্যে সম্পর্ক বুঝুন। রুট ফন্ট-সাইজ 16px থেকে 18px-এ পরিবর্তন করুন এবং দেখুন প্রতিটি rem মান কীভাবে পরিবর্তিত হয়।
CSS দৈর্ঘ্য ইউনিট রেফারেন্স
CSS ১০টি সাধারণভাবে ব্যবহৃত দৈর্ঘ্য ইউনিট সংজ্ঞায়িত করে। পরম ইউনিটের পিক্সেলে একটি নির্দিষ্ট রূপান্তর আছে। আপেক্ষিক ইউনিট প্রেক্ষাপটের উপর নির্ভর করে: rem এর জন্য রুট ফন্ট-সাইজ, em এর জন্য প্যারেন্ট ফন্ট-সাইজ এবং vw ও vh এর জন্য ব্রাউজার ভিউপোর্ট।
ইউনিট
নাম
ডিফল্ট সাইজ
সম্পর্কিত
px
Pixel
1px
Fixed; 1px = 1/96 of 1in on screens
rem
Root em
16px (default)
Relative to <html> font-size
em
Em
Inherited
Relative to parent element font-size
vw
Viewport width
1% of viewport
Relative to browser window width
vh
Viewport height
1% of viewport
Relative to browser window height
%
Percentage
Varies
Relative to parent property value
pt
Point
1.333px
Print unit; 1pt = 1/72 of 1in
cm
Centimeter
37.795px
Physical unit; 1cm = 96px / 2.54
mm
Millimeter
3.7795px
Physical unit; 1mm = 1cm / 10
in
Inch
96px
Physical unit; 1in = 96px (CSS spec)
পরম বনাম আপেক্ষিক CSS ইউনিট
পরম এবং আপেক্ষিক ইউনিটের মধ্যে বেছে নেওয়া আপনার লেআউট বিভিন্ন স্ক্রিন এবং ব্যবহারকারীর সেটিংসে কীভাবে সাড়া দেয় তা প্রভাবিত করে। প্রতিটি গ্রুপের আলাদা সুবিধা ও অসুবিধা আছে।
পরম ইউনিট (px, pt, cm, mm, in)
পরম ইউনিট প্রেক্ষাপট নির্বিশেষে একই শারীরিক আকার তৈরি করে। বর্ডার, শ্যাডো এবং স্কেল না হওয়া উচিত এমন উপাদানের জন্য px ব্যবহার করুন। প্রিন্ট স্টাইলশিটের জন্য pt ব্যবহার করুন। CSS স্পেক 1in = 96px সংজ্ঞায়িত করে, যদিও প্রকৃত শারীরিক আকার ডিসপ্লে DPI অনুযায়ী পরিবর্তিত হয়।
আপেক্ষিক ইউনিট (rem, em, vw, vh, %)
আপেক্ষিক ইউনিট তাদের রেফারেন্স প্রেক্ষাপটের সাথে স্কেল করে। ব্যবহারকারীর পছন্দ মেনে চলতে ফন্ট-সাইজ এবং স্পেসিংয়ের জন্য rem ব্যবহার করুন। কম্পোনেন্ট-অভ্যন্তরীণ স্কেলিংয়ের জন্য em ব্যবহার করুন (উপাদানের নিজস্ব ফন্ট-সাইজ সম্পর্কিত প্যাডিং)। হিরো সেকশনের মতো ভিউপোর্ট-পূর্ণ লেআউটের জন্য vw/vh ব্যবহার করুন।
সাধারণ px থেকে rem রূপান্তর সারণী
এই সারণীতে 16px এর রুট ফন্ট-সাইজ ধরা হয়েছে (ব্রাউজারের ডিফল্ট)। আপনার প্রকল্প ভিন্ন বেস ব্যবহার করলে, rem সমতুল্য পেতে পিক্সেল মানকে আপনার বেস দিয়ে ভাগ করুন।
px
rem
pt
সাধারণ ব্যবহার
10
0.625
7.5
Small caption text
12
0.75
9
Body text (compact)
14
0.875
10.5
Default body text
16
1
12
Root font-size (browser default)
18
1.125
13.5
Large body text
20
1.25
15
H4 heading
24
1.5
18
H3 heading
32
2
24
H2 heading
48
3
36
H1 heading
64
4
48
Display / hero text
কোড উদাহরণ
এই উদাহরণগুলো দেখায় কীভাবে JavaScript, Python, CSS কাস্টম প্রপার্টি এবং Sass-এ প্রোগ্রামাটিকভাবে CSS ইউনিট রূপান্তর করতে হয়।
JavaScript
// px to rem (given root font-size of 16px)
const pxToRem = (px, base = 16) => px / base
pxToRem(24) // → 1.5
// rem to px
const remToPx = (rem, base = 16) => rem * base
remToPx(1.5) // → 24
// px to vw (given viewport width of 1440px)
const pxToVw = (px, viewport = 1440) => (px / viewport) * 100
pxToVw(360) // → 25
// Dynamic calculation using getComputedStyle
const rootFontSize = parseFloat(
getComputedStyle(document.documentElement).fontSize
) // → 16 on most browsers
সমস্ত প্রধান ব্রাউজার (Chrome, Firefox, Safari, Edge) ডিফল্টরূপে 16px রুট ফন্ট-সাইজ ব্যবহার করে। এর মানে 1rem = 16px যদি না ব্যবহারকারী বা কোনো স্টাইলশিট html উপাদানের ফন্ট-সাইজ ওভাররাইড না করে। কিছু ব্যবহারকারী অ্যাক্সেসিবিলিটির জন্য ব্রাউজার সেটিংসে এটি বাড়ায়, তাই px এর চেয়ে rem টেক্সটের জন্য ভালো ডিফল্ট।
px থেকে rem কীভাবে রূপান্তর করব?
পিক্সেল মানকে রুট ফন্ট-সাইজ দিয়ে ভাগ করুন। ডিফল্ট 16px বেস দিয়ে: 24px / 16 = 1.5rem। আপনার প্রকল্প যদি html { font-size: 10px } সেট করে (একটি সাধারণ রিসেট), তাহলে 24px / 10 = 2.4rem। সূত্রটি সবসময়: rem = px / রুট-ফন্ট-সাইজ।
rem এবং em এর মধ্যে পার্থক্য কী?
rem রুট উপাদানের ফন্ট-সাইজের (html ট্যাগ) সাপেক্ষে, যেখানে em বর্তমান উপাদানের প্যারেন্ট ফন্ট-সাইজের সাপেক্ষে। এর মানে rem পুরো পেজে সামঞ্জস্যপূর্ণ সাইজিং তৈরি করে, যেখানে নেস্ট করলে em যৌগিক হয়। 2em প্যারেন্টের ভেতরে 2em রুট সাইজের 4 গুণ হয়ে যায়। গ্লোবাল স্পেসিং এবং ফন্ট সাইজের জন্য rem ব্যবহার করুন; em ব্যবহার করুন যখন সাইজিং কম্পোনেন্টের নিজস্ব টেক্সটের তুলনায় স্কেল করতে চান।
কখন vw বা vh ইউনিট ব্যবহার করব?
যেসব উপাদান ব্রাউজার উইন্ডোর প্রস্থের সাথে স্কেল করা উচিত সেগুলোর জন্য vw ব্যবহার করুন, যেমন ফুল-উইডথ হিরো সেকশন বা ফ্লুইড টাইপোগ্রাফি (vw দিয়ে clamp)। ফুল-স্ক্রিন সেকশন বা ভিউপোর্ট-হাইট লেআউটের জন্য vh ব্যবহার করুন। মোবাইল ব্রাউজারে vh ব্যবহারে সতর্ক থাকুন যেখানে অ্যাড্রেস বার ভিউপোর্ট উচ্চতা পরিবর্তন করে; নতুন dvh (dynamic viewport height) ইউনিট এটি সমাধান করে।
একই প্রপার্টিতে কি বিভিন্ন CSS ইউনিট মেশানো যায়?
হ্যাঁ। CSS calc() ফাংশন আপনাকে একটি এক্সপ্রেশনে যেকোনো ইউনিট একত্রিত করতে দেয়। উদাহরণস্বরূপ, width: calc(100vw - 2rem) পূর্ণ ভিউপোর্ট প্রস্থ থেকে 32px (ডিফল্ট বেসে) বিয়োগ করে। আপনি clamp()-এ ইউনিটও মেশাতে পারেন: font-size: clamp(1rem, 2vw + 0.5rem, 2.5rem) 16px এবং 40px এর মধ্যে স্কেল হওয়া ফ্লুইড টাইপোগ্রাফি তৈরি করে।
CSS-এ 1pt কত পিক্সেল?
CSS-এ, 1pt = 1 ইঞ্চির 1/72, এবং 1 ইঞ্চি = 96px, তাই 1pt = 96/72 = 1.333px। এই অনুপাত স্ক্রিন DPI নির্বিশেষে CSS স্পেসিফিকেশনে নির্দিষ্ট। পয়েন্ট প্রধানত প্রিন্ট স্টাইলশিট এবং PDF জেনারেশনে ব্যবহৃত হয়। স্ক্রিন ডিজাইনের জন্য px বা rem ভালো পছন্দ।
62.5% ফন্ট-সাইজ রিসেট কি এখনও ভালো অভ্যাস?
html { font-size: 62.5% } সেট করলে 1rem = 10px হয়, যা মানসিক গণনা সহজ করে (24px = 2.4rem)। তবে এটির জন্য আপনাকে body উপাদানে স্পষ্টভাবে ফন্ট-সাইজ সেট করতে হবে এবং তৃতীয় পক্ষের কম্পোনেন্টে সমস্যা হতে পারে যেগুলো ডিফল্ট 16px বেস ধরে নেয়। আধুনিক পছন্দ হলো 16px ডিফল্ট রাখা এবং পরিবর্তে রূপান্তর পরিচালনার জন্য Sass ফাংশন বা PostCSS প্লাগইন ব্যবহার করা।