حاسبة CSS clamp()

أدخل حجمًا للشاشات الصغيرة وآخر للشاشات الكبيرة لتحصل على قيمة clamp() مرنة تتغير بسلاسة بينهما، سواء لحجم الخط أو الحشو أو الهوامش أو الفجوات.

الأحجام
الحد الأدنى
الحد الأقصى
قيمة clamp()
clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem)

تحتفظ النتيجة بجزء rem في الحد الأوسط، لذلك يظل النص قابلًا للتكبير عند الوصول إلى 200% — بخلاف القيمة التي تعتمد على إطار العرض وحده.

معاينة

نص مرن، الحجم مناسب تمامًا.

اضبط الأحجام وعرض الشاشة لتشكيل القيمة.

يتم تشغيل الحساب بالكامل في متصفحك. لا يتم تحميل أي شيء تدخله هنا على BroBroGo.

الأسئلة الشائعة

كيف تبني الحاسبة قيمة clamp()؟

تُدخل نقطتين: حجمًا عند عرض شاشة صغير وحجمًا عند عرض شاشة كبير. ترسم الأداة خطًا مستقيمًا بينهما كي ينمو الحجم بسلاسة مع اتساع الشاشة، ثم تضعه داخل clamp() حتى لا يقل عن حجم الشاشة الصغيرة ولا يزيد على حجم الشاشة الكبيرة. بين العرضين يتغير الحجم بسلاسة، وخارجهما يثبت عند أقرب حد.

لماذا تكون النتيجة rem و vw بدلاً من البكسل؟

تُكتب الحدود بوحدة rem، ويحتفظ الجزء الأوسط المتغير بمكوّن rem، لذلك يظل النص قابلًا للتكبير عندما يقرّب القارئ الصفحة أو يرفع حجم الخط الافتراضي في المتصفح — وهو ما قد تمنعه قيمة تعتمد على البكسل أو إطار العرض وحده. تُدخل الأحجام بالبكسل لأنها الصيغة المألوفة لمعظم الأشخاص، وتحولها الأداة إلى rem باستخدام حجم الخط الجذر.

هل يمكنني استخدام هذا للتباعد، وليس فقط حجم الخط؟

نعم. تعمل القيمة نفسها مع padding أو margin أو gap أو العرض أو الارتفاع — أي موضع يقبل قيمة طول. بدّل المعاينة إلى «صندوق» لترى المسافة تكبر بدلًا من النص. وإذا تساوى الحجمان الصغير والكبير، تصبح النتيجة طولًا ثابتًا عاديًا لعدم وجود فرق يمكن تدرّجه.

هل تدعم جميع المتصفحات clamp()؟

نعم، تدعم جميع المتصفحات الحالية clamp() منذ عام 2020، لذا يمكنك استخدام القيمة كما هي من دون قيمة احتياطية. وإذا كان الحد الأقصى كبيرًا جدًا أو كان معدل التغير سريعًا، فمن المفيد التحقق عند تكبير الصفحة إلى 200% من أن النص ما زال يكبر للقراء الذين يحتاجون إليه.

فهم دالة CSS clamp() ودورها في التصميم المتجاوب

تُعد دالة clamp() في لغة CSS أداة قوية تتيح لمصممي ومطوري المواقع تحديد نطاق مرن للأحجام والمسافات يتغير ديناميكيًا مع تغير أبعاد الشاشة. تعمل هذه الدالة من خلال قبول ثلاثة معاملات أساسية: الحد الأدنى للحجم، والقيمة المفضلة (التي تتغير مرنًا بناءً على أبعاد إطار العرض)، والحد الأقصى للحجم.

عند استخدام هذه الدالة، يضمن المتصفح ألا يقل الحجم الفعلي عن الحد الأدنى المحدد، وألا يتجاوز الحد الأقصى، بينما يتغير الحجم بسلاسة بين هذين الحدين اعتمادًا على عرض الشاشة الحالي. يساعد هذا الأسلوب في التخلص من الحاجة إلى كتابة استعلامات وسائط (Media Queries) متعددة ومعقدة لتغطية كل قياس شاشة على حدة، مما يمنح المطورين طريقة برمجية نظيفة لتحقيق التوازن البصري في التصميم.

