@nuxt-themes/elements-edge

Nuxt Elements
The Vue components library to build any kind of websites, built with design tokens and made to be used in Markdown Components.
- Documentation: elements.nuxt.dev (password:
nuxtifytheworld) - Online playground: stackblitz.com/edit/nuxt-elements-play
Usage
In your Nuxt project, install the package:
yarn add --dev @nuxt-themes/elements
Then in your nuxt.config.ts, add it to the extends array:
import { defineNuxtConfig } from 'nuxt'
export default defineNuxtConfig({
extends: ['@nuxt-themes/elements']
})
Start using the elements to build your website, checkout the list of elements on elements.nuxt.dev.
Edge channel
After each commit is merged into the dev branch and passing all tests, we trigger an automated npm release using Github Actions publishing on @nuxt-themes/elements-edge.
You can opt-in to it by installing and using @nuxt-themes/elements-edge instead of @nuxt-themes/elements.
Elements
An element is a Vue component made to be used inside the content/ directory with the MDC syntax.
The component can have:
- Props to receive data from the editor (generated form)
- Slots using the
<ContentSlot>component to pass MDC to the component
Example:
<script setup lang="ts">
defineProps({
image: {
type: String,
default: null
}
})
</script>
<template>
<section>
<h1 class="text-3xl font-bold text-primary-900 dark:text-primary-100">
<ContentSlot :use="$slots.title" unwrap="p">Default title</ContentSlot>
</h1>
<!-- description slot is optional -->
<p class="mt-3" v-if="$slots.description">
<ContentSlot :use="$slots.description" unwrap="p" />
</p>
</div>
</div>
</section>
</template>
Note that the <ContentSlot> component cannot have class attribute because they are headless components.
Development
Make sure to install the dependencies:
yarn install
Start the playground and documentation on http://localhost:3000
npm run dev
Generate the documentation:
npm run generate
Locally preview the generated documentation:
npm run preview
To use the elements in development in your project:
- Run the
pwdcommand in the elements project and copy it, example:/Users/atinux/Projects/nuxt-themes/elements - Add it to your
nuxt.config.tsand suffix with/theme:
import { defineNuxtConfig } from 'nuxt'
export default defineNuxtConfig({
extends: ['/Users/atinux/Projects/nuxt-themes/elements/theme']
})
License
TBD
Related Packages
Version History
Pre-releases (34)
| Version | Released | License |
|---|---|---|
| 0.0.1-099aca8 | ||
| 0.0.1-fd5890e | ||
| 0.0.1-e0c70ab | ||
| 0.0.1-f7c787b | ||
| 0.0.1-e9d306d | ||
| 0.0.1-130627d | ||
| 0.0.1-ec0ed2c | ||
| 0.0.1-0234ccd | ||
| 0.0.1-9d49e69 | ||
| 0.0.1-d7c5729 | ||
| 0.0.1-18c5a57 | ||
| 0.0.1-7e93845 | ||
| 0.0.1-4c9259d | ||
| 0.0.1-54e94de | ||
| 0.0.1-d8bff8c | ||
| 0.0.1-10182af | ||
| 0.0.1-ad739bf | ||
| 0.0.1-264f040 | ||
| 0.0.1-ad28872 | ||
| 0.0.1-c56c689 | ||
| 0.0.1-fdfc0b1 | ||
| 0.0.1-63a29fc | ||
| 0.0.1-c235644 | ||
| 0.0.1-0ced521 | ||
| 0.0.1-ac24120 | ||
| 0.0.1-846a4c2 | ||
| 0.0.1-dcd70b4 | ||
| 0.0.1-5a24217 | ||
| 0.0.1-d7bdecc | ||
| 0.0.1-b1b43d9 |
Showing the latest 30 of 34. See every release on npm