الخرائط في SASS

الخرائط في SASS

تشرح هذه المقالة الخرائط في SASS۔

سنشرح أساسيات استخدام خرائط SASS حتى الاستخدامات المتقدمة، مع تقديم أمثلة عملية۔

YouTube Video

الخرائط في SASS

ما هي الخريطة في SASS؟

الخريطة في SASS هي بنية بيانات تحتوي على أزواج مفتاح-قيمة، وهي مشابهة للكائنات في JavaScript أو القواميس في Python۔ من خلال استخدام الخرائط في SASS، يمكنك إدارة الأنماط المعقدة بشكل مختصر وتحسين قابلية الصيانة۔

البنية الأساسية للخرائط

يتم تعريف الخرائط في SASS باستخدام الأقواس ()۔ الصياغة هي كما يلي:۔

1$map-name: (
2  key1: value1,
3  key2: value2,
4  key3: value3
5);

على سبيل المثال، لإنشاء خريطة لإدارة ثيمات الألوان، يمكنك تعريفها كما يلي:۔

1$colors: (
2  primary: #3498db,
3  secondary: #2ecc71,
4  danger: #e74c3c
5);

الحصول على قيم من الخريطة

في SASS، يمكنك استخدام الدالة map.get() لاسترجاع قيمة من الخريطة۔

مثال على الاستخدام:

 1@use "sass:map";
 2
 3$colors: (
 4  primary: #3498db,
 5  secondary: #2ecc71
 6);
 7
 8.button {
 9  background-color: map.get($colors, primary);
10}

الناتج:

1.button {
2  background-color: #3498db;
3}
  • يحصل هذا الكود على قيمة اللون primary من خريطة $colors ويطبقها كلون خلفية للزر۔

تعيين المفاتيح والقيم في الخريطة

باستخدام دالة map.set() يمكنك تعيين قيمة جديدة لمفتاح محدد۔ إذا كان المفتاح موجودًا بالفعل، سيتم استبدال قيمته۔

