PHPackages                             ec-europa/ec\_europa - 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. ec-europa/ec\_europa

AbandonedArchivedDrupal-theme

ec-europa/ec\_europa
====================

EC Europa base theme.

0.1.7(7y ago)4155[4 issues](https://github.com/ec-europa/ec_europa/issues)[7 PRs](https://github.com/ec-europa/ec_europa/pulls)EUPL-1.1PHP

Since Aug 2Pushed 3y ago9 watchersCompare

[ Source](https://github.com/ec-europa/ec_europa)[ Packagist](https://packagist.org/packages/ec-europa/ec_europa)[ Docs](https://github.com/ec-europa/ec_europa)[ RSS](/packages/ec-europa-ec-europa/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (24)Versions (94)Used By (0)

EC Europa Theme
===============

[](#ec-europa-theme)

[![Build Status](https://camo.githubusercontent.com/953b0025a44da039014e0db726facc955f93d8774916cf90fdab5f3b81073fb0/68747470733a2f2f64726f6e652e66706669732e65752f6170692f6261646765732f65632d6575726f70612f65635f6575726f70612f7374617475732e7376673f6272616e63683d6d6173746572)](https://drone.fpfis.eu/ec-europa/ec_europa)[![GitHub issues](https://camo.githubusercontent.com/499996550c0b513086735508fb649e3a6450b4ed451261f9fee72c18178e89da/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f65632d6575726f70612f65635f6575726f70612e737667)](https://github.com/ec-europa/ec_europa/issues?q=is:open+is:issue)[![Current Release](https://camo.githubusercontent.com/cb77159e20b08fa4d67f1ac4c798e2fbe2de6f2f3eaf80c754d26b10d69d31fd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f65632d6575726f70612f65635f6575726f70612e737667)](https://github.com/ec-europa/ec_europa/releases)

Repository containing the drupal theme for the NextEuropa platform.

The EC-Europa theme is a Drupal 7 theme, implementing the styling defined for the Digital Transformation of the European Commission. This theme is based on a component driven design.

This theme is bundled with the version 1.4.0 of [ECL](https://github.com/ec-europa/europa-component-library).

ECL component library:

Current supported browsers:

- Chrome &gt;= 60
- Internet Explorer &gt;= 11
- Safari &gt;= 11
- Firefox &gt;= 54

Table of content:
=================

[](#table-of-content)

- [Installation](#a-installation)
- [Styleguide](#styleguide)
- [Tests](#tests)
- [Helper tools](#helper-tools)
- [Developers notes](#developers-notes)
    - [Development environment](#development-environment)

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

[](#installation)

Place the content of this repository into a folder in sites/all/themes and enable the theme going to admin/appearance. The EC Europa Theme uses [Atomium](https://www.drupal.org/project/atomium) as the base theme.

Style guide
-----------

[](#style-guide)

The style guide called [Europa component library](https://ec-europa.github.io/europa-component-library)is to be used as a reference when building your website.

Settings
--------

[](#settings)

### Option "Improved website"

[](#option-improved-website)

On the settings page, the option 'Is this an "improved website"?' allows to active some customization - in the home page, the switcher-page and other blocks. By default, this option is checked.

Helper tools
------------

[](#helper-tools)

All the templates are provided inside the theme:

- component templates
- views templates
- display suite templates

The platform provides the following modules to facilitate building your site and to integrate with Views and Fields:

#### NextEuropa Formatters (nexteuropa\_formatters)

[](#nexteuropa-formatters-nexteuropa_formatters)

This module provides default theme implementations for custom ECL formatters.

#### NextEuropa Formatters - Views (nexteuropa\_formatters\_views)

[](#nexteuropa-formatters---views-nexteuropa_formatters_views)

This module extends nexteuropa\_formatters with custom view plugins that render content using ECL formatters.

#### NextEuropa Formatters - Fields (nexteuropa\_formatters\_fields)

[](#nexteuropa-formatters---fields-nexteuropa_formatters_fields)

This module extends nexteuropa\_formatters with custom field formatters that render field value using ECL formatters.

[Go to top](#table-of-content)

Tests
-----

[](#tests)

Developers are encouraged to create tests as a best practice, especially functional testing using Behat, and by doing so it should be on a vanilla Drupal 7 site and installing the theme and its dependencies, which can be easily achieved by using Docker as shown on [development environment section](#development-environment).

Developer notes
---------------

[](#developer-notes)

### Introduction

[](#introduction)

The theme implementation is a sub-theme of Atomium and follows its implementation logic. For more information, please consult its [project page](https://www.drupal.org/project/atomium).

### WYSIWYG content formatter

[](#wysiwyg-content-formatter)

This theme includes a particular mechanism in order to format contents that involve HTML elements; I.E.:

- "Long text" and "Text with summary" fields;
- Custom blocks containing a markup ("body").

This mechanism is based on a namespacing CSS class put on the field value container (see "ec\_europa\_preprocess\_block()" and "ec\_europa\_preprocess\_field()"). This css class is "ecl-editor".

If you need to implement some specific content formats in the rich texts in your sub-theme and you want to reflect them in the WYSIWYG widget, you just have to insert them in an "editor.css" file.
This file is to be put in a repository named "wysiwyg" placed at the root of the sub-theme.

[Go to top](#table-of-content)

### Development environment

[](#development-environment)

#### Usage

[](#usage)

To start, run:

```
docker-compose up
```

It is advised to not daemonise `docker-compose` so it can be turned off (`CTRL+C`) quickly when it is not anymore needed. However, there is an option to run docker on background by using the flag `-d`:

```
docker-compose up -d
```

Then:

```
docker-compose exec web composer install
docker-compose exec web ./vendor/bin/taskman drupal:site-install
```

#### Compile ECL

[](#compile-ecl)

Requirements:

- [Node.js](https://nodejs.org/en/): `>= 6.9.5`
- [Yarn](https://yarnpkg.com/en/): `>= 0.20.3`

Setup your environment by running:

```
docker-compose exec -u node node npm install
```

```
docker-compose exec -u node node npm run build
```

or

```
npm install
```

Build it by running:

```
docker-compose exec -u node node npm run build
```

or

```
npm run build
```

This will:

1. Compile ECL SASS to `./assets/styles/europa.css`
2. Transpile ECL JavaScript dependencies from `./assets/scripts/entry.js` to `./assets/scripts/europa.js`
3. Copy ECL fonts to `./assets/fonts/`
4. Copy ECL images to `./assets/images/`

For more details about these build steps, check [`ecl-builder` documentation](https://www.npmjs.com/package/@ec-europa/ecl-builder)

[Go to top](#table-of-content)

Update ECL
----------

[](#update-ecl)

Update the ECL by changing the `@ec-europa/ecl-components-preset-base` version in `package.json` and running:

```
docker-compose exec -u node node npm build
```

or

```
npm run build
```

This will update assets such as images and fonts and re-compile CSS, resulting changes are meant to be committed to this repository since we cannot require theme users and/or deployment procedures to build the theme locally.

#### On browser

[](#on-browser)

Using default configuration, the development site files should be available in the `build` directory and the development site should be available at: .

#### Running the tests

[](#running-the-tests)

To run the grumphp checks:

```
docker-compose exec web ./vendor/bin/grumphp run
```

To run the behat tests:

```
docker-compose exec web ./vendor/bin/behat
```

or

```
./vendor/bin/behat
```

[Go to top](#table-of-content)

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community26

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor4

4 contributors hold 50%+ of commits

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 ~42 days

Recently: every ~208 days

Total

42

Last Release

1455d ago

Major Versions

0.1.7 → 1.0.0-alpha2019-05-08

### Community

Maintainers

![](https://www.gravatar.com/avatar/caac07a8b3883a140b586c1a6ef963f2b688fbdac6e045b24f5623af5497b30f?d=identicon)[ec-europa](/maintainers/ec-europa)

---

Top Contributors

[![planctus](https://avatars.githubusercontent.com/u/14326885?v=4)](https://github.com/planctus "planctus (238 commits)")[![haringsrob](https://avatars.githubusercontent.com/u/866743?v=4)](https://github.com/haringsrob "haringsrob (188 commits)")[![kalinchernev](https://avatars.githubusercontent.com/u/1923476?v=4)](https://github.com/kalinchernev "kalinchernev (140 commits)")[![kugta](https://avatars.githubusercontent.com/u/380659?v=4)](https://github.com/kugta "kugta (136 commits)")[![gingapa](https://avatars.githubusercontent.com/u/16687167?v=4)](https://github.com/gingapa "gingapa (132 commits)")[![pedroraf](https://avatars.githubusercontent.com/u/17848283?v=4)](https://github.com/pedroraf "pedroraf (98 commits)")[![drupol](https://avatars.githubusercontent.com/u/252042?v=4)](https://github.com/drupol "drupol (86 commits)")[![janoka](https://avatars.githubusercontent.com/u/2426494?v=4)](https://github.com/janoka "janoka (75 commits)")[![Fefaine](https://avatars.githubusercontent.com/u/9037645?v=4)](https://github.com/Fefaine "Fefaine (65 commits)")[![aritomelo](https://avatars.githubusercontent.com/u/9381722?v=4)](https://github.com/aritomelo "aritomelo (47 commits)")[![voidtek](https://avatars.githubusercontent.com/u/186827?v=4)](https://github.com/voidtek "voidtek (37 commits)")[![jorge-brizio](https://avatars.githubusercontent.com/u/2537516?v=4)](https://github.com/jorge-brizio "jorge-brizio (18 commits)")[![krisgunciarz](https://avatars.githubusercontent.com/u/1568836?v=4)](https://github.com/krisgunciarz "krisgunciarz (17 commits)")[![imanoleguskiza](https://avatars.githubusercontent.com/u/14978592?v=4)](https://github.com/imanoleguskiza "imanoleguskiza (11 commits)")[![fbota](https://avatars.githubusercontent.com/u/19822859?v=4)](https://github.com/fbota "fbota (9 commits)")[![nagyad](https://avatars.githubusercontent.com/u/22004498?v=4)](https://github.com/nagyad "nagyad (9 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (8 commits)")[![gillesdeudon](https://avatars.githubusercontent.com/u/8696408?v=4)](https://github.com/gillesdeudon "gillesdeudon (7 commits)")[![AlbaParrilla](https://avatars.githubusercontent.com/u/5746069?v=4)](https://github.com/AlbaParrilla "AlbaParrilla (6 commits)")[![ademarco](https://avatars.githubusercontent.com/u/153362?v=4)](https://github.com/ademarco "ademarco (4 commits)")

### Embed Badge

![Health badge](/badges/ec-europa-ec-europa/health.svg)

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

PHPackages © 2026

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