63 lines
2.3 KiB
JavaScript
63 lines
2.3 KiB
JavaScript
/**
|
|
* 画个标 · 留学主题字体库
|
|
* 包含中文/英文排版推荐 + 可选的 Google Fonts 网络加载
|
|
*/
|
|
const HGB_Fonts = {
|
|
groups: [
|
|
{
|
|
name: '中文 · 正式',
|
|
items: [
|
|
{ family: 'SimSun', cn: '宋体', web: false, desc: '经典衬线,典雅学术' },
|
|
{ family: 'SimHei', cn: '黑体', web: false, desc: '现代无衬线,稳重清晰' },
|
|
{ family: 'KaiTi', cn: '楷体', web: false, desc: '手写感,亲和人文' },
|
|
{ family: 'Microsoft YaHei', cn: '微软雅黑', web: false, desc: '屏幕友好,现代通用' }
|
|
]
|
|
},
|
|
{
|
|
name: '英文 · 衬线',
|
|
items: [
|
|
{ family: 'Georgia', cn: 'Georgia', web: false, desc: '经典衬线,传统名校' },
|
|
{ family: 'Times New Roman', cn: 'Times', web: false, desc: '报刊气质,学术规范' },
|
|
{ family: 'Playfair Display', cn: 'Playfair', web: true, desc: '高端时尚衬线(网络加载)' }
|
|
]
|
|
},
|
|
{
|
|
name: '英文 · 无衬线',
|
|
items: [
|
|
{ family: 'Arial', cn: 'Arial', web: false, desc: '清晰通用,商务首选' },
|
|
{ family: 'Verdana', cn: 'Verdana', web: false, desc: '宽字距,易读性强' },
|
|
{ family: 'Montserrat', cn: 'Montserrat', web: true, desc: '现代几何感(网络加载)' },
|
|
{ family: 'Poppins', cn: 'Poppins', web: true, desc: '圆润时尚(网络加载)' }
|
|
]
|
|
},
|
|
{
|
|
name: '英文 · 装饰',
|
|
items: [
|
|
{ family: 'Impact', cn: 'Impact', web: false, desc: '粗壮有力,标题冲击' },
|
|
{ family: 'Courier New', cn: 'Courier', web: false, desc: '等宽打字机,复古文艺' }
|
|
]
|
|
}
|
|
]
|
|
};
|
|
|
|
/** 动态加载 Google Fonts(网络可用时) */
|
|
HGB_Fonts.loadWebFont = function (family) {
|
|
const id = 'hgb-font-' + family.replace(/[^a-zA-Z0-9]/g, '');
|
|
if (document.getElementById(id)) return;
|
|
const link = document.createElement('link');
|
|
link.id = id;
|
|
link.rel = 'stylesheet';
|
|
link.href = 'https://fonts.googleapis.com/css2?family=' +
|
|
encodeURIComponent(family.replace(/ /g, '+')) + ':wght@400;700;900&display=swap';
|
|
document.head.appendChild(link);
|
|
};
|
|
|
|
/** 按 family 查找字体项 */
|
|
HGB_Fonts.find = function (family) {
|
|
for (const g of this.groups) {
|
|
const f = g.items.find(i => i.family === family);
|
|
if (f) return f;
|
|
}
|
|
return null;
|
|
};
|