CSS سفارشی

ظاهر نوار استوری و نمایشگر را با CSS خودت تغییر بده. این‌جا کلاس‌های ثابت پلک، متغیرهای رنگ و چند نمونه‌ی آماده را می‌بینی.

به‌روزرسانی ۳۰ مهر ۱۴۰۵ 3 دقیقه مطالعه

اگر تنظیمات ظاهر برای چیزی که می‌خواهی کافی نیست، می‌توانی برای نوار استوری و نمایشگر CSS بنویسی. کد را در استوری‌ها › پیشرفته و کارت CSS سفارشی بنویس و ذخیره کن. این کد فقط روی پلک اثر دارد، نه روی بقیه‌ی سایت.

CSS پلک چطور اعمال می‌شود

پلک نوار استوری و نمایشگر را داخل Shadow DOM می‌کشد. یعنی CSS قالب به داخل پلک نمی‌رسد و ظاهر پلک را خراب نمی‌کند. CSS سفارشی تو هم داخل همین فضا و بعد از استایل‌های پلک قرار می‌گیرد. چند نتیجه‌ی مهم دارد:

  • فقط کلاس‌های پلک را هدف بگیر. انتخاب‌گرهایی مثل body .pelk-title یا کلاس‌های قالب کار نمی‌کنند، چون body داخل پلک نیست. بنویس .pelk-title.
  • از !important استفاده کن. استایل‌های خود پلک !important دارند؛ برای تغییر یک ویژگی، کنار مقدارش !important بگذار. متغیرهای رنگ (پایین‌تر) به آن نیاز ندارند.
  • فقط کلاس‌هایی که با pelk- شروع می‌شوند ثابت‌اند. کلاس‌هایی که با pk- شروع می‌شوند ابزار داخلی پلک‌اند و ممکن است در هر نسخه عوض شوند؛ به آن‌ها تکیه نکن.
  • نتیجه را در خود سایت ببین. پیش‌نمایش‌های پنل پلک CSS سفارشی را نشان نمی‌دهند.
  • تگ HTML ننویس. کد را بدون <style> بنویس. اگر کد تگی داشته باشد ذخیره نمی‌شود و پلک شماره‌ی خطش را نشان می‌دهد.

رنگ‌ها با متغیرها

ساده‌ترین راه برای عوض کردن رنگ‌ها، متغیرهای CSS پلک است:

متغیرچه چیزی را رنگ می‌کند
--pelk-story-ringحلقه‌ی استوری‌هایی که هنوز دیده نشده‌اند. پیش‌فرض: رنگ برند.
--pelk-story-ring-seenحلقه‌ی استوری‌های دیده‌شده.
--pelk-story-textعنوان استوری‌های تازه، زیر دایره.
--pelk-story-text-mutedعنوان استوری‌های دیده‌شده.
--pelk-story-iconآیکن کاور، وقتی کاور آیکن است.
--pelk-story-icon-bgپس‌زمینه‌ی آیکن کاور.
--pelk-story-nav-bgپس‌زمینه‌ی فلش‌های دو طرف نوار در دسکتاپ.
--pelk-story-nav-borderحاشیه‌ی همان فلش‌ها.
--pelk-story-nav-iconرنگ خود فلش.
--pelk-story-nav-shadowسایه‌ی فلش‌ها.

متغیرها را روی یکی از این‌ها تعریف کن:

  • .pelk.pelk-list برای نوار استوری،
  • .pelk-viewer برای نمایشگر،
  • .pelk برای هر دو.
.pelk.pelk-list {
  --pelk-story-ring-seen: #94a3b8;
  --pelk-story-text-muted: #64748b;
}

نواری که تم آن تیره است data-theme="dark" دارد. برای رنگ‌هایی که فقط در تم تیره عوض شوند، .pelk.pelk-list[data-theme="dark"] بنویس.

کلاس‌های نوار استوری

ساختار هر سکشن در سایت این است؛ جدول زیرش می‌گوید هر کلاس چیست:

