PHPackages                             sitegeist/stampede - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sitegeist/stampede

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

sitegeist/stampede
==================

svg-sprite icons for Neos

v2.0.1(5mo ago)888.0k↓27.5%5[1 PRs](https://github.com/sitegeist/Sitegeist.Stampede/pulls)2GPL-3.0-or-laterPHP

Since Sep 27Pushed 5mo ago7 watchersCompare

[ Source](https://github.com/sitegeist/Sitegeist.Stampede)[ Packagist](https://packagist.org/packages/sitegeist/stampede)[ RSS](/packages/sitegeist-stampede/feed)WikiDiscussions 2.0 Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (35)Used By (2)

Sitegeist.Stampede
==================

[](#sitegeiststampede)

Svg Icons for Neos
------------------

[](#svg-icons-for-neos)

The package renders icons based on svg files. The rendering is done inline or via an svg sprite that combines all svgs of a collection into one request.

*Attention: This package use the external svg references for svg-sprites which are not supported in some older browsers. Please check this and use polyfills like this  if needed.*

### Authors &amp; Sponsors

[](#authors--sponsors)

- Wilhelm Behncke -
- Martin Ficzel -

*The development and the public-releases of this package is generously sponsored by our employer .*

Configuration
-------------

[](#configuration)

The package manages icon collections that are defined via Neos settings. It is possible to configure an collection from a `path` or by referenceing each `item` individually.

```
Sitegeist:
  Stampede:
    collections:

      #
      # Collections with a path will include all svg files in the given path
      # The icon name and the label are created from the filename
      #
      default:
        label: "Default Collection"
        path: resource://Vendor.Site/Private/Icons

      #
      # Collections with explicit items allow to configure the path and label
      # for each icon. The key defines the icon name.
      #
      example:
        label: "Example Collection"
        items:
          foo:
            label: "Foo Item"
            path: resource://Vendor.Site/Private/Icons/foo.svg
          bar:
            label: "Bar Item"
            path: resource://Vendor.Site/Private/Icons/bar.svg
```

The generated svg sprites are cached for each collection in Production context. For the Development context the sprite cache is disabled. You can control this via setting:

```
Sitegeist:
  Stampede:
    enableCache: false
```

The svg sprite sheet will get a cache-control header in Production context. You can adjust the value or disable this via setting:

```
Sitegeist:
  Stampede:
      publicCacheLifetime: 86400
```

A custom data source is included to allow editors to select icons in the Neos Inspector:

```
'Vendor.Site:NodeType':
  properties:
    icon:
      type: string
      ui:
        inspector:
          editor: 'Neos.Neos/Inspector/Editors/SelectBoxEditor'
          editorOptions:
            dataSourceIdentifier: 'sitegeist-stampede-icons'
            dataSourceAdditionalData:
              # Optionaly the icon collections offered to the editor
              # can be configured. By default all collections will be available
              collections: ['example']
```

### Mixins, Presets, Silhouettes

[](#mixins-presets-silhouettes)

The package contains the Mixin `Sitegeist.Silhouette:Mixin.Icon` and the property-preset / silhouette `stampede.icon`.

Fusion
------

[](#fusion)

`Sitegeist.Stampede:Icon` has the following options: `identifier`: string (required) combined identifier of `collection` and `icon` separated by a `colon`. Will override `collection` and `icon` values `collection`: string (deprecated, use `identifier` in future) name of the icon collection `icon`: string (deprecated, use `identifier` in future) name of the icon `class`: string (optional) class to add to the svg tag `style`: string (optional) style to add to the svg tag. Default is `fill: currentColor; height: 1em;``inline`: boolean render the svg inline. Default is `false`

To render icons the prototype `Sitegeist.Stampede:Icon` is used via afx like this.

```
    renderer = afx`

    `

```

If the `inline` option is set the svg content is directly put into the html instead of referencing the spritesheet. This can improve the performance if many icons exist but only very few are used on a single page.

```
    renderer = afx`

    `

```

ATTENTION: It is highly recommended to create a wrapper prototype for icons that sets the required `class` and unsets the default `style`.

```
prototype(Vendor.Site:Component.SvgIcon) < prototype(Neos.Fusion:Component) {
    identifier = null

    renderer = Sitegeist.Stampede:Icon {
        identifier = ${props.identifier}
        class = "svgIcon"
        style = null
    }
}

```

Additionally the prototype `Sitegeist.Stampede:Icon.Preview` renders a list of all iconCollections as table to be viewed in the `Sitegeist.Monocle` styleguide.

Installation
------------

[](#installation)

Sitegeist.Stampede is available via packagist. Just run `composer require sitegeist/stampede` to install it. We use semantic-versioning so every breaking change will increase the major-version number.

Contribution
------------

[](#contribution)

We will gladly accept contributions. Please send us pull requests.

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance73

Regular maintenance activity

Popularity38

Limited adoption so far

Community23

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 89.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~98 days

Recently: every ~46 days

Total

24

Last Release

154d ago

Major Versions

v1.6.2 → v2.0.02025-04-01

v1.7.0 → 2.0.x-dev2025-12-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/1159e78bff9c03cc5ed626447ca5072097107f58af459a9b8bac8d933ba8298c?d=identicon)[wilhelm.behncke](/maintainers/wilhelm.behncke)

![](https://www.gravatar.com/avatar/829b4ccb51e8cff3c1e4b59d60cfe8d1b86f6d77fc31a6b3fc99227f432542ca?d=identicon)[mficzel](/maintainers/mficzel)

---

Top Contributors

[![mficzel](https://avatars.githubusercontent.com/u/1309380?v=4)](https://github.com/mficzel "mficzel (66 commits)")[![jonnitto](https://avatars.githubusercontent.com/u/4510166?v=4)](https://github.com/jonnitto "jonnitto (5 commits)")[![6180design](https://avatars.githubusercontent.com/u/13599634?v=4)](https://github.com/6180design "6180design (1 commits)")[![grebaldi](https://avatars.githubusercontent.com/u/2522299?v=4)](https://github.com/grebaldi "grebaldi (1 commits)")[![kedelima](https://avatars.githubusercontent.com/u/114148501?v=4)](https://github.com/kedelima "kedelima (1 commits)")

---

Tags

inline-svgneoscmssvgsvg-iconsvg-sprite

### Embed Badge

![Health badge](/badges/sitegeist-stampede/health.svg)

```
[![Health](https://phpackages.com/badges/sitegeist-stampede/health.svg)](https://phpackages.com/packages/sitegeist-stampede)
```

###  Alternatives

[neos/fusion-form

Fusion Form

19724.3k31](/packages/neos-fusion-form)[packagefactory/atomicfusion-proptypes

Fusion port of react-propTypes for the fusion-prototypes PackageFactory.AtomicFusion:Component and Neos.Fusion:Component

12200.0k4](/packages/packagefactory-atomicfusion-proptypes)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
