Remove em-dashes and format user-facing text content punctuation

This commit is contained in:
R-Bharathraj
2026-06-30 17:45:43 +05:30
parent d5e6991c9f
commit 51bef0c6ed
6 changed files with 18 additions and 18 deletions

View File

@@ -69,7 +69,7 @@ export default function AboutUsPage() {
<span style={{ color: '#f4be28' }}>Behind</span> Loyaly. <span style={{ color: '#f4be28' }}>Behind</span> Loyaly.
</h1> </h1>
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.5vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 560, margin: '0 auto' }}> <p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.5vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 560, margin: '0 auto' }}>
We're not just building a product. We're redefining retail one store at a time. We're not just building a product. We're redefining retail, one store at a time.
</p> </p>
</div> </div>
</div> </div>
@@ -89,7 +89,7 @@ export default function AboutUsPage() {
Offline retail deserves the same intelligence as online. A store owner in Coimbatore shouldn't be flying blind while an e-commerce algorithm knows exactly what every user wants. Offline retail deserves the same intelligence as online. A store owner in Coimbatore shouldn't be flying blind while an e-commerce algorithm knows exactly what every user wants.
</p> </p>
<p style={{ fontSize: 'clamp(17px, 1.6vw, 22px)', lineHeight: 1.8, color: 'rgba(0,0,0,0.55)', fontFamily: 'Sora, sans-serif', margin: 0 }}> <p style={{ fontSize: 'clamp(17px, 1.6vw, 22px)', lineHeight: 1.8, color: 'rgba(0,0,0,0.55)', fontFamily: 'Sora, sans-serif', margin: 0 }}>
Today, we're building a connected ecosystem where businesses grow smarter and customers shop better together. Today, we're building a connected ecosystem where businesses grow smarter and customers shop better together.
</p> </p>
</Reveal> </Reveal>
</div> </div>
@@ -215,7 +215,7 @@ function TeamCarousel() {
Builders. Thinkers.<br />Retail obsessives. Builders. Thinkers.<br />Retail obsessives.
</h2> </h2>
<p style={{ fontSize: 15, color: 'rgba(255,255,255,0.35)', fontFamily: 'Sora, sans-serif', margin: 0 }}> <p style={{ fontSize: 15, color: 'rgba(255,255,255,0.35)', fontFamily: 'Sora, sans-serif', margin: 0 }}>
Profiles coming soon we&apos;re still busy building the future of retail. Profiles coming soon. We&apos;re still busy building the future of retail.
</p> </p>
</div> </div>

View File

@@ -21,7 +21,7 @@ const ARTICLES = [
{ {
n: '01', tag: 'Analytics', readTime: '6 min', n: '01', tag: 'Analytics', readTime: '6 min',
title: 'Why Footfall Data is the New Gold', title: 'Why Footfall Data is the New Gold',
excerpt: "In an era where every click is tracked online, offline retailers are sitting on untapped behavioural gold and most don't even know it.", excerpt: "In an era where every click is tracked online, offline retailers are sitting on untapped behavioural gold, and most don't even know it.",
featured: true, featured: true,
}, },
{ {
@@ -33,7 +33,7 @@ const ARTICLES = [
{ {
n: '03', tag: 'Technology', readTime: '8 min', n: '03', tag: 'Technology', readTime: '8 min',
title: 'AI in Offline Retail', title: 'AI in Offline Retail',
excerpt: 'From footfall heatmaps to purchase prediction a deep look at how artificial intelligence is rewriting the rules for physical stores.', excerpt: 'From footfall heatmaps to purchase prediction, a deep look at how artificial intelligence is rewriting the rules for physical stores.',
featured: false, featured: false,
}, },
{ {
@@ -87,7 +87,7 @@ export default function BlogMainPage() {
<span style={{ color: '#f4be28' }}>Future of Retail.</span> <span style={{ color: '#f4be28' }}>Future of Retail.</span>
</h1> </h1>
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.5vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 520, margin: '0 auto' }}> <p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.5vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 520, margin: '0 auto' }}>
Explore ideas, trends, and strategies shaping modern retail from our team to yours. Explore ideas, trends, and strategies shaping modern retail, from our team to yours.
</p> </p>
</div> </div>
</div> </div>
@@ -197,7 +197,7 @@ export default function BlogMainPage() {
Stay ahead of retail. Stay ahead of retail.
</h2> </h2>
<p style={{ fontSize: 16, color: 'rgba(255,255,255,0.4)', fontFamily: 'Sora, sans-serif', margin: '0 auto 44px', maxWidth: 400, position: 'relative', zIndex: 2 }}> <p style={{ fontSize: 16, color: 'rgba(255,255,255,0.4)', fontFamily: 'Sora, sans-serif', margin: '0 auto 44px', maxWidth: 400, position: 'relative', zIndex: 2 }}>
Get our latest insights on AI, footfall, and the future of physical retail delivered monthly. Get our latest insights on AI, footfall, and the future of physical retail, delivered monthly.
</p> </p>
<div style={{ display: 'flex', gap: 12, justifyContent: 'center', flexWrap: 'wrap', position: 'relative', zIndex: 2 }}> <div style={{ display: 'flex', gap: 12, justifyContent: 'center', flexWrap: 'wrap', position: 'relative', zIndex: 2 }}>
<input placeholder="your@email.com" style={{ <input placeholder="your@email.com" style={{

View File

@@ -10,19 +10,19 @@ const ARTICLE = {
title: 'Why Footfall Data is the New Gold', title: 'Why Footfall Data is the New Gold',
date: 'June 2026', date: 'June 2026',
author: 'Loyaly.ai Team', author: 'Loyaly.ai Team',
excerpt: 'In an era where every online click is tracked, offline retailers are sitting on untapped behavioural gold and most don\'t even know it exists.', excerpt: 'In an era where every online click is tracked, offline retailers are sitting on untapped behavioural gold, and most don\'t even know it exists.',
sections: [ sections: [
{ {
heading: 'The data gap in offline retail', heading: 'The data gap in offline retail',
body: 'E-commerce has always had an advantage: every click, scroll, and abandoned cart is tracked and analysed. Offline retail never had this luxury until now. Footfall data is rapidly becoming the most valuable asset a physical store can own. It tells you not just how many people walk in, but when, where they go, how long they stay, and whether they convert.', body: 'E-commerce has always had an advantage: every click, scroll, and abandoned cart is tracked and analysed. Offline retail never had this luxury, until now. Footfall data is rapidly becoming the most valuable asset a physical store can own. It tells you not just how many people walk in, but when, where they go, how long they stay, and whether they convert.',
}, },
{ {
heading: 'What footfall data actually tells you', heading: 'What footfall data actually tells you',
body: 'A modern footfall intelligence system captures far more than a head count. It maps movement patterns through your store, identifies dwell zones, flags bottlenecks, and connects visit behaviour to purchase outcomes. When you overlay this with loyalty data who the customer is, what they\'ve bought before, how long since their last visit you get a complete picture that was previously impossible for offline businesses.', body: 'A modern footfall intelligence system captures far more than a head count. It maps movement patterns through your store, identifies dwell zones, flags bottlenecks, and connects visit behaviour to purchase outcomes. When you overlay this with loyalty data: who the customer is, what they\'ve bought before, how long since their last visit, you get a complete picture that was previously impossible for offline businesses.',
}, },
{ {
heading: 'Turning insights into revenue', heading: 'Turning insights into revenue',
body: 'The real power of footfall data emerges when it drives action. If you know that 60% of visitors who enter your electronics section but leave without buying spend more than 12 minutes near the display stands, that\'s a cue for a targeted offer. Loyaly\'s Behavision AI does exactly this it detects intent signals and triggers personalised engagements in real time, closing the gap between visit and purchase.', body: 'The real power of footfall data emerges when it drives action. If you know that 60% of visitors who enter your electronics section but leave without buying spend more than 12 minutes near the display stands, that\'s a cue for a targeted offer. Loyaly\'s Behavision AI does exactly this: it detects intent signals and triggers personalised engagements in real time, closing the gap between visit and purchase.',
}, },
{ {
heading: 'The competitive advantage is closing', heading: 'The competitive advantage is closing',
@@ -103,7 +103,7 @@ export default function BlogSinglePage() {
<p style={{ fontSize: 'clamp(18px, 2.2vw, 26px)', fontWeight: 800, color: '#0a0a0f', fontFamily: 'Sora, sans-serif', lineHeight: 1.4, margin: 0, letterSpacing: '-0.02em' }}> <p style={{ fontSize: 'clamp(18px, 2.2vw, 26px)', fontWeight: 800, color: '#0a0a0f', fontFamily: 'Sora, sans-serif', lineHeight: 1.4, margin: 0, letterSpacing: '-0.02em' }}>
"Every day without footfall data is a day of lost insight." "Every day without footfall data is a day of lost insight."
</p> </p>
<footer style={{ fontSize: 13, color: 'rgba(0,0,0,0.4)', fontFamily: 'Sora, sans-serif', marginTop: 12 }}> Loyaly.ai, 2026</footer> <footer style={{ fontSize: 13, color: 'rgba(0,0,0,0.4)', fontFamily: 'Sora, sans-serif', marginTop: 12 }}>Loyaly.ai, 2026</footer>
</blockquote> </blockquote>
</div> </div>
</section> </section>

View File

@@ -6,14 +6,14 @@ import GetInTouch from '@/components/GetInTouch';
import BodyClassManager from '@/components/BodyClassManager'; import BodyClassManager from '@/components/BodyClassManager';
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Loyaly.AI AI Powered Retail Intelligence', title: 'Loyaly.AI | AI Powered Retail Intelligence',
description: description:
'Loyaly.AI is an AI powered retail intelligence platform that turns every store visit into a loyalty opportunity. Understand customers, drive engagement, and grow revenue.', 'Loyaly.AI is an AI powered retail intelligence platform that turns every store visit into a loyalty opportunity. Understand customers, drive engagement, and grow revenue.',
icons: { icons: {
icon: '/favicon.ico', icon: '/favicon.ico',
}, },
openGraph: { openGraph: {
title: 'Loyaly.AI AI Powered Retail Intelligence', title: 'Loyaly.AI | AI Powered Retail Intelligence',
description: description:
'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.', 'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.',
url: 'https://loyaly.ai', url: 'https://loyaly.ai',
@@ -22,7 +22,7 @@ export const metadata: Metadata = {
}, },
twitter: { twitter: {
card: 'summary_large_image', card: 'summary_large_image',
title: 'Loyaly.AI AI Powered Retail Intelligence', title: 'Loyaly.AI | AI Powered Retail Intelligence',
description: description:
'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.', 'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.',
}, },

View File

@@ -80,7 +80,7 @@ export default function SolutionsPage() {
<span style={{ color: '#f4be28' }}>Retail Growth.</span> <span style={{ color: '#f4be28' }}>Retail Growth.</span>
</h1> </h1>
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.6vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 540, margin: '0 auto 52px' }}> <p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.6vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 540, margin: '0 auto 52px' }}>
Instead of waiting for customers to walk in, create exciting reasons for them to come with game-based campaigns, smart coupons, and a loyalty ecosystem that rewards every visit. Instead of waiting for customers to walk in, create exciting reasons for them to come, with game based campaigns, smart coupons, and a loyalty ecosystem that rewards every visit.
</p> </p>
<div style={{ display: 'flex', gap: 14, flexWrap: 'wrap', justifyContent: 'center' }}> <div style={{ display: 'flex', gap: 14, flexWrap: 'wrap', justifyContent: 'center' }}>
<Link href="/contacts" style={{ padding: '18px 40px', background: '#f4be28', color: '#111', fontSize: 16, fontWeight: 800, borderRadius: 100, textDecoration: 'none', fontFamily: 'Sora, sans-serif', boxShadow: '0 16px 48px rgba(244,190,40,0.25)' }}>Explore Solutions </Link> <Link href="/contacts" style={{ padding: '18px 40px', background: '#f4be28', color: '#111', fontSize: 16, fontWeight: 800, borderRadius: 100, textDecoration: 'none', fontFamily: 'Sora, sans-serif', boxShadow: '0 16px 48px rgba(244,190,40,0.25)' }}>Explore Solutions </Link>
@@ -154,7 +154,7 @@ export default function SolutionsPage() {
<span style={{ color: '#f4be28' }}>meaningful in-store experience.</span>" <span style={{ color: '#f4be28' }}>meaningful in-store experience.</span>"
</blockquote> </blockquote>
<div style={{ height: 2, width: 80, background: '#f4be28', margin: '48px 0 32px' }} /> <div style={{ height: 2, width: 80, background: '#f4be28', margin: '48px 0 32px' }} />
<p style={{ fontSize: 16, color: 'rgba(255,255,255,0.4)', fontFamily: 'Sora, sans-serif', margin: 0 }}> Loyaly.ai, 2025</p> <p style={{ fontSize: 16, color: 'rgba(255,255,255,0.4)', fontFamily: 'Sora, sans-serif', margin: 0 }}>Loyaly.ai, 2025</p>
</RevealBlock> </RevealBlock>
</section> </section>

View File

@@ -171,7 +171,7 @@ export default function Footer() {
borderTop: '1px solid rgba(255,255,255,0.05)', borderTop: '1px solid rgba(255,255,255,0.05)',
fontSize: 13, color: 'rgba(255,255,255,0.25)', fontFamily: 'Sora, sans-serif', fontSize: 13, color: 'rgba(255,255,255,0.25)', fontFamily: 'Sora, sans-serif',
}}> }}>
<span>© {new Date().getFullYear()} Loyaly.AI All rights reserved.</span> <span>© {new Date().getFullYear()} Loyaly.AI. All rights reserved.</span>
<div style={{ display: 'flex', gap: 24 }}> <div style={{ display: 'flex', gap: 24 }}>
{[['Terms', '/terms'], ['Privacy', '/privacy'], ['Cookies', '/cookies']].map(([l, h]) => ( {[['Terms', '/terms'], ['Privacy', '/privacy'], ['Cookies', '/cookies']].map(([l, h]) => (
<Link key={l} href={h} style={{ textDecoration: 'none', color: 'inherit', transition: 'color 0.2s' }} <Link key={l} href={h} style={{ textDecoration: 'none', color: 'inherit', transition: 'color 0.2s' }}