diff --git a/.gitignore b/.gitignore index 1834d9d..2fc9084 100644 --- a/.gitignore +++ b/.gitignore @@ -43,5 +43,16 @@ next-env.d.ts *.md !README.md +# hidden files (allow some, ignore others) +.** +!/.storybook +!/.yarn +!/yarnrc.yml +!/.claude +!/.vscode +!/.gitattributes +!/.gitignore +!/biome.json + *storybook.log storybook-static diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx new file mode 100644 index 0000000..d1ab09b --- /dev/null +++ b/.storybook/preview.tsx @@ -0,0 +1,30 @@ +import React from 'react' +import type { Preview } from '@storybook/nextjs-vite' +import { fraunces, publicSans } from '../src/shared/lib' +import '../app/globals.css' + +const preview: Preview = { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + a11y: { + // 'todo' - show a11y violations in the test UI only + // 'error' - fail CI on a11y violations + // 'off' - skip a11y checks entirely + test: 'todo', + }, + }, + decorators: [ + (Story) => ( +
+ +
+ ), + ], +} + +export default preview diff --git a/app/layout.tsx b/app/layout.tsx index 6b624cd..00879ef 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,24 +1,7 @@ import type { Metadata } from 'next' -import { Fraunces, Public_Sans } from 'next/font/google' +import { fraunces, publicSans } from '$shared/lib' import './globals.css' -/** - * Heading font — variable axes for brutalist variation settings - */ -const fraunces = Fraunces({ - subsets: ['latin'], - variable: '--font-fraunces', - axes: ['opsz', 'SOFT', 'WONK'], -}) - -/** - * Body font - */ -const publicSans = Public_Sans({ - subsets: ['latin'], - variable: '--font-public-sans', -}) - export const metadata: Metadata = { title: 'Portfolio', description: 'Portfolio', diff --git a/src/shared/lib/fonts.ts b/src/shared/lib/fonts.ts new file mode 100644 index 0000000..c73f10f --- /dev/null +++ b/src/shared/lib/fonts.ts @@ -0,0 +1,18 @@ +import { Fraunces, Public_Sans } from 'next/font/google' + +/** + * Heading font — variable axes for brutalist variation settings + */ +export const fraunces = Fraunces({ + subsets: ['latin'], + variable: '--font-fraunces', + axes: ['opsz', 'SOFT', 'WONK'], +}) + +/** + * Body font + */ +export const publicSans = Public_Sans({ + subsets: ['latin'], + variable: '--font-public-sans', +}) diff --git a/src/shared/lib/index.ts b/src/shared/lib/index.ts index 4d7a761..59e9088 100644 --- a/src/shared/lib/index.ts +++ b/src/shared/lib/index.ts @@ -1,2 +1,3 @@ export { cn } from './cn' export type { ClassValue } from 'clsx' +export * from './fonts' diff --git a/src/shared/styles/theme.css b/src/shared/styles/theme.css index c78dcda..b3ce4ba 100644 --- a/src/shared/styles/theme.css +++ b/src/shared/styles/theme.css @@ -80,6 +80,9 @@ } @theme inline { + --font-heading: var(--font-fraunces); + --font-body: var(--font-public-sans); + --color-ochre-clay: var(--ochre-clay); --color-slate-indigo: var(--slate-indigo); --color-burnt-oxide: var(--burnt-oxide);