diff --git a/app/Resources/css/about/about.css b/app/Resources/css/about/about.css index 0c3b48f0..912b74ec 100644 --- a/app/Resources/css/about/about.css +++ b/app/Resources/css/about/about.css @@ -1,5 +1,6 @@ @import '/assets/styles/app.css'; @import '../home/header.css'; +@import '../contact/faq.section.css'; body { background-color: hsl(var(--background) / 0.6); @@ -83,3 +84,25 @@ body { .new-white{ background-color: rgba(255, 255, 255, 0.9); } + +.bg-contact { + background: linear-gradient( + 135deg, + hsl(176, 43%, 45%) 0%, + hsl(176, 43%, 47%) 40%, + hsl(176, 43%, 53%) 60%, + hsl(176, 43%, 55%) 100% + ); +} + +.link-contact:hover{ + background: linear-gradient( + 135deg, + rgb(215 217 221) 0%, + rgb(222 224 229) 25%, + rgb(229 231 235) 50%, + rgb(236 238 242) 75%, + rgb(242 244 248) 100% + ); + opacity: 0.9; +} diff --git a/app/Resources/css/components/blog.css b/app/Resources/css/components/blog.css index 57e411c5..e1cf89f6 100644 --- a/app/Resources/css/components/blog.css +++ b/app/Resources/css/components/blog.css @@ -64,10 +64,6 @@ color: hsl(var(--information-theme)); } -.container-wrapper-card-feature { - gap: 2rem; -} - .article-feature { background-color: hsl(var(--article-theme) / 0.02); } diff --git a/app/Resources/css/contact/contact.css b/app/Resources/css/contact/contact.css index 27c952c5..e5b6948e 100644 --- a/app/Resources/css/contact/contact.css +++ b/app/Resources/css/contact/contact.css @@ -1,5 +1,7 @@ @import '/assets/styles/app.css'; @import '../home/header.css'; +@import './faq.section.css'; +@import './form.section.css'; body { background-color: hsl(var(--background) / 0.6); @@ -10,25 +12,6 @@ body { border-color: hsl(var(--border-theme) / 0.3); } - -.bg-contact { - background: linear-gradient( - 135deg, - hsl(176, 43%, 45%) 0%, - hsl(176, 43%, 47%) 40%, - hsl(176, 43%, 53%) 60%, - hsl(176, 43%, 55%) 100% - ); - color: #F5F5F5; - border-bottom: 8px solid transparent; - border-image: repeating-linear-gradient( - to right, - #fafafa 0 10px, - transparent 10px 20px - ); - border-image-slice: 1; -} - .banner{ background: linear-gradient( 135deg, @@ -39,32 +22,6 @@ body { ); } -@media (min-width: 768px) { - .bg-contact{ - border-bottom: 0px; - border-right: 8px solid transparent; - border-image: repeating-linear-gradient( - to bottom, - #fafafa 0 10px, - transparent 10px 20px - ); - border-image-slice: 1; - } -} - -.faq-text{ - height: 0; - opacity: 0; - border-top-width: 1px; -} - -.faq-text.show{ - height: auto; - margin-top: 0.5rem; - padding-top: 0.5rem; - opacity: 1; -} - @media (min-width: 1536px) { .faq-container{ diff --git a/app/Resources/css/contact/faq.section.css b/app/Resources/css/contact/faq.section.css new file mode 100644 index 00000000..87636661 --- /dev/null +++ b/app/Resources/css/contact/faq.section.css @@ -0,0 +1,12 @@ +.faq-text { + height: 0; + opacity: 0; + border-top-width: 1px; +} + +.faq-text.show { + height: auto; + margin-top: 0.5rem; + padding-top: 0.5rem; + opacity: 1; +} diff --git a/app/Resources/css/contact/form.section.css b/app/Resources/css/contact/form.section.css new file mode 100644 index 00000000..9492e239 --- /dev/null +++ b/app/Resources/css/contact/form.section.css @@ -0,0 +1,31 @@ +.bg-contact { + background: linear-gradient( + 135deg, + hsl(176, 43%, 45%) 0%, + hsl(176, 43%, 47%) 40%, + hsl(176, 43%, 53%) 60%, + hsl(176, 43%, 55%) 100% + ); + + color: #f5f5f5; + border-bottom: 8px solid transparent; + border-image: repeating-linear-gradient( + to right, + #fafafa 0 10px, + transparent 10px 20px + ); + border-image-slice: 1; +} + +@media (min-width: 768px) { + .bg-contact { + border-bottom: 0px; + border-right: 8px solid transparent; + border-image: repeating-linear-gradient( + to bottom, + #fafafa 0 10px, + transparent 10px 20px + ); + border-image-slice: 1; + } +} diff --git a/app/Resources/css/home/home.css b/app/Resources/css/home/home.css index 2d84d525..e6ff70aa 100644 --- a/app/Resources/css/home/home.css +++ b/app/Resources/css/home/home.css @@ -1,6 +1,7 @@ @import '/assets/styles/app.css'; @import 'header.css'; @import '../components/blog.css'; +@import '../contact/faq.section.css'; #bodyWrapper { background-color: hsl(var(--background) / 0.6); @@ -33,30 +34,32 @@ .blog-navigation { border-radius: 2em; - /* min-width: 180px; */ text-align: center; - color: hsl(var(--secondary-theme)); + color: hsl(var(--primary-theme)); } .blog-navigation.active { - background-color: hsl(var(--border-theme) / 0.3); + background-color: hsl(var(--primary-theme)); + color: white; + font-weight: 500; + scale: 1.1; } .carousel-item { - flex: 0 0 33.33% !important; /* 3 items per row on small screens */ + flex: 0 0 33.33% !important; max-width: 33.33% !important; } @media (min-width: 640px) { .carousel-item { - flex: 0 0 25% !important; /* 4 items per row on tablets */ + flex: 0 0 25% !important; max-width: 25% !important; } } @media (min-width: 1024px) { .carousel-item { - flex: 0 0 20% !important; /* 5 items per row on desktops */ + flex: 0 0 20% !important; max-width: 20% !important; } } @@ -64,7 +67,7 @@ @keyframes fadeSlideIn { from { opacity: 0; - transform: translateY(10px); + transform: translateY(50px); } to { opacity: 1; @@ -72,7 +75,28 @@ } } +.featureCard-animate { + animation: fadeSlideIn 0.3s ease-out; +} + +.bg-contact { + background: linear-gradient( + 135deg, + hsl(176, 43%, 45%) 0%, + hsl(176, 43%, 47%) 40%, + hsl(176, 43%, 53%) 60%, + hsl(176, 43%, 55%) 100% + ); +} -.featureCard-animate{ - animation: fadeSlideIn 0.5s ease-out; +.link-contact:hover{ + background: linear-gradient( + 135deg, + rgb(215 217 221) 0%, + rgb(222 224 229) 25%, + rgb(229 231 235) 50%, + rgb(236 238 242) 75%, + rgb(242 244 248) 100% + ); + opacity: 0.9; } \ No newline at end of file diff --git a/app/Resources/js/about/about.tsx b/app/Resources/js/about/about.tsx index 2b5c8e0f..bcd440c0 100644 --- a/app/Resources/js/about/about.tsx +++ b/app/Resources/js/about/about.tsx @@ -1,6 +1,8 @@ import React from 'react'; import { Popup } from '../dashboard/components/Popup'; import { MobileHeader } from '../home/component/MobileHeader'; +import FAQAction from '../contact/action/FAQAction'; + class About { constructor() { this.init(); @@ -12,6 +14,7 @@ class About { isFilter: false, popUpdata: , }); + FAQAction(); } } diff --git a/app/Resources/js/contact/action/ContactFormAction.tsx b/app/Resources/js/contact/action/ContactFormAction.tsx new file mode 100644 index 00000000..3ba7e4dc --- /dev/null +++ b/app/Resources/js/contact/action/ContactFormAction.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { toast } from 'sonner'; +const ContactFormAction = () => { + const form = document.getElementById('google-form') as HTMLFormElement; + form.addEventListener('submit', (e) => { + e.preventDefault(); + + const formData = new FormData(form); + + try { + fetch(form.action, { + method: 'POST', + mode: 'no-cors', + body: formData, + }); + + toast.success('Success: Form Submit', { + description: ( +

+ Thank you! We& apos;ll be in touch soon. +

+ ), + }); + + form.reset(); + } catch (error) { + toast.error('Error: Form Submit', { + description: ( +
+

Cannot submit form at the moment.

+

{`${error}`}

+
+ ), + }); + } + }); +}; + +export default ContactFormAction; diff --git a/app/Resources/js/contact/action/FAQAction.ts b/app/Resources/js/contact/action/FAQAction.ts new file mode 100644 index 00000000..8010f235 --- /dev/null +++ b/app/Resources/js/contact/action/FAQAction.ts @@ -0,0 +1,28 @@ +const FAQAction = () => { + const faqWrapper = document.getElementById( + 'faq-row-wrapper', + ) as HTMLElement; + + faqWrapper.addEventListener('click', (e: MouseEvent) => { + const target = e.target as HTMLElement; + const btnTarget = target.closest('button'); + + if (!btnTarget) { + return; + } + + const targetP = btnTarget.parentElement + ?.nextElementSibling as HTMLElement; + + if (!targetP) { + return; + } + + target.classList.toggle('icon-chevron-down'); + target.classList.toggle('icon-chevron-up'); + targetP.classList.toggle('show'); + }); +} + +export default FAQAction; + diff --git a/app/Resources/js/contact/contact.tsx b/app/Resources/js/contact/contact.tsx index ec8d3570..c025668f 100644 --- a/app/Resources/js/contact/contact.tsx +++ b/app/Resources/js/contact/contact.tsx @@ -2,7 +2,9 @@ import React from 'react'; import { Popup } from '../dashboard/components/Popup'; import { MobileHeader } from '../home/component/MobileHeader'; import ToastMessage from '../dashboard/components/ToastMessage'; -import { toast } from 'sonner'; +import ContactFormAction from './action/ContactFormAction'; +import FAQAction from './action/FAQAction'; + class Contact { constructor() { this.init(); @@ -15,71 +17,8 @@ class Contact { popUpdata: , }); ToastMessage(); - - this.initSubmitForm(); - this.initFAQbutton(); - } - - initSubmitForm() { - const form = document.getElementById('google-form') as HTMLFormElement; - form.addEventListener('submit', (e) => { - e.preventDefault(); - - const formData = new FormData(form); - - try { - fetch(form.action, { - method: 'POST', - mode: 'no-cors', - body: formData, - }); - - toast.success('Success: Form Submit', { - description: ( -

- Thank you! We'll be in touch soon. -

- ), - }); - - form.reset(); - } catch (error) { - toast.error('Error: Form Submit', { - description: ( -
-

Cannot submit form at the moment.

-

{`${error}`}

-
- ), - }); - } - }); - } - - initFAQbutton() { - const faqWrapper = document.getElementById( - 'faq-row-wrapper', - ) as HTMLElement; - - faqWrapper.addEventListener('click', (e: MouseEvent) => { - const target = e.target as HTMLElement; - const btnTarget = target.closest('button'); - - if (!btnTarget) { - return; - } - - const targetP = btnTarget.parentElement - ?.nextElementSibling as HTMLElement; - - if (!targetP) { - return; - } - - target.classList.toggle('icon-chevron-down'); - target.classList.toggle('icon-chevron-up'); - targetP.classList.toggle('show'); - }); + ContactFormAction(); + FAQAction(); } } diff --git a/app/Resources/js/home/component/FeaturedCard.tsx b/app/Resources/js/home/component/FeaturedCard.tsx index 482cb35b..df16c4b0 100644 --- a/app/Resources/js/home/component/FeaturedCard.tsx +++ b/app/Resources/js/home/component/FeaturedCard.tsx @@ -9,53 +9,90 @@ const FeaturedCard = ({ data }: { data: FeaturedBlog[] }) => { return totalViews + 'K'; }; + const formatAuthor = (name: string) => { + const splitName = name.split(' '); + const capitalized = splitName + .reduce((acc, word) => { + const capped = + word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); + return acc + ' ' + capped; + }, '') + .trim(); + + return capitalized; + }; + return ( <> {data.map((item, index) => { return ( - -
-
-
-
-
-   - {item.name.charAt(0).toUpperCase() + item.name.slice(1)} -
+
+
+
+
+
+
+   + {item.name.charAt(0).toUpperCase() + item.name.slice(1)} +
-
- - avatar image - -

{item.firstName.charAt(0).toUpperCase() + - item.firstName.slice(1) + - ' ' + - item.lastName.charAt(0).toUpperCase() + - '.'}

+
+ + avatar image + +

+ {formatAuthor(item.firstName) + + ' ' + + item.lastName.charAt(0).toUpperCase() + + '.'} +

+
-
-
-

{item.title}

-
- {FormatDateCard(item.created_at.date)} -
- - {item.readingTime} min read -
- - {formatViews(item.views)} Views +
+

+ {item.title} +

+
+ {FormatDateCard(item.created_at.date)} +
+ + + {item.readingTime} min read + +
+ + + {formatViews(item.views)} Views + +
-
-
-
- most popular image thumbnail +
+ most popular image thumbnail +
-
-
+ ); })} diff --git a/app/Resources/js/home/home.tsx b/app/Resources/js/home/home.tsx index e2a2a39e..3bb57516 100644 --- a/app/Resources/js/home/home.tsx +++ b/app/Resources/js/home/home.tsx @@ -1,9 +1,10 @@ import React from 'react'; -import ReactDOM from 'react-dom/client'; -import { TechStachCarousel } from './TechStachCarousel'; +// import ReactDOM from 'react-dom/client'; +// import { TechStachCarousel } from './TechStachCarousel'; import { Popup } from '../dashboard/components/Popup'; import { MobileHeader } from './component/MobileHeader'; import FeaturedBlogPost from './component/FeaturedBlogPost'; +import FAQAction from '../contact/action/FAQAction'; class Home { constructor() { @@ -12,8 +13,9 @@ class Home { init() { this.initProfileBG(); - this.initCarousel(); + // this.initCarousel(); FeaturedBlogPost(); + FAQAction(); Popup({ btnTrigger: 'headerBtn', @@ -22,12 +24,12 @@ class Home { }); } - initCarousel() { - const containerDiv = document.querySelector('#carousel'); - if (containerDiv) { - ReactDOM.createRoot(containerDiv).render(); - } - } + // initCarousel() { + // const containerDiv = document.querySelector('#carousel'); + // if (containerDiv) { + // ReactDOM.createRoot(containerDiv).render(); + // } + // } initProfileBG() { const headerProfile = document.querySelector('.randomBg'); diff --git a/templates/about/about.description.html.twig b/templates/about/about.description.html.twig new file mode 100644 index 00000000..138ce6c6 --- /dev/null +++ b/templates/about/about.description.html.twig @@ -0,0 +1,22 @@ +{% set statsImages = [ + 'new1.svg', + 'new2.svg', + 'new3.svg', + 'new4.svg' +] %} + +
+
+
+ ✨ What Make This Blog Different? +
+ +
+ {% for image in statsImages %} +
+ image text +
+ {% endfor %} +
+
+
diff --git a/templates/about/about.features.html.twig b/templates/about/about.features.html.twig new file mode 100644 index 00000000..2fe2652d --- /dev/null +++ b/templates/about/about.features.html.twig @@ -0,0 +1,68 @@ +{% set featuresGroups1 = [ + { img: 'notebook.gif', text: 'Rich post editor with WYSIWYG support' }, + { img: 'tag.gif', text: 'Tags and categories for organization' }, + { img: 'media.gif', text: 'Media upload and management' }, + { img: 'role.gif', text: 'Role-based access control' }, + { img: 'responsive.gif', text: 'Responsive and mobile-ready' }, +] %} + +{% set featuresGroups2 = [ + { img: 'dashboard.gif', text: 'Analytics Dashboard' }, + { img: 'newspaper.gif', text: 'Newsletter & Subscriber Management' }, + { img: 'comments.gif', text: 'Commenting System' }, + { img: 'translate.gif', text: 'Multi-language Support' }, + { img: 'ai.gif', text: 'AI-assisted writing tools' }, +] +%} + +
+ +
+
+
+ 🛠️ Features at a Glance +
+ +
+ {% for feature in featuresGroups1 %} + +
+ image +

{{ feature.text|raw }}

+
+ + {% endfor %} +
+
+ +
+
+ 🔭 What’s Next? +
+ +
+ {% for feature in featuresGroups2 %} + +
+ image +

{{ feature.text|raw }}

+
+ + {% endfor %} +
+
+ +
+ +
+
+ 🙌 Let’s Connect +
+

+ This CMS is built in public. Feel free to check the GitHub repo, suggest ideas, or contribute! +

+
+
+
+ +
\ No newline at end of file diff --git a/templates/about/about.techstack.html.twig b/templates/about/about.techstack.html.twig new file mode 100644 index 00000000..acd6ab5c --- /dev/null +++ b/templates/about/about.techstack.html.twig @@ -0,0 +1,49 @@ +{% set techStackGroups = [ + { + items: [ + null, + { img: 'symfony.svg', label: 'Symfony', width: 48, height: 48 }, + { img: 'react-mono.svg', label: 'React', width: 48, height: 48 }, + { img: 'tailwind-mono.svg', label: 'Tailwind', width: 48, height: 48 }, + { img: 'typescript-mono.svg', label: 'Typescript', width: 48, height: 48 }, + { img: 'shadcn.svg', label: 'shadcn/ui', width: 48, height: 48 }, + { img: 'lucide-mono.webp', label: 'Lucide', width: 48, height: 48 }, + null + ] + }, + { + items: [ + null, null, + { img: 'docker-mono.svg', label: 'Docker', width: 48, height: 48 }, + { img: 'mysql-mono.svg', label: null, width: 64, height: 64 }, + { img: 'tiny-mono.webp', label: null, width: 100, height: 48 }, + { img: 'railway-mono.webp', label: null, width: 150, height: 48 }, + { img: 'github.svg', label: 'Github', width: 48, height: 48 }, + null, null + ] + } +] %} + +
+ {% for group in techStackGroups %} +
+ {% for item in group.items %} + {% if item is null %} +
+ {% else %} + + {% endif %} + {% endfor %} +
+ {% endfor %} +
\ No newline at end of file diff --git a/templates/about/index.html.twig b/templates/about/index.html.twig index 31170182..a37ecebb 100644 --- a/templates/about/index.html.twig +++ b/templates/about/index.html.twig @@ -19,9 +19,9 @@ {% block body %}
-
+
-
+
✒️ About </blog>
@@ -36,158 +36,55 @@
-
-
-
- - - - - - -
-
- -
-
-
- - - - - -
-
-
-
- -
-
-
- ✨ What Make This Blog Different? -
- -
-
- image text -
-
- image text -
-
- image text -
-
- image text -
-
- -
- -
+ {% include 'about/about.techstack.html.twig'%} -
+
+
-
-
- 🚀 Why I Built This -
+
+
-

I needed a blog that’s not only fast and flexible but also fully customizable. - This CMS is my take on a lean, modern alternative — one where you can shape the experience to match your exact needs.

+ {% include 'about/about.description.html.twig'%} -
- admin image -
-

Jay Mark B.

-

Admin | Full Stack Developer

+
+
-
- +
+
-
+
-
-
-
- 🛠️ Features at a Glance -
- - -
-
- image -

Rich post editor with WYSIWYG support

-
-
- image -

Tags and categories for organization

-
-
- image -

Media upload and management

-
-
- image -

Role-based access control

-
-
- image -

Responsive and mobile-ready

-
+
+
+ 🚀 Why I Built This
-
-
-
- 🔭 What’s Next? -
+

I needed a blog that’s not only fast and flexible but also fully customizable. + This CMS is my take on a lean, modern alternative — one where you can shape the experience to match your exact needs.

-
-
- image -

Analytics Dashboard

-
-
- image -

Newsletter & Subscriber Management

-
-
- image -

Commenting System

-
-
- image -

Multi-language Support

-
-
- image -

AI-assisted writing tools

-
+
+ admin image
-
- -
+

Jay Mark B.

+

Admin | Full Stack Developer

-
-
- 🙌 Let’s Connect -
-

- This CMS is built in public. Feel free to check the GitHub repo, suggest ideas, or contribute! -

-
-
- -
+
+
+
+
+ {% include 'about/about.features.html.twig'%} +
+ {% include 'home/home.faq.html.twig'%} +
+
{% endblock %} {% block footer %} diff --git a/templates/blog/blog.post.html.twig b/templates/blog/blog.post.html.twig index c641fe82..9482e43d 100644 --- a/templates/blog/blog.post.html.twig +++ b/templates/blog/blog.post.html.twig @@ -4,7 +4,7 @@ {% endblock %} {% block content %} -
+ +
+
+ {% include 'home/home.faq.html.twig'%} +
+
{% endblock %} diff --git a/templates/contact/contact.faq.html.twig b/templates/contact/contact.faq.html.twig new file mode 100644 index 00000000..c3ce46fe --- /dev/null +++ b/templates/contact/contact.faq.html.twig @@ -0,0 +1,44 @@ +{% set faqs = [ + { + 'question': 'What is this CMS built with?', + 'answer': 'This CMS is built using Symfony 7 for the backend and React + TypeScript on the frontend. It uses Tailwind CSS for styling, TinyMCE for the editor, and Docker for containerization.' + }, + { + 'question': 'Can I customize the design and layout?', + 'answer': 'Yes! The entire UI is built with Tailwind CSS and React, making it super easy to customize components, themes, or layout structure.' + }, + { + 'question': 'Is there a rich text editor?', + 'answer': 'Definitely! We use TinyMCE for a seamless WYSIWYG writing experience. It supports links, images, formatting, and custom plugins.' + }, + { + 'question': 'Can I manage images and uploads?', + 'answer': 'Yes, image uploading is supported.' + }, + { + 'question': 'Is this open source?', + 'answer': 'Yes! You can view the source code, fork it, or contribute on
GitHub.' + } +] %} + +
+

Frequently Asked Questions (FAQs)

+ +
+ + {% for faq in faqs %} + +
+
+

{{ faq.question }}

+ +
+ +

{{ faq.answer|raw }}

+
+ + {% endfor %} +
+
diff --git a/templates/contact/contact.form.html.twig b/templates/contact/contact.form.html.twig new file mode 100644 index 00000000..031f88e5 --- /dev/null +++ b/templates/contact/contact.form.html.twig @@ -0,0 +1,70 @@ +
+ +
+

Get in Touch

+ +
+

Direct Chat

+

Get a response within 24 hours.

+

dev.jymarkb@gmail.com

+
+ +
+

Direct Call

+

Available Mon-Fri, from 10 AM to 8 PM.

+

(+63) 962-2633-264

+
+ +
+

Social Media

+ +
+
+ +
+ +
+ +
+ + +
+ + + + + + + + + +
+
+ +
\ No newline at end of file diff --git a/templates/contact/index.html.twig b/templates/contact/index.html.twig index 556d8b46..7245cadb 100644 --- a/templates/contact/index.html.twig +++ b/templates/contact/index.html.twig @@ -15,30 +15,6 @@ {% block title %}Contact | The </blog> Blog {% endblock %} -{% set faqs = [ - { - 'question': 'What is this CMS built with?', - 'answer': 'This CMS is built using Symfony 7 for the backend and React + TypeScript on the frontend. It uses Tailwind CSS for styling, TinyMCE for the editor, and Docker for containerization.' - }, - { - 'question': 'Can I customize the design and layout?', - 'answer': 'Yes! The entire UI is built with Tailwind CSS and React, making it super easy to customize components, themes, or layout structure.' - }, - { - 'question': 'Is there a rich text editor?', - 'answer': 'Definitely! We use TinyMCE for a seamless WYSIWYG writing experience. It supports links, images, formatting, and custom plugins.' - }, - { - 'question': 'Can I manage images and uploads?', - 'answer': 'Yes, image uploading is supported.' - }, - { - 'question': 'Is this open source?', - 'answer': 'Yes! You can view the source code, fork it, or contribute on GitHub.' - } -] %} - - {% block body %}
@@ -55,110 +31,19 @@ -
-
+
-
- -
-

Get in Touch

- -
-

Direct Chat

-

Get a response within 24 hours.

-

dev.jymarkb@gmail.com

-
- -
-

Direct Call

-

Available Mon-Fri, from 10 AM to 8 PM.

-

(+63) 962-2633-264

-
- -
-

Social Media

- -
-
- -
- -
- -
- - -
- - - - - - - - - -
-
- -
+ {% include 'contact/contact.form.html.twig'%}
- -
-

Frequently Asked Questions (FAQs)

- -
- - {% for faq in faqs %} - -
-
-

{{ faq.question }}

- -
- -

{{ faq.answer|raw }}

-
- - {% endfor %} -
-
+ + {% include 'contact/contact.faq.html.twig'%}
-
- +
diff --git a/templates/home/featured.html.twig b/templates/home/featured.html.twig index 26d85ea8..74ff7d78 100644 --- a/templates/home/featured.html.twig +++ b/templates/home/featured.html.twig @@ -2,10 +2,10 @@ {% set mostView = featureData['most'] %}