From d5810715f0a9ad72cef7731704dd64115fe0102e Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 27 Feb 2026 13:13:37 +0000 Subject: [PATCH] Update src/providers/themeProvider/ThemeProvider.tsx --- src/providers/themeProvider/ThemeProvider.tsx | 79 +++++++++++++++---- 1 file changed, 64 insertions(+), 15 deletions(-) diff --git a/src/providers/themeProvider/ThemeProvider.tsx b/src/providers/themeProvider/ThemeProvider.tsx index 54d9eda..c99ee83 100644 --- a/src/providers/themeProvider/ThemeProvider.tsx +++ b/src/providers/themeProvider/ThemeProvider.tsx @@ -1,6 +1,6 @@ 'use client'; -import React, { useState } from 'react'; +import React, { createContext, useContext, useState } from 'react'; interface SocialLink { platform: string; @@ -20,6 +20,40 @@ interface TeamCardProps { member: TeamMember; } +interface ThemeContextType { + defaultButtonVariant?: string; + defaultTextAnimation?: string; + borderRadius?: string; + contentWidth?: string; + sizing?: string; + background?: string; + cardStyle?: string; + primaryButtonStyle?: string; + secondaryButtonStyle?: string; + headingFontWeight?: string; +} + +const ThemeContext = createContext(undefined); + +export function useTheme(): ThemeContextType { + const context = useContext(ThemeContext); + if (context === undefined) { + return { + defaultButtonVariant: 'text-stagger', + defaultTextAnimation: 'entrance-slide', + borderRadius: 'rounded', + contentWidth: 'medium', + sizing: 'medium', + background: 'circleGradient', + cardStyle: 'glass-elevated', + primaryButtonStyle: 'gradient', + secondaryButtonStyle: 'glass', + headingFontWeight: 'normal' + }; + } + return context; +} + function TeamCard({ member }: TeamCardProps) { const [isFlipped, setIsFlipped] = useState(false); @@ -136,22 +170,37 @@ export function ThemeProvider({ const radiusClass = borderRadiusClasses[borderRadius as keyof typeof borderRadiusClasses] || borderRadiusClasses.soft; const widthClass = contentWidthClasses[contentWidth as keyof typeof contentWidthClasses] || contentWidthClasses.medium; + const themeValue: ThemeContextType = { + defaultButtonVariant, + defaultTextAnimation, + borderRadius, + contentWidth, + sizing, + background, + cardStyle, + primaryButtonStyle, + secondaryButtonStyle, + headingFontWeight, + }; + return ( -
-
- {children} + +
+
+ {children} +
-
+ ); }