האם Panda CSS הוא הדבר הגדול הבא בעיצוב לריאקט?
פנדה הוא בהחלט כל מה שאפשר לדמיין כשחושבים על פריימוורק ל CSS in JS. היתרון הגדול שלו הוא התמיכה המלאה בקומפוננטות צד-שרת, כלומר בבניית כל הגדרות העיצוב בצד בתור קלאסים ושימוש אוטומטי בקלאסים אלה בתוך הקוד, בסגנון Tailwind CSS. אבל בניגוד לטיילווינד, פה יש לנו גם חיבור ל TypeScript כדי לקבל השלמה ואימות טיפוסים על כללי העיצוב ואינטגרציה טובה עם ריאקט כדי לייצר עיצובים מתוך קוד.
וכמו שאומרים קוד שווה יותר מאלף מילים, אז הנה דוגמה קטנה ל Panda בקומפוננטת ריאקט:
function App() {
return (
<div className={css({ background: 'red.400'})}>
<div className={css({ fontSize: "2xl", fontWeight: 'bold' })}>Hello 🐼!</div>
</div>
)
}
אני משתמש בפונקציה css
ומעביר את ערך החזרה שלה בתור className
. באופן אוטומטי פנדה מייצר קלאס שיש לו את הגדרות העיצוב שכתבתי והפונקציה מחזירה את שם הקלאס. במידה והקומפוננטה תרונדר מצד שרת, אז ה HTML שיישלח ללקוח יכיל ממש את שמות הקלאסים שג'ונרטו וכך גולשים יכולים לראות את העמוד עם העיצוב גם בלי JavaScript.
ודוגמה שניה קצת יותר מתוחכמת-
function App() {
const [clicked, setClicked] = useState(false);
return (
<div>
<button
className={css({
color: {
base: 'blue',
_hover: 'green',
},
cursor: 'pointer',
background: '#dadada',
padding: '10px',
borderRadius: '5px',
})}
onClick={() => setClicked(true)}
>
Click Here
</button>
<p className={css({
color: clicked ? 'green' : 'red'
})}>{clicked ? 'Passed' : 'Failed'}</p>
</div>
)
}
המפתח _hover
מגדיר ערך עיצוב שיפעל כשהאלמנט נמצא ב hover, ואין בעיה בתוך האוביקטים של העיצוב לבדוק ערכים של משתני JavaScript.
כדי לשחק עם Panda תצטרכו קודם להוסיף אותו לפרויקט ריאקט שלכם. אלה ההוראות לפרויקט שבנוי ב Vite: https://panda-css.com/docs/getting-started/vite