Process Dec 29, 2015 5 min read

Front-End Development for Italy's Major Banking Group

Four responsive landing pages for BNL-BNP Paribas promoting contactless payments and mobile wallet solutions. Built with HTML5, CSS3, jQuery, and LayerSlider animations. Features include parallax effects, interactive accordions, and legacy browser support. Developed for Italy's major banking group with strict corporate brand compliance.

Lushano Perera
Lushano Perera
Author

Project Overview

This project comprises a suite of four responsive landing pages developed for BNL – Banca Nazionale del Lavoro, part of the BNP Paribas Group, one of Europe’s largest banking institutions. The pages promote BNL’s innovative payment products, focusing on contactless technology, mobile payments, and digital wallet solutions for the Italian market.

Client: BNL (Banca Nazionale del Lavoro) – BNP Paribas Group 
Agency: Arsenale23 Media Agency 
Role: Front-End Development (HTML5, CSS3, JavaScript) 
Timeline: July – December 2014 
Scope: 4 responsive landing pages with rich animations and interactions


Products Showcased

Landing PageProductPurpose
ContactlessBNL Credit CardsPromote contactless-enabled credit cards (Classic, Gold, Priority, World Elite)
Mobile PaymentYouPass NFCIntroduce NFC mobile payment technology with TIM partnership
VivereWirelessPrepaid Cards & Mobile POSShowcase wireless payment solutions for consumers and merchants
YouPassPrepaid YouPass CardDedicated page for the BNL prepaid card product

Technical Implementation

Technology Stack

Front-End Framework
├── HTML5 (semantic markup with IE conditional comments)
├── CSS3 (custom properties, transitions, @font-face)
└── JavaScript (jQuery 1.11.0)

Libraries & Plugins
├── Normalize.css 2.1.3 (cross-browser consistency)
├── Modernizr 2.6.2 + Respond.js (feature detection, IE8 polyfills)
├── jQuery Cycle2 (content carousels)
├── LayerSlider (complex animated sequences)
├── GreenSock Animation Platform (GSAP)
└── Video.js 4.6 (HTML5 video player)

Typography
├── Google Fonts (Open Sans, Ubuntu)
└── Custom BNP Paribas Sans Family (7 variants, self-hosted)

Build & Infrastructure
├── HTML5 Boilerplate v4.3.0 base
├── Static deployment (no build process)
└── Git version control (GitLab)

Browser Support

Legacy browser support was a core requirement, targeting the Italian banking customer demographic:

<!--[if lt IE 7]>  <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]> <html class="no-js"> <![endif]-->

Custom Font Implementation

The project required strict adherence to BNP Paribas brand guidelines, including custom typography:

@font-face {
font-family: 'BNPPSans Condensed Bold';
src: url('../fonts/bnpp-sans-cond-bold-webfont.eot');
src: url('../fonts/bnpp-sans-cond-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/bnpp-sans-cond-bold-webfont.woff') format('woff'),
url('../fonts/bnpp-sans-cond-bold-webfont.ttf') format('truetype'),
url('../fonts/bnpp-sans-cond-bold-webfont.svg#bnpp_sans_condensedbold') format('svg');
}

Seven font variants were implemented to match corporate identity standards.


Architecture & Design Patterns

Single-Page Scrolling Architecture

Each landing page follows a section-based, single-page scrolling pattern optimized for storytelling:

Interactive Accordion Pattern

The Contactless page features an interactive accordion system for showcasing credit card tiers:

jQuery('.accordionHeader').click(function(e){
e.preventDefault();
jQuery('.accordionHeader').show();
jQuery(this).parent().parent('.accordion').addClass('active');
jQuery(this).parent()
.next('.accordionContent').slideDown();
jQuery(this).slideUp().fadeOut();
jQuery('.accordionHeader').not(this)
.parent()
.parent('.accordion').removeClass('active')
.children('.accordionContent').slideUp();

// Reset nested slider to first slide
jQuery('.cycle-slideshow').cycle('goto', 0);
});

Smooth Scroll Navigation

Custom anchor navigation with offset calculation for fixed header:

var $root = jQuery('html, body');
jQuery('a.simpleAnchor').click(function(e) {
e.preventDefault();
$root.animate({
scrollTop: jQuery( $.attr(this, 'href') ).offset().top - 107
}, 500);
return false;
});

LayerSlider Animations

The Mobile Payment and VivereWireless pages feature complex sequenced animations:

