Skip to content

Conversation

@nathan-de-pachtere
Copy link
Contributor

@nathan-de-pachtere nathan-de-pachtere commented Oct 10, 2025

What is the purpose of this pull request?

  • New Icon

Description

Added new circle-pile icon.

Icon use case

Bars stack in industry
Snowball pile

Alternative icon designs

Icon Design Checklist

Concept

  • I have provided valid use cases for each icon.
  • I have not added any a brand or logo icon.
  • I have not used any hate symbols.
  • I have not included any religious or political imagery.

Author, credits & license

  • The icons are solely my own creation.
  • The icons were originally created in # by @colebemis
  • I've based them on the following Lucide icons: circle

Naming

  • I've read and followed the naming conventions
  • I've named icons by what they are rather than their use case.
  • I've provided meta JSON files in icons/[iconName].json.

Design

  • I've read and followed the icon design guidelines
  • I've made sure that the icons look sharp on low DPI displays.
  • I've made sure that the icons look consistent with the icon set in size, optical volume and density.
  • I've made sure that the icons are visually centered.
  • I've correctly optimized all icons to three points of precision.

Before Submitting

@github-actions github-actions bot added 🎨 icon About new icons 🫧 metadata Improved metadata labels Oct 10, 2025
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 ChatGPT Tags suggestions ✨

I've asked ChatGPT for some suggestions for tags.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 10, 2025

Added or changed icons

circle-pile

Preview cohesion square-chevron-left
circle-pile
book-text
Preview stroke widths circle-pile
circle-pile
circle-pile
DPI Preview

16px (shadcn/ui)

circle-pile

24px (default)

circle-pile

32px (shadcn/ui + retina)

circle-pile

48px (default + retina)

circle-pile
Icon X-rays circle-pile
Icon Diffs circle-pile
Icons as code

Works for: lucide-react, lucide-react-native, lucide-preact, lucide-vue-next

const CirclePileIcon = createLucideIcon('CirclePile', [
  ["circle",{"cx":"12","cy":"19","r":"2"}],
  ["circle",{"cx":"12","cy":"5","r":"2"}],
  ["circle",{"cx":"16","cy":"12","r":"2"}],
  ["circle",{"cx":"20","cy":"19","r":"2"}],
  ["circle",{"cx":"4","cy":"19","r":"2"}],
  ["circle",{"cx":"8","cy":"12","r":"2"}]
])

Copy link
Member

@ericfennis ericfennis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you provide a more detailed usecase, instead of describing the image?

@nathan-de-pachtere
Copy link
Contributor Author

When you want to represent a pile/stack of bars from the side (multiple elements) vs only one with the circle icon. In metallurgy industry we have package that transit through the factory and our software show directly if the packages contains only one or if it's multiple elements.

@ericfennis
Copy link
Member

@nathan-de-pachtere Thanks for the additional information. Sounds like a good usecase!

@nathan-de-pachtere
Copy link
Contributor Author

nathan-de-pachtere commented Oct 27, 2025

@ericfennis I'm actually questioning the benefit of my new icons, since we can build the same pattern by using the circle icon five times inside a CSS grid/flex. That way, people can do whatever they want — stack them slightly to the right or left, color one circle, rotate them, change the size, etc.

This just increases the library size. I also submitted this one: square-pile, but after that people will start asking for triangles, hexagons, and so on...

Wouldn't it be better to have an example of composable icons to cover this use case? Others examples , like arrow-top can be arrow-down just by rotating it, arrow-cw can be arrow-ccw by mirroring it, etc...

The benefit would be a cleaner icon search, fewer choices, and a smaller library size.

For example, in our codebase, we wrap every icon in a Vue.js component so that we can swap or use multiple libraries and improve maintainability. That way, we could simply create an IconSquarePile.vue component like this:

<template>
  <div class="grid ..."> // just example
    <Circle> //From lucide icons
    <Circle>
    <Circle>
    <Circle>
    <Circle>
  <div>
</template>

What do you think ? Should I open a subject in discussion for that approach ?

@ericfennis ericfennis mentioned this pull request Oct 31, 2025
19 tasks
@ericfennis
Copy link
Member

Hmm, yeah, good point.
But this, I think, is still a welcome icon to display "materials" in a simple way. But let's choose either circle-pile or square-pile for this.
Yes, it's possible to use transforms to adjust icons and combine them. But I think we should aim for the best DX. Increasing the library size should not be a blocker for a useful icon.

Copy link
Member

@ericfennis ericfennis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work!

@jguddas
Copy link
Member

jguddas commented Nov 17, 2025

I don't like that it is so tall, but every other variant would sacrifice sharpness :/

@nathan-de-pachtere
Copy link
Contributor Author

I don't like that it is so tall, but every other variant would sacrifice sharpness :/

What do you mean by so tall ? Did I miss something and make it overflow the frame?

@ericfennis
Copy link
Member

@nathan-de-pachtere Reducing the height, the pile will look more realistic. But I think reducing the horizontal gaps will result in gap violation or no grid alignment, right?

@nathan-de-pachtere
Copy link
Contributor Author

nathan-de-pachtere commented Nov 21, 2025

@nathan-de-pachtere Reducing the height, the pile will look more realistic. But I think reducing the horizontal gaps will result in gap violation or no grid alignment, right?

@ericfennis and @jguddas Here with the gap squeezed to maximum, will reduce readability at smaller scales

https://studio.lucide.dev/edit?value=%3Ccircle+cx=%2212%22+cy=%2219%22+r=%222%22+/%3E%3Ccircle+cx=%2212%22+cy=%225%22+r=%222%22+/%3E%3Ccircle+cx=%2216%22+cy=%2212%22+r=%222%22+/%3E%3Ccircle+cx=%2220%22+cy=%2219%22+r=%222%22+/%3E%3Ccircle+cx=%224%22+cy=%2219%22+r=%222%22+/%3E%3Ccircle+cx=%228%22+cy=%2212%22+r=%222%22+/%3E

Screenshot 2025-11-21 at 9 52 13 AM

@ericfennis
Copy link
Member

100% scale, this looks not bad at small scale
pile

@nathan-de-pachtere
Copy link
Contributor Author

100% scale, this looks not bad at small scale pile

I reduced the height and misspelled the commit message, but the requested changes are done.

@ericfennis ericfennis requested a review from jguddas November 23, 2025 16:43
@ericfennis
Copy link
Member

@nathan-de-pachtere Nice!

Copy link
Member

@karsa-mistmere karsa-mistmere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to bring to everyone's attention how this should probably match the dimensions of triangle, but...

image

Boom. Just how lucky are we? 😂

@ericfennis ericfennis merged commit 7866a5a into lucide-icons:main Dec 10, 2025
9 checks passed
karsa-mistmere pushed a commit that referenced this pull request Dec 12, 2025
* Added icons/circle-pile.svg

* Added icons/circle-pile.json

* Add tags

* Reduce high
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎨 icon About new icons 🫧 metadata Improved metadata

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants