diff --git a/nuxt.config.ts b/nuxt.config.ts
index 469505a..21febe9 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -3,6 +3,9 @@ import { defineNuxtConfig } from 'nuxt/config'
export default defineNuxtConfig({
compatibilityDate: '2026-05-27',
srcDir: 'src/',
+ dir: {
+ public: 'public'
+ },
modules: ['@nuxtjs/tailwindcss', '@pinia/nuxt'],
css: ['~/assets/css/fonts.css'],
tailwindcss: {
@@ -17,6 +20,12 @@ export default defineNuxtConfig({
dir: 'rtl'
},
title: 'استودیو نورو | Noro Studio',
+ link: [
+ { rel: 'icon', href: '/favicon.ico', sizes: 'any' },
+ { rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },
+ { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/favicon.png' },
+ { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }
+ ],
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
@@ -25,10 +34,9 @@ export default defineNuxtConfig({
content:
'استودیو نورو — طراحی هویت بصری، UI/UX، سوشال مدیا و محتوای دیجیتال'
},
- { name: 'color-scheme', content: 'dark light' }
- ],
- link: [
- { rel: 'icon', type: 'image/png', href: '/favicon.png' }
+ { name: 'color-scheme', content: 'dark light' },
+ { name: 'theme-color', content: '#39c0c4', media: '(prefers-color-scheme: light)' },
+ { name: 'theme-color', content: '#050808', media: '(prefers-color-scheme: dark)' }
]
}
},
@@ -40,5 +48,5 @@ export default defineNuxtConfig({
cmsApiUrl: process.env.NUXT_PUBLIC_CMS_API_URL || 'http://localhost:4000'
}
},
- devtools: { enabled: true }
+ devtools: { enabled: false }
})
diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png
new file mode 100644
index 0000000..f90a1c5
Binary files /dev/null and b/public/apple-touch-icon.png differ
diff --git a/public/favicon-32.png b/public/favicon-32.png
new file mode 100644
index 0000000..dc0d65d
Binary files /dev/null and b/public/favicon-32.png differ
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..dc0d65d
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/favicon.png b/public/favicon.png
index 6caba6b..dc0d65d 100644
Binary files a/public/favicon.png and b/public/favicon.png differ
diff --git a/public/favicon.svg b/public/favicon.svg
new file mode 100644
index 0000000..b2c2fbb
--- /dev/null
+++ b/public/favicon.svg
@@ -0,0 +1,14 @@
+
diff --git a/public/icon-192.png b/public/icon-192.png
new file mode 100644
index 0000000..fe3c412
Binary files /dev/null and b/public/icon-192.png differ
diff --git a/public/icon-512.png b/public/icon-512.png
new file mode 100644
index 0000000..9ed4267
Binary files /dev/null and b/public/icon-512.png differ
diff --git a/src/assets/css/tailwind.css b/src/assets/css/tailwind.css
index b96d909..d81fdef 100644
--- a/src/assets/css/tailwind.css
+++ b/src/assets/css/tailwind.css
@@ -174,4 +174,52 @@
.noro-btn-secondary {
@apply inline-flex items-center justify-center rounded-xl border border-[rgb(var(--noro-btn-secondary-border))] bg-[rgb(var(--noro-btn-secondary-bg))] px-6 py-3 text-sm font-semibold text-[rgb(var(--noro-btn-secondary-text))] transition hover:opacity-90;
}
+
+ .blog-article-html h2 {
+ @apply pt-4 text-2xl font-bold text-noro-text;
+ }
+
+ .blog-article-html h3 {
+ @apply pt-2 text-xl font-bold text-noro-text;
+ }
+
+ .blog-article-html h4 {
+ @apply pt-1 text-lg font-semibold text-noro-text;
+ }
+
+ .blog-article-html p {
+ @apply my-3 whitespace-pre-line;
+ }
+
+ .blog-article-html ul {
+ @apply my-4 list-disc space-y-2 pr-6 marker:text-noro-brand;
+ }
+
+ .blog-article-html ol {
+ @apply my-4 list-decimal space-y-2 pr-6 marker:text-noro-brand;
+ }
+
+ .blog-article-html blockquote {
+ @apply my-6 border-r-4 border-noro-brand/30 bg-noro-surface/60 px-4 py-3 italic;
+ }
+
+ .blog-article-html a {
+ @apply text-noro-brand underline decoration-noro-brand/30 underline-offset-2 transition hover:decoration-noro-brand;
+ }
+
+ .blog-article-html hr {
+ @apply my-8 border-noro-border;
+ }
+
+ .blog-article-html img {
+ @apply my-6 w-full rounded-2xl border border-noro-border object-cover;
+ }
+
+ .blog-article-html figure {
+ @apply my-6 overflow-hidden rounded-2xl border border-noro-border bg-noro-surface;
+ }
+
+ .blog-article-html figcaption {
+ @apply px-4 py-3 text-center text-sm text-noro-muted;
+ }
}
diff --git a/src/pages/blog/[slug].vue b/src/pages/blog/[slug].vue
index 1ac8afc..850d749 100644
--- a/src/pages/blog/[slug].vue
+++ b/src/pages/blog/[slug].vue
@@ -1,5 +1,5 @@