پرش به مطلب اصلی

Styling

استایل دهی در ریکت

راه های زیاد برای اتایل دهی به تگ ها در ریکت وجود داره که ما چندتا از اون ها رو مورد بررسی قرار میدیم

استایل خطی

در این روش استایل ها رو درون کامپونتت ایجاد میکنم و روی تگ ها اعمال میکنیم

/* src/components/Header.js */

const Header = () => {
return (
<>
<h1 style={{color: "red", paddingTop: "2rem"}}>Hello Style!</h1>
</>
);
}

میتونیم تمامی استایل ها را درون یک object بنویسیم و به تگ بدیم

/* src/components/Header.js */

const Header = () => {
const style = {
color: "red",
paddingTop: "2rem"
}

return (
<>
<h1 style={style}>Hello Style!</h1>
</>
);
}

استفاده از فایل css

روش دیگر این هست که درون فایل css استایل ها را بنویسیم و فایل را به کامپوننت ایمپورت کنیم

/* src/components/Header.css */
h1{
color: red;
padding-top: 2rem;
}
/* src/components/Header.js */

import './Header.css'

function Header() {
return (
<h1> my Header</h1>
);
}

export default Header;

در مثال بالا دیدیم که درون فایل جداگانه استایل ها را نوشتیم و روی تگ h1 اعمال شد حالا اگر کلاسی درون فایل داشته باشیم چه اتفاقی رخ خواهد داد ؟

tip

این مورد را حتما امتحان کنید و خروجی را ببینید در صورتی که دقیقا در یک کامپوننت دیگر یک کلاس دیگر با همین نام وجود داشته باشد مروگر کدام کلاس را در نظر میگیرد ؟

ریکت برای اینکه این مشکل را برطرف کند از css module استفاده میکند به مثال زیر دقت کنید:

/* src/components/Header.module.css */
.bigblue {
color: DodgerBlue;
padding: 40px;
text-align: center;
}
/* src/components/Header.js */

import styles from './Header.module.css'

function Header() {
return (
<h1 className={styles.bigblue}> my Header</h1>
);
}

export default Header;

بعد از اجرا برنامه از inspect کلاس داده شده به h1 را نگاه کنید.

میبینید که اسم کلاس شما تغییر کرده و دلیل این کار این است که استایل هر کامپوننت بصورت کپسوله شده فقط روی همان کامپوننت تاثیر گذار باشد.

نکته

به این موضوع دقت کنید که حتما اسم فایل css باید با .module.css به پایان برسد تا این فرایند اعمال شود.

استفاده از sass

برای استفاده از sass در ریکت باید پردازش گر ان را نصب کنیم برای این کار دستور زیر را اجرا میکنیم

npm i sass

بعد از نصب sass دیگر نیازی به تغییر خاصی در کانفیگ برنامه نیست و با ساخت فایل scss میتوانید از ان بهرمند بشید

/* src/components/Header.scss */

$myColor: red;

h1 {
color: $myColor;
}
/* src/components/Header.js */

import './Headers.scss'

function Header() {
return (
<h1> my Header</h1>
);
}

export default Header;

پروژه

تمامی کامپوننت های که تا کنون ساختید را استایل دهی کنید