ToolDeck

منسّق CSS

تنسيق وتجميل CSS بمسافات بادئة صحيحة

جرب مثالاً

CSS المدخل

CSS منسّق

يعمل محليًا · آمن للصق الأسرار
سيظهر CSS المنسّق هنا…

ما هو تنسيق CSS؟

تنسيق CSS هو عملية إضافة مسافات بادئة منتظمة وفواصل أسطر ومسافات إلى أوراق الأنماط المتتالية (Cascading Style Sheets) لجعل الكود مقروءاً للإنسان. تتجاهل المتصفحات المسافات البيضاء في CSS كلياً. فالكود المضغوط في سطر واحد وورقة الأنماط المنسّقة بعناية ينتجان عرضاً متطابقاً. الفارق يكمن في قابلية القراءة: CSS منسّق يتيح لك مسح المحددات ورصد الفاصلة المنقوطة المفقودة وفهم التسلسل بنظرة سريعة.

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

تحدد مواصفة CSS (وحدة W3C CSS Syntax Module Level 3) القواعد النحوية لأوراق الأنماط، لكنها لا تقول شيئاً عن اتفاقيات المسافات البيضاء. قواعد التنسيق قرار يتخذه الفريق: مسافات جدولة (tabs) أم مسافات عادية، مسافتان أم أربع مسافات للمسافة البادئة، أسلوب الأقواس، أسطر فارغة بين مجموعات القواعد. يُطبّق المنسّق أيّ اتفاقية تختارها باتساق عبر كل ملف. تُدوّن معظم الفرق خيارها في ملف .prettierrc أو .editorconfig.

لماذا تستخدم هذا المنسّق؟

الصق أي CSS واحصل على مخرجات منسّقة بشكل صحيح في أجزاء من الثانية. بدون إضافات محرر تحتاج تثبيتها، وبدون ملفات إعداد تحتاج كتابتها، وبدون حسابات تحتاج إنشاءها.

تنسيق فوري
يتجدّد المخرج أثناء الكتابة أو اللصق. تحصل على CSS منسّق فوراً دون انتظار خطوة بناء أو تشغيل أمر CLI.
🔒
معالجة تحافظ على خصوصيتك
يعمل التنسيق بالكامل محلياً في متصفحك باستخدام JavaScript. لا يغادر كود CSS جهازك ولا يُرسَل إلى أي خادم.
🎨
مسافات بادئة قابلة للتخصيص
اختر بين مسافتين أو أربع مسافات أو مسافة جدولة لتتوافق مع أسلوب الكود في مشروعك. المخرج جاهز للصق مباشرة في قاعدة الكود.
📋
بدون تسجيل دخول
افتح الصفحة والصق كود CSS وانسخ النتيجة. بدون تسجيل، وبدون حدود استخدام، وبدون قيود على الميزات. الأداة متاحة بالكامل في كل زيارة.

حالات استخدام منسّق CSS

تطوير الواجهة الأمامية
عندما تتلقى CSS مضغوطاً من مكتبة مورّد أو CDN، نسّقه لتتصفح المحددات وتفهم ما يتجاوزه في أوراق أنماطك الخاصة.
هندسة الواجهة الخلفية
الصفحات المعروضة من الخادم كثيراً ما تُدمج CSS حرجاً في سطر واحد. تنسيق ذلك الـ CSS يُسهّل التحقق مما هو مُدرج في حمولة HTML الأولية.
DevOps ومسارات CI
طبّق تنسيق CSS متسقاً في طلبات السحب عبر مقارنة مخرج المنسّق بالملفات المُودَعة. المسافات البيضاء غير المتسقة تُنشئ فروقات مزعجة تحجب التغييرات الحقيقية.
ضمان الجودة والتحقق من الأخطاء
عند تصحيح خطأ بصري، نسّق CSS المحسوب من DevTools لتحديد الخصائص المطبّقة وترتيب التحديد بسرعة.
ترحيل البيانات
أنظمة إدارة المحتوى وأدوات بناء البريد الإلكتروني تخزّن CSS في حقول قاعدة البيانات، وكثيراً ما تُجرَّد من المسافات البيضاء. تنسيق CSS المستخرج يُساعد على التحقق منه قبل إعادة الاستيراد.
تعلّم CSS
يستطيع الطلاب المتعلمون لـ CSS لصق أمثلة من الدروس التعليمية أو إجابات Stack Overflow ورؤيتها منسّقة باتساق، مما يُسهّل فهم التداخل والتسلسل.

