Elements - Account

Colors

Colors used in this project.

Grid

Row-Container

  • <div class="fra-grid-row"></div>

Green box, shows through padding of item container

Grid-Item-Container

  • <div class="fra-grid-col-M-W"></div>

Lightgreen box Where M equals the Mediaquery/Breakpoint (ie. mq1 - mq5) this rule is applied from and W equals the number of columns it will span (full width equals 12).

Breakpoint Viewport width
MQ1 0 - 479px
MQ2 480px - 767px
MQ3 768px - 991px
MQ4 992px - 1279px
MQ5 1280px and up

Icons

This is a list of all icons used in project. There are icons in sizes 32x32, 24x24 and 16x16 dimensions available. You will need to provide a correct container size to style them appropriately.

Usage

<fra-e-icon class="fra-e-icon {{cssClasses}}"
  icon-id="{{iconId}}">
</fra-e-icon>

cssClasses - can be used to individualise the icon.

ìconId - is one of the IDs listed below.

Lazy Image

Lazy Image

Lazy-Image-Example for Full-Grid-Width and 16 :9 Aspect Ratio.

Breakpoint | <span style="color

: #82af32;">Viewport size Image size
MQ1 0px - 479px
MQ2 480px - 767px
MQ3 768px - 991px
MQ4 992px - 1279px
MQ5 1280px and up

Lazy Video

Descriptive Text goes here.

Typography

Page Header

Page header

VIP Page header

CC Page header

Page Notification

Page notification.

Shop

Organism combined from filter and accordion to display shops.

Accountdelete

@TODO : Descriptive Text goes here.

Button

Default buttons used in project.

Usage:

{{> fra-e-button
  isButton=true
  iconOnly=true
  cssClasses=this.cssClasses
  label="Button"
  iconID=this.iconID
  href="#"
  newWindow=true
}}

isButton- (optional) mark-up is rendered as button, defaults to <a>

iconOnly- (optional) mark-up is rendered as icon only

cssClasses - (optional) can be used to individualise the button. Note : icon-only needs to be set w/ class as well as boolean!

label - text label to be used on button

