0.3.1 • Published 11 months ago

figma-squircle v0.3.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Figma Squircle

Stable Release license

Figma-flavored squircles for everyone

Disclaimer

This library is not an official product from the Figma team and does not guarantee to produce the same results as you would get in Figma.

What is this?

Figma has a great feature called corner smoothing, allowing you to create rounded shapes with a seamless continuous curve (squircles).

npm.io

This library helps you bring those squircles to your apps.

Installation

yarn add figma-squircle

or

npm install figma-squircle

Usage

import { getSvgPath } from 'figma-squircle'

const svgPath = getSvgPath({
  width: 200,
  height: 200,
  cornerRadius: 24, // defaults to 0
  cornerSmoothing: 0.8, // cornerSmoothing goes from 0 to 1
})

const svgPath = getSvgPath({
  width: 200,
  height: 200,
  cornerRadius: 24,
  cornerSmoothing: 0.8,
  // You can also adjust the radius of each corner individually
  topLeftCornerRadius: 48,
})

// svgPath can now be used to create SVG elements
function PinkSquircle() {
  return (
    <svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
      <path d={svgPath} fill="pink" />
    </svg>
  )
}

// Or with the clip-path CSS property
function ProfilePicture() {
  return (
    <div
      style={{
        width: 200,
        height: 200,
        clipPath: `path('${svgPath}')`,
      }}
    >
      ...
    </div>
  )
}

Squircle Params

width

number | Required

height

number | Required

cornerSmoothing

number | Required

Goes from 0 to 1, controls how smooth the corners should be.

cornerRadius

number | defaults to 0

topLeftCornerRadius

number

topRightCornerRadius

number

bottomRightCornerRadius

number

bottomLeftCornerRadius

number

Thanks

Related