Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

expo-squircle-view

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

expo-squircle-view

A native implementation for figma corner smoothing (Squircle Shape) for react native expo apps

  • 0.3.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
154
increased by4.76%
Maintainers
1
Weekly downloads
 
Created
Source

expo-squircle-view

A native implementation for figma corner smoothing (Squircle Shape) for react native expo apps

Screenshot 2024-01-19 at 3 55 14 PM

Installation in managed Expo projects

npm install expo-squircle-view 

or

yarn add expo-squircle-view 

Then prebuild your app

Installation in bare React Native projects

For bare React Native projects, you must ensure that you have installed and configured the expo package before continuing. then do

npm install expo-squircle-view

then do npx pod-install

Running Example

Props (All props are optional)

NameTypeExplanationDefault Value
borderRadiusnumberThe component's border radius0
cornerSmoothingnumberControls the amount of smoothing for the radius, 0 means there is no smoothing (will render like any other View, 100 is maximum amount0
backgroundColorColorValueThe background color of the componenttransperent
borderColorColorValueSince borders has to match the squircle, you won't be able to set it using the style prop, so use this prop insteadtransperent
borderWidthnumberSince borders has to match the squircle, you won't be able to set it using the style prop, so use this prop instead0
preserveSmoothingbooleanSetting this value to false the produced squircle will match the figma shape exactly, setting this to false will give you even more smoothing for higher borderRadius valuesfalse
styleStylePropDefault style prop for the component, like any other viewundefined

Basic Example

import { Text, View } from "react-native";
import { SquircleView } from "expo-squircle-view";

export default function App() {
  return (
    <View
      style={{
        alignItems: "center",
        justifyContent: "center",
        flex: 1,
      }}
    >
      <SquircleView
        backgroundColor={"pink"}
        borderWidth={4}
        borderColor={"gray"}
        borderRadius={40}
        cornerSmoothing={100} // 0-100
        preserveSmoothing={true} // false matches figma, true has more rounding
        style={{
          width: 200,
          height: 100,
          flexDirection: "row",
          justifyContent: "center",
          alignItems: "center",
        }}
      >
        <Text>Squircle</Text>
      </SquircleView>
    </View>
  );
}

Using as a Button

import SquircleButton instead of SquircleView, and use it the same way as a TouchableOpacity

import { SquircleButton } from "expo-squircle-view"; 

...
  <SquircleButton>
  ...
  </SquircleButton>
...

Kudos

Libraries that made this possible

https://github.com/phamfoo/figma-squircle

https://github.com/phamfoo/react-native-figma-squircle

https://github.com/samuel-rl/react-native-squircle

Blog from figma team explaining squircle

https://www.figma.com/blog/desperately-seeking-squircles/

Keywords

FAQs

Package last updated on 19 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc