خانه دوره‌ها مدرس‌ها تیم ما ارتباط با ما
طراحی حرفه‌ای وب

🎨 دوره CSS پیشرفته

مهارت طراحی حرفه‌ای و مدرن وب را با تکنیک‌های پیشرفته CSS بیاموزید. تبدیل شوید به یک طراح فرانت‌اند حرفه‌ای با این دوره کامل که تمام مفاهیم پیشرفته CSS را پوشش می‌دهد.

۴۵+ ساعت آموزش
۱۸۰+ تمرین عملی
۲۸ پروژه واقعی
۴.۸ رضایت دانشجویان

🎨 آموزش تعاملی CSS پیشرفته

روی هر درس کلیک کنید تا باز شود و محتوای آموزشی را مشاهده کنید. تمام ۹ درس شامل مثال‌های تعاملی و تمرین‌های عملی هستند.

۱

متغیرهای CSS (Custom Properties)

تعریف و استفاده از متغیرها در CSS

۲۵ دقیقه

انقلابی در مدیریت استایل‌ها با CSS Variables

متغیرهای CSS (که Custom Properties نیز نامیده می‌شوند) امکان تعریف مقادیر قابل استفاده مجدد در CSS را فراهم می‌کنند.

مفهوم کلیدی

متغیرهای CSS با پیشوند -- تعریف می‌شوند و با تابع var() استفاده می‌شوند. این متغیرها در سطح عنصر تعریف شده و به صورت ارثی منتقل می‌شوند.

تمرین تعاملی
css-variables.css
نمایش متغیرهای CSS:
تمرین:

یک سیستم طراحی (Design System) با استفاده از متغیرهای CSS ایجاد کنید که شامل رنگ‌ها، تایپوگرافی، spacing و shadow باشد. سپس یک دکمه و کارت با استفاده از این متغیرها بسازید.

در :root متغیرهای اصلی را تعریف کنید. سپس با استفاده از var() و color-mix() حالت‌های مختلف (hover, active) را ایجاد کنید.

نکات طلایی:
  • متغیرهای CSS در :root به صورت سراسری در دسترس هستند
  • می‌توان متغیرها را در هر سطحی بازنویسی کرد
  • از var(--variable, fallback) برای مقادیر پیش‌فرض استفاده کنید
  • متغیرها برای ایجاد تم‌های پویا عالی هستند
  • می‌توان با جاوااسکریپت متغیرها را تغییر داد

آزمون پایان جلسه - متغیرهای CSS

سوال ۱: چگونه یک متغیر CSS تعریف می‌کنیم؟
الف
$variable-name: value;
ب
--variable-name: value;
ج
var(variable-name): value;
سوال ۲: برای تعریف متغیرهای سراسری (global) از چه سلکتوری استفاده می‌کنیم؟
الف
body
ب
:root
ج
html
سوال ۳: چگونه از یک متغیر CSS با مقدار پیش‌فرض استفاده می‌کنیم؟
الف
var(--variable, fallback)
ب
--variable(fallback)
ج
use(--variable, fallback)
نتایج آزمون

۲

CSS Grid پیشرفته

تکنیک‌های پیشرفته Grid Layout

۳۰ دقیقه

طراحی حرفه‌ای با CSS Grid

CSS Grid یک سیستم چیدمان دو بعدی قدرتمند است که به شما امکان طراحی طرح‌های پیچیده را می‌دهد.

تکنیک‌های پیشرفته Grid
grid-advanced.css
نمونه Grid:
آیتم ۱
آیتم ۲
آیتم ۳
آیتم ۴ (span 2)
آیتم ۵
تمرین:

یک داشبورد مدیریتی با CSS Grid طراحی کنید که شامل هدر، سایدبار، محتوای اصلی و فوتر باشد. از grid-template-areas برای چیدمان استفاده کنید و طرح را واکنش‌گرا کنید.

از grid-template-areas برای تعریف مناطق استفاده کنید. با media query برای موبایل چیدمان را به یک ستون تغییر دهید.

نکات طلایی Grid:
  • auto-fill و auto-fit برای طرح‌های واکنش‌گرا عالی هستند
  • grid-template-areas خوانایی کد را افزایش می‌دهد
  • از minmax() برای محدود کردن اندازه‌ها استفاده کنید
  • grid-auto-flow: dense از ایجاد فضاهای خالی جلوگیری می‌کند
  • می‌توانید خطوط Grid را نام‌گذاری کنید

