From 7e0035c7ac39869d7d95cce6d6b20c89c692eb98 Mon Sep 17 00:00:00 2001 From: Neko Date: Mon, 14 Jul 2025 21:53:56 +0800 Subject: [PATCH] fix(workspace): missing fonts (#269) --- .gitignore | 6 +- apps/stage-tamagotchi/package.json | 10 ++ apps/stage-tamagotchi/src/main.ts | 15 ++- apps/stage-tamagotchi/uno.config.ts | 68 +++++++++- .../src/components/Layouts/HeaderLink.vue | 2 +- apps/stage-web/uno.config.ts | 60 ++++++++- packages/stage-ui/package.json | 10 ++ packages/stage-ui/stories/setup.ts | 11 ++ packages/stage-ui/uno.config.ts | 62 +++++++++- packages/ui/uno.config.ts | 8 -- pnpm-lock.yaml | 117 +++++++++++++++++- uno.config.ts | 2 - 12 files changed, 351 insertions(+), 20 deletions(-) delete mode 100644 packages/ui/uno.config.ts diff --git a/.gitignore b/.gitignore index 9e604c19b..2b4b71010 100644 --- a/.gitignore +++ b/.gitignore @@ -30,9 +30,9 @@ coverage/ **/public/assets/js/* **/public/assets/live2d/models/* **/public/assets/vrm/models/* -packages/stage-ui/public/assets/fonts/ -apps/stage-tamagotchi/public/assets/fonts/ -apps/stage-web/public/assets/fonts/ + +**/public/assets/fonts/ +**/public/assets/static-fonts/ *.pcm *.wav diff --git a/apps/stage-tamagotchi/package.json b/apps/stage-tamagotchi/package.json index d526cfd7b..d6ee06def 100644 --- a/apps/stage-tamagotchi/package.json +++ b/apps/stage-tamagotchi/package.json @@ -81,6 +81,16 @@ "zod": "^3.25.74" }, "devDependencies": { + "@fontsource-variable/dm-sans": "^5.2.6", + "@fontsource-variable/jura": "^5.2.6", + "@fontsource-variable/quicksand": "^5.2.8", + "@fontsource-variable/urbanist": "^5.2.6", + "@fontsource/dm-mono": "^5.2.6", + "@fontsource/dm-serif-display": "^5.2.6", + "@fontsource/gugi": "^5.2.6", + "@fontsource/kiwi-maru": "^5.2.6", + "@fontsource/m-plus-rounded-1c": "^5.2.8", + "@fontsource/sniglet": "^5.2.6", "@iconify-json/carbon": "^1.2.10", "@iconify-json/eos-icons": "^1.2.2", "@iconify-json/lucide": "^1.2.55", diff --git a/apps/stage-tamagotchi/src/main.ts b/apps/stage-tamagotchi/src/main.ts index 0fe6e8171..88c8fe621 100644 --- a/apps/stage-tamagotchi/src/main.ts +++ b/apps/stage-tamagotchi/src/main.ts @@ -14,11 +14,22 @@ import App from './App.vue' import { i18n } from './modules/i18n' -import '@proj-airi/font-cjkfonts-allseto/index.css' -import '@proj-airi/font-xiaolai/index.css' import '@unocss/reset/tailwind.css' import 'uno.css' import './styles/main.css' +// Fonts +import '@proj-airi/font-cjkfonts-allseto/index.css' +import '@proj-airi/font-xiaolai/index.css' +import '@fontsource-variable/dm-sans' +import '@fontsource-variable/jura' +import '@fontsource-variable/quicksand' +import '@fontsource-variable/urbanist' +import '@fontsource/dm-mono' +import '@fontsource/dm-serif-display' +import '@fontsource/gugi' +import '@fontsource/kiwi-maru' +import '@fontsource/m-plus-rounded-1c' +import '@fontsource/sniglet' const pinia = createPinia() diff --git a/apps/stage-tamagotchi/uno.config.ts b/apps/stage-tamagotchi/uno.config.ts index ac0e80c06..a58ed7a68 100644 --- a/apps/stage-tamagotchi/uno.config.ts +++ b/apps/stage-tamagotchi/uno.config.ts @@ -1,3 +1,69 @@ +import { createLocalFontProcessor } from '@unocss/preset-web-fonts/local' +import { defineConfig, mergeConfigs, presetWebFonts } from 'unocss' + import { sharedUnoConfig } from '../../uno.config' -export default sharedUnoConfig() +export default mergeConfigs([ + sharedUnoConfig(), + defineConfig({ + presets: [ + presetWebFonts({ + fonts: { + 'sans': { + name: 'DM Sans Variable', + provider: 'none', + }, + 'serif': { + name: 'DM Serif Display', + provider: 'none', + }, + 'mono': { + name: 'DM Mono', + provider: 'none', + }, + 'cute': { + name: 'Kiwi Maru', + provider: 'none', + }, + 'cuteen': { + name: 'Sniglet', + provider: 'none', + }, + 'jura': { + name: 'Jura Variable', + provider: 'none', + }, + 'gugi': { + name: 'Gugi', + provider: 'none', + }, + 'quicksand': { + name: 'Quicksand Variable', + provider: 'none', + }, + 'quanlai': { + name: 'cjkfonts AllSeto', + provider: 'none', + }, + 'xiaolai': { + name: 'Xiaolai SC', + provider: 'none', + }, + 'urbanist': { + name: 'Urbanist Variable', + provider: 'none', + }, + 'm-plus-rounded': { + name: 'M PLUS Rounded 1c', + provider: 'none', + }, + }, + timeouts: { + warning: 5000, + failure: 10000, + }, + processors: createLocalFontProcessor(), + }), + ], + }), +]) diff --git a/apps/stage-web/src/components/Layouts/HeaderLink.vue b/apps/stage-web/src/components/Layouts/HeaderLink.vue index d684c21e6..c74ffb82d 100644 --- a/apps/stage-web/src/components/Layouts/HeaderLink.vue +++ b/apps/stage-web/src/components/Layouts/HeaderLink.vue @@ -19,7 +19,7 @@ const dark = useDark() -
+
AIRI
diff --git a/apps/stage-web/uno.config.ts b/apps/stage-web/uno.config.ts index ea67ae1a8..5a5518e8f 100644 --- a/apps/stage-web/uno.config.ts +++ b/apps/stage-web/uno.config.ts @@ -1,10 +1,68 @@ -import { mergeConfigs } from 'unocss' +import { mergeConfigs, presetWebFonts } from 'unocss' import { sharedUnoConfig } from '../../uno.config' export default mergeConfigs([ sharedUnoConfig(), { + presets: [ + presetWebFonts({ + fonts: { + 'sans': { + name: 'DM Sans Variable', + provider: 'fontsource', + }, + 'serif': { + name: 'DM Serif Display', + provider: 'fontsource', + }, + 'mono': { + name: 'DM Mono', + provider: 'fontsource', + }, + 'cute': { + name: 'Kiwi Maru', + provider: 'fontsource', + }, + 'cuteen': { + name: 'Sniglet', + provider: 'fontsource', + }, + 'jura': { + name: 'Jura Variable', + provider: 'fontsource', + }, + 'gugi': { + name: 'Gugi', + provider: 'fontsource', + }, + 'quicksand': { + name: 'Quicksand Variable', + provider: 'fontsource', + }, + 'quanlai': { + name: 'cjkfonts AllSeto', + provider: 'none', + }, + 'xiaolai': { + name: 'Xiaolai SC', + provider: 'none', + }, + 'urbanist': { + name: 'Urbanist Variable', + provider: 'fontsource', + }, + 'm-plus-rounded': { + name: 'M PLUS Rounded 1c', + provider: 'fontsource', + }, + }, + timeouts: { + warning: 5000, + failure: 10000, + }, + }), + ], rules: [ ['transition-colors-none', { 'transition-property': 'color, background-color, border-color, text-color', diff --git a/packages/stage-ui/package.json b/packages/stage-ui/package.json index b42a25410..54e7e3c28 100644 --- a/packages/stage-ui/package.json +++ b/packages/stage-ui/package.json @@ -109,6 +109,16 @@ "zod": "^3.25.74" }, "devDependencies": { + "@fontsource-variable/dm-sans": "^5.2.6", + "@fontsource-variable/jura": "^5.2.6", + "@fontsource-variable/quicksand": "^5.2.8", + "@fontsource-variable/urbanist": "^5.2.6", + "@fontsource/dm-mono": "^5.2.6", + "@fontsource/dm-serif-display": "^5.2.6", + "@fontsource/gugi": "^5.2.6", + "@fontsource/kiwi-maru": "^5.2.6", + "@fontsource/m-plus-rounded-1c": "^5.2.8", + "@fontsource/sniglet": "^5.2.6", "@histoire/plugin-vue": "1.0.0-alpha.2", "@iconify-json/carbon": "^1.2.10", "@iconify-json/eos-icons": "^1.2.2", diff --git a/packages/stage-ui/stories/setup.ts b/packages/stage-ui/stories/setup.ts index d917040bc..4e6599bad 100644 --- a/packages/stage-ui/stories/setup.ts +++ b/packages/stage-ui/stories/setup.ts @@ -12,8 +12,19 @@ import { i18n } from './modules/i18n' import 'uno.css' import '@unocss/reset/tailwind.css' import './styles/main.css' +// Fonts import '@proj-airi/font-cjkfonts-allseto/index.css' import '@proj-airi/font-xiaolai/index.css' +import '@fontsource-variable/dm-sans' +import '@fontsource-variable/jura' +import '@fontsource-variable/quicksand' +import '@fontsource-variable/urbanist' +import '@fontsource/dm-mono' +import '@fontsource/dm-serif-display' +import '@fontsource/gugi' +import '@fontsource/kiwi-maru' +import '@fontsource/m-plus-rounded-1c' +import '@fontsource/sniglet' export const setupVue3 = defineSetupVue3(({ app }) => { app.use(MotionPlugin) diff --git a/packages/stage-ui/uno.config.ts b/packages/stage-ui/uno.config.ts index 9a9a1de1d..741fbc1b4 100644 --- a/packages/stage-ui/uno.config.ts +++ b/packages/stage-ui/uno.config.ts @@ -1,8 +1,68 @@ -import { mergeConfigs } from 'unocss' +import { defineConfig, mergeConfigs, presetWebFonts } from 'unocss' import { histoireUnoConfig, sharedUnoConfig } from '../../uno.config' export default mergeConfigs([ sharedUnoConfig(), histoireUnoConfig(), + defineConfig({ + presets: [ + presetWebFonts({ + fonts: { + 'sans': { + name: 'DM Sans Variable', + provider: 'none', + }, + 'serif': { + name: 'DM Serif Display', + provider: 'none', + }, + 'mono': { + name: 'DM Mono', + provider: 'none', + }, + 'cute': { + name: 'Kiwi Maru', + provider: 'none', + }, + 'cuteen': { + name: 'Sniglet', + provider: 'none', + }, + 'jura': { + name: 'Jura Variable', + provider: 'none', + }, + 'gugi': { + name: 'Gugi', + provider: 'none', + }, + 'quicksand': { + name: 'Quicksand Variable', + provider: 'none', + }, + 'quanlai': { + name: 'cjkfonts AllSeto', + provider: 'none', + }, + 'xiaolai': { + name: 'Xiaolai SC', + provider: 'none', + }, + 'urbanist': { + name: 'Urbanist Variable', + provider: 'none', + }, + 'm-plus-rounded': { + name: 'M PLUS Rounded 1c', + provider: 'none', + }, + }, + timeouts: { + warning: 5000, + failure: 10000, + }, + }), + ], + }), ]) diff --git a/packages/ui/uno.config.ts b/packages/ui/uno.config.ts deleted file mode 100644 index 9a9a1de1d..000000000 --- a/packages/ui/uno.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { mergeConfigs } from 'unocss' - -import { histoireUnoConfig, sharedUnoConfig } from '../../uno.config' - -export default mergeConfigs([ - sharedUnoConfig(), - histoireUnoConfig(), -]) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd87e2bd1..279977175 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -460,6 +460,36 @@ importers: specifier: ^3.25.74 version: 3.25.74 devDependencies: + '@fontsource-variable/dm-sans': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource-variable/jura': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource-variable/quicksand': + specifier: ^5.2.8 + version: 5.2.8 + '@fontsource-variable/urbanist': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/dm-mono': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/dm-serif-display': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/gugi': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/kiwi-maru': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/m-plus-rounded-1c': + specifier: ^5.2.8 + version: 5.2.8 + '@fontsource/sniglet': + specifier: ^5.2.6 + version: 5.2.6 '@iconify-json/carbon': specifier: ^1.2.10 version: 1.2.10 @@ -1214,6 +1244,36 @@ importers: specifier: ^3.25.74 version: 3.25.74 devDependencies: + '@fontsource-variable/dm-sans': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource-variable/jura': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource-variable/quicksand': + specifier: ^5.2.8 + version: 5.2.8 + '@fontsource-variable/urbanist': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/dm-mono': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/dm-serif-display': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/gugi': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/kiwi-maru': + specifier: ^5.2.6 + version: 5.2.6 + '@fontsource/m-plus-rounded-1c': + specifier: ^5.2.8 + version: 5.2.8 + '@fontsource/sniglet': + specifier: ^5.2.6 + version: 5.2.6 '@histoire/plugin-vue': specifier: 1.0.0-alpha.2 version: 1.0.0-alpha.2(histoire@1.0.0-alpha.2(@types/node@24.0.10)(bufferutil@4.0.9)(less@4.3.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) @@ -3192,12 +3252,42 @@ packages: '@floating-ui/vue@1.1.6': resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==} + '@fontsource-variable/dm-sans@5.2.6': + resolution: {integrity: sha512-edr+wGsc9d7/5aMB8ty1z0Zb0fqzJtBZ5+c2FhtrJwYhefcLEOL4r66EBqeyEFhVTMhCGIjhtxmigrRbPN0mUw==} + + '@fontsource-variable/jura@5.2.6': + resolution: {integrity: sha512-jCiXOt9JBBXY4p25QqDKbUlrLz5zlADjEpZWGte0oWI4waUzlzKMWhyr4qrk8ttSSzl4PD9lv+2ZZto7ZylRVQ==} + + '@fontsource-variable/quicksand@5.2.8': + resolution: {integrity: sha512-vCbNpMbsogGxCkKOuDaH+Gxvdu8mMc1jHRyW+LrG4kKC+Dq+ZJgXAuhVKY4zpEFSOLZUeNxwDSEfTfX09N6W3A==} + + '@fontsource-variable/urbanist@5.2.6': + resolution: {integrity: sha512-Nbsl4I8Tw547BA61PX1EtSpuaTgtejRT/CzNUTWHp2RE+8P5iGouvsvOOigukkTDIU/znKAplQysGB3NwhsYzA==} + + '@fontsource/dm-mono@5.2.6': + resolution: {integrity: sha512-d38urf08wZ/UcAM13kmuPkhr9xGEo0S9undlZ/99nBb7dK5+w1uqriP6VVJ8T7pYiNtRtZq7NxV/2KI/6Obsog==} + + '@fontsource/dm-serif-display@5.2.6': + resolution: {integrity: sha512-V/JaidjpfZu8TD9rGM3bIhDMCzS79C/mMWHPK9EtJT8S2qghXahDFZdlfria5T+OGpffGuHKL4st4UIFMdTM4A==} + '@fontsource/fusion-pixel-12px-proportional-sc@5.2.5': resolution: {integrity: sha512-TMFojLE0JUJUqgoL1pRxohnm11u59BYSkogyN9VbTQp2kh1HkkQ1FSkPboce3GGQXPskNTip9+oRp3ju83U0tw==} + '@fontsource/gugi@5.2.6': + resolution: {integrity: sha512-mDdbyLBuGuBH0WcKR6a4DxG5vc+EylJG5J9uT0J+Hn/pwhIxg/8QJPYNGsRzk51Sad7egRct4y3uhjrHX8Dvkg==} + + '@fontsource/kiwi-maru@5.2.6': + resolution: {integrity: sha512-DlyZ32ColaAlR+gnKrA5ERz2QIf3kMINPvUMN3L/qSQF7Rm7nnRIf4++GHcWlJ8J+SY3wuzLonCuWul/kFKNdg==} + + '@fontsource/m-plus-rounded-1c@5.2.8': + resolution: {integrity: sha512-XBW1hHdfvVlcohcUtvihWVprqtQJgDJWzsml0zU0l01qU7y6Ryu/mVnMfqMgzNGRqlrRgYGqytKOZFQZsG7H/w==} + '@fontsource/quicksand@5.2.8': resolution: {integrity: sha512-YRgnt2eQfNrk5OWqYJZmFoi6B6sioRIbjKJj3/l5CnezeE0TzD8XL35Q4fRNfHLpOzLi/ckNvTZySBHVVP1G6w==} + '@fontsource/sniglet@5.2.6': + resolution: {integrity: sha512-tYtYJEvHwBHIAspZJ7AsiFHAPcL31EVTMktf6cVNsGIHlhKW1Ea9Z0vb0/jL8TY65HVTvAK0s3zez8hEg1hHDQ==} + '@formkit/auto-animate@0.8.2': resolution: {integrity: sha512-SwPWfeRa5veb1hOIBMdzI+73te5puUBHmqqaF1Bu7FjvxlYSz/kJcZKSa9Cg60zL0uRNeJL2SbRxV6Jp6Q1nFQ==} @@ -6005,6 +6095,9 @@ packages: '@xsai/shared@0.3.0-beta.8': resolution: {integrity: sha512-S7BYvluU7aA2Ti7HEblV3ISDZbF89VP2dDC5WCrylYlQIYoFlZjlhJhJL5c/+KwX+og0pvh5Y0iSPKdcoMmLmw==} + '@xsai/shared@0.3.0-beta.9': + resolution: {integrity: sha512-vZoXmWuTaS0SbPc6U9IeGJzzHCNVzBiLfNHQnLPrQeXT5r8edjGx8fEUIPO8cvlPsBlvPYT8lfEaqvZrdWTUww==} + '@xsai/stream-text@0.3.0-beta.6': resolution: {integrity: sha512-w1aQEqa1yGXjSckZzZcpFgRf3JzUuqHDB4tc3UZaKa4DLGmslr3e4xXpOXWuqgIeDMdj2YWI9163GC/bfF0zBA==} @@ -14048,10 +14141,30 @@ snapshots: - '@vue/composition-api' - vue + '@fontsource-variable/dm-sans@5.2.6': {} + + '@fontsource-variable/jura@5.2.6': {} + + '@fontsource-variable/quicksand@5.2.8': {} + + '@fontsource-variable/urbanist@5.2.6': {} + + '@fontsource/dm-mono@5.2.6': {} + + '@fontsource/dm-serif-display@5.2.6': {} + '@fontsource/fusion-pixel-12px-proportional-sc@5.2.5': {} + '@fontsource/gugi@5.2.6': {} + + '@fontsource/kiwi-maru@5.2.6': {} + + '@fontsource/m-plus-rounded-1c@5.2.8': {} + '@fontsource/quicksand@5.2.8': {} + '@fontsource/sniglet@5.2.6': {} + '@formkit/auto-animate@0.8.2': {} '@google/genai@0.8.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': @@ -17314,7 +17427,7 @@ snapshots: '@xsai-ext/shared-providers@0.2.2': dependencies: - '@xsai/shared': 0.3.0-beta.8 + '@xsai/shared': 0.3.0-beta.9 '@xsai-ext/shared-providers@0.3.0-beta.8': dependencies: @@ -17385,6 +17498,8 @@ snapshots: '@xsai/shared@0.3.0-beta.8': {} + '@xsai/shared@0.3.0-beta.9': {} + '@xsai/stream-text@0.3.0-beta.6': dependencies: '@xsai/shared-chat': 0.3.0-beta.6 diff --git a/uno.config.ts b/uno.config.ts index 31f1ba1b1..ebac59eec 100644 --- a/uno.config.ts +++ b/uno.config.ts @@ -5,7 +5,6 @@ import { setDefaultAutoSelectFamilyAttemptTimeout } from 'node:net' import { createExternalPackageIconLoader } from '@iconify/utils/lib/loader/external-pkg' import { presetChromatic } from '@proj-airi/unocss-preset-chromatic' import { colorToString } from '@unocss/preset-mini/utils' -import { createLocalFontProcessor } from '@unocss/preset-web-fonts/local' import { defineConfig, mergeConfigs, presetAttributify, presetIcons, presetTypography, presetWebFonts, presetWind3, transformerDirectives, transformerVariantGroup } from 'unocss' import { presetScrollbar } from 'unocss-preset-scrollbar' import { parseColor } from 'unocss/preset-mini' @@ -129,7 +128,6 @@ export function sharedUnoConfig() { warning: 5000, failure: 10000, }, - processors: createLocalFontProcessor(), }), presetIcons({ scale: 1.2,