فارسی

قدرت ویژگی‌های ماسک CSS را برای ایجاد جلوه‌های بصری خیره‌کننده، آشکار کردن محتوای پنهان و ارتقاء طراحی وب خود با تکنیک‌های پیشرفته ماسک کشف کنید.

ویژگی‌های ماسک در CSS: خلق جلوه‌های بصری خلاقانه در وب

ویژگی‌های ماسک در CSS روشی قدرتمند و همه‌کاره برای کنترل دیده‌شدن عناصر در صفحات وب شما ارائه می‌دهند که به شما امکان می‌دهد جلوه‌های بصری خیره‌کننده ایجاد کنید، محتوای پنهان را آشکار سازید و به طراحی‌های خود جلوه‌ای منحصربه‌فرد ببخشید. برخلاف نرم‌افزارهای سنتی ویرایش تصویر، ماسک‌گذاری در CSS امکان ماسک‌گذاری پویا و واکنش‌گرا را مستقیماً در مرورگر فراهم می‌کند و آن را به ابزاری ضروری برای توسعه‌دهندگان وب مدرن تبدیل کرده است. این راهنمای جامع به دنیای ماسک‌های CSS می‌پردازد و ویژگی‌ها، موارد استفاده و بهترین شیوه‌های مختلف آن را بررسی می‌کند.

ماسک‌های CSS چه هستند؟

ماسک CSS روشی برای پنهان کردن یا آشکار کردن بخش‌هایی از یک عنصر با استفاده از یک تصویر یا گرادیان دیگر به عنوان ماسک است. آن را مانند بریدن یک شکل از یک تکه کاغذ و قرار دادن آن روی یک تصویر در نظر بگیرید – فقط مناطقی که در داخل شکل بریده شده قرار دارند، قابل مشاهده هستند. ماسک‌های CSS تأثیر مشابهی را ارائه می‌دهند، اما با این مزیت اضافه که پویا بوده و از طریق CSS قابل کنترل هستند.

تفاوت کلیدی بین `mask` و `clip-path` در این است که `clip-path` به سادگی عنصر را در امتداد یک شکل تعریف‌شده برش می‌دهد و هر چیزی خارج از آن شکل را نامرئی می‌کند. از سوی دیگر، `mask` از کانال آلفا یا مقادیر روشنایی (luminance) تصویر ماسک برای تعیین شفافیت عنصر استفاده می‌کند. این امر طیف وسیع‌تری از امکانات خلاقانه، از جمله لبه‌های محو (feathered edges) و ماسک‌های نیمه‌شفاف را فراهم می‌کند.

ویژگی‌های ماسک CSS: یک بررسی عمیق

در اینجا به تفکیک ویژگی‌های کلیدی ماسک CSS می‌پردازیم:

`mask-image`

ویژگی `mask-image` اساس ماسک‌گذاری در CSS است. این ویژگی تصویر یا گرادیانی را که به عنوان ماسک استفاده خواهد شد، مشخص می‌کند. شما می‌توانید از انواع فرمت‌های تصویر، از جمله PNG، SVG و حتی GIF استفاده کنید. همچنین می‌توانید از گرادیان‌های CSS برای ایجاد ماسک‌های پویا و قابل تنظیم استفاده کنید.

مثال: استفاده از یک تصویر PNG به عنوان ماسک


.masked-element {
  mask-image: url("mask.png");
}

در این مثال، تصویر `mask.png` برای ماسک کردن `.masked-element` استفاده خواهد شد. نواحی شفاف PNG، نواحی متناظر عنصر را شفاف می‌کنند، در حالی که نواحی مات، نواحی متناظر عنصر را قابل مشاهده می‌سازند.

مثال: استفاده از یک گرادیان CSS به عنوان ماسک


.masked-element {
  mask-image: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
}

این مثال از یک گرادیان خطی برای ایجاد یک افکت محو شدن بر روی `.masked-element` استفاده می‌کند. گرادیان از رنگ سیاه مات به شفاف تغییر می‌کند و یک افکت محو شدن نرم ایجاد می‌کند.

`mask-mode`

ویژگی `mask-mode` نحوه تفسیر تصویر ماسک را تعیین می‌کند. این ویژگی چندین مقدار ممکن دارد:

مثال: استفاده از `mask-mode: luminance`


.masked-element {
  mask-image: url("grayscale-image.jpg");
  mask-mode: luminance;
}

در این مثال، یک تصویر سیاه و سفید به عنوان ماسک استفاده می‌شود. نواحی روشن‌تر تصویر، نواحی متناظر `.masked-element` را قابل مشاهده می‌کنند، در حالی که نواحی تاریک‌تر آنها را نامرئی می‌سازند.

`mask-repeat`

ویژگی `mask-repeat` نحوه تکرار تصویر ماسک را در صورتی که کوچکتر از عنصر ماسک‌شده باشد، کنترل می‌کند. این ویژگی شبیه به ویژگی `background-repeat` عمل می‌کند.

