UTILS.
‎100%‎ داخل المتصفح
💅

من CSS إلى كائن أنماط JS

حوّل كتلة تصريحات CSS إلى كائن أنماط JavaScript لأنماط React المضمّنة أو styled-components أو Emotion، بخصائص بأسلوب camelCase.

— يظهر المخرج هنا —

حول هذه الأداة

تحوّل أداة من CSS إلى كائن أنماط JS كتلة CSS إلى كائن JavaScript مناسب لأنماط React المضمّنة أو مكتبات CSS-in-JS مثل styled-components وEmotion. تحلّل التصريحات محليًا في متصفحك — لا يُرفَع شيء — فترحيل ورقة أنماط إلى أنماط مضمّنة على بُعد لصقة ونسخة.

يُحوَّل كل اسم خاصية إلى camelCase: background-color تصبح backgroundColor، وz-index تصبح zIndex. تتبع بادئات المُورِّد قواعد React — البادئة -ms- تصبح ms بأحرف صغيرة (msFilter)، بينما -webkit- و-moz- و-o- تُكتَب بأحرف كبيرة كـ Webkit وMoz وO (WebkitBoxShadow). تُحفَظ الخصائص المخصّصة (--brand-color) حرفيًا كمفاتيح مقتبسة. تُصدَر القيم كسلاسل افتراضيًا، مع الحفاظ على الوحدات و!important؛ ويتيح مفتاح رقمي للأعداد الصحيحة والعشرية العارية أن تصبح أرقامًا غير مقتبسة بدلًا من ذلك. تُترَك المفاتيح التي هي مُعرّفات JavaScript صالحة دون اقتباس؛ وتُقتبَس البقية تلقائيًا.

عندما يكون المُدخَل كتلة تصريحات عادية (بلا محدِّدات) فإنه يُنتِج كائنًا مسطّحًا واحدًا، مثاليًا لخاصية style في React. وعندما يحوي المُدخَل قواعد كاملة بمحدِّدات، يُصدِر وضع styled/Emotion كائنًا متداخلًا مفتَّحًا بكل سلسلة محدِّد — صيغة الكائن التي تقبلها تلك المكتبات. تتحكّم في اسم ثابت المُخرَج، ويُكتَب كل ذلك كـ const styles = { ... }; جاهزًا للّصق.

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

كيف تُحوَّل أسماء الخصائص؟
الخصائص المُعرّفة بشرطة تُحوَّل إلى camelCase (background-color إلى backgroundColor). تتبع بادئات المُورِّد React: -ms- تصبح بادئة ms صغيرة، بينما -webkit- و-moz- و-o- تصبح Webkit وMoz وO. تُحفَظ الخصائص المخصّصة مثل --foo كمفاتيح مقتبسة.
هل القيم أرقام أم سلاسل؟
افتراضيًا كل قيمة سلسلة، وهو دائمًا آمن ويُبقي الوحدات و!important سليمة. فعّل المفتاح الرقمي فتُصدَر القيم الرقمية البحتة (مثل z-index: 10) كأرقام غير مقتبسة بدلًا من ذلك.
ما الفرق بين الوضعين؟
وضع React المضمّن يُصدِر كائنًا مسطّحًا واحدًا من كتلة تصريحات. وضع styled / Emotion يُصدِر كائنًا متداخلًا مفتَّحًا بسلاسل المحدِّدات، مطابقًا لصيغة الكائن التي تقبلها styled-components وEmotion لقواعد متعددة.
هل تعالج قواعد CSS الكاملة بمحدِّدات؟
نعم. إذا حوى المُدخَل محدِّدات وأقواسًا، تُحلَّل كل قاعدة إلى كائنها المتداخل الخاص تحت مفتاح المحدِّد. قائمة تصريحات عارية بلا محدِّدات تُنتِج كائن أنماط مسطّحًا واحدًا.

المزيد من الأدوات