Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-12 17:15:27 +00:00
2 changed files with 35 additions and 42 deletions

View File

@@ -15,11 +15,11 @@ export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="reveal-blur"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumSmall"
sizing="largeSmall"
background="grid"
background="circleGradient"
cardStyle="layered-gradient"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
@@ -48,7 +48,7 @@ export default function LandingPage() {
tag="The Ultimate Web3 Raffle"
tagIcon={Sparkles}
tagAnimation="blur-reveal"
background={{ variant: "grid" }}
background={{ variant: "animated-grid" }}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AitAjL9fbSoaIbn1RTQ8DfPTmS/a-modern-premium-web3-raffle-dashboard-i-1773335613527-4740ae96.png"
imageAlt="AuraRaffle platform dashboard showcase"
buttons={[
@@ -198,7 +198,7 @@ export default function LandingPage() {
id: "tickets-sold", value: "2.1M", description: "Tickets Sold"
}
]}
gridVariant="four-items-2x2-equal-grid"
gridVariant="uniform-all-items-equal"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
@@ -215,7 +215,7 @@ export default function LandingPage() {
features={[
{
id: 1,
title: "Purchase Tickets", description: "Buy raffle tickets with native token, crypto, or fiat. Instant confirmation on your dashboard.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AitAjL9fbSoaIbn1RTQ8DfPTmS/a-step-illustration-showing-the-ticket-p-1773335627023-6520084c.png?_wi=1", imageAlt: "Purchase tickets step"
title: "Purchase Tickets", description: "Buy raffle tickets with native token, crypto, or fiat. Instant confirmation on your dashboard.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AitAjL9fbSoaIbn1RTQ8DfPTmS/a-step-illustration-showing-the-ticket-p-1773335627023-6520084c.png", imageAlt: "Purchase tickets step"
},
{
id: 2,
@@ -227,7 +227,7 @@ export default function LandingPage() {
},
{
id: 4,
title: "Claim Rewards", description: "Winners claimed instantly. Prizes transferred to your wallet with full transparency.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AitAjL9fbSoaIbn1RTQ8DfPTmS/a-step-illustration-showing-the-ticket-p-1773335627023-6520084c.png?_wi=2", imageAlt: "Claim rewards step"
title: "Claim Rewards", description: "Winners claimed instantly. Prizes transferred to your wallet with full transparency.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AitAjL9fbSoaIbn1RTQ8DfPTmS/a-step-illustration-showing-the-ticket-p-1773335627023-6520084c.png", imageAlt: "Claim rewards step"
}
]}
textboxLayout="default"
@@ -263,7 +263,7 @@ export default function LandingPage() {
cardTitle="Over 50,000 winners have cashed out through AuraRaffle with verified fair draws and transparent payouts."
cardTag="Recent Winners"
cardTagIcon={Award}
cardAnimation="reveal-blur"
cardAnimation="blur-reveal"
useInvertedBackground={false}
/>
</div>

View File

@@ -1,51 +1,44 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from 'react';
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
fontSize?: number;
fontWeight?: string | number;
fill?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
className = '',
fontSize = 24,
fontWeight = 'bold',
fill = 'currentColor'
}) => {
const textLength = text.length * (fontSize * 0.5);
const svgWidth = textLength + 40;
const svgHeight = fontSize + 20;
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 ${svgWidth} ${svgHeight}`}
xmlns="http://www.w3.org/2000/svg"
className={className}
preserveAspectRatio="xMidYMid meet"
>
<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={svgWidth / 2}
y={svgHeight / 2}
fontSize={fontSize}
fontWeight={fontWeight}
fill={fill}
textAnchor="middle"
dominantBaseline="central"
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
};
export default SvgTextLogo;