مثال: استفاده از `mask-repeat: no-repeat`


.masked-element {
  mask-image: url("small-mask.png");
  mask-repeat: no-repeat;
}

در این مثال، تصویر `small-mask.png` به عنوان ماسک استفاده خواهد شد، اما تکرار نخواهد شد. اگر عنصر بزرگتر از تصویر ماسک باشد، نواحی ماسک‌نشده قابل مشاهده خواهند بود.

`mask-position`

ویژگی `mask-position` موقعیت اولیه تصویر ماسک را در داخل عنصر تعیین می‌کند. این ویژگی شبیه به ویژگی `background-position` عمل می‌کند.

شما می‌توانید از کلمات کلیدی مانند `top`، `bottom`، `left`، `right` و `center` برای مشخص کردن موقعیت استفاده کنید، یا می‌توانید از مقادیر پیکسلی یا درصدی استفاده کنید.

مثال: استفاده از `mask-position: center`


.masked-element {
  mask-image: url("small-mask.png");
  mask-repeat: no-repeat;
  mask-position: center;
}

در این مثال، تصویر `small-mask.png` در مرکز `.masked-element` قرار خواهد گرفت.

`mask-size`

ویژگی `mask-size` اندازه تصویر ماسک را مشخص می‌کند. این ویژگی شبیه به ویژگی `background-size` عمل می‌کند.

مثال: استفاده از `mask-size: cover`


.masked-element {
  mask-image: url("mask.png");
  mask-size: cover;
}

در این مثال، تصویر `mask.png` مقیاس‌بندی می‌شود تا کل `.masked-element` را بپوشاند و در صورت لزوم ممکن است تصویر را برش دهد.

`mask-origin`

ویژگی `mask-origin` مبدأ موقعیت‌یابی ماسک را مشخص می‌کند. این ویژگی نقطه‌ای را تعیین می‌کند که ویژگی `mask-position` از آن محاسبه می‌شود.

`mask-clip`

ویژگی `mask-clip` ناحیه‌ای را که توسط ماسک بریده می‌شود، تعریف می‌کند. این ویژگی تعیین می‌کند که کدام بخش‌های عنصر تحت تأثیر ماسک قرار می‌گیرند.

`mask-composite`

ویژگی `mask-composite` نحوه ترکیب چندین لایه ماسک را مشخص می‌کند. این ویژگی زمانی مفید است که چندین اعلان `mask-image` به یک عنصر اعمال شده باشد.

`mask` (ویژگی مختصر)

ویژگی `mask` یک راه مختصر برای تنظیم همزمان چندین ویژگی ماسک است. این ویژگی به شما امکان می‌دهد ویژگی‌های `mask-image`، `mask-mode`، `mask-repeat`، `mask-position`، `mask-size`، `mask-origin` و `mask-clip` را در یک اعلان واحد مشخص کنید.

مثال: استفاده از ویژگی مختصر `mask`


.masked-element {
  mask: url("mask.png") no-repeat center / cover;
}

این کد معادل است با:


.masked-element {
  mask-image: url("mask.png");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: cover;
}

کاربردهای عملی و مثال‌ها

ماسک‌گذاری CSS می‌تواند برای ایجاد طیف گسترده‌ای از جلوه‌های بصری استفاده شود. در اینجا چند مثال آورده شده است:

۱. آشکار کردن محتوا هنگام هاور (Hover)

شما می‌توانید از ماسک‌های CSS برای ایجاد افکتی استفاده کنید که در آن محتوا با قرار گرفتن ماوس کاربر روی یک عنصر آشکار می‌شود. این می‌تواند برای افزودن تعامل و جذابیت به طراحی‌های شما استفاده شود.


<div class="reveal-container">
  <div class="reveal-content">
    <h2>محتوای پنهان</h2>
    <p>این محتوا هنگام هاور آشکار می‌شود.</p>
  </div>
</div>

.reveal-container {
  position: relative;
  width: 300px;
  height: 200px;
  overflow: hidden;
}

.reveal-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #007bff;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  mask-image: url("circle-mask.png");
  mask-size: 20px;
  mask-repeat: no-repeat;
  mask-position: center;
  transition: mask-size 0.3s ease;
}

.reveal-container:hover .reveal-content {
  mask-size: 200%;
}

در این مثال، در ابتدا یک ماسک دایره‌ای کوچک به `.reveal-content` اعمال می‌شود. هنگامی که کاربر ماوس را روی `.reveal-container` می‌برد، اندازه ماسک افزایش می‌یابد و محتوای پنهان آشکار می‌شود.

۲. ایجاد روکش‌های شکلی (Shape Overlays)

ماسک‌های CSS می‌توانند برای ایجاد روکش‌های شکلی جالب روی تصاویر یا عناصر دیگر استفاده شوند. این می‌تواند برای افزودن یک سبک بصری منحصربه‌فرد به طراحی‌های شما استفاده شود.


