הוספת תמיכה בטיפוגרפיה נוזלית ל-WordPress Block Themes PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

טיפוגרפיה נוזלית היא א דרך מהודרת של "תיאור מאפייני גופן, כגון גודל או גובה קו, המתארכים בצורה זורמת בהתאם לגודל נקודת התצוגה". שֶׁלָה ידוע גם בשמות אחרים, כמו טיפוגרפיה רספונסיבית, סוג גמיש, סוג נוזלי, טיפוגרפיה בגודל נקודת מבט, טיפוגרפיה קולחת, ואפילו טקסט תצוגה רספונסיבי.

הנה דוגמה לטיפוגרפיה נוזלית שאתה יכול לשחק בשידור חי (באדיבות תיעוד MDN). CSS-Tricks סיקרה טיפוגרפיה קולחת גם בהרחבה. אבל הנקודה כאן היא לא להציג בפניכם טיפוגרפיה קולחת, אלא כיצד להשתמש בה. ליתר דיוק, אני רוצה להראות לכם כיצד ליישם טיפוגרפיה נוזלית בוורדפרס 6.1 שהציגה לאחרונה תכונה מסוג נוזל ישירות בעורך החסימה של וורדפרס.

פתח את style.css קובץ, להטביע כלל סגנון עם מפואר clamp()-ינג על font-size רכוש, וטוב ללכת, נכון? בטח, זה ייתן לך טקסט קולח, אבל כדי לקבל פקדים של עורך Block המאפשרים להחיל סוג נוזל בכל מקום באתר הוורדפרס שלך? זה דורש גישה אחרת בימים החסומים האלה.

תמיכה בטיפוגרפיה נוזלית בגוטנברג

כמה מפתחי ערכות נושא וורדפרס השתמשו ב- clamp() פונקציה להגדיר נוזל font-size, בנושאי וורדפרס שלהם, אפילו בנושאי "חסימה" חדשים יותר כגון עשרים עשרים ושתיים, עשרים עשרים ושלוש, ואחרים.

אבל התוסף גוטנברג - זה שמכיל פיתוח ניסיוני עבור תכונות בלוק וורדפרס ועורך אתרים - הציג תמיכה בטיפוגרפיה זורמת החל מגרסה 13.8. זה פתח את הדלת להטמעה ברמת נושא כך שניתן להחיל סוג נוזל על אלמנטים ובלוקים ספציפיים ישירות בעורך הבלוקים. CSS-Tricks אפילו קיבלה צעקה ב- משיכת בקשה שמיזג את התכונה.

העבודה הזו הפכה לחלק מ- WordPress Core ב וורדפרס 6.1. ריץ' תבור, אחד התומכים הקודמים בטיפוגרפיה קולחת בעורך הבלוק אומר:

[טיפוגרפיה נוזלית] היא גם חלק מהפיכת וורדפרס לחזקה יותר, אך לא מסובכת יותר (שכולנו יודעים שזה די האתגר). […] טיפוגרפיה נוזלית פשוט עובדת. למעשה, אני חושב שזה עובד מצוין.

זֶה הפוך את הדגשים לפוסטים בוורדפרס הגישה שננקטה כדי לתמוך בתכונה ברמת הבלוק כך שגודל גופן נוזלי יוחל על בלוקים באופן דינמי כברירת מחדל. יש כמה הטבות לזה כמובן:

  • הוא מספק דרך למחברי נושאים להפעיל טיפוגרפיה זורמת מבלי לדאוג ליישם אותה בקוד.
  • הוא מחיל טיפוגרפיה קולחת על ישויות טיפוגרפיות ספציפיות, כגון אלמנטים או בלוקים באופן שניתן לתחזוקה ולשימוש חוזר.
  • זה מאפשר גמישות במונחים של יחידות גודל גופן (למשל px, rem, em, ו %).

כעת, כשהתכונה החדשה הזו זמינה כברירת מחדל בעורך החסימות של וורדפרס, מחברי ערכות נושא יכולים ליישם טיפוגרפיה זורמת אחידה מבלי לכתוב קוד נוסף.

