View Demo Β· Report Bug Β· Request Feature
TryShape
is an opensource platform to create shapes of your choice using a simple, easy-to-use interface. You can create banners, circles, polygonal shapes, export them as SVG, PNG, and even as CSS.
Here is a quick demo of the app. We hope you enjoy it.
Liked it? Please give a βοΈ to TryShape to build its triceps πͺ stronger.
Please access TryShape using the URL:
TryShape
comes with a bundle of features already. You can do the followings with it,
- List out shapes for you to pick and use.
- Create any shapes using an intuitive editor.
- Create Polygonal, Circular, Elliptical shapes without knowing the underlying complexities like CSS clip-path.
- Add/Remove vertices, join them, drag-drop to position them to create a shape.
- Provide your choice of colors, add the contextual information as notes while creating the shapes.
- Are you an expert in CSS clip-path? Great, you can add a clip-path value directly and start from there.
- You can create a shape and share it with the TryShape community by making it public.
- Do you want to keep your creativity private? No worries, that's possible too.
- Liked a shape and want to add it to your shape collection? You can do that just with a click. Want to undo? That's supported as well.
- Export the shapes to use in your application.
- Export the shapes as PNG, JPEG, and SVG files.
- Single-Click Copy of the underlying CSS and clip-path property to use directly into your web app.
- Search a shape with key-in search.
- Sort shapes by, most liked, recent, and oldest.
- Features like export, like, create, edit shapes need you to authenticate with the app. You can use your Gmail or GitHub credentials to authenticate to the app. It is secured and powered by
Google Firebase
.
- Use
TryShape
seamlessly from any device.
You can run TryShape locally with a few easy steps.
- Clone the repository
git clone https://github.com/TryShape/tryshape.git
- Change the working directory
cd tryshape
- Install dependencies
npm install # or, yarn install
- Create
.env
file in root and add your variables
NEXT_PUBLIC_DB_URL= YOUR_HARPER_DB_DATABASE_URL
NEXT_PUBLIC_DB_AUTHORIZATION= YOUR_HARPER_DB_AUTHORIZATION_ID
NEXT_PUBLIC_FIREBASE_AUTHORIZATION=YOUR_FIREBASE_AUTH_KEY
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=YOUR_FIREBASE_AUTH_DOMAIN
NEXT_PUBLIC_FIREBASE_PROJECT_ID=YOUR_FIREBASE_PROJECT_ID
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=YOUR_FIREBASE_PROJECT_BUCKET
NEXT_PUBLIC_FIREBASE_MESSAGING_SERNDER_ID=YOUR_FIREBASE_MESSAGING_SERNDER_ID
NEXT_PUBLIC_FIREBASE_APP_ID=YOUR_FIREBASE_APP_ID
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=YOUR_FIREBASE_MEASUREMENT_ID
- Run the app
npm run dev # or, yarn dev
That's All!!! Now open localhost:3000 to see the app.
- Next JS: The coolest React-based framework on the planet
- Harper DB: A flexible Data Store
- react-icons: One shop for all the icons
- react-hot-toast: Super cool toast messages
- firebase: Authentication services
- date-fns: Date formatting
- axios: Makes API calls easy
- react-bootstrap: A popular frontend framework built-for React
- Styled Components: Visual primitives for the component age
- react-clip-path: A home grown module to handle clip-path property in a React app.
- react-draggable: Make a HTML element draggable in React
- react-loader-spinner: Provides simple React SVG spinner component which can be implemented for async await operation before data loads to the view
- react-switch: A draggable toggle-switch component for React.
- downloadjs: Trigger a download from JavaScript
- html-to-image: Converts an HTML element to image
- Vercel: Best for Hosting a Next.js app
This project is licensed under the MIT License - see the LICENSE
file for details.
TryShape
has all the potentials to grow further. Here are some of the upcoming features planned(not in any order),
- βοΈ Add the ability to create shape using SVG elements to support Curvy Node adjustments.
- βοΈ Manage your shape collection
- βοΈ Import shapes
- βοΈ Following a contributor.
- βοΈ PWA(Progressive Web App)
- βοΈ Flexible Datastore
- βοΈ Better Performance
- βοΈ Tagging a shape
- βοΈ Cloning a shape
- βοΈ Provide comment on a shape.
- βοΈ More authetication mechanisms like twitter, facebook, etc.
If you find something is missing, TryShape
is listening. Please create a feature request from here.
Any kind of positive contribution is welcome! Please help us to grow by contributing to the project.
If you wish to contribute, you can work on any features listed here or create one on your own. After adding your code, please send us a Pull Request.
Please read
CONTRIBUTING
for details on ourCODE OF CONDUCT
, and the process for submitting pull requests to us.
We all need support and motivation. TryShape
is not an exception. Please give this project a βοΈ to encourage and show that you liked it. Don't forget to leave a star βοΈ before you move away.
If you found the app helpful, consider supporting us with a coffee.
Thanks goes to these wonderful people (emoji key):
Tapas Adhikary π» π |
Nirmal Kumar |
William Zhu |
Savio Martin |
ckuthyar π |
This project follows the all-contributors specification. Contributions of any kind welcome!