<p align="center">
  <!-- Ab - Logo - Light Mode --> 
  <a href="https://abraham-ukachi.vercel.app/#gh-light-mode-only" target="_blank">
    <img src="./.github/ab-logo-light.svg" alt="Ab Logo on Light" width="64" height="64" />
  </a>

  <!-- Ab - Logo - Dark Mode --> 
  <a href="https://abraham-ukachi.vercel.app/#gh-dark-mode-only" target="_blank">
    <img src="./.github/ab-logo-dark.svg" alt="Ab Logo on Dark" width="64" height="64" />
  </a>

  <!-- Next.js - Logo Name - Light Mode -->
  <a href="https://nextjs.org/#gh-light-mode-only" target="_blank">
    <img src="./.github/nextjs-logoname-light.svg" alt="Next.js LogoName on Light" width="192" height="64" />
  </a>

  <!-- Next.js - Logo Name - Dark Mode -->
  <a href="https://nextjs.org/#gh-dark-mode-only" target="_blank">
    <img src="./.github/nextjs-logoname-dark.svg" alt="Next.js LogoName on Dark" width="192" height="64" />
  </a>

</p>


<p align="center">
    <a href="https://ab-elements.vercel.app/docs/fonts" target="_blank"><b>Checkout abElements &rarr;</b></a>
</p>


# `ab-nextjs-fonts`

> IMPORTANT: This is a work in progress and subject to major changes until version 1.0.


✏️ This is a lightweight collection of React fonts created by [Abraham Ukachi](https://github.com/abraham-ukachi), and optimized for [Next.js](https://nextjs.org/docs) applications 😎. 



## Getting Started

### Installation

#### npm

```bash
npm i ab-nextjs-fonts
```

#### pnpm

```bash
pnpm install ab-nextjs-fonts
```

---


## Fonts

A list of all the supported **fonts** and their current status:

| No. | Name | Status |
|:----|:-----|:-------|
| 1 | *`Inter`* | [Done](./inter) |
| 2 | *`Mulish`* | [Done](./mulish) |
| 3 | *`Quicksand`* | [Done](./quicksand) |
| 4 | *`Roboto`* | [Done](./roboto) |
| 5 | *`ZillaSlab`* | [Done](./zilla-slab) |
| 6 | *`Roboto Mono`* ⌨️ | [Done](./roboto-mono) |


> NOTE: These fonts are also available offline ;) See [ab-nextjs-theme/typography](https://github.com/abraham-ukachi/ab-nextjs-theme/typography) for more details.


### Inter

Use `font-inter-*` tailwindcss utilities to apply the **Inter** font to your nextjs/react component:

```tsx
<p className="font-inter-light">...</p>
# or
<p className="font-inter-medium">...</p>
# or
<p className="font-inter-bold">...</p>
```



### Mulish

Use `font-mulish-*` tailwindcss utilities to apply the **Mulish** font to your nextjs/react component:

```tsx
<p className="font-mulish-light">...</p>
# or
<p className="font-mulish-medium">...</p>
# or
<p className="font-mulish-bold">...</p>
```



### Quicksand

Use `font-quicksand-*` tailwindcss utilities to apply the **Quicksand** font to your nextjs/react component:

```tsx
<p className="font-quicksand-light">...</p>
# or
<p className="font-quicksand-medium">...</p>
# or
<p className="font-quicksand-bold">...</p>
```


### Roboto

Use `font-roboto-*` tailwindcss utilities to apply the **Roboto** font to your nextjs/react component:

```tsx
<p className="font-roboto-light">...</p>
# or
<p className="font-roboto-medium">...</p>
# or
<p className="font-roboto-bold">...</p>
```

### Roboto Mono

⌨️ The code font (0.2.6). Variable weight 100–700, normal + italic, Latin + Cyrillic, under the [SIL Open Font License 1.1](./roboto-mono/OFL.txt). Import the stylesheet, then use the `'Roboto Mono'` family or the `font-robotomono-*` utilities:

```css
@import 'ab-nextjs-fonts/roboto-mono/styles.css';
code { font-family: 'Roboto Mono', ui-monospace, monospace; }
```

```tsx
<code className="font-robotomono-regular">pnpm add ab-nextjs-core</code>
# or
<code className="font-robotomono-medium">...</code>
```

`ab-nextjs-theme` ≥ 0.3.4 uses it as `--ab-font-code`, with the system monospace stack as fallback.

### Zilla Slab

Use `font-zillaslab-*` tailwindcss utilities to apply the **ZillaSlab** font to your nextjs/react component:

```tsx
<p className="font-zillaslab-light">...</p>
# or
<p className="font-zillaslab-medium">...</p>
# or
<p className="font-zillaslab-bold">...</p>
```

## TODOs

- [ ] Optimize all fonts
- [ ] Add the *`Sacramento`* font
- [ ] Add a *`Nerd Font`* font (for easy icon support)


## Learn More abElements

To learn more about **`abElements`**, take a look at the following resources:

- [abElements Documentation](https://ab-elements.vercel.app/docs) - learn about `abElements` features and API.
- [abElements Animations](https://ab-elements.vercel.app/docs#animations) - learn about **animations** in `abElements`.
- [abElements Core](https://ab-elements.vercel.app/docs#core) - learn about **core** in `abElements`.
- [abElements Theme](https://ab-elements.vercel.app/docs#theme) - learn about **theme** in `abElements`.
- [abElements Icons](https://ab-elements.vercel.app/docs#icons) - learn about **icons** in `abElements`.
- [abElements Components](https://ab-elements.vercel.app/docs#components) - learn about **components** in `abElements`. 
- [abElements Fonts](https://ab-elements.vercel.app/docs#fonts) - learn about **fonts** in `abElements`. 
- [abElements Hooks](https://ab-elements.vercel.app/docs#hooks) - learn about **hooks** in `abElements`. 

You can check out [the abElements GitHub repository](https://github.com/abraham-ukachi/ab-elements-app) for more details.


## License

This **`ab-nextjs-fonts`** project is [MIT Licensed](./LICENSE) ;)



