محوّل SCSS
من SCSS وLess وStylus إلى CSS
يقرأ محوّل SCSS قواعد التداخل والمتغيرات و mixins، ثم يكتب CSS المسطّح الذي يفهمه المتصفح. لذلك تحوّل SCSS إلى CSS، أو Less إلى CSS، أو تأخذ CSS العادي في الاتجاه المعاكس. يجري العمل داخل متصفحك، ولا نرفع أي شيء.
- مجانيالسعر
- الاتجاهانالاتجاهات
- لا يوجدالتسجيل
- لا يوجدالرفع
محوّل SCSS
حوّل SCSS أو Less أو Stylus إلى CSS عادي، أو أعد ورقة مسطّحة إلى التداخل
جاهز. الصق ورقة أنماط، أو اضغط أحد أزرار النموذج.
ما الذي يفعله محوّل SCSS
ورقة الأنماط التي تحتوي تداخلًا ليست CSS صالحًا. لذلك يهمل المتصفح القاعدة كاملة ولا يقول شيئًا. لذا يسطّح محوّل SCSS التداخل، ويستبدل المتغيرات بقيمها، ويكتب CSS العادي الذي يستطيع المتصفح قراءته.
من لصقة واحدة تعود ثلاثة أشياء. أولًا CSS المحوّل نفسه، جاهزًا للصق في ملف. ثم قائمة بالمتغيرات و mixins التي وجدها، مع القيمة التي يحملها كل منها. وأخيرًا لوح ملاحظات يسمّي كل ما اضطر المحوّل إلى تقريره بنفسه.
هذا اللوح الأخير أهم مما يبدو. فالتخمين الصامت داخل CSS محوّل هو تصميم مكسور بعد شاشتين. لذلك تُطبع كل فرضية بجوار المخرج لا مدفونة فيه.
يعمل المحوّل في الاتجاه المعاكس أيضًا. ولأن الملف المسطّح يصعب إبقاؤه مرتبًا، يستطيع تجميع CSS العادي مرة أخرى في SCSS أو Less متداخل، مع سحب القيم المشتركة كمتغيرات. لا تثبّت شيئًا ولا ترسل شيئًا.
كيف يحوّل المعالج إلى CSS
يجري العمل في ثلاث تمريرات. أولًا يحوّل القارئ المصدر إلى قائمة قواعد، لكل منها محدد وكتلة وعمق. ثم تجمع تمريرة ثانية المحددات المتداخلة مع آبائها. وأخيرًا يطبع كاتب القواعد المسطّحة بالترتيب.
يتبع جمع المحددات قواعد المحددات التي يستخدمها المتصفح نفسه. والقاعدة المتداخلة مرة تصبح محددًا منحدرًا. أما القاعدة المكتوبة بعلامة العطف فتبقي أباها متصلًا، وهكذا يُبنى حالة hover وصنف معدّل.