בלוקים התומכים בהגדרות טיפוגרפיה ומרווחים

גוטנברג 14.1 פורסם ב -16 בספטמבר 2022, והציג הגדרות טיפוגרפיות על חבורה של בלוקים. זה אומר שהגדרות הטקסט עבור אותם בלוקים נקבעו ב-CSS בעבר והיה צורך לשנות גם ב-CSS. אבל בלוקים אלה מספקים כעת פקדי גופנים ומרווחים בממשק Block Editor.

הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

עבודה זו מתוכננת כעת להתווסף לוורדפרס 6.1, כמפורט ב זה צור פוסט בבלוג של WordPress. ואיתו מספר מורחב של בלוקים עם תמיכה בטיפוגרפיה.

רשימה מאוירת של 60 בלוקים של וורדפרס זוכים לתמיכה בטיפוגרפיה ובגודל גופן בוורדפרס 6.1.
בלוקים של וורדפרס שיתמכו בהגדרות טיפוגרפיה במהדורת וורדפרס 6.1 הקרובה.

הכרזה על סוג נוזל בעיצוב בלוק וורדפרס

אז איך נכניס את הטיפוגרפיה הזולה החדשה הזו לשימוש בוורדפרס? התשובה נמצאת בפנים theme.json, קובץ חדש ספציפי לחסימת ערכות נושא שמכיל חבורה של תצורות ערכות נושא בזוגות מפתח:ערך.

בואו נסתכל על כלל עבור גופן גדול ב theme.json איפה contentSize: 768px ואנחנו עובדים עם א widesize: 1600px מַעֲרָך. כך נוכל לציין CSS font-size באמצעות clamp() פוּנקצִיָה:

"settings": {
  "appearanceTools": true,
  "layout": {
    "contentSize": "768px",
    "wideSize": "1600px"
  },
  "typography": {
    "fontSizes": [ 
      {
        "name": "Large",
        "size": "clamp(2.25rem, 6vw, 3rem)",
        "slug": "large"
      }
    ]
  }
}

החל מ-WordPress 6.1, בלבד rem, em ו px יחידות נתמכות.

זה נהדר ועובד, אבל עם התכונה החדשה של סוג הנוזל היינו משתמשים בגישה אחרת. ראשית, אנו בוחרים להשתמש בטיפוגרפיה קולחת settings.typography, שיש לו חדש fluid נכס:

"settings": {
  "typography": {
    "fluid": true
  }
}

לאחר מכן אנו מציינים את שלנו settings.fontSizes כמו קודם, אבל עם חדש fluidSize נכס שבו נוכל להגדיר את min ו max ערכי גודל עבור טווח סוגי הנוזלים שלנו.

"settings": {
  "appearanceTools": true,
  "layout": {
    "contentSize": "768px",
    "wideSize": "1600px"
  },
  "typography": {
    "fontSizes": [ 
      {
        "size": "2.25rem",
        "fluidSize": {
          "min": "2.25rem",
          "max": "3rem"
        },
        "slug": "large",
        "name": "Large"
      }
    ]
  }
}

זה באמת זה. פשוט הוספנו סוג נוזל לגודל גופן שנקרא "Large" עם טווח שמתחיל ב 2.25rem ומדרג עד 3rem. כעת, אנו יכולים להחיל את הגופן "גדול" על כל בלוק עם הגדרות גופן.

איך זה עובד מתחת למכסה המנוע? ריץ' תבור מציע הסבר נחמדכמו גם בקשת משיכה זו ב-GitHub. בקיצור, וורדפרס ממירה את theme.json מאפיינים לתוך כלל ה-CSS הבא:

.has-large-font-size {
  font-size: clamp(36px, calc(2.25rem + ((1vw - 7.68px) * 1.4423)), 48px);
}

...אשר מוחל על האלמנט, אמור בלוק פסקה:

...

בתחילה, התקשיתי להבין ולעטוף במוחי את המושג CSS clamp() לתפקד מבלי ללמוד גם על min(), max(), ו calc() פונקציות. כלי מחשבון זה עזר לי לא מעט, במיוחד לקביעה באילו ערכים להשתמש בפרויקטי הנושא שלי.

