v15.0.0
Before you upgrade, please take note of any breaking changes and deprecation notices which may affect your site. View the Upgrade Guide to see examples of how to address breaking changes.
Breaking changes 💥
While significant effort has been made to minimize breaking changes, it’s possible that some could still impact your site.
- Typography
marginsandpaddinghave had a major overhaul. #956 #997- any
customcss that sets amarginorpaddingshould be reviewed and updated accordingly - any
elementsthat have lost theirtop/bottommargins can be fixed by adding.content-blockto the parent element
- any
- All Components, Style Guide, and Layouts have had a major overhaul to their container
widths#939 #1011- any
custommarkup on your site should be reviewed and updated accordingly - any
contentthathugsto theleftside of thebrowserwindow can be fixed by:- adding
.content-blockto the parent element - or, in some cases on older pages, update the markup so that it’s a direct child of
[role="main"]
- adding
- any
- Tabs now have no
paddingon itsinnercontent bydefault- use the class.tab--contentif you'd like to add some #956
<div class="tabbed-nav">
<div class="full-width">
<nav role="tablist">...</nav>
</div>
<div class="tab tab--content" id="..." role="tabpanel">...</div>
</div>
- Theme colour
framehas been renamed toaccent#1059--col-bg-frame➡️--col-bg-accent--col-bg-frame-50➡️--col-bg-accent-50--col-bg-frame-75➡️--col-bg-accent-75--col-outline-frame➡️--col-outline-accent--col-outline-frame-50➡️--col-outline-accent-50--col-outline-frame-75➡️--col-outline-accent-75
- Typography vars have been renamed to
--fm-level-x#923--text-gap-level-0➡️--fm-level-0--text-gap-level-1➡️--fm-level-1--text-gap-level-2➡️--fm-level-2--text-gap-level-3➡️--fm-level-3--text-gap-level-4➡️--fm-level-4--text-gap-level-5➡️--fm-level-5--text-gap-level-6➡️--fm-level-6--text-gap-level-7➡️--fm-level-7
- updated
nodejstov20.11.1#1007
New features ✨
- four new Background colours #1058
.bg-secondary.bg-highlight.bg-accent.bg-light
- Pathfinder - this replaces the
deprecatedPathfinder component #963 #998 #1008 #1032 #1064 - seven new Form inputs are available for use by using the following input
types#1026- Colour Picker -
color - Date -
date - File Upload -
file - Month -
month - Range -
range - Tel -
tel - Time -
time
- Colour Picker -
<input id="" type="date" name="" />
- Block Listing
titlesshould now use anh2orh3element instead ofstrong#972
<a class="block-container" href="#">
<div class="top-unit">
<h3>...</h3>
</div>
</a>
- you can now
limitthewidthoftextelements inside components by wrapping them inside<div class="text-wrapper">#1010
<div class="text-wrapper">
<h1>...</h1>
<ul>...</ul>
<p>...</p>
</div>
typographymixins now allow custommarginsto be set using--fm#1063
@mixin typography-level-4 {
--fm: 0;
}
- components can now be built using
vueand exported asnative web components- please refer todocs/new_component_guide.mdfor a guide on how to build them #863 #942- they are
exportedas part of thuom.jsbundle uom-components.jsbundle can be used onnon-gen3sites
- they are
- new
spacingvariables to ensureconsistentspacing is used througout the codebase #956 #967 #968 #997--sp-1-0.5rem--sp-2-1rem--sp-3-1.5rem--sp-4-2rem--sp-5-2.5rem--sp-6-3rem--sp-7-3.5rem--sp-8-4rem--sp-9-4.5rem--sp-10-5rem--sp-layout-consistentspacing betweensectionsof content and components
- new Theme colours #1026 #1056 #1058 #1060
--col-bg-primary-25--col-bg-primary-50--col-bg-primary-75--col-bg-alt-25--col-bg-hightlight-25--col-bg-accent-25--col-outline-alt-25--col-outline-hightlight-25--col-outline-accent-25--col-form-input-bg-hover--col-form-input-checked-hover
- new
--w-textvariable - it limits themaximumwidth oftextelements #1010 - new
cssmixins:inset-width,inset-left, andinset-right- reduces css duplication #1010bg-padding- it appliesinlinepadding to elements when theleft-alignedJump Navigation is used #981
Bug fixes 🐛
- fixed an issue where the
textinside the Enquirybuttonwas inheriting theunderlineon:hover#956 - Left-aligned In-page navigation now
verticallyaligns thecontentto thetopof thecontainer#956 - Blockquote now accounts for instances of nested
<p>elements and sets the correctfontproperties #1022 - fixed Double block listing layout on
mobileviewport #1036 - fixed an issue where the
.boxclass was resetting thepaddingof nested components #956 - removed small white space below
<img>by usingvertical-align: bottom;#966 - swapped
importorder offigureandembedded-mediaso the correct styles are applied #995 - Filtered Listings now allows
dynamicheight for each item #964 - Selects now have a
max-widthof25remto match other form elements #939 - removed
min-heightfrom[role='main']#956 - Jump Navigation works with new page width and all content types #939 #981 #982 #985
Deprecation notice⚠️
- the following
componentsand theirclasseshave beendeprecatedand will be removed in a later version:- Pathfinders - you can use the new Pathfinder component #963
.pathfinder-2,.pathfinder-3,.pathfinder-4.pathfinder-2.soft,.pathfinder-3.soft,.pathfinder-4.soft.pathfinder-2.white,.pathfinder-3.white,.pathfinder-4.white.pathfinder-2.buttons,.pathfinder-3.buttons,.pathfinder-4.buttons.pathfinder-2 .featured,.pathfinder-3 .featured,.pathfinder-4 .featured
- Two Columns Text Box - you can use a
twocolumn Grid layout #1017.half
- Enquiry - #1044
.enquiry.enquiry--dark
- Content Block - #1050
.content-block--short
- Pathfinders - you can use the new Pathfinder component #963
- the following classes have been removed:
.figure--embedand.figure--wide- defaults to normal figure size #939 #1017.figure--confined- figures by default are nowconfined#939 #1017.image-gallery--smalland.image-gallery--medium- defaults to one gallery size #939 #1017.index-navigation- defaults to same layout as.jump-navigation#939 #1017.layout-sidebar--right- defaults to same layout as.layout-sidebar#939 #1017.sidebar-tabs--right- defaults to.sidebar-tabs#939 #1017.simple-listing--text- defaults to same layout as.simple-listing#939 #1017.simple-listing__except- inherits everything it needs fromp#939 #1017select.alt,select.clear, andselect.clear-dark- defaults to normal Select style #1026 #1050.tabbed-nav.thin- defaults to normal tabs style #924 #1017table.wide- defaults to normal table size #939 #1017.timeline.full-width- defaults to normal timeline size #939 #1017.with-arrow-left- it defaults to a normal button style #1017
- the following classes have been removed and
maycreate breaking changes:.card__image-icon#924.center- you can use.text-center#924 #1017.form__subtext#956.gap-0- you can use.grid--collapsed#924.grid__cell--span-4,.grid__cell--span-3, and.grid__cell--span-2- you can use the grid column size classes #924.grid--fill-firstand.grid--fill-last- you can use the grid column size classes #924.grid-cols-4,.grid-cols-3, and.grid-cols-2- you can use the simple grid classes #924.no-padding#924.nopad,.nopadtop, and.nopadbottom#956.padtop,.padtopshort,.padbottom, and.padbottomshort#956.spacer#956 #1017.subtitle#924.video-thumband.audio-thumb#1017.with-filters#997.sans,.fixed,.serif,.thin,.light,.regular, and.bold#1050.profile,.profile .intro#924
- the following
cssvars have been removed:--w-xxsml,--w-xsml, and--w-sml#939--vr- you can use--sp-3instead #967- backgrounds #1058
--col-bg-alt-100- use--col-bg-altinstead--col-bg-highlight-100- use--col-bg-highlightinstead--col-bg-accent-100- use--col-bg-accentinstead
- outlines #1060
--col-outline-alt-100- use--col-outline-altinstead--col-outline-highlight-100- use--col-outline-highlightinstead--col-outline-accent-100- use--col-outline-accentinstead
- forms #1026
--col-form-select-text--col-form-select-text-hover--col-form-select-bg--col-form-select-bg-hover--col-form-select-outline--col-form-select-outline-invalid--col-form-select-dropdown--col-form-select-dropdown-hover--col-form-select-alt-text--col-form-select-alt-text-hover--col-form-select-alt-bg--col-form-select-alt-bg-hover--col-form-select-alt-outline--col-form-select-alt-outline-invalid--col-form-select-alt-dropdown--col-form-select-alt-dropdown-hover--col-form-select-clear-text--col-form-select-clear-text-hover--col-form-select-clear-bg--col-form-select-clear-bg-hover--col-form-select-clear-outline--col-form-select-clear-outline-invalid--col-form-select-clear-dropdown--col-form-select-clear-dropdown-hover--col-form-select-clear-text-hover--col-form-select-dropdown-disabled--col-form-option-bg--col-form-option-text
- removed
sm,md, andlgoptions fordata-container- it now defaults to the same size #939 - removed
wrapper,jump,injection-wrappermixins #939
Other changes
- updated Accordion and Forms to the new
VID#1026 #1043 - updated css
breakpoints#939--bp-x-wide➡️1280px--bp-xx-wide➡️1440px
- updated container widths #939
--w-mid➡️67.5rem--w-lge➡️77.5rem
- updated
--page-gutterto1remthat increases to2remondesktopbreakpoint #939 #962 - updated
typographymargins #923 #992--fm-level-2-1.5rem➡️1.25rem--fm-level-3-0.625rem➡️1.25rem--fm-level-4-0.5rem➡️1.125rem--fm-level-5-0.375rem➡️1rem--fm-level-6-0➡️0.75rem--fm-level-7-0➡️0.5rem
- updated Theme variables
--col-text-invalid➡️--col-red-dark-75#1026--col-bg-disabled➡️--col-grey-light-50#1026--col-form-input-text➡️--col-text-secondary#1026--col-form-input-text-disabled➡️--col-grey-dark-75#1026--col-outline-altfrom--col-grey-light-25➡️--col-grey-light-100#1060--col-outline-highlightfrom--col-sage-light-25➡️--col-sage-light-100#1060--col-outline-accentfrom--col-blue-dark-25➡️--col-blue-dark-100#1060--col-bg-altfrom--col-grey-light-25➡️--col-grey-light-100#1058--col-bg-highlightfrom--col-sage-light-25➡️--col-sage-light-100#1058--col-bg-accentfrom--col-blue-dark-25➡️--col-blue-dark-100#1058
- Flash Message now requires its
contentto benestedinside<div class="flash__inner"><div>#1020
Before:
<div class="flash flash--info">
<p>...</p>
</div>
After:
<div class="flash flash--info">
<div class="flash__inner">
<p>...</p>
</div>
</div>
- removed
dividerline from Figure captions #1021 - all Flash Messages are displayed at the
topof the page instead thefirstone #1020 - moved
--gapcalculation outside of thegridmixin so it can be used elsewhere #956 - removed
topandbottommargins from Buttons #956 - Buttons are now
100%width onmobiledevices except for the Preview banner and Inline Form #934 #1029 .titleis now restricted toh1,h2, andh3elements #956h1,h2,h3,h4,h5,h6,p,li, andblockquoteelements have beenrestrictedto awidthof55rem#1010- refactored
typographyto usemarginsinstead ofpadding#923 - removed
margin/paddingtypography overides from from all Components, Style Guide, and Layouts #923 typography-level-[0-7]mixins now addmargin-bottomto theelement#923- removed
margin/paddingfigure overrides from other components #966 - removed unnecessary
imgstyles from components #966 - updated
containermixin to use new containerwidths#939 - tidied up Components:
- Article Footer - #1029
- Block listing - #923 #956 #966 #1029
- Enquiry - #956 #997
- Filtered Listings - #964
- Footer - #939 #956
- Headers - #923 #939 #956 #997 #1010 #1017 #1029
Injected footer- #923 #1010- Navigation Block Listing - #923 #956
- News listing - #923 #939 #956 #966 #997 #1000 #1011
- People - #923 #939 #966 #974 #997 #1010 #1011
- Search - #923 #939 #956 #1010 #1011 #1029
- Simple Listing - #939
- Tabs - #923 #924 #939 #956 #971 #997 #1011
- Text Boxes - #939 #956 #966
- Timeline - #923 #939 #956 #1000 #1011
- tidied up Style Guide:
- tidied up Layouts:
- removed all unnecessary
jumpnavoverrides #939 - removed Filtered Listings
dependencyonisotype-layout#964 - migrated
.with-figuretoassets/style-guide/figure/index.css#1013 - refactored Components to work with the
newtext widthlimitation#1010 #1062 - refactored Style Guide to work with the
newtext widthlimitation#1010 #1062 - updated components to use the Grid:
- created some
helperscripts to avoid somebreakingchanges:- Content Block automatically wraps content inside
<div class="content-block__inner"></div>if it isn't present in theDOM#1010 - Enquiry automatically injects the
.accordionclass #1020 - Flash Messages automatically wraps content inside
<div class="flash__inner"></div>if it isn't present in theDOM#1020 .text-centeris automatically added to elements using.centerortext-align: center#1010 #1057h1,h2,h3,h4,h5,h6,p,ul,ol, andblockquoteelements are automatically wrapped inside<div class="text-wrapper"></div>tocontrolthe width of the content of the page #1010 #1011
- Content Block automatically wraps content inside
- removed
EventEmitteras it's no longer used #1053 - formatted all files using
prettier#1009 #1047 - removed
deprecatedrules from.stylelintrc#1000 - removed
customrule overrides in.stylelintrcas they're now handled bystylelint-config-standard#1000 - updated
.browserslistrctoexcludeolderbrowsers#947 - configured
webpackto compilevuefiles intonative web components#863 #942 - migrated from
babeltoesbuildto simplify thetool-chainand to speed upcompiling&transpilingofjscode - refer to https://esbuild.github.io/ and https://github.com/privatenumber/esbuild-loader for more information #920 #948- updated
webpackto useesbuild-loader - updated
jestto useesbuild-jest - removed
babel.config.js - use
browserslistto determine thetargetbrowsers to compile thejs
- updated
- switched from
html-loader-jest➡️jest-html-loader#1005 - installed packages #863 #920 #942 #948 #1003 #1005
@babel/plugin-transform-modules-commonjsesbuild-loaderesbuild-jestesbuild-plugin-browserslistvuevue-loadervue-template-compilerjest-html-loaderjest-envrionment-jsdom
- updated packages:
postcss#996 #1006postcss➡️^8.4.35postcss-import➡️^16.0.1postcss-loader➡️^8.1.1postcss-mixins➡️^10.0.0postcss-nested➡️^6.0.1postcss-preset-env➡️^9.5.1@csstools/postcss-global-data➡️2.1.1
stylelint#1000stylelint➡️^16.2.1stylelint-config-property-sort-order-smacss➡️^10.0.0stylelint-config-standard➡️^36.0.0stylelint-order➡️^6.0.4
eslint#1002eslint➡️^8.57.0eslint-config-prettier➡️^9.1.0eslint-plugin-jest➡️^27.9.0
webpack#1004 #1006webpack➡️^5.90.3webpack-cli➡️^5.1.4css-loader➡️6.10.0html-loader➡️5.0.0mini-css-extract-plugin➡️2.8.1
babel#1005@babel/core➡️7.24.0@babel/plugin-transform-modules-commonjs➡️7.23.3@babel/runtime➡️7.24.0
jest#1005jest➡️29.7.0jest-axe➡️8.0.0
prettier➡️3.2.5#1009
- removed packages #920 #964 #1000 #1005 #1053
stylelint-config-prettierasstylelint v16removed support for itisotope-layoutsuper-event-emitter@babel/plugin-transform-runtime@babel/preset-envbabel-loadercss-minimizer-webpack-pluginhtml-loader-jest
- created
e2etests: - removed all
test-componentfiles and references to it #863 #942 - added some more pages to the
regressiontest suite #1013
Documentation updates
- tidied up Homepage and added link to
cms#1049 - updated
docs/new_component_guide.mdon how to useweb components#863 #942 - improved Icon grid layouts #939
- migrated Titles back to the Style Guide #956
- Facts Variable Columns now displays properly on
mobileviewport #997 - migrated all
Examplepages to their own Layout sections #1049- updated relevant
documentationpages to point to newurls - mirgrated
e2etests toe2e/tests/layouts/ - added
redirectrules innetlify.toml
- updated relevant
- updated
layout-page-header.htmlto uselayout-breadcrumbstodynamicallygenerate thebreadcrumbsin the Page Header #1049 - removed
examplesfrom Page Header hamburger menu #1049 - updated documentation:
- created Usage on a non-gen3 website detailing how to use
web componentsonnon-gen3sites #863 #942 - created Page Header with Sidebar and Jumpnav layout - #939
- created CMS pages:
- Blockquote - #1022
- Block Listing - #956
- Filtered Listing - #964
- Pathfinders - #963
- People- #939
- Text Boxes - #956
- Titles - #1010
- created Form stories -
Colour Picker,Date,File Upload,Month,Range,Tel,Time#1026 - updated CMS Content Block stories #956
- removed the following stories:
- removed
CMS helperspage #956