This commit is contained in:
Your Name committed 2026-09-29 06:28:29 +07:00
1 parent 6d3b13d360
commit 466059f01a
5 files changed
+27 -18

No files matched your search

+4 -4
View File
@@ -42,7 +42,7 @@ export default function DynamicHero({ payload }: DynamicHeroProps) {
const [accent, rest] = part.split(']'); const [accent, rest] = part.split(']');
return ( return (
<span key={i}> <span key={i}>
<span className="text-pop-pink font-medium italic"> <span className="text-pop-yellow font-medium italic">
{accent} {accent}
</span> </span>
{rest} {rest}
@@ -201,7 +201,7 @@ export default function DynamicHero({ payload }: DynamicHeroProps) {
<div className={`relative z-10 w-full min-h-[85vh] sm:min-h-[90vh] md:min-h-full flex flex-col ${wrapperClasses} animate-fade-in`}> <div className={`relative z-10 w-full min-h-[85vh] sm:min-h-[90vh] md:min-h-full flex flex-col ${wrapperClasses} animate-fade-in`}>
<div className={`w-full max-w-3xl flex flex-col space-y-5 ${contentClasses}`}> <div className={`w-full max-w-3xl flex flex-col space-y-5 ${contentClasses}`}>
{tagline && ( {tagline && (
<p className="text-white/80 font-semibold tracking-[0.3em] text-xs md:text-sm uppercase drop-shadow-md"> <p className="text-pop-yellow font-semibold tracking-[0.3em] text-xs md:text-sm uppercase drop-shadow-md">
{tagline} {tagline}
</p> </p>
)} )}
@@ -219,14 +219,14 @@ export default function DynamicHero({ payload }: DynamicHeroProps) {
{buttonText && ( {buttonText && (
<Link <Link
to={buttonLink || "/shop"} to={buttonLink || "/shop"}
className="ui-button-secondary shadow-lg shadow-black/30" className="ui-hero-button shadow-lg shadow-black/30"
> >
{buttonText} {buttonText}
</Link> </Link>
)} )}
<a <a
href="#categories" href="#categories"
className="ui-dark-link !text-white group flex items-center gap-1.5 drop-shadow-md hover:underline" className="ui-dark-link group flex items-center gap-1.5 drop-shadow-md hover:underline"
> >
<span>{t('hero.learnMore')}</span> <span>{t('hero.learnMore')}</span>
<span className="group-hover:translate-x-1 transition-transform">&rarr;</span> <span className="group-hover:translate-x-1 transition-transform">&rarr;</span>
@@ -16,6 +16,7 @@ export default function ThemeInjector() {
if (tokens && typeof tokens === 'object') { if (tokens && typeof tokens === 'object') {
const mapping: Record<string, string> = { const mapping: Record<string, string> = {
'--color-pop-pink': tokens.brandPrimary, '--color-pop-pink': tokens.brandPrimary,
'--color-pop-red': tokens.brandPrimaryHover,
'--color-pop-yellow': tokens.brandAccent, '--color-pop-yellow': tokens.brandAccent,
'--color-pop-orange': tokens.brandWarm, '--color-pop-orange': tokens.brandWarm,
'--color-pop-cyan': tokens.brandCool, '--color-pop-cyan': tokens.brandCool,
@@ -27,6 +28,9 @@ export default function ThemeInjector() {
'--color-pop-muted-bg': tokens.surfaceMuted, '--color-pop-muted-bg': tokens.surfaceMuted,
'--radius-base': tokens.radiusBase, '--radius-base': tokens.radiusBase,
'--radius-card': tokens.radiusCard, '--radius-card': tokens.radiusCard,
'--font-sans-active': tokens.fontBody,
'--font-heading-active': tokens.fontDisplay,
'--font-serif-active': tokens.fontDisplay,
} }
for (const [key, value] of Object.entries(mapping)) { for (const [key, value] of Object.entries(mapping)) {
if (value && typeof value === 'string' && value.trim() !== '') { if (value && typeof value === 'string' && value.trim() !== '') {
+4
View File
@@ -122,6 +122,10 @@
@apply inline-flex items-center justify-center rounded-full bg-pop-bg px-6 py-3 text-xs font-bold uppercase tracking-widest text-pop-black transition-colors hover:bg-pop-pink hover:text-pop-bg; @apply inline-flex items-center justify-center rounded-full bg-pop-bg px-6 py-3 text-xs font-bold uppercase tracking-widest text-pop-black transition-colors hover:bg-pop-pink hover:text-pop-bg;
} }
.ui-hero-button {
@apply inline-flex items-center justify-center rounded-full bg-pop-pink px-6 py-3 text-xs font-bold uppercase tracking-widest text-white transition-all shadow-lg hover:bg-pop-red hover:opacity-95;
}
.ui-input-shell { .ui-input-shell {
@apply w-full rounded-full border border-pop-black/20 bg-transparent px-6 py-4 text-sm text-pop-black outline-none transition placeholder:text-pop-black/50 focus:border-pop-pink; @apply w-full rounded-full border border-pop-black/20 bg-transparent px-6 py-4 text-sm text-pop-black outline-none transition placeholder:text-pop-black/50 focus:border-pop-pink;
} }
+8 -7
View File
@@ -315,7 +315,7 @@
} }
.ui-accent-text { .ui-accent-text {
@apply italic text-brand-primary; @apply italic text-brand-accent;
} }
.ui-hero-shell { .ui-hero-shell {
@@ -371,22 +371,23 @@
.ui-hero-button { .ui-hero-button {
@apply inline-flex items-center justify-center rounded-full px-6 py-3 text-xs font-bold uppercase tracking-widest transition-colors; @apply inline-flex items-center justify-center rounded-full px-6 py-3 text-xs font-bold uppercase tracking-widest transition-colors;
background-color: var(--color-surface-page); background-color: var(--color-brand-primary);
color: var(--color-text-main); color: #ffffff;
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.2);
} }
.ui-hero-button:hover { .ui-hero-button:hover {
opacity: 0.9; background-color: var(--color-brand-primary-hover, var(--color-brand-primary));
opacity: 0.95;
} }
.ui-hero-link { .ui-hero-link {
@apply inline-flex items-center gap-2 text-xs font-bold uppercase tracking-widest transition-colors; @apply inline-flex items-center gap-2 text-xs font-bold uppercase tracking-widest transition-colors;
color: var(--color-brand-primary); color: var(--color-brand-accent, var(--color-brand-primary));
padding: 0.75rem 1.5rem; padding: 0.75rem 1.5rem;
} }
.ui-hero-link:hover { .ui-hero-link:hover {
color: var(--color-surface-page); opacity: 0.85;
} }
.ui-banner-shell { .ui-banner-shell {
@@ -267,7 +267,7 @@ function HeroSection({ payload, lang }: { payload: Record<string, unknown>, lang
<div className={`relative z-10 w-full min-h-[85vh] sm:min-h-[90vh] md:min-h-full flex flex-col ${wrapperClasses}`}> <div className={`relative z-10 w-full min-h-[85vh] sm:min-h-[90vh] md:min-h-full flex flex-col ${wrapperClasses}`}>
<div className={`w-full max-w-3xl flex flex-col space-y-5 ${contentClasses}`}> <div className={`w-full max-w-3xl flex flex-col space-y-5 ${contentClasses}`}>
{tagline && ( {tagline && (
<p className="text-xs font-semibold uppercase tracking-[0.3em] text-[#EAEFEA] drop-shadow-md md:text-sm"> <p className="text-xs font-semibold uppercase tracking-[0.3em] text-brand-accent drop-shadow-md md:text-sm">
{tagline} {tagline}
</p> </p>
)} )}
@@ -292,7 +292,7 @@ function HeroSection({ payload, lang }: { payload: Record<string, unknown>, lang
)} )}
<a <a
href="#categories" href="#categories"
className="ui-hero-link group !text-white flex items-center gap-1.5 drop-shadow-md hover:underline" className="ui-hero-link group flex items-center gap-1.5 drop-shadow-md hover:underline"
> >
<span>{t('dynamic.heroLearnMore', { lng: resolvedLang })}</span> <span>{t('dynamic.heroLearnMore', { lng: resolvedLang })}</span>
<span className="transition-transform group-hover:translate-x-1">→</span> <span className="transition-transform group-hover:translate-x-1">→</span>
@@ -495,7 +495,7 @@ function HeroVideoSection({ payload, lang }: { payload: Record<string, unknown>,
<div className="relative z-20 mx-auto px-6 py-16 w-full max-w-5xl text-center space-y-6 flex flex-col items-center justify-center"> <div className="relative z-20 mx-auto px-6 py-16 w-full max-w-5xl text-center space-y-6 flex flex-col items-center justify-center">
{tagline && ( {tagline && (
<p className="text-xs md:text-sm font-semibold uppercase tracking-[0.35em] text-[#EAEFEA] drop-shadow-md"> <p className="text-xs md:text-sm font-semibold uppercase tracking-[0.35em] text-brand-accent drop-shadow-md">
{tagline} {tagline}
</p> </p>
)} )}
@@ -641,13 +641,13 @@ function HeroMinimalSection({ payload, lang }: { payload: Record<string, unknown
<div className="relative z-10 w-full max-w-5xl mx-auto px-6 py-12 flex flex-col justify-center"> <div className="relative z-10 w-full max-w-5xl mx-auto px-6 py-12 flex flex-col justify-center">
<div className={`flex flex-col gap-4 max-w-3xl ${alignClass}`}> <div className={`flex flex-col gap-4 max-w-3xl ${alignClass}`}>
{tagline && ( {tagline && (
<span className="text-xs md:text-sm font-medium uppercase tracking-[0.3em] text-[#EAEFEA] drop-shadow-md"> <span className="text-xs md:text-sm font-medium uppercase tracking-[0.3em] text-brand-accent drop-shadow-md">
{tagline} {tagline}
</span> </span>
)} )}
{title && ( {title && (
<h1 className="font-serif text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-light text-white leading-tight tracking-wide drop-shadow-md"> <h1 className="font-serif text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-light text-white leading-tight tracking-wide drop-shadow-md">
{renderAccentTitle(title, 'text-[#EAEFEA] font-medium')} {renderAccentTitle(title, 'text-brand-accent font-medium')}
</h1> </h1>
)} )}
</div> </div>
@@ -909,7 +909,7 @@ function HeroV2Section({ payload, lang }: { payload: Record<string, unknown>, la
{primaryBtnText && primaryBtnLink && ( {primaryBtnText && primaryBtnLink && (
<Link <Link
href={primaryBtnLink} href={primaryBtnLink}
className="inline-flex items-center justify-center gap-2 px-8 py-3.5 bg-[#A18868] text-white font-medium rounded-md hover:bg-[#8B7355] transition-colors w-full sm:w-auto" className="inline-flex items-center justify-center gap-2 px-8 py-3.5 bg-brand-primary text-white font-medium rounded-md hover:bg-brand-primary-hover transition-colors w-full sm:w-auto"
> >
{primaryBtnText} {primaryBtnText}
<ChevronRight className="w-4 h-4" /> <ChevronRight className="w-4 h-4" />
@@ -918,7 +918,7 @@ function HeroV2Section({ payload, lang }: { payload: Record<string, unknown>, la
{secondaryBtnText && secondaryBtnLink && ( {secondaryBtnText && secondaryBtnLink && (
<Link <Link
href={secondaryBtnLink} href={secondaryBtnLink}
className="inline-flex items-center justify-center gap-2 px-8 py-3.5 bg-transparent border border-[#A18868] text-[#A18868] font-medium rounded-md hover:bg-[#A18868]/5 transition-colors w-full sm:w-auto" className="inline-flex items-center justify-center gap-2 px-8 py-3.5 bg-transparent border border-brand-primary text-brand-primary font-medium rounded-md hover:bg-brand-primary/5 transition-colors w-full sm:w-auto"
> >
{secondaryBtnText} {secondaryBtnText}
<ChevronRight className="w-4 h-4" /> <ChevronRight className="w-4 h-4" />