آزمون پایان جلسه - CSS Grid پیشرفته

سوال ۱: تفاوت auto-fill و auto-fit در CSS Grid چیست؟
الف
auto-fill ستون‌های خالی ایجاد می‌کند، auto-fit آنها را جمع می‌کند
ب
هیچ تفاوتی ندارند
ج
auto-fit فقط در موبایل کار می‌کند
سوال ۲: برای ایجاد یک طرح Masonry-like از کدام ویژگی استفاده می‌کنیم؟
الف
grid-auto-flow: dense
ب
grid-masonry: true
ج
grid-layout: masonry
سوال ۳: grid-template-areas چه کمکی می‌کند؟
الف
خوانایی کد را افزایش و نگهداری را آسان‌تر می‌کند
ب
سرعت اجرای Grid را افزایش می‌دهد
ج
فقط برای نمایش بهتر در DevTools است
نتایج آزمون

۳

Flexbox پیشرفته

تکنیک‌های حرفه‌ای Flexbox

۲۵ دقیقه

تکنیک‌های حرفه‌ای Flexbox

Flexbox برای چیدمان‌های یک‌بعدی عالی است. در این درس تکنیک‌های پیشرفته‌ای را یاد می‌گیرید.

Flexbox پیشرفته
flexbox-advanced.css
نمونه Flexbox:
آیتم ۱
آیتم ۲ (flex: 2)
آیتم ۳
تمرین:

یک گالری تصاویر واکنش‌گرا با Flexbox طراحی کنید که تصاویر به صورت masonry چیده شوند و هنگام hover زوم شوند و overlay نمایش داده شود.

از flex-wrap: wrap و flex: 1 1 250px استفاده کنید. برای overlay از position absolute و transition opacity استفاده کنید.

آزمون پایان جلسه - Flexbox پیشرفته

سوال ۱: ویژگی gap در Flexbox چه کاری انجام می‌دهد؟
الف
فاصله بین آیتم‌های Flexbox را تنظیم می‌کند
ب
فاصله بین محتوا و border را تنظیم می‌کند
ج
فاصله بین خطوط Flexbox را تنظیم می‌کند
سوال ۲: برای ایجاد یک navbar با استفاده از Flexbox، از کدام ویژگی برای فاصله دادن بین آیتم‌ها استفاده می‌کنیم؟
الف
margin یا gap
ب
padding
ج
border-spacing
سوال ۳: flex: 1 1 200px به چه معناست؟
الف
flex-grow: 1, flex-shrink: 1, flex-basis: 200px
ب
flex: 1px, shrink: 1px, basis: 200px
ج
flex-size: 200px, growable: true
نتایج آزمون

۴

انیمیشن‌های CSS پیشرفته

Keyframes، Transitions، Transformations

۳۰ دقیقه

انیمیشن‌های حرفه‌ای CSS

در این درس با تکنیک‌های پیشرفته انیمیشن در CSS آشنا می‌شوید.

مفهوم کلیدی

انیمیشن‌های CSS می‌توانند تجربه کاربری را به شدت بهبود بخشند. استفاده درست از آنها مهم است تا باعث سردرگمی کاربر نشوند.

نکات طلایی انیمیشن:
  • از @keyframes برای انیمیشن‌های پیچیده استفاده کنید
  • transition برای تغییرات ساده مناسب است
  • از will-change برای بهینه‌سازی عملکرد استفاده کنید
  • انیمیشن‌ها را با prefers-reduced-motion کنترل کنید
  • از cubic-bezier برای timing functions حرفه‌ای استفاده کنید

آزمون پایان جلسه - انیمیشن‌های CSS

سوال ۱: تفاوت اصلی transition و animation چیست؟
الف
transition برای تغییرات ساده، animation برای انیمیشن‌های پیچیده
ب
تفاوتی ندارند
ج
transition فقط برای رنگ کار می‌کند
سوال ۲: cubic-bezier(0.68, -0.55, 0.265, 1.55) چه نوع انیمیشنی ایجاد می‌کند؟
الف
انیمیشن bounce یا elastic
ب
انیمیشن خطی
ج
انیمیشن fade
سوال ۳: چگونه می‌توان انیمیشن را برای کاربرانی که حرکت را دوست ندارند غیرفعال کرد؟
الف
با @media (prefers-reduced-motion: reduce)
ب
با animation: none;
ج
با JavaScript فقط
نتایج آزمون