مرجع ترتيب خصائص CSS

لا تُعيد معظم منسّقات CSS ترتيب الخصائص. لكن كثيراً من أدلة الأسلوب توصي بتجميع الخصائص ذات الصلة معاً. يعرض الجدول أدناه اتفاقية التجميع الشائعة المستخدمة في أدوات مثل إضافة ترتيب Stylelint و CSScomb:

المجموعةخصائص نموذجيةالغرض
Position & Layoutposition, display, float, clearDefines the element's rendering mode
Box Modelwidth, height, margin, paddingControls dimensions and spacing
Typographyfont-size, line-height, colorText styling properties
Visualbackground, border, box-shadowDecorative properties
Animationtransition, animation, transformMotion and transform effects
Misccursor, overflow, z-indexBehavioral and stacking properties

هذا التجميع اتفاقية لا متطلب في CSS. تُطبّق المتصفحات التصريحات بناءً على التحديد وترتيب المصدر بصرف النظر عن موضع الخاصية داخل كتلة القاعدة. يركّز المنسّق على المسافات البيضاء والمسافات البادئة؛ إعادة ترتيب الخصائص مسألة تتعلق بالفحص الاستاتيكي تتولاها أدوات مثل Stylelint.

تنسيق CSS مقابل ضغط CSS

التنسيق والضغط عمليتان متعاكستان تُطبَّقان في مراحل مختلفة من التطوير:

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

أمثلة برمجية

كيفية تنسيق CSS برمجياً في لغات وبيئات مختلفة:

JavaScript (Prettier API)
import * as prettier from 'prettier'

const ugly = 'body{margin:0;padding:0}h1{font-size:2rem;color:#333}'

const formatted = await prettier.format(ugly, {
  parser: 'css',
  tabWidth: 2,
  singleQuote: true,
})
// → "body {\n  margin: 0;\n  padding: 0;\n}\n\nh1 {\n  font-size: 2rem;\n  color: #333;\n}\n"
Python (cssbeautifier)
import cssbeautifier

ugly = 'body{margin:0;padding:0}h1{font-size:2rem;color:#333}'

opts = cssbeautifier.default_options()
opts.indent_size = 2

formatted = cssbeautifier.beautify(ugly, opts)
# → "body {\n  margin: 0;\n  padding: 0;\n}\n\nh1 {\n  font-size: 2rem;\n  color: #333;\n}"
CLI (Prettier)
# Format a single file in place
npx prettier --write styles.css

# Format all CSS files in a directory
npx prettier --write "src/**/*.css"

# Check formatting without modifying files
npx prettier --check "src/**/*.css"

# Pipe minified CSS through stdin
echo "body{margin:0;padding:0}" | npx prettier --parser css
PHP (sabberworm/php-css-parser)
<?php
// composer require sabberworm/php-css-parser
require 'vendor/autoload.php';

use Sabberworm\CSS\Parser;
use Sabberworm\CSS\OutputFormat;

$input = 'body{margin:0;padding:0}h1{font-size:2rem;color:#333}';

$document = (new Parser($input))->parse();
echo $document->render(OutputFormat::createPretty());
// → body {
//     margin: 0;
//     padding: 0;
//   }
//   h1 {
//     font-size: 2rem;
//     color: #333;
//   }

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

