مُنسِّق CSS
نسِّق CSS وSCSS وLess بمسافة بادئة متسقة، أو صغِّره إلى أصغر إخراج صالح. مُحلَّل بشكل صحيح، لذا القواعد المتداخلة واستعلامات الوسائط والخصائص المخصصة تنجو سليمة.
- الملفات لا تغادر جهازك أبدًا
- مجاني، بدون تسجيل
- بدون علامات مائية
- يعمل دون اتصال بعد التحميل
كيفية استخدام مُنسِّق CSS
- 1
ألصق CSS الخاص بك
CSS عادي أو SCSS أو Less، كلها تُحلَّل بشكل صحيح.
- 2
نسِّق أو صغِّر
جمِّل لسهولة القراءة، أو اضغط للإنتاج.
- 3
انسخ أو نزّل
النتيجة جاهزة للصق مباشرة في مشروعك.
لماذا يحتاج CSS مُحلِّلًا حقيقيًا بدلًا من تمرير تعبيرات نمطية
يبدو CSS بسيطًا بما يكفي لإعادة تنسيقه بحفنة من قواعد البحث والاستبدال — إضافة سطر جديد بعد كل فاصلة منقوطة، مسافة بادئة داخل الأقواس المعقوفة — حتى يكون التداخل واستعلامات الوسائط والميزات الحديثة مثل الخصائص المخصصة واستعلامات الحاوية موجودة فعلًا في الملف. نهج قائم على التعبيرات النمطية ليس له أي مفهوم حقيقي لعمق التداخل، لذا لا يمكنه وضع مسافة بادئة صحيحة لاستعلام وسائط يحتوي عدة محددات متداخلة، وليس له طريقة للتمييز بين فاصلة منقوطة تُنهي تصريحًا وأخرى تظهر داخل قيمة سلسلة أو خاصية مخصصة تحتوي نصًا عشوائيًا. تحليل ورقة الأنماط أولًا إلى بنية حقيقية — فهم أي قاعدة متداخلة داخل أيها، أين تبدأ وتنتهي كل كتلة — هو ما يجعل التنسيق صحيحًا في CSS حقيقي غير تافه، لا فقط في أمثلة تجريبية.
ما يُغيِّره التصغير، وما لا يُغيِّره عمدًا
يقتصر تصغير هذه الأداة على إزالة المسافات البيضاء والتعليقات — الأجزاء من ورقة الأنماط الموجودة فقط من أجل إنسان يقرأها ولا تحمل أي معنى لمحرك عرض المتصفح. لا تدمج عمدًا المحددات المكررة، ولا تُعيد ترتيب التصريحات، ولا تختصر قيم الألوان مثل إعادة كتابة `#ffffff` إلى `#fff`، رغم أن مُصغِّرًا أكثر عدوانية قد يفعل الثلاثة وينتج ملفًا أصغر. تلك التحويلات يمكن أن تُغيِّر السلوك بطرق يسهل تفويتها: دمج قاعدتين بنفس المحدد لكن مكتوبتين في نقطتين مختلفتين من التسلسل يمكن أن يُغيِّر أي تصريح يفوز عند التعارض، وإعادة ترتيب التصريحات تحمل نفس الخطر. إزالة المسافات البيضاء وحدها لا تحمل ذلك الخطر — لا يمكنها تغيير ما يعرضه المتصفح، فقط عدد البايتات اللازمة لوصفه.
لماذا يوفر التصغير أقل مما يتوقعه الناس بعد gzip
تضغط خوادم الويب تقريبًا عالميًا موارد النص بـgzip أو brotli قبل إرسالها عبر الشبكة، وكلتا خوارزميتي الضغط جيدتان جدًا في استغلال بالضبط نوع التكرار الذي تُمثِّله المسافات البيضاء والمسافة البادئة المتسقة — تسلسلات متكررة من المسافات تُضغَط بالفعل بشكل ممتاز. هذا يعني أن الفجوة بين ورقة أنماط مُنسَّقة وأخرى مُصغَّرة، بمجرد أن تمر كلتاهما عبر gzip، أصغر بكثير مما يُوحي به فرق الحجم غير المضغوط. لا يزال التصغير يساعد، خاصة بإزالة التعليقات مباشرة بدلًا من مجرد ضغطها، لكن يستحق معرفة أن معظم فائدة نقل الشبكة التي تعد بها الأداة الحديثة تأتي من الضغط، ويُسهم تصغير CSS بطبقة إضافية أصغر فوق ذلك.
تنسيق SCSS وLess مقابل التحويل
تنسيق ملف Sass أو Less يعني تطبيق مسافة بادئة وتباعد متسقين على الكود المصدري بالضبط كما هو مكتوب — التداخل والمتغيرات والمزائج وتوجيهات التحكم تبقى سليمة، بصيغة معالج ما قبل المعالجة الأصلية. هذه عملية مختلفة تمامًا عن التحويل، الذي يحل المتغيرات إلى قيمها الفعلية، ويُسطِّح المحددات المتداخلة إلى قواعد CSS مسطحة مستقلة، وينفذ أي مزيج لإنتاج إخراجه الموسَّع. أي شخص يتوقع CSS مُحوَّلًا من إدخال SCSS سيتفاجأ برؤية نفس الكود المصدري المتداخل والمليء بالمتغيرات مُنسَّقًا بدلًا من مُحلولًا — هذه الأداة مُنسِّق للغة معالج ما قبل المعالجة، لا مُحوِّل لها.
الأسئلة الشائعة
كم يوفر التصغير فعليًا؟
عادةً بين 20% و30% قبل gzip في CSS مكتوب يدويًا، وأقل بكثير في إخراج مرت به بالفعل أداة بناء. عبر الشبكة، تقوم طبقة gzip أو brotli بمعظم العمل على أي حال — يساعد التصغير أساسًا بإزالة التعليقات والمسافات البيضاء الزائدة قبل ذلك.
هل يُغيِّر التصغير كيفية تصرف أنماطي؟
لا. تُزال فقط المسافات البيضاء والتعليقات؛ لا تُمس المحددات والخصائص والقيم. لا تدمج هذه الأداة القواعد، ولا تُعيد ترتيب التصريحات، ولا تختصر الألوان، لأن تلك التحويلات يمكن أن تُغيِّر السلوك بطرق يصعب اكتشافها.
هل يدعم SCSS وLess؟
نعم، كلاهما يُحلَّل بقواعده النحوية الخاصة، لذا التداخل والمتغيرات والمزائج (mixins) تنجو من التنسيق. لاحظ أنه يُنسِّقها — لا يُحوِّلها إلى CSS.
لماذا يُرفَض CSS الخاص بي؟
عادةً قوس غير مُغلَق أو حرف شارد. تتضمن رسالة الخطأ رقم السطر حتى تجده. سيفشل أيضًا مزج صيغة قوالب في ورقة الأنماط، لأنها ليست CSS صالحًا.
مهام شائعة لأداة مُنسِّق CSS
قد تحتاج أيضًا إلى
مُنسِّق HTML
جمِّل وضع مسافة بادئة لـHTML بشكل صحيح
مُنسِّق JavaScript
نسِّق JS وTypeScript بمُحلِّل حقيقي
مُنسِّق JSON
نسِّق وتحقق من وصغِّر JSON فورًا
أداة تصغير CSS
صغّر أوراق الأنماط بأداة تصغير حقيقية تفهم CSS
مُرمِّز ومُفكِّك ترميز Base64
رمِّز وفُك ترميز Base64 وBase64URL
مولّد التجزئة (Hash)
MD5 وSHA-1 وSHA-256 وSHA-384 وSHA-512
أداة تصغير JS
صغّر جافاسكريبت بتصغير حقيقي، لا بتعابير نمطية
مُفكِّك ترميز JWT
فُك ترميز وافحص JSON Web Tokens