.pelk-section
└─ .pelk-list
   ├─ .pelk-track
   │  └─ .pelk-story  (.is-seen)
   │     ├─ .pelk-avatar
   │     │  ├─ .pelk-cover
   │     │  ├─ .pelk-new
   │     │  └─ .pelk-pin
   │     └─ .pelk-title
   └─ .pelk-nav  (.pelk-nav--prev, .pelk-nav--next)
انتخاب‌گرچه چیزی را هدف می‌گیرد
:host(.pelk-section)جعبه‌ی هر سکشن در صفحه (.pelk-section)؛ مثلاً برای فاصله‌ی بالا و پایین.
:host([data-pelk-section="shop"])فقط سکشنی که کلیدش shop است. کلید هر سکشن در شورت‌کدش آمده.
.pelk-listخود نوار.
.pelk-trackردیف دایره‌ها.
.pelk-storyهر استوری. استوری دیده‌شده کلاس is-seen هم دارد.
.pelk-avatarدایره‌ی استوری با حلقه‌اش.
.pelk-coverتصویر یا آیکن داخل حلقه.
.pelk-iconآیکن کاور.
.pelk-newنقطه‌ی «تازه».
.pelk-pinنشان استوری سنجاق‌شده.
.pelk-titleعنوان زیر دایره.
.pelk-navفلش‌های دو طرف نوار در دسکتاپ.

کلاس‌های نمایشگر

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

انتخاب‌گرچه چیزی را هدف می‌گیرد
.pelk-viewerکل نمایشگر. در گوشی data-layout="mobile" دارد و در دسکتاپ data-layout="desktop".
.pelk-backdropپس‌زمینه‌ی پشت استوری. تیرگی‌اش در دسکتاپ در ظاهر تنظیم می‌شود.
.pelk-cardکارت هر استوری.
.pelk-progressنوارهای پیشرفت بالای استوری.
.pelk-bar-fillبخش پرشونده‌ی هر نوار پیشرفت.
.pelk-headerبالای استوری: نام و دکمه‌ها.
.pelk-nameنام استوری.
.pelk-pause، .pelk-sound، .pelk-closeدکمه‌های مکث، صدا و بستن.
.pelk-headingعنوان روی اسلاید.
.pelk-footerپایین استوری: دکمه‌ی لینک، پسند و اشتراک.
.pelk-ctaدکمه‌ی لینک.
.pelk-likeدکمه‌ی پسند. وقتی بازدیدکننده پسندیده، کلاس pelk-liked هم دارد.
.pelk-like-countشمار پسندها.
.pelk-shareدکمه‌ی اشتراک.

چند نمونه‌ی آماده

فاصله‌ی همه‌ی سکشن‌ها با بالا و پایینشان:

:host(.pelk-section) {
  margin-block: 24px !important;
}

عنوان‌های کوچک‌تر و پررنگ‌تر:

.pelk-title {
  font-size: 12px !important;
  font-weight: 700 !important;
}

عنوان استوری‌های دیده‌شده کم‌رنگ‌تر:

.pelk-story.is-seen .pelk-title {
  opacity: 0.6 !important;
}

عنوان‌ها فقط در دسکتاپ (در گوشی پنهان):

@media (max-width: 767px) {
  .pelk-title {
    display: none !important;
  }
}

حلقه‌ی سبز فقط برای سکشنی که کلیدش shop است:

:host([data-pelk-section="shop"]) .pelk {
  --pelk-story-ring: #16a34a;
}

دکمه‌ی لینک با گوشه‌های کمتر گرد:

.pelk-cta {
  border-radius: 10px !important;
}

CSS اثر نکرد؟

  • کنار ویژگی‌ها !important گذاشته‌ای؟
  • انتخاب‌گر فقط کلاس‌های pelk- دارد، نه کلاس‌های قالب یا pk-؟
  • نتیجه را در خود سایت دیده‌ای، نه در پیش‌نمایش پنل؟ اگر هاست یا CDN سایتت صفحه‌ها را کش می‌کند، آن کش را پاک کن.
  • برای پیدا کردن کلاس درست، ابزار توسعه‌دهنده‌ی مرورگر را باز کن (کلیک راست، Inspect). کلاس‌های پلک زیر #shadow-root (open) داخل .pelk-section هستند.