ตอนนี้ Google Fonts รองรับแบบอักษรที่หลากหลายในการอัปเดต API เวอร์ชัน 2 อย่างเต็มรูปแบบแล้ว เราจะ อธิบายวิธีเรียกชุดแบบอักษรทั้งแบบเดี่ยวและหลายชุด และวิธีระบุ ช่วงของแกน หากต้องการเจาะลึกแบบอักษรต่างๆ คุณสามารถเรียนรู้เพิ่มเติมได้จาก โบรชัวร์ที่มีภาพประกอบแบบอินเทอร์แอกทีฟ จาก David Berlow จาก TypeNetwork
มีอะไรใหม่
ทุกอย่างจะเริ่มต้นด้วย URL ฐานใหม่ ดังนี้
https://fonts.googleapis.com/css2
ไวยากรณ์สำหรับการระบุรูปแบบภายในแต่ละตระกูลได้มีการเปลี่ยนแปลงเพื่ออธิบาย แบบอักษร "ช่องว่างในการออกแบบ"
คู่มือเริ่มใช้งานฉบับย่อ
คัดลอกและวาง HTML นี้ลงในไฟล์
<html>
<head>
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Crimson+Pro">
<style>
body {
font-family: 'Crimson Pro', serif;
font-size: 48px;
}
</style>
</head>
<body>
<div>Making the Web Beautiful!</div>
</body>
</html>เมื่อใช้เบราว์เซอร์เพื่อเปิดไฟล์ หน้าควรแสดงข้อความ "ทำให้ Web Beautiful” ในแบบอักษร Crimson Pro
หลายครอบครัว
หากต้องการขอหลายครอบครัว ให้ระบุพารามิเตอร์ family= สำหรับแต่ละครอบครัว
เช่น หากต้องการขอแบบอักษร Crimson Pro และ Literata:
https://fonts.googleapis.com/css2?family=Crimson+Pro&family=Literata
คัดลอกและวาง HTML นี้ลงในไฟล์
<html>
<head>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Crimson+Pro&family=Literata">
<style>
body {
font-size: 48px;
}
div:nth-child(1) {
font-family: 'Crimson Pro', serif;
}
div:nth-child(2) {
font-family: 'Literata’, serif;
}
</style>
</head>
<body>
<div>Making the Web Beautiful!</div>
<div>Making the Web Beautiful!</div>
</body>
</html>เมื่อใช้เบราว์เซอร์เพื่อเปิดไฟล์ หน้าควรแสดงผลข้อความ "การทำให้เว็บสวยงาม" ปรากฏก่อนใน Crimson Pro จากนั้นใน Literata
ช่วงของแกน
แบบอักษรที่เปลี่ยนแปลงได้เสนอรูปแบบที่หลากหลายอย่างต่อเนื่อง โดยมักจะไม่ต้องมีรูปแบบเพิ่มเติม เวลาในการตอบสนอง ซึ่งเกี่ยวข้องกับการออกแบบที่ปรับเปลี่ยนตามอุปกรณ์ การพิมพ์ตัวอักษรแบบไดนามิกนี้ใช้รูปแบบต่างๆ ที่ต่อเนื่องกัน โดยนำเสนอ มีน้ำหนักระหว่าง 100 ถึง 900 ใน 1 หน้า และปรับเปลี่ยนตามน้ำหนักที่แตกต่างกัน ซึ่งขึ้นอยู่กับเงื่อนไขบางอย่าง
หากต้องการขอช่วงของแกนแบบอักษรตัวแปร ให้ผนวกค่า 2 ค่ากับ ..
| แบบอักษร | ส่งคำขอ |
|---|---|
คริมสัน Pro [wght 200-900] |
https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@200..900 |
ตัวเอียงคริมสัน Pro [wght 200-900] |
https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@1,200..900 |
ตัวเอียงหนาและ Crimson Pro [wght 200-900] |
https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,200..900;1,700 |
แต่ละรูปแบบ เช่น น้ำหนัก
หากไม่มีข้อกำหนดเกี่ยวกับรูปแบบ API จะแสดงรูปแบบเริ่มต้นของ ครอบครัวที่ขอ หากต้องการขอสไตล์เดี่ยวๆ เช่น น้ำหนักที่เจาะจง เติมเครื่องหมายโคลอน (:) ต่อท้ายชื่อชุดแบบอักษร ตามด้วยรายการแกน คีย์เวิร์ดของพร็อพเพอร์ตี้ตามลำดับตัวอักษร เครื่องหมาย @ และรายการอย่างน้อย 1 รายการ สำหรับคุณสมบัติของแกนเหล่านั้น
ตัวอย่างเหล่านี้แสดงให้เห็นการทำงานจริง
| แบบอักษร | ส่งคำขอ |
|---|---|
| Crimson Pro (ค่าเริ่มต้น) | https://fonts.googleapis.com/css2?family=Crimson+Pro |
| คริมสัน Pro หนา | https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@700 |
| คริมสัน Pro ปกติและ หนา | https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@400;700 |
| คริมสัน Pro ตัวหนาและ ตัวเอียงหนา | https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,700;1,700 |
Google Fonts แสดงรูปแบบทั้งหมดที่ใช้ได้สำหรับชุดแบบอักษรแต่ละชุด
รูปแบบเริ่มต้น
เมื่อคำขอไม่ระบุตำแหน่งหรือช่วงสำหรับแกน จะใช้ค่าเริ่มต้น ตำแหน่งที่ถูกต้อง ตำแหน่งเริ่มต้นของแกนตัวเอียงคือ 0 (ปกติ) และ ค่าเริ่มต้นสำหรับแกนน้ำหนักคือ 400 (ปกติ)
สำหรับครอบครัวที่มีแกนที่ไม่มีตำแหน่งเริ่มต้น คำขอที่มี การไม่ระบุตำแหน่งสำหรับแกนเหล่านั้นจะล้มเหลว เช่น เมื่อส่งคำขอ กลุ่มที่มีแกนน้ำหนักตั้งแต่ 500 ถึง 900 ตำแหน่งน้ำหนักต้องเป็น ที่ระบุ
น้ำหนักไม่เป็นมาตรฐาน
เมื่อใช้แบบอักษรแบบคงที่ รูปแบบน้ำหนักมักจะระบุเป็นพหุคูณของ 100 (เช่น 300, 400, 700) แบบอักษรที่แปรผันได้จะมีทั้งน้ำหนักมาตรฐานและ ช่วงกลาง วิธีแสดงผลน้ำหนักระดับกลาง
https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@450
การเพิ่มประสิทธิภาพสำหรับเวลาในการตอบสนองและขนาดไฟล์
ระบุรูปแบบที่คุณใช้อยู่ให้ถูกต้อง API แสดงรูปแบบที่ขอ เป็นชุดแบบอักษรที่กะทัดรัดที่สุด การขอสไตล์ที่ไม่ได้ใช้อาจทำให้ผู้ใช้ของคุณ ดาวน์โหลดข้อมูลแบบอักษรมากเกินกว่าที่ต้องการ ซึ่งทําให้ต้องใช้เวลาในการตอบสนองมากขึ้น หากคุณใช้เพียง 3 น้ำหนักที่เจาะจง ให้ระบุน้ำหนักในรูปแบบเดี่ยวในคำขอ หากคุณ ใช้ช่วงน้ำหนักที่ต่อเนื่อง โปรดระบุช่วงน้ำหนักนั้นในคำขอ
ใช้การแสดงแบบอักษร
font-display
ช่วยให้คุณสามารถควบคุมสิ่งที่เกิดขึ้นขณะที่แบบอักษรยังโหลดอยู่ หรือ
มิฉะนั้นจะใช้ไม่ได้ การระบุค่าอื่นที่ไม่ใช่ auto เริ่มต้นคือ
เหมาะสมที่สุด
ส่งต่อค่าที่ต้องการในพารามิเตอร์ display:
https://fonts.googleapis.com/css2?family=Crimson+Pro&display=swap
การเพิ่มประสิทธิภาพคำขอแบบอักษรของคุณ
บ่อยครั้ง เมื่อคุณต้องการใช้แบบอักษรของเว็บบนไซต์หรือแอปพลิเคชัน คุณ รู้ล่วงหน้าว่าจะต้องใช้ตัวอักษรใด กรณีนี้มักเกิดขึ้นเมื่อคุณใช้ แบบอักษรเว็บในโลโก้หรือส่วนหัว
ในกรณีเหล่านี้ คุณควรพิจารณาระบุค่า text= ในแบบอักษร
URL คำขอ ซึ่งทำให้ Google Fonts สามารถแสดงไฟล์แบบอักษรที่ปรับให้เหมาะสมสำหรับ
คำขอของคุณ ในบางกรณี วิธีนี้สามารถลดขนาดไฟล์แบบอักษรได้สูงสุด
90%
หากต้องการใช้ฟีเจอร์นี้ เพียงเพิ่ม text= ลงในคำขอ API ตัวอย่างเช่น หาก
คุณใช้ Inconsolata เป็นชื่อบล็อกเท่านั้น คุณสามารถใส่ชื่อ
เป็นค่าของ text= คำขอจะมีลักษณะดังนี้
https://fonts.googleapis.com/css2?family=Comfortaa&text=Hello
คุณควรเข้ารหัส URL ให้กับค่าเช่นเดียวกับสตริงการค้นหาทั้งหมด ดังนี้
https://fonts.googleapis.com/css2?family=Comfortaa&text=Hello%20World
ฟีเจอร์นี้ยังใช้งานได้กับแบบอักษรสากล ซึ่งช่วยให้คุณระบุ UTF-8 ได้ อักขระ ตัวอย่างเช่น ¡Hola! จะแสดงเป็น
https://fonts.googleapis.com/css2?family=Comfortaa&text=%c2%a1Hola!
โปรดทราบว่า 'text=' สามารถระบุได้เพียงครั้งเดียวเท่านั้น เป็นไปตามข้อกำหนด ไปยังครอบครัวทั้งหมดในคำขอนี้ โปรดใช้คำขอ API แยกต่างหากหากจำเป็น การเพิ่มประสิทธิภาพข้อความที่แตกต่างกันในกลุ่มต่างๆ
การสร้าง URL ของ API
ความเข้มงวด
โดยทั่วไปแล้ว CSS API ที่อัปเดตจะมีความเข้มงวดเกี่ยวกับคำขอมากกว่า ที่ยอมรับมากกว่า CSS API เดิม
หลักเกณฑ์ทั่วไป
- แสดงรายการแกนตามลำดับตัวอักษร (
en-USภาษา) - กลุ่มค่าแกน (เช่น Tuples) ต้องจัดเรียงเป็นตัวเลข
- Tuple ต้องไม่เหลื่อมซ้อนกันหรือสัมผัส (เช่น
wght400..500 และ 500..600)
ข้อมูลจำเพาะของ URL ของ API
/css2?family=<spec>[&family=<spec>...][&text=<text>][&display=<display>]
spec: <family_name>[:<axis_tag_list>@<axis_tuple_list>]
family_name: ชื่อชุดแบบอักษร
axis_tag_list: <axis>[,<axis>...] // Sorted alphabetically (en-US locale)
axis: แท็กแกน เช่น ital wdth wght
axis_tuple_list: <axis_tuple>[;<axis_tuple>...]
axis_tuple: <value>[,<value>...] // Same length as axis_tag_list
value: <range> | <float>
range: <float>..<float>
float: ค่าภายในช่วงของแกนที่เกี่ยวข้อง
text: ข้อความที่จะแสดงในแบบอักษรที่ขอ
display: auto | block | swap | fallback | optional
การรองรับเบราว์เซอร์เวอร์ชันเก่า
เบราว์เซอร์ที่ไม่รองรับแบบอักษรที่ไม่รองรับอาจไม่แสดงตามรูปแบบต่อไปนี้ อย่างที่ควรจะเป็น ตรวจสอบการรองรับแบบอักษรของเบราว์เซอร์ใน caniuse
ในการปฏิบัติตามการเพิ่มประสิทธิภาพแบบก้าวหน้า
คุณจึงหลีกเลี่ยงพฤติกรรมที่ไม่คาดคิดในเบราว์เซอร์รุ่นเก่าเหล่านั้นได้ ใช้ @supports
คำค้นหาใน CSS เพื่อกำหนดฟีเจอร์แบบอักษรที่เปลี่ยนแปลงได้
ในตัวอย่างนี้ เราต้องการใช้น้ำหนัก 450 ของข้อความ Markazi แต่จะต้อง กลับไปใช้ปกติ (น้ำหนัก 400) หรือปานกลาง (น้ำหนัก 500) เมื่อมีการเปลี่ยนแปลง ระบบไม่รองรับฟีเจอร์แบบอักษรต่อไปนี้
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Markazi+Text:wght@450" />
<style>
* {
font-family: 'Markazi Text';
font-weight: 400;
}
@supports (font-variation-settings: "wght" 450) {
* {
font-family: 'Markazi Text';
font-weight: 450;
}
}
</style>
คำขอ CSS Markazi+Text:wght@450 ส่งน้ำหนัก 450 ไปยังไคลเอ็นต์ที่รองรับ
แบบอักษรและน้ำหนักตัวแปร 400 และ 500 เป็นค่าที่ไม่กำหนด โดยทั่วไปแล้ว
สำรองในช่วงของคำขอจะมีอยู่ในเบราว์เซอร์เดิม
| Axis | สำรอง |
|---|---|
ital |
0, 1 |
wght |
100, 200, 300, 400, 500, 600, 700, 800, 900 |
ตัวอย่างเหล่านี้แสดงให้เห็นรูปแบบที่สามารถใช้งานได้บนเบราว์เซอร์รุ่นเก่า คำขอที่ต่างกัน
| ส่งคำขอ | รูปแบบที่ใช้ได้ในเบราว์เซอร์เดิม |
|---|---|
ital@0 |
ital@0 |
wght@500 |
wght@500 |
wght@432 |
wght@400;500 |
wght@440..560 |
wght@400;500;600 |
แบบอักษรที่มีให้เลือก
ดูตารางแบบอักษรของตัวแปรที่มีอยู่ใน v2 API ได้ที่นี่
อ่านเพิ่มเติม
- ดูรายการแบบอักษรทั้งหมดที่ได้จาก Google Fonts API ใน Google Fonts
- เรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของ Google Fonts API ใน หน้าการพิจารณาทางเทคนิค