المتغيرات هي المهمة الثانية. ولأن SCSS وLess يسمحان بأن يقف الاسم مكان القيمة، يبحث المحوّل عن كل اسم يصادفه ويكتب القيمة في مكانه. تبدأ متغيرات Sass بعلامة الدولار، ومتغيرات Less بعلامة @، لذلك يميّزها القارئ من الحرف الأول.
لا يلمس الكاتب أي واجهة من واجهات المتصفح ولا يلمس الشبكة. لذلك تعمل الصفحة دون اتصال. وتعمل أيضًا على ملف تفضّل ألا تلصقه في محوّل مستضاف، مثل ورقة أنماط تسمّي منتجًا لم يُعلن عنه.
SCSS وLess وStylus جنبًا إلى جنب
تتفق اللغات الثلاث في الفكرة وتختلف في الترقيم. لذلك يقرأ المحوّل الثلاث ويكتب مخرجًا واحدًا.
يحتفظ SCSS بأقواس CSS وفاصلاته المنقوطة، ولهذا يبدو كأنه CSS مع ميزات إضافية. ويفعل Less الشيء نفسه، ويسمح كذلك بنداء جزئي لـ mixin دون أقواس. أما Stylus فيسقط الأقواس والفاصلات المنقوطة وكثيرًا ما يسقط النقطتين، ويعتمد على الإزاحة بدلًا منها.
ولأن الفروق صغيرة، تستطيع صفحة واحدة قراءة الثلاث. يحدّد القارئ اللغة التي أمامه بالنظر إلى الملف: علامة الدولار تشير إلى SCSS، وعلامة @ قبل اسم تشير إلى Less، وقوس ناقص يشير إلى Stylus. وحين يكون المصدر ملتبسًا تقول الصفحة ذلك في لوح الملاحظات بدل أن تخمّن.
المخرج واحد في كل الحالات. لذلك يرى المتصفح ورقة أنماط مسطّحة واحدة، وتبقى أنت بالمصدر في اللغة التي يستخدمها فريقك أصلًا.
لماذا جمع المحددات هو الجزء الصعب
المحوّل الذي يلصق المحددين بمسافة يخطئ في معظم حالات التداخل. ولأن القاعدة المتداخلة تحت أب تصبح منحدرة فقط حين لا توجد علامة عطف، يتابع القارئ الأب في كل مستوى وهو ينزل.
لذلك تحتفظ كل كتلة بالمحدد الكامل الذي ستطبعه. فالقاعدة في الأعلى تبدأ بمحددها. ثم ترث قاعدة بداخلها ذلك المحدد وتضيف محددها، مفصولًا بمسافة. أما علامة العطف فتحل مكان المسافة تمامًا، وهكذا يتصل حالة hover للأب دون فراغ.
ترتيب القواعد المطبوعة هو الحالة الثالثة. ولأن قاعدة لاحقة بالوزن نفسه تفوز، يحافظ الكاتب على ترتيب المصدر في كل مستوى. وبهذه الطريقة ينجو التسلسل من التحويل، وتبقى القاعدة التي أردتها فائزة.
ما يُحوّل بلا ملاحظات وما يحصل على ملاحظة
يكسب المحوّل الثقة بتسمية حدوده هو. لذلك يسرد لوح الملاحظات كل بنية عالجها القارئ بطريقة تستحق أن تتحقق منها.

تُحوّل تعريفات mixins ونداءاتها، لأن اللغتين تعرّفانها في المصدر الذي لصقته. وتُحوّل تعبيرات شرط Less حين يكون الشرط مقارنة بسيطة. لذلك يُدرج mixin المشروط الفرع الذي ينطبق.

