PHPackages                             justintime50/pineapple - 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. justintime50/pineapple

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

justintime50/pineapple
======================

CSS and Javascript web development library that supplements Bootstrap.

4.0.0(1y ago)55MITJavaScriptCI passing

Since Nov 25Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/Justintime50/pineapple)[ Packagist](https://packagist.org/packages/justintime50/pineapple)[ Docs](https://github.com/Justintime50/pineapple)[ GitHub Sponsors](https://github.com/Justintime50)[ RSS](/packages/justintime50-pineapple/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)DependenciesVersions (7)Used By (0)

Pineapple
=========

[](#pineapple)

CSS and Javascript web development library that supplements Bootstrap.

[![Build Status](https://github.com/Justintime50/pineapple/workflows/build/badge.svg)](https://github.com/Justintime50/pineapple/actions)[![NPM](https://camo.githubusercontent.com/25a520a1b9d02ca10f793dacad7476977f0f8800986db77958951091a334f12e/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f70696e656170706c652d6c696272617279)](https://www.npmjs.com/package/pineapple-library)[![Licence](https://camo.githubusercontent.com/d1819807dbc90c93303d8b4e55ce018a9fd35ddac5c7979b985333761988015b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6a757374696e74696d6535302f70696e656170706c65)](LICENSE)

[![Showcase](https://raw.githubusercontent.com/justintime50/assets/main/src/pineapple/showcase.png)](https://raw.githubusercontent.com/justintime50/assets/main/src/pineapple/showcase.png)

> Naming is hard. I can hear you snicker through your screen. No, it's just a random fruit name I chose. Yes, it's unfortunate.

Pineapple came about as a way to help me quickly build "brochure-style" websites some years ago. I found I was copying and pasting a lot of custom CSS around my projects to extend Bootstrap's library and decided to build my own. Over the years as Bootstrap evolved, certain Pineapple functions were removed in favor of the better battle-tested Bootstrap equivalent. Pineapple still serves as a nice addition to any Bootstrap project.

**Notable Features:**

- Full-screen banners, YouTube videos, and Bootstrap carousels with incredible customization for overlaid text, images, and buttons
- Beautiful sliding animations (full page and individual components)
- Page loader animation
- Countdown timer with custom messaging
- Fading and appearing navbar
- Icons, cards, and slanted background sections
- Dynamic screen-sized fonts, buttons, and more

Install
-------

[](#install)

Pineapple has been compiled into CSS from SCSS and JS. You will find either the beautified or minified equivelant of each along with source maps.

### CDN

[](#cdn)

```

```

### NPM

[](#npm)

```
npm install pineapple-library
```

### Composer

[](#composer)

```
composer require justintime50/pineapple
```

### Webpack &amp; Vite

[](#webpack--vite)

**NOTE:** Requires Pineapple v2.2+

Once installed via NPM, include one of the following in your Webpack or Vite configs and compile your project:

```
// Require
window.pineapple = require('pineapple-library/pineapple/dist/js/pineapple');

// Import
import pineapple from 'pineapple-library/pineapple/dist/js/pineapple';
window.pineapple = pineapple;
```

### SCSS

[](#scss)

To import the project's SCSS, use the following line in your project:

```
@import 'pineapple-library/pineapple/scss/pineapple';
```

### Manual Download

[](#manual-download)

1. Clone the repo
2. Manually import the Pineapple assets to your project

```
git clone https://github.com/justintime50/pineapple.git
```

The Pineapple CSS has been compiled into three separate bundles:

- `pineapple` includes everything
- `pineapple-styles` includes everything but the `grid` and `animations` CSS and can be used without the accompanying JS
- `pineapple-utilities` includes the `grid` and `animations` CSS which accompanies the JS

### Pineapple, Bootstrap, &amp; jQuery

[](#pineapple-bootstrap--jquery)

#### Bootstrap

[](#bootstrap)

- Pineapple v1 is compatible with Bootstrap v3 (requires jQuery)
- Pineapple v2 is compatible with Bootstrap v4 and v5 (requires jQuery)
- Pineapple v3 &amp; v4 are compatible with Bootstrap v4 and v5

#### jQuery

[](#jquery)

- Pineapple v1 and v2 require jQuery and is not compatible with the `slim` version of jQuery. Pineapple v3 and later does not require jQuery

Documentation
-------------

[](#documentation)

See the accompanying [Documentation](/docs/README.md) for more information.

Development
-----------

[](#development)

Visit `pineappleplayground.localhost` locally to test any changes.

```
# Lint CSS
npm run lint-css

# Lint JS
npm run lint-js

# Compile CSS from SCSS and JS assets
npm run compile
```

Releasing
---------

[](#releasing)

1. Bump version in `package.json` and `composer.json`
2. Bump version in `CHANGELOG.md`
3. Bump version in `scss` and `js` header comments
4. Bump version in install instruction links in `README.md`
5. Compile assets with `npm run compile`
6. Cut a new Git tag which will automatically release to NPM and Packagist

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance66

Regular maintenance activity

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97.5% 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 ~300 days

Total

3

Last Release

661d ago

Major Versions

3.2.1 → 4.0.02024-07-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/53c639dcfeb17965b97ce16c50b80b706faaca6f0c84250acd12382dfb33f28e?d=identicon)[justintime50](/maintainers/justintime50)

---

Top Contributors

[![Justintime50](https://avatars.githubusercontent.com/u/39606064?v=4)](https://github.com/Justintime50 "Justintime50 (79 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")

---

Tags

bootstrapcssdevelopmentframeworkjavascriptjslibrarypineapplesassscsswebweb-development

### Embed Badge

![Health badge](/badges/justintime50-pineapple/health.svg)

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

###  Alternatives

[laracademy/generators

This package will generate a Laravel Model based on your database table itself, filling in the required fields automatically.

355346.4k4](/packages/laracademy-generators)[beyondcode/laravel-vouchers

Allow users to redeem vouchers that are bound to models..

70763.4k2](/packages/beyondcode-laravel-vouchers)[firegento/magesetup2

MageSetup provides the necessary configuration (system config, tax, agreements, etc. for a national market.

123328.5k1](/packages/firegento-magesetup2)[sixlive/nova-text-copy-field

Laravel Nova text field with click to copy support

70708.2k2](/packages/sixlive-nova-text-copy-field)[happyr/message-serializer

Serialize classes the good way.

80491.3k](/packages/happyr-message-serializer)[percymamedy/laravel-dev-booter

Boost your Laravel app by registering Prod services only on Prod.

35320.7k1](/packages/percymamedy-laravel-dev-booter)

PHPackages © 2026

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