۵

CSS Selectors پیشرفته

Selectorهای پیچیده، Pseudo-classes، Pseudo-elements

۲۵ دقیقه

انتخاب‌گرهای قدرتمند CSS

در این درس با Selectorهای پیشرفته CSS آشنا می‌شوید.

نکات طلایی Selectors:
  • از :is() و :where() برای گروه‌بندی Selectorها استفاده کنید
  • :has() امکان انتخاب والد بر اساس فرزندان را می‌دهد
  • Pseudo-classes مانند :focus-within و :empty مفید هستند
  • از ::before و ::after برای اضافه کردن محتوای دکوراتیو استفاده کنید
  • Attribute selectors برای انتخاب بر اساس attributeها قدرتمند هستند

آزمون پایان جلسه - Selectors پیشرفته

سوال ۱: تفاوت :is() و :where() چیست؟
الف
:where() specificity صفر دارد، :is() specificity بالاتر دارد
ب
تفاوتی ندارند
ج
:is() فقط در Chrome کار می‌کند
سوال ۲: :has() چه کاری انجام می‌دهد؟
الف
عنصری را انتخاب می‌کند که فرزند مشخصی دارد
ب
عنصری که دارای attribute خاصی است را انتخاب می‌کند
ج
عنصری که درون عنصر دیگر است را انتخاب می‌کند
سوال ۳: کدام Selector عناصر فرم معتبر (valid) را انتخاب می‌کند؟
الف
:valid
ب
:checked
ج
:enabled
نتایج آزمون

۶

Responsive Design پیشرفته

تکنیک‌های مدرن طراحی واکنش‌گرا

۳۰ دقیقه

تکنیک‌های مدرن Responsive Design

در این درس با جدیدترین تکنیک‌های طراحی واکنش‌گرا آشنا می‌شوید.

نکات طلایی Responsive Design:
  • از clamp() برای مقادیر responsive استفاده کنید
  • min() و max() برای محدود کردن اندازه‌ها مفید هستند
  • از container queries برای استایل‌دهی بر اساس اندازه container استفاده کنید
  • از viewport units (vw, vh, vmin, vmax) برای اندازه‌های نسبی استفاده کنید
  • با aspect-ratio نسبت ابعاد را حفظ کنید

آزمون پایان جلسه - Responsive Design

سوال ۱: clamp(1rem, 5vw, 2rem) چه کاری انجام می‌دهد؟
الف
مقداری بین 1rem و 2rem بر اساس 5% viewport width ایجاد می‌کند
ب
همیشه 5vw برمی‌گرداند
ج
بین 1vw و 2vw تغییر می‌کند
سوال ۲: Container Queries چه مشکلی را حل می‌کنند؟
الف
استایل‌دهی بر اساس اندازه container به جای viewport
ب
سرعت بارگذاری صفحه را افزایش می‌دهند
ج
فقط برای کامپوننت‌های React مفید هستند
سوال ۳: aspect-ratio: 16 / 9 چه کاری انجام می‌دهد؟
الف
نسبت عرض به ارتفاع را ۱۶ به ۹ حفظ می‌کند
ب
عنصر را ۱۶px در ۹px می‌کند
ج
فقط برای تصاویر کار می‌کند
نتایج آزمون

۷

CSS Functions پیشرفته

calc()، min()، max()، clamp()، color-mix()

۲۵ دقیقه

توابع قدرتمند CSS

در این درس با توابع پیشرفته CSS آشنا می‌شوید.

نکات طلایی CSS Functions:
  • calc() برای محاسبات ریاضی در CSS
  • min() و max() برای انتخاب مقادیر حداقلی/حداکثری
  • clamp() برای محدود کردن مقادیر بین حداقل و حداکثر
  • color-mix() برای ترکیب رنگ‌ها
  • var() برای استفاده از متغیرهای CSS

آزمون پایان جلسه - CSS Functions

