ebi-framework

Homed here are the various assets that make the EBI Visual Framework (CSS, JS, and a few images and build scripts).

Usage no npm install needed!

<script type="module">
  import ebiFramework from 'https://cdn.skypack.dev/ebi-framework';
</script>

README

Build Status Gitter

The EBI Visual Framework v1.3

Homed here are the various assets that make the EBI Visual Framework (CSS, JS, and a few images and build scripts).

These are the core files that power the EBI Visual Framework:

General guidance on using is available at:

Where to start? How to use this?

Head to the EBI Style Lab and start implementing the EBI Visual Framework.

What's new in v1.3?

See a full overview of changes in v1.3 here.

How has the look changed from v1.2?

Very little. We've focused mainly on architectural changes however there are a number of small improvements around spacing and more consistency in button states.

Compare a sample page on the three versions: v1.1, v1.2, v1.3

Upgrading?

Your current version Effort required What you'll get
v1.1 1-2 hours Better performance, a more functional design
v1.2 minutes Better performance, more design flexibility

Details on upgrading

Do I have to upgrade?

If you're using the EBI Visual Framework v1.1 or v1.2 it is not required that you upgrade, but there are a number of improvements for:

  1. sites that show a lot of data
  2. You don't want or can't use the Foundation Framework core CSS
  3. You're a 3rd party site or service and want less of the "EBI look"

About the EBI Visual Framework

This project helps ensure brand consistency and the easy use of modern web design best practices -- such as responsive design, iterative maintenance cycles, and UX-tested patterns.

Releases are planned six months apart, generally in summer/winter. The exact timing and features are discussed in the Web Guidelines Committee and in this project's issue queue.

This project continues efforts of the existing guidance by providing:

  • Modularisation of framework components that will:
    • Require fewer roll-your-own solutions
    • Be more robust out of the box
    • Standardisation of tooling
  • Project themes: colour palettes are now themes with flexible spacing, layout options
    • Sync styles and colour palette with corporate EMBL-EBI styles
  • Update visual assets to make use of contemporary web browser features for:
    • More consistency with print visual language
    • Enhanced mobile support
  • Pattern library for reusable components to speed development and reduce fragmentation (in progress, more targeted for 1.2 release)
  • Page lifecycle tracking: An improved meta-tag based model for maintaining and tracking content freshness, ownership, and intent
  • Regular updates: A versioning system for the framework to help track changes, features, and usage
    • Sass support (optional)
    • NPM updating (optional)
  • Collaboration: A more collaborative code base (note this is on GitHub) to offer a better path for code collaboration and integration

Do I need to download this?

No. The vast majority of users should link to the EBI hosted files. You'll load three CSS files, seven JS files, and use a wrapper HTML. Have a look at the source of the simple boilerplate page.

Outreach

Not all developers are in the same place, so we plan make use of multiple channels:

Versioning

As not all users of the framework will be able to update to the very latest and we do not wish to hold others back, we are using a semantic versioning style of releases.

Major release Minor release Note
(Branch) (Tag)
1.1 .0 Initial release evolving from Compliance theme
" .1 Tagged minor release
" .2 Tagged minor release
" .3 Tagged minor release
1.2 .0 Documented, breaking release
" .1 Tagged minor release
1.3 .0 Documented, breaking release

Difference between major, minor releases:

  • Major releases (1.1, 1.2, 1.3...) can have breaking changes and any such changes will be detailed and tested.
  • Minor releases (0.0.X) will not have changes to code structure or parts and will mainly add features or update visual assets (such as logos or icon fonts).

We support the last two major releases with bug fixes and branding. New features will only be added to the current and development versions.

Where's version 1.0, you ask? Version 1.0 is the old EBI Compliance theme.

Test releases

Testing releases will be identified in their tag, a la: V1.1.0-alpha, where .0-alpha is the tag. -alpha, -beta and -dev are common tag suffixes.

Variant releases

There are no officially supported variants. An Angular-specific variant is being considered.

Deployment

Files are hosted in this pattern:

https://ebi.emblstatic.net/web_guidelines/[repo-name]/[branch]/[repo-files]

That is:

https://ebi.emblstatic.net/web_guidelines/EBI-Framework/v1.3/js/script.js

Building from NPM

We expect the vast majority of users to link to the built CSS and JS files (as shown in the sample HTML files), however some teams may want to download the EBI Framework and modify it for performance or deeper appearance issues.

We've configured the system to build with NPM (no need for gulp or bower).

  1. You need to install node
  2. Install npx with npm install -g npx
  3. Start with npm install && npm run motion-ui-update
  4. For the rest, have a look at package.json. Likely npm run scss command will cover 90% of use cases

Deploying with NPM

Releases are available via NPM at https://www.npmjs.com/package/ebi-framework

Developing locally

  1. Edit any CSS or JS and build with npm run scss or npm run js
  2. Serve index.html with jekyll serve --port 99
  3. Open http://127.0.0.1:99/EBI-Framework/

Todo: Run the build process and serve with gulp and browsersync.

Roadmap