Skip to content

Commit 4b7b407

Browse files
export fonts
1 parent 7709175 commit 4b7b407

3 files changed

Lines changed: 31 additions & 5 deletions

File tree

@codexteam/ui/README.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,18 @@ yarn add @codexteam/ui
2525
import '@codexteam/ui/styles';
2626
```
2727

28-
### 2. Import Themes (Tree-shakeable)
28+
### 2. Import Fonts (Optional)
29+
30+
Fonts are **optional** and are **not** loaded by default. If you want to use the bundled **Inter** and **JetBrains Mono** fonts, import them explicitly:
31+
32+
```typescript
33+
// main.ts
34+
import '@codexteam/ui/styles/fonts';
35+
```
36+
37+
If you don't import fonts, typography will fall back to system fonts.
38+
39+
### 3. Import Themes (Tree-shakeable)
2940

3041
Import only the themes you need - others will NOT be included in the bundle:
3142

@@ -36,13 +47,13 @@ import '@codexteam/ui/styles/themes/grass';
3647

3748
**Available themes:** `graphite`, `crimson`, `red`, `violet`, `grass`, `amber`, `pure`, `sky`
3849

39-
### 3. Import Components (Tree-shakeable)
50+
### 4. Import Components (Tree-shakeable)
4051

4152
```typescript
4253
import { Button, Avatar, Heading } from '@codexteam/ui/vue';
4354
```
4455

45-
### 4. Apply Theme in Template
56+
### 5. Apply Theme in Template
4657

4758
```vue
4859
<template>
@@ -62,6 +73,9 @@ import App from './App.vue';
6273
// Base styles (required)
6374
import '@codexteam/ui/styles';
6475

76+
// Fonts (optional)
77+
import '@codexteam/ui/styles/fonts';
78+
6579
// Themes (import only what you need)
6680
import '@codexteam/ui/styles/themes/pure';
6781
import '@codexteam/ui/styles/themes/grass';

@codexteam/ui/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
"./styles": {
2828
"import": "./dist/style.css"
2929
},
30+
"./styles/fonts": {
31+
"import": "./dist/styles/fonts.css"
32+
},
3033
"./styles/themes/graphite": {
3134
"import": "./dist/styles/themes/graphite.css"
3235
},

@codexteam/ui/vite.config.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ export default defineConfig({
2828
* CSS Code Splitting: Enables CSS to be split into separate chunks
2929
* With cssInjectedByJsPlugin enabled:
3030
* - Component CSS is injected into vue.js bundle (no separate CSS files for components)
31-
* - Theme CSS files are split separately in dist/styles/themes/ for tree-shaking
32-
* - Base styles are in dist/style.css
31+
* - Base styles are emitted as dist/style.css
32+
* - Fonts are emitted as dist/styles/fonts.css (optional import)
33+
* - Theme CSS files are emitted as dist/styles/themes/*.css
3334
* This allows users to import only the themes they need:
3435
* - import '@codexteam/ui/styles' (base styles)
36+
* - import '@codexteam/ui/styles/fonts' (optional fonts)
3537
* - import '@codexteam/ui/styles/themes/graphite' (specific theme)
3638
*/
3739
cssCodeSplit: true,
@@ -42,6 +44,13 @@ export default defineConfig({
4244
*/
4345
style: resolve(__dirname, 'src/styles/index.pcss'),
4446

47+
/**
48+
* Optional fonts (Inter + JetBrains Mono)
49+
* Exported as: @codexteam/ui/styles/fonts
50+
* Vite will automatically copy font files to dist/fonts/ when processing @import url()
51+
*/
52+
'styles/fonts': resolve(__dirname, 'src/styles/fonts.pcss'),
53+
4554
/**
4655
* Individual themes for tree-shaking
4756
*/

0 commit comments

Comments
 (0)