مثال على الاستخدام

 1@use "sass:map";
 2
 3$colors: (
 4  primary: #3498db,
 5  secondary: #2ecc71
 6);
 7
 8// set danger color
 9$updated-colors: map.set($colors, danger, #e74c3c);
10
11.button-danger {
12  background-color: map.get($updated-colors, danger);
13}
  • يضيف هذا الكود المفتاح danger إلى الخريطة ويضبط قيمته كلون خلفية للزر۔

الناتج

1.button-danger {
2  background-color: #e74c3c;
3}

حذف المفاتيح من الخريطة

من خلال استخدام دالة map.remove(), يمكنك حذف مفتاح معين وقيمته من الخريطة۔

مثال على الاستخدام

 1@use "sass:map";
 2
 3$colors: (
 4  primary: #3498db,
 5  secondary: #2ecc71,
 6  danger: #e74c3c
 7);
 8
 9// remove danger color
10$reduced-colors: map.remove($colors, danger);
11
12.button-primary {
13  background-color: map.get($reduced-colors, primary);
14}
15
16.button-danger {
17  background-color: map.get($reduced-colors, danger);
18}
  • يحذف هذا الكود المفتاح danger من الخريطة، وبالتالي ستكون خلفية زر button-danger هي null۔

الناتج

1.button-primary {
2  background-color: #3498db;
3}

إضافة مفاتيح وقيم إلى الخريطة

باستخدام دالة map.merge() يمكنك إضافة مفاتيح وقيم جديدة إلى خريطة موجودة۔

مثال على الاستخدام

 1@use "sass:map";
 2
 3$colors: (
 4  primary: #3498db,
 5  secondary: #2ecc71
 6);
 7
 8$extended-colors: map.merge($colors, (danger: #e74c3c));
 9
10.button-danger {
11  background-color: map.get($extended-colors, danger);
12}
  • يضيف هذا الكود مفتاح danger إلى خريطة SASS موجودة ويضبط لونه كلون خلفية الزر۔

الناتج

1.button-danger {
2  background-color: #e74c3c;
3}

إضافة مفاتيح وقيم متعددة إلى الخريطة

باستخدام دالة map.merge() يمكنك إضافة مفاتيح وقيم جديدة متعددة إلى خريطة موجودة دفعة واحدة۔

مثال على الاستخدام

 1@use "sass:map";
 2
 3$colors: (
 4  primary: #3498db,
 5  secondary: #2ecc71
 6);
 7
 8$extended-colors: map.merge($colors, (
 9  danger: #e74c3c,
10  warning: #f39c12,
11  info: #8e44ad
12));
13
14.button-danger {
15  background-color: map.get($extended-colors, danger);
16}
  • يضيف هذا الكود عدة مفاتيح وقيم في نفس الوقت إلى خريطة SASS موجودة۔

التحقق من وجود مفتاح في الخريطة

تتيح لك دالة map.has-key() التحقق مما إذا كان مفتاح معين موجودًا في الخريطة۔

مثال على الاستخدام

1@use "sass:map";
2
3$colors: (
4  primary: #3498db,
5  secondary: #2ecc71
6);
7
8@debug map.has-key($colors, primary); // true
9@debug map.has-key($colors, danger);  // false

الحصول على جميع المفاتيح أو القيم من الخريطة

الحصول على جميع المفاتيح

باستخدام دالة map.keys() يمكنك استرجاع جميع المفاتيح۔

1@use "sass:map";
2
3$colors: (
4  primary: #3498db,
5  secondary: #2ecc71
6);
7
8@debug map.keys($colors); // (primary, secondary)

الحصول على جميع القيم

باستخدام دالة map.values() يمكنك استرجاع جميع القيم۔

1@use "sass:map";
2
3$colors: (
4  primary: #3498db,
5  secondary: #2ecc71
6);
7
8@debug map.values($colors); // (#3498db, #2ecc71)

التكرار عبر الخريطة

في SASS، يمكنك استخدام التوجيه @each للتكرار عبر الخريطة۔

مثال على الاستخدام

 1$colors: (
 2  primary: #3498db,
 3  secondary: #2ecc71,
 4  danger: #e74c3c
 5);
 6
 7@each $name, $color in $colors {
 8  .color-#{$name} {
 9    background-color: $color;
10  }
11}
  • يفحص هذا الكود كل مفتاح وقيمة في خريطة SASS وينشئ صنفًا تلقائيًا لكل لون۔

الناتج

 1.color-primary {
 2  background-color: #3498db;
 3}
 4
 5.color-secondary {
 6  background-color: #2ecc71;
 7}
 8
 9.color-danger {
10  background-color: #e74c3c;
11}

التعامل مع الخرائط المتداخلة

يمكن أن تحتوي الخرائط أيضًا على بنية متداخلة۔ في هذه الحالة، استخدم دوال map.get() متداخلة۔

مثال على الاستخدام

 1@use "sass:map";
 2
 3$themes: (
 4  light: (
 5    background: #ffffff,
 6    text: #000000
 7  ),
 8  dark: (
 9    background: #000000,
10    text: #ffffff
11  )
12);
13
14body {
15  background-color: map.get(map.get($themes, light), background);
16  color: map.get(map.get($themes, light), text);
17}
  • يحصل هذا الكود على ألوان الخلفية والنص للثيم light من خريطة SASS متداخلة ويطبقها على عنصر body۔

الناتج

1body {
2  background-color: #ffffff;
3  color: #000000;
4}

حالة استخدام الخريطة: التصميم المتجاوب

من خلال استخدام الخرائط، يمكنك إدارة الاستعلامات الإعلامية والتصميم المتجاوب بسهولة۔

مثال على الاستخدام

 1$breakpoints: (
 2  small: 480px,
 3  medium: 768px,
 4  large: 1024px
 5);
 6
 7@each $label, $size in $breakpoints {
 8  @media (max-width: $size) {
 9    .container-#{$label} {
10      width: 100%;
11    }
12  }
13}
  • يستخدم هذا الكود خريطة SASS لإنشاء أصناف حاوية متجاوبة تلقائيًا لكل نقطة توقف۔

الناتج

 1@media (max-width: 480px) {
 2  .container-small {
 3    width: 100%;
 4  }
 5}
 6
 7@media (max-width: 768px) {
 8  .container-medium {
 9    width: 100%;
10  }
11}
12
13@media (max-width: 1024px) {
14  .container-large {
15    width: 100%;
16  }
17}

الخاتمة

تعد خرائط SASS أداة قوية لتنظيم أوراق الأنماط الخاصة بك وزيادة المرونة وقابلية إعادة الاستخدام۔ يمكن استخدامها في العديد من السيناريوهات مثل إدارة القيم، والتكرار، وتنفيذ التصميم المتجاوب۔

يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔

YouTube Video