أساسيات SASS
تشرح هذه المقالة أساسيات SASS۔
سنشرح ميزات SASS الأساسية خطوة بخطوة وسنوضح كيفية استخدامها من خلال أمثلة عملية.۔
YouTube Video
أساسيات SASS
SASS (صفحات الأنماط المركبة المثيرة نحويًا) هي لغة أنماط تُمَدّد CSS۔ من خلال استخدام SASS، يمكنك الاستفادة من ميزات متقدمة غير متوفرة في CSS، مثل المتغيرات والتداخل والمزيجات (mixins) والوراثة.۔ هذا يجعل إدارة أوراق الأنماط وإعادة استخدامها أسهل بكثير.۔
ما هو SASS؟
SASS هي لغة تبسط كتابة CSS وتوفر قدرًا أكبر من المرونة والقوة في التصميم۔ يوفر SASS أيضًا صيغة SCSS (CSS جريء)، والتي تشبه صيغة CSS القياسية۔ إليك مثال:۔
مثال SCSS
1$base-font: Arial, sans-serif;
2$bg-color: #f4f4f4;
3
4body {
5 font-family: $base-font;
6 background-color: $bg-color;
7}
مثال CSS
1body {
2 font-family: Arial, sans-serif;
3 background-color: #f4f4f4;
4}
إعداد SASS
كيفية التثبيت
لاستخدام SASS، قم أولاً بتثبيت Node.js ثم ثبت SASS باستخدام الأمر التالي:۔
1npm install -g sass
كيفية التحويل
لتحويل ملفات SASS (.scss
أو .sass
) إلى CSS، استخدم الأمر التالي:۔
1sass input.scss output.css
يمكنك أيضًا استخدام خيار watch
لمراقبة تغيرات الملفات وتنفيذ التحويل في الوقت الفعلي.۔
المتغيرات
يسمح لك SASS باستخدام المتغيرات لإعادة استخدام القيم مثل الألوان وأحجام الخطوط۔
كود نموذج
1$primary-color: #3498db;
2$font-stack: 'Roboto', sans-serif;
3
4body {
5 color: $primary-color;
6 font-family: $font-stack;
7}
- يستخدم هذا الكود متغيرات SASS لتعريف الألوان والخطوط، ويعيد استخدامها داخل محدد
body
لتعزيز التناسق وسهولة الصيانة.۔
النتيجة بعد التحويل
1body {
2 color: #3498db;
3 font-family: 'Roboto', sans-serif;
4}
التداخل
يعزز SASS قابلية قراءة الكود من خلال السماح بتداخل المُحدِدات في CSS۔
كود نموذج
1nav {
2 ul {
3 list-style: none;
4 margin: 0;
5 padding: 0;
6
7 li {
8 display: inline-block;
9
10 a {
11 text-decoration: none;
12 color: #333;
13
14 &:hover {
15 color: #3498db;
16 }
17 }
18 }
19 }
20}
- يستخدم هذا الكود الهيكلية المتداخلة لتوضيح بنية الأنماط بصريًا.۔
النتيجة بعد التحويل
1nav ul {
2 list-style: none;
3 margin: 0;
4 padding: 0;
5}
6
7nav ul li {
8 display: inline-block;
9}
10
11nav ul li a {
12 text-decoration: none;
13 color: #333;
14}
15
16nav ul li a:hover {
17 color: #3498db;
18}
المزج (الإضافات)
تتيح الإضافات (Mixins) إعادة استخدام الشيفرة عبر عدة محددات۔
كود نموذج
1@mixin border-radius($radius) {
2 border-radius: $radius;
3 -webkit-border-radius: $radius;
4 -moz-border-radius: $radius;
5}
6
7button {
8 @include border-radius(10px);
9}
10
11.card {
12 @include border-radius(5px);
13}
- يعرّف هذا الكود نمط
border-radius
باستخدام@mixin
ويعيد استخدامه فيbutton
و.card
باستخدام@include
، مما يتيح تصميماً فعالاً بدون تكرار.۔
النتيجة بعد التحويل
1button {
2 border-radius: 10px;
3 -webkit-border-radius: 10px;
4 -moz-border-radius: 10px;
5}
6
7.card {
8 border-radius: 5px;
9 -webkit-border-radius: 5px;
10 -moz-border-radius: 5px;
11}
الوراثة (@extend)
تسمح الوراثة (@extend) بتطبيق أنماط موجودة على محددات أخرى۔
كود نموذج
1%button-style {
2 padding: 10px 20px;
3 color: white;
4 background-color: #3498db;
5}
6
7button {
8 @extend %button-style;
9 border: none;
10}
11
12.link-button {
13 @extend %button-style;
14 text-decoration: none;
15}
- يعرّف هذا الكود محددًا مؤقتًا
%button-style
ويستخدم@extend
لتطبيق الأنماط المشتركة على كل منbutton
و.link-button
، مما يعزز إعادة الاستخدام والتناسق.۔
النتيجة بعد التحويل
1button, .link-button {
2 padding: 10px 20px;
3 color: white;
4 background-color: #3498db;
5}
6
7button {
8 border: none;
9}
10
11.link-button {
12 text-decoration: none;
13}
الشروط والحلقات
يدعم SASS الشروط والحلقات لإنشاء الأنماط بشكل ديناميكي۔
مثال على جملة شرطية
1$theme: dark;
2
3body {
4 background-color: if($theme == light, #fff, #333);
5 color: if($theme == light, #333, #fff);
6}
- يستخدم هذا الكود دالة
if
في SASS لتغيير ألوان الخلفية والنص بناءً على قيمة$theme
، مما يتيح إنشاء أنماط ديناميكية من خلال الشروط.۔
مثال على حلقة
1@for $i from 1 through 3 {
2 .column-#{$i} {
3 width: calc(100% / $i);
4 }
5}
- يستخدم هذا الكود حلقة
@for
في SASS لإنشاء أصناف بشكل ديناميكي من.column-1
إلى.column-3
.۔
النتيجة بعد التحويل
1body {
2 background-color: #333;
3 color: #fff;
4}
5
6.column-1 {
7 width: 100%;
8}
9
10.column-2 {
11 width: 50%;
12}
13
14.column-3 {
15 width: 33.3333%;
16}
تقسيم الملفات والاستيراد
يتيح لك SASS تقسيم الملفات وإعادة استخدامها عبر @use
أو @import
۔
هيكلية الملفات
styles/
_variables.scss
_mixins.scss
main.scss
_variables.scss
1$primary-color: #3498db;
_mixins.scss
1@mixin flex-center {
2 display: flex;
3 justify-content: center;
4 align-items: center;
5}
main.scss
1@use 'variables';
2@use 'mixins';
3
4header {
5 background-color: variables.$primary-color;
6 @include mixins.flex-center;
7}
النتيجة بعد التحويل
1header {
2 background-color: #3498db;
3 display: flex;
4 justify-content: center;
5 align-items: center;
6}
الملخص
استخدام SASS يسهل كتابة CSS ويحسن قابلية إعادة استخدام الشيفرة وسهولة صيانتها۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