npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

curly-html-elements

v1.1.3

Published

Mini tool to align HTML elements along an ellipse or a part of an ellipse

Downloads

17

Readme

Curly HTML Elements

Mini tool to arranging HTML elements along ellipse subset shapes. Using curly-html-elements you can layout child items of an element along a circle, semicircle, ellipse or any subset shape of it without encounter math formula and complex concepts.

It’s only 2KB and easy to use.

😎😎 Online Demo

Installation

Using npm:

npm install curly-html-elements

Using yarn:

yarn add curly-html-elements  

Using unpkg CDN

<script src="http://unpkg.com/curly-html-elements/lib/curly-html-elements.min.js"></script>

Usage

First, import curly-html-elements to your project. You can do it by adding the script tag that mentioned above, or you can import it as a module like this.

import CurlyElements from "curly-html-elements";

After adding the library to your project, you can call it like this.

const myEllipse = new CurlyElements(htmlElement, options)

There are two arguments that you should pass to the CurlyElements:

  • htmlElement: the target element that you want to ellipse its child
  • options: properties to shape your ellipse. You can see all in below table.

Options

Property | Value | Default | Description --- | --- | --- | --- type | equal/compact | equal | Layout type of the ellipse. there are two types, equal and compact. The distance between items will be equal in "equal" mode. size | [0, 1] | 0.5 | Size of ellipse. Its a number between 0 and 1. if you want a entire ellipse it must be 1. rotate | [0, 360] | 0 | Use this property to rotate ellipse. It could be a number between 0 and 360.
reflection | [-1, +1] | 1 | Use this to mirroring the ellipse. its standard value is a number in range of [-1,+1] but you can set any numbers. for example, value 2 means two times height for the ellipse.
shiftX | number | 0 | To shift whole layout to right or left. The value could be both positive and negative. shiftY | number | 0 | To shift whole layout to up or down. The value could be both positive and negative.

You can arrange your elements in any subset shape of an ellipse and put it in any position of your parent element with changing the options.

Render with new options

To update initial options you can use .update(newOptions) API. this method merges new options with the previous object and rerender the ellipse.

Example

const elm = document.getElementById("demo");
const options = {
    type: "equal",  // compact, equal
    size: .5,       // 0, 1
    rotate: 5,      // 0, 360
    reflection: 1,  // 0, 1, only in compact layout
    reverse: false, 
    shiftX: 0,      // any number
    shiftY: 0,      // any number
}
const myEllipse = new CurlyElements(elm, options)

// to update options and rerender the ellipse
myEllipse.update({type: "compact", size: 1})

Sample Layouts

Ellipsis elements samples

Contributing

I would be grateful to those who helped me make the project truly perfect. So, feel free to contribute to the project. Also, if you encounter any problem bring it up as an issue.

License

MIT