ما الفرق بين منسّق CSS وفاحص CSS؟
منسّق CSS يُغيّر المسافات البيضاء فقط: المسافات البادئة وفواصل الأسطر والمسافات حول النقطتين والأقواس. لا يُعدّل تصريحات CSS الفعلية. فاحص CSS (مثل Stylelint) يُحلّل كودك بحثاً عن أخطاء وممارسات سيئة وانتهاكات الأسلوب، وقد يقترح إصلاحات تلقائية تتجاوز المسافات البيضاء. تستخدم الفرق عادةً الاثنين معاً: المنسّق للمسافات المتسقة، والفاحص لاكتشاف الأخطاء.
هل تنسيق CSS يُغيّر طريقة عرضه في المتصفح؟
لا. تُحلّل المتصفحات CSS وفق W3C CSS Syntax Module الذي يعامل كل المسافات البيضاء (مسافات وجداول وأسطر جديدة) كفواصل رموز مكافئة. إضافة المسافات البيضاء أو إزالتها بين التصريحات والمحددات والقيم لا يؤثر على الأنماط المحسوبة. الاستثناء الوحيد هو المسافات البيضاء داخل قيم السلاسل مثل content: "مرحباً بالعالم"، التي يحافظ عليها المنسّق.
كم عدد المسافات التي يجب استخدامها للمسافة البادئة في CSS؟
أكثر الاتفاقيتين شيوعاً هما مسافتان وأربع مسافات. دليل أسلوب Google والإعداد الافتراضي لـ Prettier كلاهما يستخدمان مسافتين. معايير كود CSS لـ WordPress تستخدم مسافات الجدولة. لا فرق في الأداء. اختر ما يستخدمه فريقك بالفعل، أو ما يستخدمه كود JavaScript/HTML الحالي، وابقَ متسقاً.
هل يمكنني تنسيق SCSS أو LESS أو معالجات CSS الأخرى بهذه الأداة؟
تنسّق هذه الأداة صيغة CSS القياسية. تتشارك SCSS وLESS معظم صيغة CSS، لذا كثيراً ما يُنسَّق كود المعالج البسيط بشكل صحيح. مع ذلك، قد لا تُعالَج بنى خاصة بـ SCSS مثل @mixin و @include ومجموعات القواعد المتداخلة كما هو متوقع. لـ SCSS، استخدم Prettier مع مُحلّل SCSS أو إضافة sass-formatter.
هل تنسيق CSS هو نفسه تجميل CSS؟
نعم. مصطلحات منسّق CSS ومجمّل CSS وطابع CSS الجميل تشير جميعها إلى العملية ذاتها: إضافة مسافات بيضاء متسقة إلى كود CSS. تستخدم أدوات مختلفة أسماء مختلفة، لكن المخرج واحد: CSS منسّق ومقروء بتصريح واحد في كل سطر.
لماذا يحتوي CSS المنسّق على عدد مختلف من الأسطر مقارنة بالأصل؟
كثيراً ما يُحزم CSS المضغوط تصريحات متعددة في سطر واحد أو يُغفل فواصل الأسطر بين مجموعات القواعد. يُضيف المنسّق فاصل سطر بعد كل تصريح وسطراً فارغاً بين مجموعات القواعد، مما يزيد عدد الأسطر. محتوى CSS الفعلي (المحددات والخصائص والقيم) يبقى دون تغيير.
هل يجب أن أودع CSS منسّقاً أم مضغوطاً في نظام التحكم بالإصدار؟
أودع CSS المنسّق. الفروقات في أنظمة التحكم بالإصدار قائمة على الأسطر، لذا CSS المنسّق بتصريح واحد في كل سطر ينتج فروقات نظيفة وقابلة للمراجعة. CSS المضغوط يُنشئ فروقات أحادية السطر يستحيل مراجعتها. شغّل الضغط كخطوة بناء لا كصيغة مصدر. أدوات مثل PostCSS وcssnano وإضافة CSS في أداة الحزم تُعالج الضغط للإنتاج تلقائياً.