B2B-88: add starter kit structure and elements
This commit is contained in:
49
lib/fonts.ts
Normal file
49
lib/fonts.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { Inter as SansFont } from 'next/font/google';
|
||||
|
||||
import { cn } from '@kit/ui/utils';
|
||||
|
||||
/**
|
||||
* @sans
|
||||
* @description Define here the sans font.
|
||||
* By default, it uses the Inter font from Google Fonts.
|
||||
*/
|
||||
const sans = SansFont({
|
||||
subsets: ['latin'],
|
||||
variable: '--font-sans',
|
||||
fallback: ['system-ui', 'Helvetica Neue', 'Helvetica', 'Arial'],
|
||||
preload: true,
|
||||
weight: ['300', '400', '500', '600', '700'],
|
||||
});
|
||||
|
||||
/**
|
||||
* @heading
|
||||
* @description Define here the heading font.
|
||||
*/
|
||||
const heading = sans;
|
||||
|
||||
// we export these fonts into the root layout
|
||||
export { sans, heading };
|
||||
|
||||
/**
|
||||
* @name getFontsClassName
|
||||
* @description Get the class name for the root layout.
|
||||
* @param theme
|
||||
*/
|
||||
export function getFontsClassName(theme?: string) {
|
||||
const dark = theme === 'dark';
|
||||
const light = !dark;
|
||||
|
||||
const font = [sans.variable, heading.variable].reduce<string[]>(
|
||||
(acc, curr) => {
|
||||
if (acc.includes(curr)) return acc;
|
||||
|
||||
return [...acc, curr];
|
||||
},
|
||||
[],
|
||||
);
|
||||
|
||||
return cn('bg-background min-h-screen antialiased', ...font, {
|
||||
dark,
|
||||
light,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user