Merge version_1 into main #2

Merged
bender merged 3 commits from version_1 into main 2026-03-11 22:42:11 +00:00
3 changed files with 70 additions and 126 deletions

View File

@@ -19,24 +19,21 @@ export default function AboutPage() {
const footerColumns = [
{
title: "Events",
items: [
title: "Events", items: [
{ label: "Upcoming Shows", href: "events" },
{ label: "Past Events", href: "#past" },
{ label: "Guest List", href: "#guestlist" },
],
},
{
title: "Community",
items: [
title: "Community", items: [
{ label: "Follow on Instagram", href: "https://instagram.com" },
{ label: "Submit Booking", href: "contact" },
{ label: "Press Kit", href: "#press" },
],
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Contact Us", href: "contact" },
@@ -62,9 +59,7 @@ export default function AboutPage() {
brandName="SUBMUNDO808"
navItems={navItems}
button={{
text: "Buy Tickets",
href: "events",
}}
text: "Buy Tickets", href: "events"}}
animateOnLoad={true}
/>
</div>
@@ -91,10 +86,11 @@ export default function AboutPage() {
{ value: "2018", title: "Movement Founded" },
{ value: "Campinas", title: "Original Birthplace" },
]}
imageSrc="http://img.b2bpic.net/free-vector/realistic-holi-vertical-flyer-template_52683-81618.jpg?_wi=3"
imageSrc="http://img.b2bpic.net/free-vector/realistic-holi-vertical-flyer-template_52683-81618.jpg"
imageAlt="Submundo808 movement story"
useInvertedBackground={false}
mediaAnimation="slide-up"
metricsAnimation="slide-up"
/>
</div>
@@ -106,24 +102,16 @@ export default function AboutPage() {
features={[
{
icon: Music,
title: "Authentic Sound",
description: "We celebrate genuine funk culture with unmixed, raw performances that keep the underground spirit alive and vibrant.",
},
title: "Authentic Sound", description: "We celebrate genuine funk culture with unmixed, raw performances that keep the underground spirit alive and vibrant."},
{
icon: Zap,
title: "High Energy",
description: "Every event pulses with electrifying energy, creating unforgettable moments for our community of funk enthusiasts.",
},
title: "High Energy", description: "Every event pulses with electrifying energy, creating unforgettable moments for our community of funk enthusiasts."},
{
icon: Users,
title: "Community First",
description: "Submundo is built on the bonds between artists and fans, where everyone feels the beat and belongs to the movement.",
},
title: "Community First", description: "Submundo is built on the bonds between artists and fans, where everyone feels the beat and belongs to the movement."},
{
icon: Sparkles,
title: "Limited Culture",
description: "Exclusive events and limited-edition merchandise ensure that Submundo stays authentic, rare, and highly sought-after.",
},
title: "Limited Culture", description: "Exclusive events and limited-edition merchandise ensure that Submundo stays authentic, rare, and highly sought-after."},
]}
animationType="slide-up"
textboxLayout="default"
@@ -138,29 +126,17 @@ export default function AboutPage() {
tag="Movement Stats"
metrics={[
{
id: "1",
icon: Users,
title: "Community Members",
value: "15K+",
},
id: "1", icon: Users,
title: "Community Members", value: "15K+"},
{
id: "2",
icon: Music,
title: "Events Hosted",
value: "50+",
},
id: "2", icon: Music,
title: "Events Hosted", value: "50+"},
{
id: "3",
icon: MapPin,
title: "Cities Reached",
value: "2",
},
id: "3", icon: MapPin,
title: "Cities Reached", value: "2"},
{
id: "4",
icon: TrendingUp,
title: "Monthly Listeners",
value: "100K+",
},
id: "4", icon: TrendingUp,
title: "Monthly Listeners", value: "100K+"},
]}
animationType="scale-rotate"
textboxLayout="default"

View File