<div class="shape-overlay">
  <img src="image.jpg" alt="Image">
</div>

.shape-overlay {
  position: relative;
  width: 400px;
  height: 300px;
}

.shape-overlay img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.shape-overlay::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  mask-image: url("triangle-mask.svg");
  mask-size: cover;
  mask-repeat: no-repeat;
}

در این مثال، یک ماسک مثلثی به یک شبه‌عنصر (pseudo-element) که روی تصویر قرار گرفته است، اعمال می‌شود. این کار یک افکت روکش شکلی ایجاد می‌کند که جذابیت بصری به تصویر می‌افزاید.

۳. ماسک‌گذاری متن

در حالی که `mask-clip: text` هنوز آزمایشی است، شما می‌توانید با قرار دادن یک عنصر با تصویر پس‌زمینه در پشت متن و استفاده از خود متن به عنوان ماسک، به افکت‌های ماسک‌گذاری متن دست یابید. این تکنیک می‌تواند تایپوگرافی‌های بصری چشمگیری ایجاد کند.


<div class="text-mask">
  <h1>متن ماسک‌شده</h1>
</div>

.text-mask {
  position: relative;
  width: 500px;
  height: 200px;
  font-size: 72px;
  font-weight: bold;
  color: white;
  background-image: url("background.jpg");
  background-size: cover;
  -webkit-text-fill-color: transparent; /* Required for Safari */
  -webkit-background-clip: text; /* Required for Safari */
  background-clip: text;
}

این مثال از `background-clip: text` (با پیشوندهای فروشنده برای سازگاری گسترده‌تر) استفاده می‌کند تا از متن به عنوان ماسک استفاده کند و تصویر پس‌زمینه را در پشت آن آشکار سازد.

۴. ایجاد ماسک‌های متحرک

با متحرک‌سازی ویژگی‌های `mask-position` یا `mask-size`، می‌توانید افکت‌های ماسک پویا و جذابی ایجاد کنید. این می‌تواند برای افزودن حرکت و تعامل به طراحی‌های شما استفاده شود.


<div class="animated-mask">
  <img src="image.jpg" alt="Image">
</div>

.animated-mask {
  position: relative;
  width: 400px;
  height: 300px;
  overflow: hidden;
}

.animated-mask img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  mask-image: url("circle-mask.png");
  mask-size: 50px;
  mask-repeat: repeat;
  mask-position: 0 0;
  animation: moveMask 5s linear infinite;
}

@keyframes moveMask {
  0% {
    mask-position: 0 0;
  }
  100% {
    mask-position: 100% 100%;
  }
}

در این مثال، `mask-position` متحرک‌سازی شده است و یک افکت ماسک متحرک ایجاد می‌کند که بخش‌های مختلفی از تصویر را در طول زمان آشکار می‌سازد.

بهترین شیوه‌ها و ملاحظات

هنگام کار با ماسک‌های CSS، بهترین شیوه‌های زیر را در نظر داشته باشید:

جایگزین‌ها و فال‌بک‌ها (Fallbacks)

اگر نیاز به پشتیبانی از مرورگرهای قدیمی‌تری دارید که از ویژگی‌های ماسک CSS پشتیبانی نمی‌کنند، می‌توانید از جایگزین‌های زیر استفاده کنید:

نتیجه‌گیری

ویژگی‌های ماسک در CSS روشی قدرتمند و همه‌کاره برای ایجاد جلوه‌های بصری خیره‌کننده در وب ارائه می‌دهند. با درک ویژگی‌های مختلف ماسک و موارد استفاده آنها، می‌توانید سطح جدیدی از خلاقیت را آزاد کرده و به طراحی‌های خود جلوه‌ای منحصربه‌فرد ببخشید. در حالی که در نظر گرفتن سازگاری مرورگر و عملکرد ضروری است، پاداش‌های بالقوه استفاده از ماسک‌های CSS ارزش تلاش را دارد. با تصاویر ماسک، گرادیان‌ها و انیمیشن‌های مختلف آزمایش کنید تا امکانات بی‌پایان ماسک‌گذاری CSS را کشف کرده و طراحی وب خود را به ارتفاعات جدیدی برسانید. قدرت ماسک‌های CSS را در آغوش بگیرید و صفحات وب خود را به تجربیات بصری فریبنده تبدیل کنید.

از آشکارسازی‌های ظریف گرفته تا روکش‌های شکلی پیچیده، ماسک‌گذاری CSS شما را قادر می‌سازد تا رابط‌های کاربری منحصربه‌فرد و جذابی را خلق کنید. با ادامه بهبود پشتیبانی مرورگرها، ماسک‌های CSS بدون شک به بخش جدایی‌ناپذیرتری از جعبه ابزار توسعه‌دهندگان وب مدرن تبدیل خواهند شد. پس، وارد شوید، آزمایش کنید و خلاقیت خود را با ویژگی‌های ماسک CSS آزاد کنید!