كيفية حساب القيمة المرنة عبر الاستيفاء الخطي

تعتمد حاسبة CSS clamp() على مبدأ الاستيفاء الخطي (Linear Interpolation) لإنشاء تدرج سلس بين نقطتين محددتين. لإنشاء هذه العلاقة، تحتاج الحاسبة إلى إدخال أربع قيم أساسية:

  1. مقاس الحد الأدنى (عند عرض الشاشة الصغير).
  2. عرض الشاشة الصغير.
  3. مقاس الحد الأقصى (عند عرض الشاشة الكبير).
  4. عرض الشاشة الكبير.

تقوم الحاسبة بحساب معدل التغير المطلوب لربط الحجم بعرض إطار العرض (viewport width أو vw). لضمان دقة الحسابات وتوافقها مع معايير الويب الحديثة، تحول الأداة مدخلات البكسل إلى وحدة rem بناءً على حجم الخط الجذر الذي يدخله المستخدم.

تتكون القيمة الناتجة من ثلاثة أجزاء رئيسية داخل الدالة:

  • الحد الأدنى: يمثل أصغر حجم مسموح به بوحدة rem.
  • الحد الأوسط المتغير: صيغة رياضية تجمع بين قيمة ثابتة بوحدة rem ونسبة مئوية من إطار العرض vw (على سبيل المثال: 0.8333rem + 0.8333vw).
  • الحد الأقصى: يمثل أكبر حجم مسموح به بوحدة rem.

أهمية وحدات rem و vw في سهولة الوصول والتحجيم

تتطلب معايير إمكانية الوصول للويب (Accessibility) أن يظل النص قابلًا للتكبير عندما يقوم المستخدم بتقريب الصفحة (Zoom) أو عند تغيير حجم الخط الافتراضي في إعدادات المتصفح.

إذا اعتمدت الصيغة الرياضية في الجزء الأوسط المتغير على وحدة vw وحدها، فقد يواجه المستخدمون ذوو الإعاقة البصرية مشكلة في تكبير النص، لأن وحدة vw ترتبط حصريًا بأبعاد الشاشة الفيزيائية ولا تستجيب لتقريب المتصفح. لتفادي هذه المشكلة، تحتفظ النتيجة بجزء rem في الحد الأوسط، لذلك يظل النص قابلًا للتكبير عند الوصول إلى 200% — بخلاف القيمة التي تعتمد على إطار العرض وحده. يضمن هذا الدمج الذكي بين rem و vw تلبية متطلبات الوصول مع الحفاظ على مرونة التصميم.

قواعد الحساب والحالات الخاصة

تتبع الحاسبة قواعد صارمة لضمان دقة الكود البرمجي الناتج وتجنب الأخطاء أثناء الرندر في المتصفح:

  • التحقق من صحة المدخلات: تتطلب الحاسبة إدخال أرقام صالحة في جميع الحقول. إذا تم إدخال قيم غير صالحة، ستعرض الأداة رسالة الخطأ: "أدخل رقمًا صالحًا في كل حقل.".
  • ترتيب أبعاد الشاشة: يجب أن يكون عرض الشاشة الصغيرة رقمًا موجبًا أصغر من الرقم الكبير. في حال عدم تحقق هذا الشرط، ستكون قيمة clamp() الناتجة هي وتظهر رسالة الخطأ: "يجب أن يكون عرض الشاشة الصغيرة رقمًا موجبًا أصغر من الرقم الكبير.".
  • تساوي الأحجام: إذا تساوى الحجمان الصغير والكبير، تصبح النتيجة طولًا ثابتًا عاديًا لعدم وجود فرق يمكن تدرّجه. وتظهر رسالة الحالة: "كلا الحجمين متساويان، لذا فهذه قيمة ثابتة وليست سائلة.".
  • القياس العكسي: في بعض الحالات التصميمية الخاصة، قد يرغب المطور في تصغير الحجم مع اتساع الشاشة. تدعم الحاسبة هذه الحالة وتظهر رسالة الحالة: "القياس العكسي - يتقلص الحجم مع نمو الشاشة.".