<div class="ls-slide" data-ls="slidedelay: 10000; transition2d: 5;">
<img class="ls-bg" src="img/1_background.png" />
<img class="ls-l" src="img/1_citta.png"
style="bottom: 100%; left: 50%;"
data-ls="offsetxin: 0; offsetyin: 10; delayin: 0;" />
<img class="ls-l" src="img/1_cellulare.png"
style="top: 40%; left: 50%;"
data-ls="offsetyin: -40; delayin: 500; showuntil: 500;" />
</div>

Development Process & Evolution

Git History Analysis

The project evolved through 194 commits across the four repositories:

RepositoryCommitsDevelopment Period
contactless61Jul 7 – Dec 1, 2014
viverewireless56Jul 2 – Jul 30, 2014
mobile_payment45Jul 22 – Oct 21, 2014
youpass32Jul 11 – Jul 16, 2014

Development Phases

Phase 1: Foundation (July 2014)

  • Initial HTML5 Boilerplate setup
  • BNP Paribas font family integration
  • Base responsive grid and navigation
  • Core styling framework

Phase 2: Interactive Features (July-August 2014)

  • Accordion component development
  • Slider/carousel integration
  • LayerSlider animation sequences (3 complex animations)
  • Parallax scrolling effects
  • Smooth scroll navigation

Phase 3: Content & Polish (August-October 2014)

  • Final content integration
  • Image optimization (lossless compression)
  • Cross-browser testing and fixes
  • Floating navigation implementation
  • Mobile viewport adjustments

Phase 4: Production (October-December 2014)

  • Final client revisions
  • Production synchronization
  • Bug fixes and refinements

Key Features Implemented

Visual Features

  • Full-viewport hero sections with animated content
  • Parallax scrolling backgrounds
  • Complex multi-layer animations (GreenSock + LayerSlider)
  • Image carousels with manual navigation
  • Interactive product cards with expand/collapse behavior
  • Responsive image galleries

Technical Features

  • Progressive enhancement for legacy browsers
  • Responsive design (mobile, tablet, desktop)
  • Page preloader with status indicator
  • External link handling (new window)
  • Equal height column synchronization
  • Touch-aware parallax detection

UX Features

  • Fixed navigation with smooth scroll anchors
  • Section-based navigation highlighting
  • Video integration with fallback
  • Social sharing integration (Facebook, Twitter)
  • Direct links to banking portal

Code Metrics

MetricValue
HTML Files14
CSS Files14 (including normalize)
Custom CSS Lines2,267
Custom JavaScript Lines426
Total Commits194
Font Variants7 (custom) + 2 (Google)
Image Assets~400

Responsive Approach

The project implements a mobile-first responsive strategy with breakpoints targeting:

  • Mobile: < 768px (simplified animations, stacked layouts)
  • Tablet: 768px – 1024px (adjusted grid, touch-optimized)
  • Desktop: > 1024px (full experience with all animations)
@media only screen and (max-width: 768px) {
.notelefono { display: none; }
/* Simplified layout for mobile */
}

Team & Credits

Development:

  • Lushano Perera — HTML5/CSS3/JavaScript Coding (@disconnesso)
  • Giovanni Dragone — PHP/JS/JSON Coding (@senzastile)

Agency:

  • Arsenale23 — Media Agency (Rome, Italy)

Client:

  • BNL – Banca Nazionale del Lavoro (BNP Paribas Group)

Lessons Learned

  1. Legacy browser support requires careful progressive enhancement and thorough testing
  2. Corporate font licensing and cross-browser font rendering need early attention
  3. Complex animations benefit from specialized libraries (GreenSock) over pure CSS
  4. Banking sector projects require meticulous attention to accessibility and usability
  5. Multi-repository structure works well for parallel development of related products

Repository Structure

BNL/
├── contactless/ # Credit Cards landing page
│ ├── css/main.css # 738 lines
│ ├── js/main.js # 128 lines
│ └── .git/ # 61 commits
├── mobile_payment/ # YouPass Mobile Payment
│ ├── css/main.css # 623 lines
│ ├── js/main.js # 94 lines
│ └── .git/ # 45 commits
├── viverewireless/ # Wireless solutions
│ ├── css/main.css # 440 lines
│ ├── js/main.js # 114 lines
│ └── .git/ # 56 commits
├── youpass/ # Prepaid card
│ ├── css/main.css # 466 lines
│ ├── js/main.js # 90 lines
│ └── .git/ # 32 commits
└── docs/ # Documentation

Written by Lushano Perera

Digital craftsman exploring the intersection of design, technology, and human experience.