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
margins
andpadding
have had a major overhaul. #956 #997- any
custom
css that sets amargin
orpadding
should be reviewed and updated accordingly - any
elements
that have lost theirtop
/bottom
margins can be fixed by adding.content-block
to the parent element
- any
- All Components, Style Guide, and Layouts have had a major overhaul to their container
widths
#939 #1011- any
custom
markup on your site should be reviewed and updated accordingly - any
content
thathugs
to theleft
side of thebrowser
window can be fixed by:- adding
.content-block
to 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
padding
on itsinner
content bydefault
- use the class.tab--content
if 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
frame
has 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
nodejs
tov20.11.1
#1007
New features ✨
- four new Background colours #1058
.bg-secondary
.bg-highlight
.bg-accent
.bg-light
- Pathfinder - this replaces the
deprecated
Pathfinder 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
titles
should now use anh2
orh3
element instead ofstrong
#972
<a class="block-container" href="#">
<div class="top-unit">
<h3>...</h3>
</div>
</a>
- you can now
limit
thewidth
oftext
elements inside components by wrapping them inside<div class="text-wrapper">
#1010
<div class="text-wrapper">
<h1>...</h1>
<ul>...</ul>
<p>...</p>
</div>
typography
mixins now allow custommargins
to be set using--fm
#1063
@mixin typography-level-4 {
--fm: 0;
}
- components can now be built using
vue
and exported asnative web components
- please refer todocs/new_component_guide.md
for a guide on how to build them #863 #942- they are
exported
as part of thuom.js
bundle uom-components.js
bundle can be used onnon-gen3
sites
- they are
- new
spacing
variables to ensureconsistent
spacing 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
-consistent
spacing betweensections
of 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-text
variable - it limits themaximum
width oftext
elements #1010 - new
css
mixins:inset-width
,inset-left
, andinset-right
- reduces css duplication #1010bg-padding
- it appliesinline
padding to elements when theleft-aligned
Jump Navigation is used #981
Bug fixes 🐛
- fixed an issue where the
text
inside the Enquirybutton
was inheriting theunderline
on:hover
#956 - Left-aligned In-page navigation now
vertically
aligns thecontent
to thetop
of thecontainer
#956 - Blockquote now accounts for instances of nested
<p>
elements and sets the correctfont
properties #1022 - fixed Double block listing layout on
mobile
viewport #1036 - fixed an issue where the
.box
class was resetting thepadding
of nested components #956 - removed small white space below
<img>
by usingvertical-align: bottom;
#966 - swapped
import
order offigure
andembedded-media
so the correct styles are applied #995 - Filtered Listings now allows
dynamic
height for each item #964 - Selects now have a
max-width
of25rem
to match other form elements #939 - removed
min-height
from[role='main']
#956 - Jump Navigation works with new page width and all content types #939 #981 #982 #985
Deprecation notice⚠️
- the following
components
and theirclasses
have beendeprecated
and 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
two
column 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--embed
and.figure--wide
- defaults to normal figure size #939 #1017.figure--confined
- figures by default are nowconfined
#939 #1017.image-gallery--small
and.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
may
create 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-first
and.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-thumb
and.audio-thumb
#1017.with-filters
#997.sans
,.fixed
,.serif
,.thin
,.light
,.regular
, and.bold
#1050.profile
,.profile .intro
#924
- the following
css
vars have been removed:--w-xxsml
,--w-xsml
, and--w-sml
#939--vr
- you can use--sp-3
instead #967- backgrounds #1058
--col-bg-alt-100
- use--col-bg-alt
instead--col-bg-highlight-100
- use--col-bg-highlight
instead--col-bg-accent-100
- use--col-bg-accent
instead
- outlines #1060
--col-outline-alt-100
- use--col-outline-alt
instead--col-outline-highlight-100
- use--col-outline-highlight
instead--col-outline-accent-100
- use--col-outline-accent
instead
- 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
, andlg
options fordata-container
- it now defaults to the same size #939 - removed
wrapper
,jump
,injection-wrapper
mixins #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-gutter
to1rem
that increases to2rem
ondesktop
breakpoint #939 #962 - updated
typography
margins #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-alt
from--col-grey-light-25
➡️--col-grey-light-100
#1060--col-outline-highlight
from--col-sage-light-25
➡️--col-sage-light-100
#1060--col-outline-accent
from--col-blue-dark-25
➡️--col-blue-dark-100
#1060--col-bg-alt
from--col-grey-light-25
➡️--col-grey-light-100
#1058--col-bg-highlight
from--col-sage-light-25
➡️--col-sage-light-100
#1058--col-bg-accent
from--col-blue-dark-25
➡️--col-blue-dark-100
#1058
- Flash Message now requires its
content
to benested
inside<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
divider
line from Figure captions #1021 - all Flash Messages are displayed at the
top
of the page instead thefirst
one #1020 - moved
--gap
calculation outside of thegrid
mixin so it can be used elsewhere #956 - removed
top
andbottom
margins from Buttons #956 - Buttons are now
100%
width onmobile
devices except for the Preview banner and Inline Form #934 #1029 .title
is now restricted toh1
,h2
, andh3
elements #956h1
,h2
,h3
,h4
,h5
,h6
,p
,li
, andblockquote
elements have beenrestricted
to awidth
of55rem
#1010- refactored
typography
to usemargins
instead ofpadding
#923 - removed
margin
/padding
typography overides from from all Components, Style Guide, and Layouts #923 typography-level-[0-7]
mixins now addmargin-bottom
to theelement
#923- removed
margin
/padding
figure overrides from other components #966 - removed unnecessary
img
styles from components #966 - updated
container
mixin 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
jumpnav
overrides #939 - removed Filtered Listings
dependency
onisotype-layout
#964 - migrated
.with-figure
toassets/style-guide/figure/index.css
#1013 - refactored Components to work with the
new
text widthlimitation
#1010 #1062 - refactored Style Guide to work with the
new
text widthlimitation
#1010 #1062 - updated components to use the Grid:
- created some
helper
scripts to avoid somebreaking
changes:- Content Block automatically wraps content inside
<div class="content-block__inner"></div>
if it isn't present in theDOM
#1010 - Enquiry automatically injects the
.accordion
class #1020 - Flash Messages automatically wraps content inside
<div class="flash__inner"></div>
if it isn't present in theDOM
#1020 .text-center
is automatically added to elements using.center
ortext-align: center
#1010 #1057h1
,h2
,h3
,h4
,h5
,h6
,p
,ul
,ol
, andblockquote
elements are automatically wrapped inside<div class="text-wrapper"></div>
tocontrol
the width of the content of the page #1010 #1011
- Content Block automatically wraps content inside
- removed
EventEmitter
as it's no longer used #1053 - formatted all files using
prettier
#1009 #1047 - removed
deprecated
rules from.stylelintrc
#1000 - removed
custom
rule overrides in.stylelintrc
as they're now handled bystylelint-config-standard
#1000 - updated
.browserslistrc
toexclude
olderbrowsers
#947 - configured
webpack
to compilevue
files intonative web components
#863 #942 - migrated from
babel
toesbuild
to simplify thetool-chain
and to speed upcompiling
&transpiling
ofjs
code - refer to https://esbuild.github.io/ and https://github.com/privatenumber/esbuild-loader for more information #920 #948- updated
webpack
to useesbuild-loader
- updated
jest
to useesbuild-jest
- removed
babel.config.js
- use
browserslist
to determine thetarget
browsers 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-commonjs
esbuild-loader
esbuild-jest
esbuild-plugin-browserslist
vue
vue-loader
vue-template-compiler
jest-html-loader
jest-envrionment-jsdom
- updated packages:
postcss
#996 #1006postcss
➡️^8.4.35
postcss-import
➡️^16.0.1
postcss-loader
➡️^8.1.1
postcss-mixins
➡️^10.0.0
postcss-nested
➡️^6.0.1
postcss-preset-env
➡️^9.5.1
@csstools/postcss-global-data
➡️2.1.1
stylelint
#1000stylelint
➡️^16.2.1
stylelint-config-property-sort-order-smacss
➡️^10.0.0
stylelint-config-standard
➡️^36.0.0
stylelint-order
➡️^6.0.4
eslint
#1002eslint
➡️^8.57.0
eslint-config-prettier
➡️^9.1.0
eslint-plugin-jest
➡️^27.9.0
webpack
#1004 #1006webpack
➡️^5.90.3
webpack-cli
➡️^5.1.4
css-loader
➡️6.10.0
html-loader
➡️5.0.0
mini-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.0
jest-axe
➡️8.0.0
prettier
➡️3.2.5
#1009
- removed packages #920 #964 #1000 #1005 #1053
stylelint-config-prettier
asstylelint v16
removed support for itisotope-layout
super-event-emitter
@babel/plugin-transform-runtime
@babel/preset-env
babel-loader
css-minimizer-webpack-plugin
html-loader-jest
- created
e2e
tests: - removed all
test-component
files and references to it #863 #942 - added some more pages to the
regression
test suite #1013
Documentation updates
- tidied up Homepage and added link to
cms
#1049 - updated
docs/new_component_guide.md
on 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
mobile
viewport #997 - migrated all
Example
pages to their own Layout sections #1049- updated relevant
documentation
pages to point to newurls
- mirgrated
e2e
tests toe2e/tests/layouts/
- added
redirect
rules innetlify.toml
- updated relevant
- updated
layout-page-header.html
to uselayout-breadcrumbs
todynamically
generate thebreadcrumbs
in the Page Header #1049 - removed
examples
from Page Header hamburger menu #1049 - updated documentation:
- created Usage on a non-gen3 website detailing how to use
web components
onnon-gen3
sites #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 helpers
page #956