diff --git a/.gitignore b/.gitignore index 1681c346..97638a26 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ apps/yerd-gui/src-tauri/binaries/ @docs .agents .openai +.mcp.json diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 807ab903..34076760 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -27,7 +27,30 @@ export default withMermaid({ head: [ ['link', { rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' }], - ['meta', { name: 'theme-color', content: '#6366f1' }], + ['meta', { name: 'theme-color', content: '#3a63ee' }], + // The two faces every page paints above the fold: the display face used by + // the navbar wordmark and marketing headlines, and the latin subset of the + // UI/body face. Both are self-hosted (see theme/styles/fonts.css). + [ + 'link', + { + rel: 'preload', + as: 'font', + type: 'font/ttf', + href: '/fonts/OutageCut.ttf', + crossorigin: '', + }, + ], + [ + 'link', + { + rel: 'preload', + as: 'font', + type: 'font/woff2', + href: '/fonts/space-grotesk-latin.woff2', + crossorigin: '', + }, + ], ['meta', { name: 'author', content: 'Forjed' }], [ 'meta', diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue index bbe3de5c..f342d7fc 100644 --- a/docs/.vitepress/theme/Layout.vue +++ b/docs/.vitepress/theme/Layout.vue @@ -3,43 +3,13 @@ import DefaultTheme from 'vitepress/theme' import Lightbox from './components/Lightbox.vue' // Wrap the default theme layout so the single global overlay is -// mounted once for every page (via the `layout-bottom` slot). +// mounted once for every page (via the `layout-bottom` slot). The home page +// supplies its own layout component, so no hero slots are overridden here. const { Layout } = DefaultTheme