معاينة تفاعلية ومراقبة السلوك مباشرة

توفر الحاسبة منطقة معاينة تفاعلية تتيح لك اختبار سلوك القيمة الناتجة فورًا. يمكنك التبديل بين نمطين للمعاينة:

  • نص: يعرض الجملة النموذجية "نص مرن، الحجم مناسب تمامًا." لمعاينة سلوك الخطوط.
  • صندوق: يعرض مساحة مرئية لمعاينة سلوك الحشو (padding)، الهوامش (margin)، أو الفجوات (gap).

أثناء تغيير عرض منطقة المعاينة، تعرض الأداة عرض المعاينة الحالي رقميًا، وتتغير رسائل الحالة ديناميكيًا لتوضيح سلوك الدالة في تلك اللحظة:

  • عندما يكون العرض صغيرًا جدًا ويصل الحجم لأدنى قيمة، تظهر حالة: "ثابت عند الحد الأدنى".
  • عندما يتغير الحجم بمرونة بين الحدين، تظهر حالة: "التحجيم بسلاسة".
  • عندما يصل العرض لأقصى قيمة ويستقر الحجم، تظهر حالة: "ثابت عند الحد الأقصى".
  • عند بدء الاستخدام أو إعادة ضبط القيم، تظهر الرسالة الإرشادية: "اضبط الأحجام وعرض الشاشة لتشكيل القيمة.".

معالجة البيانات والخصوصية

عند استخدام هذه الحاسبة، يمكنك الاطمئنان تمامًا بشأن بياناتك ومشاريعك. يتم تشغيل الحساب بالكامل في متصفحك. لا يتم تحميل أي شيء تدخله هنا على BroBroGo. تتم جميع العمليات الرياضية محليًا على جهازك باستخدام لغة جافا سكريبت، مما يضمن سرعة الاستجابة الفورية دون الحاجة لإرسال طلبات إلى خوادم خارجية.


الأسئلة الشائعة

كيف تبني الحاسبة قيمة clamp()؟

تُدخل نقطتين: حجمًا عند عرض شاشة صغير وحجمًا عند عرض شاشة كبير. ترسم الأداة خطًا مستقيمًا بينهما كي ينمو الحجم بسلاسة مع اتساع الشاشة، ثم تضعه داخل clamp() حتى لا يقل عن حجم الشاشة الصغيرة ولا يزيد على حجم الشاشة الكبيرة. بين العرضين يتغير الحجم بسلاسة، وخارجهما يثبت عند أقرب حد.

لماذا تكون النتيجة rem و vw بدلاً من البكسل؟

تُكتب الحدود بوحدة rem، ويحتفظ الجزء الأوسط المتغير بمكوّن rem، لذلك يظل النص قابلًا للتكبير عندما يقرّب القارئ الصفحة أو يرفع حجم الخط الافتراضي في المتصفح — وهو ما قد تمنعه قيمة تعتمد على البكسل أو إطار العرض وحده. تُدخل الأحجام بالبكسل لأنها الصيغة المألوفة لمعظم الأشخاص، وتحولها الأداة إلى rem باستخدام حجم الخط الجذر.

هل يمكنني استخدام هذا للتباعد، وليس فقط حجم الخط؟

نعم. تعمل القيمة نفسها مع padding أو margin أو gap أو العرض أو الارتفاع — أي موضع يقبل قيمة طول. بدّل المعاينة إلى «صندوق» لترى المسافة تكبر بدلًا من النص. وإذا تساوى الحجمان الصغير والكبير، تصبح النتيجة طولًا ثابتًا عاديًا لعدم وجود فرق يمكن تدرّجه.

هل تدعم جميع المتصفحات clamp()؟

نعم، تدعم جميع المتصفحات الحالية clamp() منذ عام 2020، لذا يمكنك استخدام القيمة كما هي من دون قيمة احتياطية. وإذا كان الحد الأقصى كبيرًا جدًا أو كان معدل التغير سريعًا، فمن المفيد التحقق عند تكبير الصفحة إلى 200% من أن النص ما زال يكبر للقراء الذين يحتاجون إليه.