למטרות הדגמה, בואו נשתמש במחשבון כדי להגדיר את שלנו font-size טווח כך שהגודל הוא 36px בכל 768px רוחב יציאת התצוגה ו 48px בכל 1600px רוחב יציאת התצוגה.

הזנת ערכים למחשבון המקוון לטיפוגרפיה קולחת.
הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

המחשבון יוצר אוטומטית את ה-CSS הבא:

/* 36px @ 768px increasing to 48px @ 1600px */
font-size: clamp(36px, calc(2.25rem + ((1vw - 7.68px) * 1.4423)), 48px);

המחשבון מספק אפשרויות לבחירת יחידות קלט px, rem, ו em. אם נבחר rem יחידה, המחשבון יוצר את הדברים הבאים clamp() ערך:

/* 2.25rem @ 48rem increasing to 3rem @ 100rem */
font-size: clamp(2.25rem, calc(2.25rem + ((1vw - 0.48rem) * 1.4423)), 3rem);

אז ערכי המינימום והמקסימום האלה תואמים את ה- fluidSize.min ו fluidSize.max ערכים ב theme.json. ה min הערך מוחל בנקודות תצוגה שכן 768px רחב ומטה. אז ה font-size גדל ככל שרוחב יציאת התצוגה גדל. אם נקודת התצוגה רחבה יותר מ 1600px, ה max מוחל וה font-size מוגבל שם.

דוגמאות

יש הוראות בדיקה מפורטות ב-Pull Request הממוזג שהציג את התכונה. יש אפילו יותר הוראות בדיקה מ פוסט ההקדמה של ג'סטין טדלוק ב- Make WordPress.

דוגמה 1: הגדרת הגדרה חדשה של גופן נוזלי

בואו נתחיל עם סט ההוראות של ג'סטין. השתמשתי בגרסה שונה של ברירת המחדל נושא עשרים עשרים ושלוש שנמצא כרגע בפיתוח.

ראשית, בואו נוודא שאנו מפעילים את הפלאגין גוטנברג (13.8 ומעלה) או וורדפרס 6.1, ולאחר מכן בחרו בסוג נוזלי ב- settings.typography.fluid נכס באזור theme.json קובץ:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1600px"
    },
    "typography": {
      "fluid": true
    }
  }
}

עכשיו, בואו נשאיר את settings.typography.fontSizes דוגמאות שם:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1600px"
    },
    "typography": {
      "fluid": true
      "fontSizes": [
        {
          "name": "Normal",
          "size": "1.125rem",
          "fluid": {
            "min": "1rem",
            "max": "1.5rem"
          },
          "slug": "normal"
        }
      ]
    }
  }
}

אם הכל עובד כשורה, כעת נוכל להיכנס לעורך החסימות של וורדפרס ולהחיל את הגדרת הגופן "רגיל" על הבלוק שלנו:

ממשק WordPress Block Editor מציג בלוק פסקה ואת הגדרות הטיפוגרפיה הנוזלות עבורו.
הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

נֶחְמָד! ואם נשמר ונבדוק את הרכיב הזה בקצה הקדמי, זה הסימון:

בדיקת בלוק פסקת WordPress ב-DevTools.
הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

טוב מאוד. עכשיו בואו נוודא שה-CSS אכן קיים:

DevTools המציגים את המאפיין המותאם אישית בגודל גופן עבור הטיפוגרפיה הנוזלית של בלוק WordPress Paragraph.
הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

טוב טוב. בוא נחשוף את מאפיין ה-CSS המותאם אישית הזה כדי לראות אם הוא באמת מהדק דברים:

חשיפת ערך המאפיין המותאם אישית ב-DevTools, מראה פונקציית מהדק CSS.

נראה שהכל עובד בדיוק כמו שאנחנו רוצים! בואו נסתכל על דוגמה נוספת…

דוגמה 2: אי הכללת הגדרת גופן מסוג נוזלי

הפעם, בואו נעקוב אחר הוראות מ-Pull Request הממוזג עם קריצה לדוגמא זו של קרולינה נימרק, שמראה כיצד אנו יכולים לבטל סוג נוזל בהגדרת גופן ספציפית.

