diff --git a/cspell.config.yaml b/cspell.config.yaml index ed2028cd4..9a279e339 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -157,6 +157,7 @@ words: - pixi - pixiv - popmotion + - PREFLIGHTS - prereleased - pretrained - prismarine diff --git a/packages/unocss-preset-fonts/package.json b/packages/unocss-preset-fonts/package.json new file mode 100644 index 000000000..ec3b8ed04 --- /dev/null +++ b/packages/unocss-preset-fonts/package.json @@ -0,0 +1,37 @@ +{ + "name": "@proj-airi/unocss-preset-fonts", + "type": "module", + "version": "0.6.1", + "description": "Fonts that are not included by Google Fonts, FontSource but open-source used by Project AIRI", + "author": { + "name": "Moeru AI Project AIRI Team", + "email": "airi@moeru.ai", + "url": "https://github.com/moeru-ai" + }, + "license": "MIT", + "homepage": "https://github.com/moeru-ai/airi", + "repository": { + "type": "git", + "url": "https://github.com/moeru-ai/airi.git", + "directory": "packages/unocss-preset-fonts" + }, + "exports": { + ".": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + } + }, + "scripts": { + "dev": "pnpm run build", + "build": "tsdown" + }, + "peerDependencies": { + "@unocss/core": ">=66", + "@unocss/preset-web-fonts": ">=66" + }, + "dependencies": { + "@proj-airi/font-cjkfonts-allseto": "workspace:^", + "@proj-airi/font-departure-mono": "workspace:^", + "@proj-airi/font-xiaolai": "workspace:^" + } +} diff --git a/packages/unocss-preset-fonts/src/index.ts b/packages/unocss-preset-fonts/src/index.ts new file mode 100644 index 000000000..3c7d01c77 --- /dev/null +++ b/packages/unocss-preset-fonts/src/index.ts @@ -0,0 +1,38 @@ +import { definePreset, LAYER_PREFLIGHTS } from '@unocss/core' +import { presetWebFonts } from '@unocss/preset-web-fonts' + +export default definePreset(() => { + return { + name: 'preset-chromatic', + presets: [ + presetWebFonts({ + fonts: { + quanlai: { + name: 'cjkfonts AllSeto', + provider: 'none', + }, + departure: { + name: 'Departure Mono', + provider: 'none', + }, + xiaolai: { + name: 'Xiaolai SC', + provider: 'none', + }, + }, + }), + ], + preflights: [ + { + layer: LAYER_PREFLIGHTS, + getCSS() { + return ` +@import '@proj-airi/font-cjkfonts-allseto/index.css'; +@import '@proj-airi/font-departure-mono/index.css'; +@import '@proj-airi/font-xiaolai/index.css'; + ` + }, + }, + ], + } +}) diff --git a/packages/unocss-preset-fonts/tsconfig.json b/packages/unocss-preset-fonts/tsconfig.json new file mode 100644 index 000000000..00dcfd807 --- /dev/null +++ b/packages/unocss-preset-fonts/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": [ + "ESNext" + ], + "module": "ESNext", + "moduleResolution": "bundler", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "verbatimModuleSyntax": true, + "skipLibCheck": true + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/packages/unocss-preset-fonts/tsdown.config.ts b/packages/unocss-preset-fonts/tsdown.config.ts new file mode 100644 index 000000000..eb4e3d2ef --- /dev/null +++ b/packages/unocss-preset-fonts/tsdown.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'tsdown' + +export default defineConfig({ + entry: [ + './src/index.ts', + ], + noExternal: [ + '@proj-airi/font-cjkfonts-allseto', + '@proj-airi/font-departure-mono', + '@proj-airi/font-xiaolai', + ], + dts: true, + sourcemap: true, + fixedExtension: true, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b708a8a28..31989a0d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1354,6 +1354,24 @@ importers: specifier: ^3.0.0-beta.5 version: 3.0.0-beta.5(typescript@5.8.3) + packages/unocss-preset-fonts: + dependencies: + '@proj-airi/font-cjkfonts-allseto': + specifier: workspace:^ + version: link:../font-cjkfonts-allseto + '@proj-airi/font-departure-mono': + specifier: workspace:^ + version: link:../font-departure-mono + '@proj-airi/font-xiaolai': + specifier: workspace:^ + version: link:../font-xiaolai + '@unocss/core': + specifier: '>=66' + version: 66.3.2 + '@unocss/preset-web-fonts': + specifier: '>=66' + version: 66.3.2 + services/discord-bot: dependencies: '@discordjs/voice':