Origami Frontend Components & Services

Readme: o-footer-services

o-footer-services is an o-footer alternative for tools, internal products, and specialist titles at the FT.


Check out how to include Origami components in your project to get started with o-footer-services.


A footer requires the following markup:

<footer class="o-footer-services">
    <div class="o-footer-services__container">
        <div class="o-footer-services__wrapper o-footer-services__wrapper--top">
            <p class="o-footer-services__logo">Origami</p>
            <a class="o-footer-services__icon-link o-footer-services__icon-link--github" href="http://github.com/financial-times/o-footer-services">View project on GitHub</a>
            <a class="o-footer-services__icon-link o-footer-services__icon-link--slack" href="https://slack.com/messages/[id]/">#slack-channel</a>
            <p class="o-footer-services__content">Help or advice can be found here <a href="mailto:an.email@someplace.com">an.email@someplace.com</a> and there are other places, <a href='/somewhere'>like this one</a>.</p>
    <div class="o-footer-services__container">
        <div class="o-footer-services__wrapper o-footer-services__wrapper--legal">
            <div class="o-footer-services__links">
            <a href="https://help.ft.com/help/legal-privacy/cookies/">Cookies</a>
            <a href="https://help.ft.com/help/legal-privacy/copyright/copyright-policy/">Copyright</a>
            <a href="https://help.ft.com/help/legal-privacy/privacy/">Privacy</a>
            <a href="https://help.ft.com/legal-privacy/copyright-policy/">Slavery Statement & Policies</a>
        <p><span>&copy; THE FINANCIAL TIMES LTD 2020.</span> FT and 'Financial Times' are trademarks of The Financial Times Ltd.</p>

All elements within the .o-footer-services__wrapper--top section are entirely optional. You can find examples of the variations in the registry.

As a move to future proof this component and the products that may use it, .o-footer-services__wrapper--legal is not optional.


To use a dark theme, apply the o-footer-services--dark modifier class:

-<footer class="o-footer-services">
+<footer class="o-footer-services o-footer-services--dark">
    <!-- ... -->


To output all o-footer-services CSS call oFooterServices().

@include oFooterServices();

To keep your CSS bundle size small, include o-footer-services features granularly using the opts argument.
E.g. to output styles for the dark theme with a project logo, but without the default icon link to Github:

@include oFooterServices($opts: (
    'logo': 'ftlogo-v1:origami',
    'icons': ('slack'),
    'themes': ('dark'),

All options include:

Option Description Brand support
logo A logo from the image service to include in the footer (e.g. ftlogo-v1:origami). core, internal, whitelabel
icons A list of social share icons to include links for, defaults to '('slack', 'github')`. core, internal, whitelabel
brand-strip Whether to include styles for the brand strip at the bottom of the footer, "a Nikkei company". core, internal, whitelabel
themes A list of themes to include. Currently the only theme is dark, which is only supported by the core brand. core

Your project should call oFooterServices once, and add to the opts argument when new features are needed. However, if oFooterServices is called multiple times, for example for code splitting across multiple bundles, the $include-base-styles argument may be set to false to omit fundamental base styles required by all options.

// Output o-footer-services with no icons.
@include oFooterServices($opts: (
    'logo': 'ftlogo-v1:origami',
    'icons': ()

// Include o-footer-services icons separately,
// without repeating base styles output above.
// This is *not* recommended.
@include oFooterServices($opts: (
    'icons': ('slack', 'github')
), $include-base-styles: false);


For users of the whitelabel brand, o-footer-services allows customisation using the oFooterServicesCustomize mixin.

$o-brand: whitelabel;
@import '@financial-times/o-footer-services/main';

// Customise o-footer-services colours
@include oFooterServicesCustomize((
    'text-color': rgb(73, 0, 39),
    'background-color': rgb(251, 238, 240),
    'border-color': hotpink,
    'link-color': rgb(156, 4, 85),
    'link-hover-color': rgb(156, 4, 85),
    'legal-text-color': rgb(214, 73, 148),
    'brand-background-color': oColorsByName('black'),
    'brand-foreground-color': oColorsByName('white'),

// Output o-footer-services css
@include oFooterServices($opts: (
    'logo': 'ftlogo-v1:origami',
    'icons': ()

Available brand variables include:

Migration guide

State Major Version Last Minor Release Migration guide
✨ active 4 N/A migrate to v4
⚠ maintained 3 N/A migrate to v3
╳ deprecated 2 2.2.0 migrate to v2
╳ deprecated 1 1.0.2 N/A


If you have any questions or comments about this component, or need help using it, please either raise an issue, visit #origami-support or email Origami Support.


This software is published by the Financial Times under the MIT licence.

Switch component view

GitHub: o-footer-services@4.2.6

Install o-footer-services

If using the Build Service, add o-footer-services@^4.2.6 to your link tag.

If using the npm package manager for a Manual Build, run npm install --save-peer "@financial-times/o-footer-services@^4.2.6".

Help & Support

o-footer-services is maintained directly by the Origami team. If you have any questions about o-footer-services or Origami in general, we are happy to help. 😊

Slack: #origami-support
Email: origami.support@ft.com

Feedback / Issues

To report a bug or request features please create an issue on Github. For support or general feedback please get in touch 😊

Slack: #origami-support
Email: origami.support@ft.com