Part of the Pinto ecosystem · 5 projects
Pinto allows you to define frontend components using plain PHP classes, simplifying the creation and management of reusable UI elements within Drupal. It integrates smoothly with various Drupal systems like controllers, blocks, and layouts, offering a YAML-free alternative to other component management solutions. Pinto also provides helpers for organizing component files, including PHP, Twig, CSS, and JavaScript.
Pinto is a way of defining frontend components with plain PHP. Define components as simple classes, and let Pinto do the rest. Works well with controller/render-arrays, blocks, layouts, entity displays, etc. No fussing with YAML. Some say its a nicer alternative to SDC. Helpers are provided to replicate a "single directory" setup, wherein PHP, Twig, CSS, JS are colocated.
Example
Component class
namespace Drupal\my_site_ds;
class MyComponent {
use Drupal\pinto\Object\DrupalInvokableSlotsTrait;
public function __construct(
public string $str,
public int $number,
) {
}
}
Template
{{ str }}
{{ number }}
Usage
(new MyComponent(
str: 'Hello world',
number: 123,
))();
Project
Pinto has adopted zerover. To inspire confidence, you'll find both the Drupal Pinto project and Pinto PHP library have great test coverage, code coverage, and [level 9 PHPStan] static analysis.
Development of core Pinto features happen on GitHub, while the Drupal integration happens on Drupal.org. Each of these projects are completely independent, while the Drupal integration has a dependency on the library.
See also:
- https://www.drupal.org/project/pinto_block
- https://www.drupal.org/project/pinto_entity
- https://www.drupal.org/project/pinto_layout
- https://www.drupal.org/project/pinto_theme
Documentation
Official documentation is available at https://pinto.docs.contrib.social/
Read the blog posts on Pinto:
- Next level theming with Pinto by @acbramley on PreviousNext
- Entity theming with Pinto by @acbramley on PreviousNext
Ask your assistant about Pinto: Native Components
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
3 tracked projects depend on this one
- Pinto Entity 4 sites
- Pinto Theme 3 sites
- Pinto Layout 3 sites
More in the Pinto ecosystem
Most installed first
Activity
Release Timeline
Releases
| Version | Type | Core | PHP | Release date | |
|---|---|---|---|---|---|
| 0.7.0-beta6 | Pre-release | 10–11 | Dec 22, 2025 | ||
| 0.7.0-beta5 | Pre-release | 10–11 | Dec 21, 2025 | ||
| 0.7.0-beta4 | Pre-release | 10–11 | Dec 20, 2025 | ||
| 0.7.0-beta3 | Pre-release | 10–11 | Dec 19, 2025 | ||
| 0.7.0-beta2 | Pre-release | 7–11 | Dec 17, 2025 | ||
| 0.7.0-beta1 | Pre-release | 10–11 | Dec 11, 2025 | ||
| 0.6.0 | Stable | 10–11 | Nov 6, 2025 | ||
| 0.5.2 | Stable | 10–11 | Aug 7, 2025 | ||
| 0.5.1 | Stable | 10–11 | May 4, 2025 | ||
| 0.5.0 | Stable | 10–11 | Apr 20, 2025 |