أما الإدراج النصي فيحصل على ملاحظة أكثر. ولأن قيمة مبنية من متغير داخل نص تحتاج القيمة وقت التحويل، لا يستطيع القارئ حلها إلا إذا كان المتغير في الملف نفسه. والقيمة القادمة من import لا تملكه الصفحة تبقى كما كُتبت، وتقول الملاحظة أي اسم كان ناقصًا.
و imports نفسها تحصل على ملاحظة أيضًا. لا تستطيع الصفحة جلب ملف آخر، لأنها لا تلمس الشبكة أبدًا. لذلك يبقى at-import في المخرج كـ import CSS عادي، ويقول اللوح إن الملف لم يُقرأ. وهذا يبقي المخرج صادقًا بدل أن يكون خاطئًا في صمت.
والعدّ بجوار المخرج جزء من الفكرة نفسها. ولأن التحويل قد يغيّر حجم الملف في أي من الاتجاهين، يبلّغ اللوح عن القواعد المكتوبة، والإعلانات داخلها، وحجم المدخل والمخرج. لذلك تظهر ورقة الأنماط التي كبرت بعد التحويل بنظرة واحدة لا بعد النشر.
كيف تستخدم محوّل SCSS
أربع خطوات، ولا تحتاج أي منها إلى حساب.
- 1
الصق ورقة الأنماط
لذلك انسخ الملف كاملًا والصقه في الصندوق الأيسر. والملف الجزئي يعمل أيضًا، فمكوّن واحد بتداخله يكفي للتجربة.
- 2
اختر الاتجاه
ثم اختر لغة المصدر. للتحويل من SCSS إلى CSS، اختر SCSS مدخلًا وCSS مخرجًا. ولأن الصفحة تقرأ الثلاث، يُحوّل الملف المختلط رغم ذلك.
- 3
اقرأ لوح الملاحظات
بعد ذلك، راجع الملاحظات قبل لصق المخرج في أي مكان. فالاسم الذي لم يستطع المحوّل حله أسهل إصلاحًا هنا من متصفح يعرض صندوقًا فارغًا.
- 4
انسخ CSS
وأخيرًا خذ المخرج. يضع زر النسخ ورقة الأنماط كاملة في حافظتك. وبعد ذلك احفظها بجوار ملف المصدر واربطها كما تربط أي ورقة أنماط أخرى.
لماذا التحويل داخل المتصفح
خمسة أسباب تجعل هذا أفضل من الطرق المعتادة للوصول إلى CSS عادي.
بلا سلسلة بناء
لذلك تتجاوز التثبيت. فالمحوّل داخل مشروع يعني مدير حزم وسكربت وملف إعدادات. وورقة أنماط واحدة لا تستحق كل هذه الأجزاء المتحركة.
مصدرك لا يغادر أبدًا
يجري التحويل في التبويب المفتوح عندك أصلًا. لذلك تبقى ورقة الأنماط الخاضعة لعقد على جهازك. لا يُرفع شيء ولا يُسجّل شيء.
الاتجاهان
معظم المحوّلات تعمل في اتجاه واحد فقط. ولأن هذه الصفحة تجمّع CSS المسطّح في تداخل مرة أخرى، فهي تساعدك حين ترث ورقة أنماط بلا ملف مصدر وتريد ترتيبها.
ترى الفرضيات
ثم هناك لوح الملاحظات. فأداة البناء تفشل برقم سطر ولا شيء غيره. أما هنا فيُسمّى كل تخمين بكلمات واضحة بجوار المخرج.
لا شيء يبقى يعمل
وأخيرًا لا توجد عملية مراقبة. لا شيء يُعاد بناؤه عند الحفظ، ولا شيء ينكسر حين تعود بعد شهر. لذلك يبقى محوّل SCSS هنا حتى تحتاجه.
الحصول على تحويل نظيف مع أي محوّل SCSS
ست عادات تُبقي المخرج قريبًا مما تتوقعه.
- أبقِ المصدر كاملًا لذلك الصق الملف لا مقتطفًا منه حين يكون المتغير معرّفًا في الأعلى. ولأن القارئ يبحث عن الاسم حيث عُرّف، يحصل المقتطف الناقص لذلك السطر على ملاحظة.
- طابق اللغة مع الملف ثم تحقّق من الاتجاه مقابل الملف الذي نسخته. فالملف Less المقروء كـ SCSS يُحوّل رغم ذلك، لكن قواعد علامة العطف تتصرف بشكل مختلف وقد يفاجئك المخرج.
- تجنّب خلط الاثنين الملف الذي يحمل متغير دولار ومتغير @ معًا غير صالح في أي من اللغتين. لذلك افصله قبل اللصق، ويبقى لوح الملاحظات صامتًا.
- راقب علامة العطف علامة العطف تعني المحدد الأب. لذلك فالقاعدة التي تحتوي واحدة داخل استعلام وسائط تتصل بالأب خارج الاستعلام، وهذا نادرًا ما تريده. ومع ذلك تعالجها كل محوّلات SCSS بالطريقة نفسها، فالقاعدة تنتقل بين الملفات.
- سمِّ الـ mixins الـ mixin الذي يُنادى باسم يستطيع القارئ إيجاده يُدرج بلا مشكلة. لذلك أبقِ أسماء mixins مختلفة عن أسماء المتغيرات، ولن يكون للبحث مرشحان أبدًا.
- صغّر في النهاية حوّل أولًا وصغّر بعد ذلك، بهذا الترتيب. ولأن المصغّر يحذف التعليقات، فتشغيله أولًا يرمي الملاحظات التي تشرح المخرج.
سبعة أخطاء زلقة في المعالجات
كل واحد منها يبدو غير ضار في المصدر ويؤذي في المتصفح.
تداخل عميق
خمسة مستويات من التداخل تُقرأ جيدًا وتُحوّل إلى محدد لا يستطيع أحد تجاوزه. ولأن كل مستوى يضيف وزنًا إلى المحدد، تخسر قاعدة لاحقة بصنف واحد. لذلك أبقِ التداخل عند ثلاثة مستويات.
متغير مكرر
الاسم المعيّن مرتين في النطاق نفسه يفوز بآخر قيمة. حينها تبدو النصف الأول من الملف متجاهلًا التغيير. ولوح الملاحظات يسمّي الفائز لتراه.
وحدات على قيمة صفر
صفر بكسل وصفر الرقم نفسه في CSS. ولأن المتغير الذي يحمل صفرًا مجردًا أسهل في إعادة الاستخدام، فضّل الصفر المجرد واحذف الوحدة.
مخرج mixin لم يتحقق منه أحد
الـ mixin الذي يضيف بادئة يكتب كل سطر في كل قاعدة تناديه. لذلك يضاعف نداء داخل حلقة المخرج بسرعة. تحقّق من الحجم المحوّل لا من حجم المصدر.
إدراج نصي في محدد
بناء اسم صنف من متغير يعمل وقت التحويل. لذلك يُخبز الاسم في CSS ولا يتغير وقت التشغيل. والقائمة التي تحتاج الحالتين تحتاج صنفين حقيقيين. لذا فمحوّل SCSS مكان خاطئ لتلك المهمة.
استيراد جزئية مرتين
استيرادان للجزئية نفسها يكتبان قواعدها مرتين. حينها تنسخ النسخة الثانية الأولى، ويبدو إصلاح في مكان ما بلا أثر.
نسيان المصدر
الملف المحوّل هو ما يُنشر، وهو ليس ما تحرّره. لذلك أبقِ المصدر في المستودع بجواره، وإلا بدأ التغيير التالي من ملف مسطّح بلا تداخل.
أسئلة عن محوّل SCSS
هل محوّل SCSS مجاني؟
نعم. لا يوجد حساب، ولا حد أقصى، ولا خطة مدفوعة. لذلك تحوّل ما تشاء من أوراق الأنماط.
هل تُرسل ورقة الأنماط إلى أي مكان؟
لا. لأن القارئ والكاتب يعملان داخل متصفحك، لا يغادر المصدر جهازك أبدًا. لذلك تبقى ورقة الأنماط الخاضعة لعقد خاصة.
هل يحوّل SCSS إلى CSS؟
نعم. الصق ملف SCSS، واختر SCSS مدخلًا وCSS مخرجًا. عندئذ يُسطَّح التداخل، وتُحلّ المتغيرات، وتُدرج mixins.
هل يحوّل Less إلى CSS؟
نعم. هذه هي الصفحة نفسها مع اختيار Less مدخلًا. لأن اللغتين تشتركان في فكرة التداخل، لا يختلف سوى ترقيم المتغيرات.
هل يقرأ Stylus؟
نعم. يترك Stylus الأقواس والفاصلات المنقوطة ويعتمد على الإزاحة. لذلك يتبع القارئ الإزاحة حين لا يجد قوسًا.
هل يعيد CSS إلى SCSS؟
نعم. لأن الصفحة نفسها تعمل في الاتجاهين، يمكنها تجميع القواعد المسطّحة حسب محدداتها المشتركة في تداخل، وسحب القيم المكررة كمتغيرات.
هل ينفّذ mixins الخاصة بي؟
يُدرج أي mixin معرّف في الملف الذي لصقته. أما mixin الموجود في import لا تستطيع الصفحة قراءته فيبقى كنداء وتظهر له ملاحظة. لذلك لا يُخمَّن شيء.
ماذا يحدث لـ import؟
يبقى في المخرج كـ import CSS عادي، ويقول لوح الملاحظات إن الملف لم يُقرأ. لأن الصفحة لا تلمس الشبكة أبدًا، لا تستطيع جلب الملف الآخر.
هل يفهم المتغيرات؟
نعم. متغير Sass يبدأ بعلامة الدولار، ومتغير Less يبدأ بعلامة @. لذلك يميّزهما القارئ من الحرف الأول ويكتب القيمة في مكانها.
هل يصغّر المخرج؟
يستطيع ذلك. اختيار التصغير يحذف التعليقات والمسافات الزائدة. ومع ذلك، حوّل أولًا وصغّر بعد ذلك، لتبقى الملاحظات قابلة للقراءة.
هل يطابق المخرج أداة البناء عندي تمامًا؟
يطابق في الميزات الشائعة: التداخل، والمتغيرات، و mixins، و extends، والشروط البسيطة. أما تركيب تعالجه أداتك بإضافة خارجية فقد يحصل هنا على ملاحظة بدلًا من ذلك.
هل يعالج استعلامات الوسائط داخل قاعدة؟
نعم. لأن استعلامات الوسائط المتداخلة تُرفع إلى المستوى الأعلى كما يرفعها أي معالج، يحافظ المخرج المحوّل على التسلسل نفسه.
هل يدعم علامة العطف &
نعم. القاعدة المكتوبة بها تُبقي أباها متصلًا، وهكذا يُبنى حالة hover أو صنف معدّل. لذلك يُقرأ المحدد المحوّل كما يُقرأ في المصدر.
هل أستطيع لصق جزء من ملف فقط؟
نعم، بشرط أن تكون المتغيرات المستخدمة داخل الجزء الذي لصقته. أما الاسم المعرّف فوق المقتطف المنسوخ فلا يمكن حله، والملاحظة تقول ذلك.
هل يكتب source maps؟
لا. تشير source map إلى الملف الأصلي عبر مسار لا يملكه إلا نظام البناء عندك. ولأن هذه الصفحة لا تملك ملفًا تشير إليه، فخريطة من هنا ستكون مضللة.
هل يعمل دون اتصال؟
نعم. بعد تحميل الصفحة لا يُجلب شيء آخر. لذلك يظل المحوّل يعمل على حاسوب محمول في غرفة بلا شبكة.
هل يحافظ على تعليقاتي؟
يحافظ على تعليق الكتلة افتراضيًا، ويستطيع حذفه عند اختيار التصغير. لذلك تبقى ملاحظة الترويسة، ولا تبقى ملاحظة كانت تهمك أثناء التحرير فقط.
كم مستوى تداخل يستطيع قراءته؟
لا يوجد سقف ثابت، والحد العملي هو حدك أنت. التداخل العميق يُحوّل بلا مشكلة ويُقرأ بصعوبة. لذلك ثلاثة مستويات عادة جيدة.
هل يعالج ملفًا كبيرًا؟
نعم. لأن العمل معالجة نصية بحتة، تُحوّل ورقة أنماط من آلاف الأسطر في أقل من ثانية بكثير على حاسوب عادي.
هل يكتب خصائص CSS المخصصة؟
يقرأها ويكتبها كإعلانات عادية. لذلك تنجو خاصية مخصصة من المصدر من التحويل كما هي، ويستطيع متغير معالج أن يحمل واحدة.
وماذا عن mixin للبادئات؟
يُدرج مثل أي mixin آخر، وهذا يكتب كل سطر مبدوء ببادئة في كل قاعدة تناديه. لذلك تحقّق من الحجم المحوّل لا من حجم المصدر.
هل يتحقق من الأخطاء؟
يبلّغ عمّا لم يستطع حله بدل أن يرفض الملف كله. لذلك تحصل على مخرج صالح مع قائمة، لا على خطأ واحد ولا شيء غيره.
هل يستطيع مقارنة الاتجاهين؟
نعم. حوّل ملفًا إلى CSS ثم جمّع هذا الـ CSS مرة أخرى، فتكشف أي بنية فاقدة بنفسها. كل ما لا ينجو من الرحلة ذهابًا وإيابًا لم يكن يفعل شيئًا.
هل يلمس حافظتي دون أمر؟
لا. لا تقرأ الصفحة الحافظة إلا عند اللصق، ولا تكتب إلا عند الضغط على نسخ. لذلك لا يُؤخذ شيء ولا يُستبدل دون نقرة.
هل هناك حد للحجم؟
لا حد صارم. لأن العمل يجري في تبويبك أنت، فالسقف هو جهازك، وورقة أنماط عادية أقل منه بكثير.
هل يعمل على الهاتف؟
نعم. تتراكم الصناديق، ويقع زر النسخ أسفل المخرج. لذلك يعمل التحويل السريع من الهاتف حين تكون بعيدًا عن جهازك.
أدوات تكمّل هذه
أربع صفحات يقود إليها العمل نفسه عادة.
مصغّر CSS
ثم صغّر الملف المحوّل قبل نشره. ولأن التصغير في النهاية يُبقي الملاحظات مقروءة، تحوّل هنا أولًا وتصغّر هناك بعد ذلك.
افتح الأداة ←محوّل ألوان CSS
تحقّق أيضًا من لون كتبته كمتغير. حينها ترى الدرجة نفسها بصيغ hex و RGB و HSL قبل أن تدخل ورقة الأنماط.
افتح الأداة ←مصغّر HTML
للترميز الذي يرافق ورقة الأنماط، يحذف هذا التعليقات والمسافات الزائدة. لذلك يخرج الملفان أكثر ترتيبًا.
افتح الأداة ←محوّل PX إلى REM
ولأن متغير المعالج يحمل غالبًا حجم خط، يحوّل هذا البكسلات إلى rem. لذلك تبقى المقاييس متسقة بعد التحويل.
افتح الأداة ←
حوّل ورقة الأنماط الآن
الصق ملف SCSS أو Less، واقرأ الملاحظات، وخذ CSS المسطّح معك. لا شيء يخرج من متصفحك، لذلك تبقى ورقة الأنماط الخاضعة لعقد ملكًا لك. العمل كله في لصقة واحدة.