File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import { cn } from "@/lib/utils" ;
2+ import { useTheme } from "next-themes" ;
3+ import { useEffect , useState } from "react" ;
24
35export interface OrbitingCirclesProps {
46 className ?: string ;
@@ -77,6 +79,15 @@ export function TechStackCircles({
7779 outerSize = "size-[50px]" ,
7880 duration = 20 ,
7981} : TechStackCirclesProps ) {
82+ const [ mounted , setMounted ] = useState ( false ) ;
83+ const { resolvedTheme } = useTheme ( ) ;
84+
85+ useEffect ( ( ) => {
86+ setMounted ( true ) ;
87+ } , [ ] ) ;
88+
89+ const iconTheme = mounted && resolvedTheme === "light" ? "light" : "dark" ;
90+
8091 return (
8192 < >
8293 < span className = "pointer-events-none text-4xl font-semibold text-foreground/5" >
@@ -91,7 +102,7 @@ export function TechStackCircles({
91102 radius = { innerRadius }
92103 >
93104 < img
94- src = { `https://skillicons.dev/icons?i=${ icon } ` }
105+ src = { `https://skillicons.dev/icons?i=${ icon } &theme= ${ iconTheme } ` }
95106 alt = { `${ icon } Icon` }
96107 className = "w-full h-full object-contain"
97108 />
@@ -107,7 +118,7 @@ export function TechStackCircles({
107118 reverse
108119 >
109120 < img
110- src = { `https://skillicons.dev/icons?i=${ icon } ` }
121+ src = { `https://skillicons.dev/icons?i=${ icon } &theme= ${ iconTheme } ` }
111122 alt = { `${ icon } Icon` }
112123 className = "w-full h-full object-contain"
113124 />
Original file line number Diff line number Diff line change @@ -12,23 +12,17 @@ interface TimelineProps {
1212
1313export function Timeline ( { events, className } : TimelineProps ) {
1414 return (
15- < div className = { cn ( "relative space-y-0 " , className ) } >
16- < div className = "absolute top-0 left-[3.25rem] w-[1px] h-full bg-border/60 " />
15+ < div className = { cn ( "relative" , className ) } >
16+ < div className = "absolute top-0 left-8 w-px h-full bg-border" />
1717 { events . map ( ( event , index ) => (
1818 < div
1919 key = { index }
20- className = "group relative flex gap-4 items-center py-2 hover:bg-muted/50 rounded-md transition-all duration-300 px-1.5 "
20+ className = "group relative flex gap-3 items-center py-1.5 hover:bg-muted/50 rounded-md transition-colors px-1"
2121 >
22- < div className = "text-sm font-medium text-primary/80 w-12 flex-shrink-0 relative z-10 cursor-default " >
22+ < div className = "text-xs font-medium text-muted-foreground w-7 flex-shrink-0 relative z-10" >
2323 { event . year }
2424 </ div >
25- < div
26- className = "absolute left-[3.25rem] w-[1px] h-full bg-gradient-to-b from-transparent via-primary/40 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300"
27- style = { {
28- transform : "translateX(-50%)" ,
29- } }
30- />
31- < p className = "text-xs text-muted-foreground group-hover:text-foreground/80 transition-colors duration-300" >
25+ < p className = "text-xs text-muted-foreground group-hover:text-foreground transition-colors" >
3226 { event . description }
3327 </ p >
3428 </ div >
You can’t perform that action at this time.
0 commit comments