@giancarlosgza/blog-site-layer
Nuxt layer for a standalone blog site: the blog layer plus app shell, navbar/footer, PWA, robots, fonts and analytics
2,025
| Install | |
|---|---|
npm install @giancarlosgza/blog-site-layer |
|
| Latest Version: | 0.5.1 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 19, 2026 |
| Links: | GitHub · npm |
Maintainer: giancarlosgza
@giancarlosgza/blog-site-layer
Nuxt 4 layer for a standalone blog site: @giancarlosgza/blog-layer plus the app
shell around it.
| Adds | Details |
|---|---|
| App shell | app.vue (title template, RSS link, Organization/WebSite JSON-LD, Plausible), error.vue, default layout |
| Navigation | Generic TheNavbar and TheFooter (blog name, logo from settings/general, navLinks/footerLinks) |
| UI | Cookie banner, PWA install prompt, scroll-to-top button, theme picker |
| Styles | The @colorffy/css framework, loaded before the blog and site styles |
| Site config | Security and static-asset headers, robots, sitemap styling, PWA defaults |
Use it
npm install @giancarlosgza/blog-site-layer
// nuxt.config.ts
export default defineNuxtConfig({
extends: ['@giancarlosgza/blog-site-layer'],
css: ['@/assets/css/material-symbols.generated.css'],
site: { url: process.env.NUXT_SITE_URL, name: 'My Blog' },
pwa: { manifest: { name: 'My Blog', short_name: 'Blog' }, workbox: { cacheId: 'my-blog' } }
})
// package.json
"scripts": {
"prebuild": "blog-layer-subset-icons",
"predev": "blog-layer-subset-icons"
}
The blog mounts at / unless the site sets blog.basePath.
- Brand:
blog.*in the site'sapp/app.config.ts. This layer addsloadingColor,pwa.installDescription,legal.cookiesUrl,navLinksandfooterLinksto the blog layer's keys. - Navbar and footer: replace them by adding
TheNavbar.vue/TheFooter.vueto the site'sapp/components/. - Brand styles: CSS the site adds to
cssloads after the framework and the blog styles, so tokens in the same cascade layers win:@layer base.tokens { :root { ... } }for the Colorffy defaults (--cffy-*). Start the site's first stylesheet with the full layer order (@layer reset, abstracts, base, components, layout, utilities, media-queries, overrides, pages;): in dev the site's styles can load before the layer's.
Inside this layer, its own files are imported through #blog-site/....
Related Packages
@giancarlosgza/blog-layer
Nuxt layer that adds a Firestore-backed blog to a site under a configurable base...
2,147
0
@giancarlosgza/blog-admin-layer
Nuxt layer for a Firebase blog admin: post editor and workflow, media, authors,...
1,889
0
Version History
| Version | Released | License |
|---|---|---|
| 0.5.1 | MIT | |
| 0.5.0 | MIT | |
| 0.4.6 | MIT | |
| 0.4.5 | MIT | |
| 0.4.4 | MIT | |
| 0.4.3 | MIT | |
| 0.4.2 | MIT | |
| 0.4.1 | MIT | |
| 0.4.0 | MIT | |
| 0.3.0 | MIT | |
| 0.2.1 | MIT | |
| 0.2.0 | ||
| 0.1.2 | ||
| 0.1.1 | ||
| 0.1.0 |
Pre-releases (1)
| Version | Released | License |
|---|---|---|
| 0.0.0-stage |