אני משמש נושא ריק כפי שהומלץ בהוראות ופתח את theme.json קובץ לבדיקה. ראשית, אנו בוחרים בסוג נוזל בדיוק כפי שעשינו קודם:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1000px"
    },
    "typography": {
      "fluid": true
    }
  }
}

הפעם, אנחנו עובדים עם קטן יותר wideSize ערך של 1000px במקום 1600px. זה אמור לאפשר לנו לראות את סוג הנוזל עובד בטווח מדויק.

אוקיי, על הגדרת כמה גדלי גופן מותאמים אישית תחת settings.typography.fontSizes:

{
  "version": 2,
  "settings": {
    "typography": {
      "fluid": true,
      "fontSizes": [
        {
          "size": ".875rem",
          "fluid": {
            "min": "0.875rem",
            "max": "1rem"
        },
          "slug": "small",
          "name": "Small"
        },
        {
          "size": "1rem",
          "fluid": {
            "min": "1rem",
            "max": "1.5rem"
          },
          "slug": "normal",
          "name": "Normal"
        },
        {
          "size": "1.5rem",
          "fluid": {
            "min": "1.5rem",
            "max": "2rem"
          },
          "slug": "large",
          "name": "Large"
        },
        {
          "size": "2.25rem",
          "fluid": false,
          "slug": "x-large",
          "name": "Extra large"
        }
      ]
    }
  }
}

שימו לב שהחלנו את תכונת סוג הנוזל רק בהגדרות הגופנים "רגיל", "בינוני" ו-"גדול". "Extra Large" הוא המוזר שבו fluid האובייקט מוגדר ל false.

ממשק WordPress Block Editor עם ארבעה בלוקים של Paragraph, כל אחד בהגדרת גודל גופן שונה.
הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

מה וורדפרס עושה מכאן - דרך ה מנוע בסגנון גוטנברג - הוא להחיל את המאפיינים שהגדרנו ב-CSS clamp() פונקציות עבור כל הגדרת גודל גופן שהצטרפה לסוג נוזל וערך גודל יחיד עבור ההגדרה Extra Large:

--wp--preset--font-size--small: clamp(0.875rem, 0.875rem + ((1vw - 0.48rem) * 0.24), 1rem);
--wp--preset--font-size--medium: clamp(1rem, 1rem + ((1vw - 0.48rem) * 0.962), 1.5rem);
--wp--preset--font-size--large: clamp(1.5rem, 1.5rem + ((1vw - 0.48rem) * 0.962), 2rem);
--wp--preset--font-size--x-large: 2.25rem;

בוא נבדוק את הסימון בקצה הקדמי:

בדיקת בלוקים של פסקת וורדפרס ב-DevTools.
הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

התחלה טובה! בואו נאשר כי .has-x-large-font-size מחלקה אינה נכללת מסוג נוזל:

הצגת המאפיין המותאם אישית של גודל גופן עבור הגדרת הגופן Extra Large ב-DevTools.
הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

אם נחשוף את --wp--preset--font-size--x-large משתנה, נראה שהוא מוגדר ל 2.25rem.

חשיפת ערך המאפיין המותאם אישית בגודל הגופן Extra Large, מראה 2.25rem.
הוספת תמיכה בטיפוגרפיה נוזלית לנושאים של בלוק וורדפרס

זה בדיוק מה שאנחנו רוצים!

ערכות נושא של חסימה התומכות בטיפוגרפיה קולחת

ערכות נושא רבות של וורדפרס כבר עושות שימוש ב clamp() פונקציה עבור סוג נוזל הן בלוק והן בנושאים קלאסיים. דוגמה טובה לשימוש בטיפוגרפיה נוזלית היא הגרסה שיצאה לאחרונה עשרים עשרים ושלוש ערכת נושא ברירת מחדל.