IconID - (optional) is one of the known icon IDs (see [#icons])

href - target URL of this link/button

newWindow - (optional) target window of link/button, defaults to _self

Checkbox

Generic <input type=checkbox> provides data-attributes fo label and value.

Usage

name - parameter name used in form submit

value - value to be used in form submit

label - text label to be shown

cssClasses - (optional) any CSS classes added to wrapping <label> element

checked - (optional) set to "checked" if box should be checked and checkmark should be active

disabled - (optional) set to "disabled" if input should be deactivated

{{> fra-e-checkbox name="{{name}}" value="{{value}}" label="{{label}}" checked="checked" disabled="disabled"}}

Content Disclaimer

Disclaimer at usually placed at the end of component / page content area.

Datetime Picker

Date and Time Picker

Design

[https ://xd.adobe.com/view/c7573a08-b1a2-46dd-8bdc-499d08b9daf5-9204/grid/]

Usage

<fra-e-datetime-picker> element needs one or two <fra-e-datetime-picker__filed> elements inside it. Having two elements means user can select a start and end date (range mode).

<fra-e-datetime-picker__filed> Attributes

type

Can be "date" or "datetime". datetime means there is a time picker in the UI as well. And the custom element will return dates with a time part.

value

The current value. It has a YYYY-MM-DD format (ISO8601) for the date type (similar to input type=[date]) and a YYYY-MM-DDTmm :hh format (e.g. '2022-03-31T08 :22') for the datetime type (similar to input type=[datetime-local]). It can also have placeholder values which will be replaced with the current date / time. for example `value="{TODAY}".

{TODAY} will be replaced with the current date
{NOW} will be replaced with current date containing the time value. (should be used with the datetime type)
{TODAY-1d} yesterday
{TODAY+7d}T12:00 one week from today at noon

min (optional)

Earliest date that the user can choose from. Placeholder values cn be used.

  • the min/max restriction from the first fra-e-datetime-picker__filed element is applied to the datepicker. (start, end have the same restriction in the range mode)
  • the time part is currently ignored.

max (optional)

Last date that the user can choose from. Placeholder values cn be used.

aria-label

Label floating above the filed describing what date it is. e.g. "Departure".

time-label

Label shown in the dialog beside the time picker. (for type=datetime)

form-field-name (optional)

If field is placed in a form, its value will be found in the formDate under this name.

date-form-field-name (optional)

(usefull for [type=datetime]) If field is placed in a form, its date part will be found in the formDate under this name.

time-form-field-name (optional)

(usefull for [type=datetime]) If field is placed in a form, its time part will be found in the formDate under this name.

disabled (optional)

If set, the field is ignored by the datetime picker. i.e. when one of two fields are disabled, the date picker allows selecting on date (no range mode any more). When both or the only filed is disabled, the datepicker UI won't open.

It also won't be in a formDate

<fra-e-datetime-picker> Properties

Other components should not read directly from the <fra-e-datetime-picker__filed> attributes and properties, but rather use the properties of the <fra-e-datetime-picker>.

.date

Returns the current selected date for a non range mode (only one filed).

formats : "YYYY-MM-DD" for type=date, "YYYY-MM-DDTmm :hh" for type=datetime

.start

Returns the current selected date for the start date in range mode (two filed)

.end

Returns the current selected date for the end date in range mode (two filed)

.min

Returns the min allowed date

.min

Returns the max allowed date

.validity

Current use cases have always a default date, so there isn't any scenario were the field is empty and invalid.

.isRange (readonly)

user can select a start and end date

isDateTime (readonly)

Fileds are of type datetime

Example

<fra-e-datetime-picker class="fra-e-datetime-picker">
  <fra-e-datetime-picker__field class="fra-e-datetime-picker__field"
    type="datetime"
    aria-label="Hinflug am"
    time-label="Start:"
    value="{NOW}"
    min="{TODAY}"
    max="2022-12-31"
    form-field-name="start-datetime"
    tabindex="0"
    >
  </fra-e-datetime-picker__field>

  <fra-e-datetime-picker__field class="fra-e-datetime-picker__field"
    type="datetime"
    aria-label="Rückflug am"
    time-label="Ende:"
    value="{NOW+1d}"
    min="{TODAY}"
    max="2022-12-31"
    date-form-field-name="end-date"
    time-form-field-name="end-time"
    >
  </fra-e-datetime-picker__field>
</fra-e-datetime-picker>

Dropdown

Dropdown element for reuse in different components e.g. in shop form.

Facebook Send To Messenger

Custom element which lazy loads FB SDK and initializes it, it would then automatically pick up the markup for the ["send to messenger" plugin](https ://developers.facebook.com/docs/messenger-platform/discovery/send-to-messenger-plugin/) and render a CTA which will connect users FB messenger to FRAnky chat bot which will send information regarding the Flight.

Get Your Guide

Displays GetYourGuide Widget

Highlight Headline

The highlight headline element

Horizontal Rule (hr)

Horizontal Rule to be used with Module Heading

List

Render a Decription List <dl> with alternating background colors. Links in description entries have two states : Icon only in MQ 1-3 and Default Link with Icon in MQ 4-5.

Use w/ data JSON following this structure

{
  "definitions": [
    {
      "label": "Simple Term",
      "desc": {
        "text": "Simple Description",
        "ccsClasses": ""
      }
    },
    {
      "label": "Term with Link",
      "link": {
        "linkLabel": "http://www.lufthansa.com/de/",
        "linkHref": "http://www.lufthansa.com/de/",
        "cssClasses": "fra-e-list__desc-link__link",
        "linkIcon": "fra-icon-arrow-right-extern",
        "iconID": "fra-icon-language"
      }
    },
    {
      "label": "Term with Footnote",
      "desc": {
        "text": "Description with Footnote",
        "footnote": "#ref1"
      }
    }
  ],
  "footnotes": {
    "ref1": {
      "text": "Footnote content"
    }
  }
}

Note the "link" : {} structure where two icons are set, "linkIcon" sets the icon for the Default Link used in MQ 4-5 and iconID sets the icon used as a replacement in MQ 1-3. Also note the footnote structure w/ two entries, one as a reference in the description footnote and one as a seperate list using the reference as key. Foototes are then rendered w/ the help of CSS counters to keep track of the references.

Print

Print button used within Content Navigation.

Radio

Radiobutton Group, for example used in fra-m-car-park-booking, flight-search etc.

Swap Inputs

A wrapper component that gives two inputs the functionality to swap their value.

Table

This is a generic responsive table. In MQ1 and MQ2 content of a row will be displayed as cards. Optional Labels per entry are achieved by setting data-title on each cell.

Tag

Clickable tags used in Location Filter

Time Picker

Design

[https ://xd.adobe.com/view/94155ac4-76f0-4d34-9749-6a548bf54f09-c146/specs/](https ://xd.adobe.com/view/94155ac4-76f0-4d34-9749-6a548bf54f09-c146/specs/)

Usage

<fra-e-time-picker> element needs one or two <fra-e-time-picker__field> elements inside it. Having two elements means user can select a start and end date (range mode).

Attributes

value

The current value. It has a HH-MM format for time. for example value="{NOW}". This will be replaced with current time value.

disabled (optional)

If set/ the field is disabled, the timepicker UI won't open.

Properties

Other components should not read directly from the <fra-e-time-picker__field> attributes and properties, but rather use the properties of the <fra-e-time-picker>.

Toggle

Toggle between two options

Back Button

Basic functionality for a back button

Logout Button

Basic functionality for a logout button which triggers the "gigya" SSO logout.

Only visible when user has already logged-in.

Accordion

Accordion template to be included in components.
Accordion is used as a content-component (use modifier "fra-m-accordion--white-section-header" for consistent styling) and within the footer on mobile MQs.

Accordion Container

Accordion used for editorial contents. Components that can be included : Text-Image, Image, Richtext, Download-list, Richtext-Table.

Accordion-Container is also used for locations-template with full-width-list and brand-module.

VIP

Airline

Implementation of fra-e-list with sample data for airlines.

Airline Filter

Component to filter airlines depending on terminal, hall and so on.

Airlines Accordion

Airports Input

An autosuggester input for Airports.

Usage

data-value if is setted, set the initial airport value.

Banner

VIP Module

shows a background image and displays a banner with headlines, text and cta on top

Benefits

Component showing a list of "benefits" as check-icon and text.

Big Image Text

Parameters:

  • button
  • reverse
  • links
  • headline

Book Flight

The flight booking always links to the domain "flights.frankfurt-airport.com" and appears only on the overview page.

Configuration

You can change the values of the following data attributes for i18n purpose:

data-pax-chd-error The error message to be shown when more toddlers than adults are selected.

data-pax-error The error message to be shown when more than 9 travelers are selected.

data-pax-input-text The text to be shown inside the passenger input.

Brand Module

Collection of brand images used in location template.

Car Park Booking

Car park booking component which is included in Jumbotron (Slider, Non-Slider). This component can be used standalone and can also be a part of the Flight-Park-Search-Widget.

Components Container

Container-Wrapper for two or more components without any space between each other (e.g. offer-teaser and benefit-module).

Contact Teaser

Contact teaser component with image and contact details, including phone and email.

If there are more teasers that won't fit side by side a slider will be added automatically, see example : Teaser Slider.

Content Navigation

Content Navigation containing back and print button.

Cta

Standalone-Button-Component that is positioned within the grid. This CTA is only available as a primary button without an icon.

VIP cta

Datepicker Text

The Datepicker-Text component (e.g. 'Wartezeiten'). Extends functionality of fra-m-expandable-container.

Usage

variantMid- (optional) set true to display the box in orange

variantHigh - (optional) set true to display the box in red

{{> fra-m-datepicker-text}}
{{> fra-m-datepicker-text variantMid=true}}
{{> fra-m-datepicker-text variantHigh=true}}

Download List

List with download-Items. Can be used standalone or within an Accordion-Section.

VIP

Expandable Container

Container with several editorial components. Collapsed by default, can be expanded/collapsed by click on plus/close-button. Fuctionality can be extended by other components (e.g. fra-m-datepicker-text).

Flight bookmark

Flight bookmark used within Content Navigation.

Flight Detail

Flight detail list, data and labels given by JSON.

Flight Info

Component used on flight detail page to show information of the selected flight or train connection

Flight Info Navigation

Flight Info Navigation containing back, print and flight bookmark button.

Flight Process

@TODO : Descriptive Text goes here.

Flights

Table with flight info. Loads 10 entries initially and on each click on button below. Entries link to Flight Detail. Includes fra-m-flights-search to filter flights.

Flights Headline

Displays selected flight type and lays over page-jumbotron. The text changes when Arrivals/ Departures Tab is clicked from flights overview.

Flightupdate

The module is used by the user to sign up for push information. The user can choose between Email / FB-Messenger / Twitter.

Floating Button

Floating (sticky) button in the bottom right corner on any page to link to map.

VIP

Flyout

Flyout

Form Legacy

A wrapper component for legacy form that gives css classes to old markup for new styles. Take a look [hier](http ://localhost :8015/pages/form.html)

Iframe

iFrame wrapper w/ fixed ratio for external legacy content. If fra-m-iframe--mobile-button is set, an external link (styled as button) will be shown in mq1.

Image

Image component that opens overlay on button click.

Jumbotron

Jumbotron Slider used on top of startpage and Jumbotron used on top of some content pages.

VIP Jumbotron

Parameter startpage=true is needed

Location Filter

Component to filter locations depending on terminal, hall and so on.

Location List

List for Location-Template. Can be used as a standalone-component and within the accordion-container-component.

Main Navigation

Main Navigation as a part of the header.

Module Heading

Heading Element for Modules

Next Best Activity

The Next Best Activity component.

Number Input

Input type number with increment and decrement buttons.

Offer Teaser

Teaser for offering anything. Can be used standalone or in combination with the benefits-module within the components-container.

Background Color Options

  • green (default)
  • blue
  • orange

Orders

Parameters:

  • apiOverviewUrl
  • apiDetailsUrl

Overlay

Generic Overlay for reuse in Components.

Page Description

Introduction-Text on overview pages (given by page properties, no richtext).

Park Bookings

Account module which shows the park bookings of the current User

Design

[https ://xd.adobe.com/view/1af4ac0f-729e-4163-b107-9fc4be7b6a90-4fa7/grid]

Popup

Feedback Popup component

Parameters:

  • feedback-url: URL used as link for Feedback button
  • user-consent: Used to override usercentrics consent decision, or for testing purposes in dev environment

Product Teaser

This is the product teaser component with image, title, price and link. Optional there is a badge, former price and price info.

Product teasers are used within an teaser overview container. See Overview Teaser (load more).

Promotion Teaser

Promotion teaser is used to place banners on page. The image has a link and a short text (e.g. "Anzeige") above. There are two types of banners:

Default Banner Super Banner
MQ1: ratio 3:4 MQ1: ratio 1,2:1
MQ2-5: ratio 3:1 MQ2-5: ratio 8,1:1

Richtext

Richtext-Wrapper with styling on tags for AEM Richtext editor. Allowed Components so far : 3 types of headlines, paragraphs with inline-links, unordered lists, link and button.

Richtext Table

Editorial table that can also be used in richtext and accordion.

Sdi Content

@TODO : Descriptive Text goes here.

Search Result Overview

List of search result with load-more button to expand list.

Search Result Teaser

Search result teaser.

Sherpa

Wrapper Component to embed sherpa trip element which shows travel restriction information such as covid testing, visa etc.

sherpa JS will be loaded after cookie consent is set.

Only Visa information. e.g. on Flight Process steps

Shop Accordion

Shop Overview inside an Accordion.

Site Navigation

Navigation with links to top level pages used in larger MQs instead of the main navigation.

Slider

This is the default Slider/ Carousel component.

To change default control button color from Blue to White, add modificator class fra-m-slider--controls-bright to class fra-m-slider.

Sticky Page Header Container

A sticky wrapper for the page header component including the traffic notifications

Switch

A two-column link list with icons for navigation.

Tab

This is a Tab module that can be used in in the jumbotrons of the startsite and overviewsite. It can contain car park the booking and flightsearch modules.

Tabbar

Tabbar to toggle between different components

Teaser Overview (Load more)

Wrapper Component for teasers like text-image or product to provide a grid view of teasers with a "show more" option. If there are more than 6 teasers on MQ4 - MQ5, more than 4 teasers on MQ3 or more than 2 teasers on MQ1 - MQ2 a plus button is added. On click there are loaded three more on MQ4 - MQ5 and two more on MQ1 - MQ3.

Teaser Slider

Slider component with text-image-teasers.

Text Image

Text Image component with overlay to expand images.

VIP

Text Image Teaser

Teaser component to be used in a carousel or a grid-list

VIP

Train Departures

Shows train departures for given time

Video

Video component with grid using fra-e-lazy-video.

Vip Slider

A variation of the generic slider meant to be used on VIP page.

Waiting Times Teaser

Teaser for waiting times anything. Can be used standalone.

Breadcrumb

Breadcrumb component showing a hierarchical list of pages leading to the current page.

Currently used on the Account pages.

Design

[AdobeXD](https ://xd.adobe.com/view/1af4ac0f-729e-4163-b107-9fc4be7b6a90-4fa7/screen/6c718482-a129-44a0-9d40-c32af2cd8da3/specs/)

Protected Container

Component to load based on user user login state.

Screenset

Component to load and render (SAP's) gigya screens for user login, or loading protected content only when the user is logged in.

ScreenSet Overlay

Standalone-Button-Component that is positioned within the grid. This CTA is only available as a primary button without an icon.

User Button

Component part of header which allows the user to have access to SSO relevant ctas