@@ -19,24 +19,21 @@ export default function EventsPage() {
const footerColumns = [
{
title: "Events",
items: [
title: "Events", items: [
{ label: "Upcoming Shows", href: "events" },
{ label: "Past Events", href: "#past" },
{ label: "Guest List", href: "#guestlist" },
],
},
{
title: "Community",
items: [
title: "Community", items: [
{ label: "Follow on Instagram", href: "https://instagram.com" },
{ label: "Submit Booking", href: "contact" },
{ label: "Press Kit", href: "#press" },
],
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Contact Us", href: "contact" },
@@ -47,24 +44,16 @@ export default function EventsPage() {
const eventFeatures = [
{
icon: Music,
title: "World-Class Sound",
description: "Experience pristine audio quality with our premium Funktion-One sound system, engineered for funk music",
},
title: "World-Class Sound", description: "Experience pristine audio quality with our premium Funktion-One sound system, engineered for funk music"},
{
icon: Zap,
title: "Immersive Lighting",
description: "Dynamic LED and laser lighting synchronized with live performances for an unforgettable visual experience",
},
title: "Immersive Lighting", description: "Dynamic LED and laser lighting synchronized with live performances for an unforgettable visual experience"},
{
icon: Users,
title: "Exclusive Access",
description: "VIP passes include early entry, dedicated lounge access, and meet-and-greet opportunities with artists",
},
title: "Exclusive Access", description: "VIP passes include early entry, dedicated lounge access, and meet-and-greet opportunities with artists"},
{
icon: Sparkles,
title: "After-Party Vibes",
description: "Extended sessions and special DJ sets keep the energy going into the early morning hours",
},
title: "After-Party Vibes", description: "Extended sessions and special DJ sets keep the energy going into the early morning hours"},
];
return (
@@ -85,9 +74,7 @@ export default function EventsPage() {
brandName="SUBMUNDO808"
navItems={navItems}
button={{
text: "Buy Tickets",
href: "events",
}}
text: "Buy Tickets", href: "events"}}
animateOnLoad={true}
/>
</div>
@@ -100,35 +87,21 @@ export default function EventsPage() {
background={{ variant: "sparkles-gradient" }}
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/cinematic-portrait-people-celebrating-usa-independence-day-national-holiday_23-2151479155.jpg",
imageAlt: "Event crowd celebration",
},
imageSrc: "http://img.b2bpic.net/free-photo/cinematic-portrait-people-celebrating-usa-independence-day-national-holiday_23-2151479155.jpg", imageAlt: "Event crowd celebration"},
{
imageSrc: "http://img.b2bpic.net/free-photo/male-dj-taking-care-music-entertainment-party_23-2149658426.jpg",
imageAlt: "DJ performance",
},
imageSrc: "http://img.b2bpic.net/free-photo/male-dj-taking-care-music-entertainment-party_23-2149658426.jpg", imageAlt: "DJ performance"},
{
imageSrc: "http://img.b2bpic.net/free-photo/abstract-bokeh-background-with-colorful-lights_23-2147815267.jpg",
imageAlt: "Event lighting",
},
imageSrc: "http://img.b2bpic.net/free-photo/abstract-bokeh-background-with-colorful-lights_23-2147815267.jpg", imageAlt: "Event lighting"},
{
imageSrc: "http://img.b2bpic.net/free-photo/musician-playing-electric-guitar_23-2151414308.jpg",
imageAlt: "Musical performance",
},
imageSrc: "http://img.b2bpic.net/free-photo/musician-playing-electric-guitar_23-2151414308.jpg", imageAlt: "Musical performance"},
{
imageSrc: "http://img.b2bpic.net/free-photo/new-year-party-nightclub-with-group-friends_23-2147718242.jpg",
imageAlt: "Party atmosphere",
},
imageSrc: "http://img.b2bpic.net/free-photo/new-year-party-nightclub-with-group-friends_23-2147718242.jpg", imageAlt: "Party atmosphere"},
]}
buttons={[
{
text: "Buy Tickets Now",
href: "https://ticketmaster.com",
},
text: "Buy Tickets Now", href: "https://ticketmaster.com"},
{
text: "Learn More",
href: "#event-details",
},
text: "Learn More", href: "#event-details"},
]}
/>
</div>
@@ -152,18 +125,15 @@ export default function EventsPage() {
description="Our biggest event of the year featuring three days of non-stop funk, featuring over 30 DJs, live bands, art installations, and food trucks from local Campinas vendors. Early bird tickets now available with special pricing for community members and students."
metrics={[
{
value: "3 Days",
title: "Full Festival",
},
value: "3 Days", title: "Full Festival"},
{
value: "30+ DJs",
title: "Artists Lineup",
},
value: "30+ DJs", title: "Artists Lineup"},
]}
imageSrc="http://img.b2bpic.net/free-vector/realistic-holi-vertical-flyer-template_52683-81618.jpg?_wi=1"
imageSrc="http://img.b2bpic.net/free-vector/realistic-holi-vertical-flyer-template_52683-81618.jpg"
imageAlt="Festival poster"
useInvertedBackground={false}
mediaAnimation="slide-up"
metricsAnimation="slide-up"
/>
</div>

View File

@@ -1,51 +1,49 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import { SVGProps } from "react";
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
interface SvgTextLogoProps extends SVGProps<SVGSVGElement> {
text?: string;
className?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
export const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text = "WEBILD", className = "", ...props
}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
viewBox="0 0 400 100"
className={`w-full h-auto ${className}`}
{...props}
>
<defs>
<linearGradient
id="textGradient"
x1="0%"
y1="0%"
x2="100%"
y2="100%"
>
<stop offset="0%" stopColor="#ff006e" />
<stop offset="50%" stopColor="#00d9ff" />
<stop offset="100%" stopColor="#6a00ff" />
</linearGradient>
</defs>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
fontSize="72"
fontWeight="900"
textAnchor="middle"
dominantBaseline="central"
fill="url(#textGradient)"
letterSpacing="2"
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
};
export default SvgTextLogo;