סקרתי את כל נושאי הבלוק מ ספריית נושא החסימה של WordPress, בוחן theme.json קובץ של כל ערכת נושא ולראות כמה ערכות נושא לחסימה תומכות כרגע בטיפוגרפיה זורמת - לא התכונה החדשה מכיוון שהיא עדיין קיימת בתוסף גוטנברג נכון לכתיבת שורות אלה - באמצעות ה-CSS clamp() פוּנקצִיָה. מתוך 146 הנושאים שסקרתי, רובם השתמשו ב-a clamp() פונקציה להגדרת מרווח. קצת יותר ממחצית מהם בשימוש clamp() כדי להגדיר גדלי גופנים. ה אלארה ערכת הנושא היא היחידה לשימוש clamp() להגדרת ה גדלי מיכל פריסה.

מובן, רק כמה ערכות נושא שפורסמו לאחרונה מכילות את התכונה החדשה של טיפוגרפיה נוזלית. אבל הנה אלה שמצאתי שמגדירים את זה theme.json:

ואם אתה קורא את הפוסט הקודם שלי כאן על CSS-Tricks, ה TT2 Gopher Blocks ערכת הנושא שבה השתמשתי להדגמה עודכנה גם היא כדי לתמוך בתכונת הטיפוגרפיה הנוזלת.

תגובות נבחרות לתכונות הטיפוגרפיה הנוזלית של וורדפרס

טיפוגרפיה זורמת בוורדפרס ברמת ההגדרות היא סופר מרגשת! חשבתי לחלוק כמה מחשבות מאנשים בקהילת מפתחי וורדפרס שהגיבו על זה.

מטיאס ונטורה, האדריכל הראשי של פרויקט גוטנברג:

תבור עשיר:

בתור אחד מהמאמצים הגדולים יותר להפוך פרסום של דפים עשירים להפליא בוורדפרס, טיפוגרפיה זורמת היא ניצחון חוויה די גדול הן עבור האנשים שבונים עם וורדפרס - והן עבור אלו שצורכים את התוכן.

מפתח אוטומטי רמון דוד הגיב ב-Pull Request:

הפוך את הרעיון הזה לגדלי גופנים המגיבים לגדלים ספציפיים של יציאת תצוגה, כמו אלה שהוגדרו על ידי שאילתות מדיה, אבל לא לעשות כלום בין הגדלים האלה. theme.json כבר מאפשר למחברים להכניס ערכי גודל גופן זורמים משלהם. זה לא ישתנה, אבל יחסי הציבור הזה מציעים את זה לאנשים שלא רוצים לדאוג לגבי פרטי היישום.

ניק קרופט, מחבר של GenesisWP:

בריאן גארנר, מעצב ומפתח ראשי ב-WPEngine:

כמה מפתחים לחשוב תכונות מסוימות צריכות להיות הצטרפות. ג'ייסון כריסט של Automattic אומר:

אני אוהב את כוחה של טיפוגרפיה זורמת, אבל אני גם לא מאמין שצריך להפעיל אותה כברירת מחדל. השימוש בו (והפרטים שלו) הם החלטות עיצוביות חשובות שצריך להיעשות בזהירות.

אתה יכול גם למצוא עוד המון תגובות ברשמי הוראות בדיקה עבור התכונה.

גלישה את

תכונת הטיפוגרפיה הנזילה בוורדפרס היא עדיין בפיתוח פעיל בזמן כתיבת שורות אלה. אז, כרגע, מחברי הנושא צריכים להמשיך להשתמש בו, אבל בזהירות ולצפות לכמה שינויים אפשריים לפני שהוא ישוחרר רשמית. ג'סטין מזהיר מחברי נושא המשתמשים בתכונה זו ומציעים לשים עין על שתי הבעיות הבאות של GitHub:

יש גם עדיין הרבה עבודה מתמשכת על טיפוגרפיה וכלי וורדפרס אחרים הקשורים לעיצוב. אם אתה מעוניין, צפה בזה טיפוגרפיה מעקב אחר כרטיס GitHub ו כלי עיצוב הקשורים לבעיות GitHub.

משאבים

השתמשתי במאמרים הבאים בעת מחקר על סוג נוזל וכיצד וורדפרס מיישמת אותו כתכונה.

הדרכות וחוות דעת

CSS-טריקים

בול זמן:

עוד מ טריקים של CSS