سوال ۱: color-mix(in srgb, red 30%, blue 70%) چه رنگی ایجاد می‌کند؟
الف
رنگی که 30% قرمز و 70% آبی است
ب
رنگ بنفش
ج
رنگ قرمز
سوال ۲: تفاوت min(100%, 500px) و max(100%, 500px) چیست؟
الف
اولی کوچک‌ترین مقدار، دومی بزرگ‌ترین مقدار را برمی‌گرداند
ب
هر دو یکسان هستند
ج
اولی برای عرض، دومی برای ارتفاع
سوال ۳: calc(100vh - 80px) چه کاری انجام می‌دهد؟
الف
ارتفاع viewport منهای 80 پیکسل
ب
100 پیکسل منهای 80 پیکسل
ج
100% منهای 80 پیکسل
نتایج آزمون

۸

بهینه‌سازی Performance در CSS

تکنیک‌های بهبود سرعت و کارایی

۲۰ دقیقه

بهینه‌سازی کارایی CSS

در این درس با تکنیک‌های بهینه‌سازی Performance در CSS آشنا می‌شوید.

نکات طلایی Performance:
  • از CSS containment برای محدود کردن scope بازپردازی استفاده کنید
  • از will-change برای بهینه‌سازی انیمیشن‌ها استفاده کنید
  • از properties کم‌هزینه مانند transform و opacity برای انیمیشن استفاده کنید
  • از @import کمتر استفاده کنید و فایل‌ها را concatenate کنید
  • از Critical CSS برای بهبود First Paint استفاده کنید

آزمون پایان جلسه - Performance

سوال ۱: کدام properties برای انیمیشن‌های با کارایی بالا مناسب هستند؟
الف
transform و opacity
ب
width و height
ج
background-color و border
سوال ۲: contain: layout paint style چه کاری انجام می‌دهد؟
الف
scope بازپردازی را محدود می‌کند تا عملکرد بهبود یابد
ب
عنصر را از جریان document خارج می‌کند
ج
عنصر را نامرئی می‌کند
سوال ۳: Critical CSS چیست؟
الف
CSS مورد نیاز برای render اولیه صفحه
ب
CSS مربوط به خطاهای بحرانی
ج
CSS فشرده شده
نتایج آزمون

۹

CSS برای Accessibility

تکنیک‌های طراحی برای دسترسی‌پذیری

۲۰ دقیقه

طراحی قابل دسترس (Accessible)

در این درس با تکنیک‌های CSS برای بهبود دسترسی‌پذیری آشنا می‌شوید.

نکات طلایی Accessibility:
  • از prefers-reduced-motion برای کاربرانی که حرکت را دوست ندارند استفاده کنید
  • از prefers-contrast برای کاربران نیازمند کنتراست بالا استفاده کنید
  • از focus-visible برای focus styles بهینه استفاده کنید
  • از relative units (em, rem) برای اندازه‌های فونت استفاده کنید
  • از color contrast کافی برای خوانایی اطمینان حاصل کنید

آزمون پایان جلسه - Accessibility

سوال ۱: @media (prefers-reduced-motion: reduce) برای چه کاربرانی مفید است؟
الف
کاربرانی که حرکت باعث سرگیجه یا ناراحتی آنها می‌شود
ب
کاربران موبایل
ج
کاربران اینترنت کم سرعت
سوال ۲: :focus-visible چه زمانی فعال می‌شود؟
الف
وقتی کاربر با کیبورد navigates می‌کند
ب
همیشه وقتی عنصر focus دارد
ج
فقط در موبایل
سوال ۳: حداقل contrast ratio برای متن معمولی (normal text) چقدر باید باشد؟
الف
4.5:1
ب
3:1
ج
2:1
نتایج آزمون

🚀 پروژه‌های عملی در راه است!

ما به شدت در حال تولید پروژه‌های عملی برای تسلط کامل بر CSS پیشرفته هستیم:

🎨

طراحی سیستم (Design System)

ساخت یک Design System کامل با متغیرهای CSS و کامپوننت‌های قابل استفاده مجدد

📱

داشبورد مدیریتی

پیاده‌سازی یک داشبورد کامل با CSS Grid و Flexbox

🛒

فروشگاه آنلاین

طراحی یک فروشگاه مدرن با انیمیشن‌های پیشرفته

🎮

بازی‌های CSS

ساخت بازی‌های ساده با استفاده از CSS خالص

پروژه‌ها هر هفته منتشر می‌شوند!