46 lines
		
	
	
		
			955 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			955 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { useId } from 'react'
 | 
						|
 | 
						|
export function CircleBackground({
 | 
						|
  color,
 | 
						|
  ...props
 | 
						|
}: React.ComponentPropsWithoutRef<'svg'> & {
 | 
						|
  color: string
 | 
						|
}) {
 | 
						|
  let id = useId()
 | 
						|
 | 
						|
  return (
 | 
						|
    <svg
 | 
						|
      viewBox="0 0 558 558"
 | 
						|
      width="558"
 | 
						|
      height="558"
 | 
						|
      fill="none"
 | 
						|
      aria-hidden="true"
 | 
						|
      {...props}
 | 
						|
    >
 | 
						|
      <defs>
 | 
						|
        <linearGradient
 | 
						|
          id={id}
 | 
						|
          x1="79"
 | 
						|
          y1="16"
 | 
						|
          x2="105"
 | 
						|
          y2="237"
 | 
						|
          gradientUnits="userSpaceOnUse"
 | 
						|
        >
 | 
						|
          <stop stopColor={color} />
 | 
						|
          <stop offset="1" stopColor={color} stopOpacity="0" />
 | 
						|
        </linearGradient>
 | 
						|
      </defs>
 | 
						|
      <path
 | 
						|
        opacity=".2"
 | 
						|
        d="M1 279C1 125.465 125.465 1 279 1s278 124.465 278 278-124.465 278-278 278S1 432.535 1 279Z"
 | 
						|
        stroke={color}
 | 
						|
      />
 | 
						|
      <path
 | 
						|
        d="M1 279C1 125.465 125.465 1 279 1"
 | 
						|
        stroke={`url(#${id})`}
 | 
						|
        strokeLinecap="round"
 | 
						|
      />
 | 
						|
    </svg>
 | 
						|
  )
 | 
						|
}
 |