
createMuiTheme מקבלת אובייקט עם הגדרות. כל נושא הוא אובייקט משלו: typography לגופנים ו-palette לצבעים.fontFamily (בהרצאה Helvetica, ולהמחשה גם Fantasy) ו-fontSize של 15.h3, למשל fontSize של 30, ורק כותרות h3 יושפעו.palette מגדירים primary ו-secondary, ובכל אחד main. הצבעים באים מספריית צבעים מובנית שלא צריך להתקין. בהרצאה: green ל-primary ו-orange ל-secondary.ThemeProvider של Material UI (לא זו של Styled Components) ומעבירים לה את אובייקט ה-Theme במאפיין theme.הטקסט המלא של הדקות הראשונות בהרצאה «הגדרת Theme ב-Material UI» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
דבר נוסף ומאוד מעניין שאנחנו יכולים להוסיף כאן ל-Material UI, זה הגדרת תים משלנו על גבי הרכיבים שלהם. כלומר, יש להם את העיצובים שלהם, אני לא משנה להם את העיצוב. כשאני נכנס אני רואה את האנימציה הזאת והיא ממש חוזרת כשאני יוצא, זה דברים ממש מגניבים ואסתטיים ואני רוצה אותם.
אבל יכול להיות שוואלה, לא בא לי שה-primary buttons או ה-primary color יהיה כחול וה-secondary יהיה אדום. אלה הצבעים שהם ישר מציעים לנו. ואולי אני לא רוצה את הגדלים הדיפולטיים האלה. כלומר, יש כל מיני דברים ששמים לי אותם כדיפולט, ויכול להיות שאני רוצה להגדיר איזושהי ערכת נושא או Team שהוא מותאם לאפליקציה שלי.
בכל האפליקציה שלי אני רוצה קצת צבעים אחרים, גדלים אחרים וכדומה. בואו נראה איך אנחנו עושים את זה. אז מה שאנחנו רוצים לבצע זה לבנות Team ואז להשתמש בו.
קודם כל הערה, אני כרגע משתמש ב-Material UI רק ברכיב Contact Us. אם הייתי רוצה לבצע Team עבור כל האפליקציה, מן הסתם לא הייתי בונה אותו ברכיב אחד, הייתי בונה אותו ברמת האפליקציה, לדוגמה אולי בקובץ נפרד שקשור ל-Layout ואז מיישם את ה-Team ברמת ה-Layout.
נניח הייתי בונה אותו כאן ושם אותו על הלאוט עצמו או בקובץ נפרד ושם אותו. אבל כרגע אין לי צורך כי אני רוצה שרק הרכיב הזה יכיל את כל מה שהגדרנו במטריאל UI אז אני בונה את תים פה.
אז אני בונה קונסט תים ויש לנו פונקציה שנקראת קריאט מ-UI זה קיצור של מטריאל UI תים. הפונקציה הזאת מקבלת אובייקט. האובייקט הזה מקבל הגדרות ספציפיות של ה-team של Material UI.
לדוגמה, אם אני רוצה להגדיר הגדרות שקשורות לטייפוגרפי, אז יש לי את האובייקט טייפוגרפי. אם אני רוצה הגדרות שקשורות לפלטת הצבעים, אז יש לי פה הגדרות של פלט, פלטת הצבעים של Material UI. בואו נתחיל עם טייפוגרפי.
כל דבר כזה זה אובייקט שמכיל את כל ההגדרות שקשורות לאותו נושא. לדוגמה בטייפוגרפי אנחנו רוצים לשנות את הפונט פמילי ולהגדיר פונט פמילי אחר יש לנו כאן סדרה של פונט או משפחות של גופנים שאנחנו יכולים להגדיר ואנחנו יכולים גם גופנים אחרים משלנו לדוגמה בואו ניקח את הלווטיקה איזשהו סוג של גופן שקיים ובוא נניח שעבור כל מה שקשור
לטייפוגרפיה אני רוצה פונט סייז חמש עשרה אורייט איך אני בדיוק משתמש עם כל הדברים האלה אז אנחנו רוצים לקחת את האובייקטים ולגלם אותו ב-UI שלנו אם הייתי רוצה לגלם אותו ברמת ה-UI אז הייתי הולך ל-Layout ומגדיר אותו פה יש תגית מיוחדת שכבר אנחנו נשתמש איתה והייתי שם אותה ברמת ה-Layout הכללי הייתי
עוטף את כל הדיב הזאת בתגית ואז ה-team היה מתייחס לכל האפליקציה. אנחנו רוצים לעשות את זה כרגע כאן, ברמת הרכיב, וזה יהיה תגית שנקראת TeamProvider.
שימו לב שיש לנו שתי תגיות כאלה, אחת מגיעה מ-Styled Component, אני לא רוצה אותה. אחת מגיעה מ-Material UI, אני כן רוצה אותה. בואו נראה רק שהוא שם לנו את זה מ-Material UI.
הנה זה פה. מעולה. אז בואו ניקח את התגית, יש לנו התחלה, יש לנו סוף. כתוב את הדיב בתגית הזאת ויש לה מאפיין שנקרא Team ואנחנו רוצים לתת לה מאפיין את האובייקט Team שבנינו.
בואו ניתן לזה לשקוע, תבין רגע שזה מה שאנחנו אמרנו לך, חזור לאתר, נפרש אותו וכנראה שזה תפס. בואו ננסה רגע לשנות ל-Fantasy אולי.
אנחנו רואים שהוא שעתים ניתן ושימו לב שהוא ניתן לכולם לא רק למישהו ספציפי כי זה מה שהגדרנו אולי אנחנו רוצים לגשת ולהגיד אוקיי כל מישהו h3 אנחנו רוצים לתת לך הגדרות דומות לדוגמה בוא ניתן font size 30 אם זה גרם לאיזשהו change כן הקטנו את זה זה נראה קצת יותר אולי אלגנטי אבל רק h3
שלושים יקבלו את העיצוב הזה מכל הטייפוגרפי. Good. אולי נחזיר אותו בחזרה להלווטיקה, שלא יהיה לנו כמו המערב הפרוע, או נראה קצת יותר אסתטי.
Good. מה בקשר לפלטת הצבעים? בואו נגדיר פאלט, ונגדיר בתוך הפאלט פריימרי, איך אנחנו רוצים שהצבעים של הפריימרי יהיו ואיך אנחנו רוצים את הצבעים של הסקנדרי.
כאן יש לנו גם כן כל מיני הגדרות ברמת הפריימרי. אנחנו רוצים להגדיר מיין, אז זה בעצם איך הוא נראה בכללי.