Skip to content

Bolt v2.6.0 Released!

Compare
Choose a tag to compare
@sghoweri sghoweri released this 31 Aug 13:48
· 9070 commits to master since this release

Super huge thanks to @danielamorse, @EvanLovely, @mikemai2awesome, @TashaBasalt, @adamszalapski, @joekarasek, @relimck, @remydenton, @christophersmith262, and @margoromo for all of your hard work getting this latest release of the Bolt Design System out the door!! 🎉

What's New?

✨New @bolt/critical-path-polyfills Package

Added a new Bolt package containing a handful of Javascript polyfills that get inlined on the page. This should help assist with smoothing over some cross browser compatibility behavior with some 3rd party libraries! Check out the docs for more information!

Component Updates, Enhancements & Fixes

Image

  • ⚡️ Image-related web performance improvements + misc fixes #1240
  • 🐛 Fixed an unreported issue with dynamically injected Images causing lazysizes to not know to lazyload the new images now on the page
  • 🐛 Fixed an issue with the Image component occasionally rendering before lazysizes has finished booting up. #1368

Modal

  • ✨ Added a new toggle Javascript method. #1327
  • 🐛 Fixed the color of the modal's close button in IE11. #1306
  • 🔨 Turned off the noBodyScroll feature. This now allows the page to scroll behind the modal by default as a temporary workaround to prevent the page's content from shifting. #1304
  • 📝 Better modal documentations and misc CSS enhancements #1319
  • ✏️ Fixed a typo in the demo showing how to use the Modal component to display an image with caption text. This typo addresses an issue causing the caption's markup to not display correctly. #1225

Button

  • ♿ Add the disabled HTML attribute to Button's inner elements when the disabled prop is set. #1260
  • 💄 Updated Button to remove double-outline from on focus. #1276
  • ♻️ Improved server-side rendering of the Button component's Twig template when a URL's target is defined via Drupal's {{ attributes }} object instead of the default target prop. #1266
  • ✅ Rewrote Button's manual testing instructions so they are up to date with testing pages. #1358

Link

  • 🐛 Updated the Link component to prevent duplicate IDs from getting added when passed along via the attributes object #1329
  • 💄 Updated Link to remove double-outline from on focus. #1276

Action Blocks

  • ♻️ Updated include path in action-block.twig adaptor file from _action-block.twig to _action-block-item.twig. #1233
  • ✅ Added tests for adaptor file and deprecated props. #1233

Nav Indicator

  • 🐛 Fixed a bug with the Nav indicator in IE11. #1310

Navlink

  • ♻️ Updated the Navlink Javascript to fix an error getting thrown if a link that gets clicked on isn't a link that would get scrolled to. #1322

Video

  • 📝 Add comment about autoplay behavior on iOS #1347

Trigger

  • ♿ Add the disabled HTML attribute to Trigger's inner elements when the disabled prop is set. #1260

Code Snippet

  • ♿ Updated the component's Twig template to work better when Javascript is disabled / hasn't finished loading #1224

Navbar

  • 💄 Tweaked the Navbar component's CSS rules to better handle the space between extra items added to the Navbar Title section + extra items added to the main content section of the Navbar. #1290

Carousel

  • 💄 Fixed a minor sub-pixel rendering issue with chevron icon used on carousel nav buttons. #1230

Icons

  • 👽 Updated JS-generated SVG icons due on upstream SVGO / compression updates #1333

Autolink / Autotrack

  • ♻️: Updated the Javascript to the @bolt/analytics-autolink and @bolt/analytics-autotrack packages to no longer throw a Javascript error if Google Analytics's Javascript never loads OR if a config for tracking external-bound links is undefined. #1321

Sticky

  • 🐛 Changed sticky z-index to not cover up mega nav #1291
  • ✅ Added Jest snapshot tests, Nighwatch functional testing, and TESTING.md manual testing steps to the Sticky component #1251

Basic Jest snapshot tests, manual testing docs, and some Nightwatch tests added for:

Core & Build Tools Updates

Bolt Core

  • 🐛 Added a JavaScript patch to @bolt/core’s standard suite of cross browser polyfills (specifically patching getOwnPropertyNames) to help address a downstream "Access Denied" error in IE 11. #1317 \
  • 🐛 Sass hotfix to address a few of the auto-generated utility classes for padding / spacing being different for Japanese-specific lang builds. #1265
  • ✨ Added bolt-repeat-rule mixin to repeat a block of styles as a separate rule-set for each selector provided, helps keep :host rulesets DRY.

Build Tools

  • ✨ Updated the browserSync config to ignore watching files for changes in the node_modules and vendor directories. This should fully restore the ability to run npm start in Drupal and utilize Webpack Dev Server and live reloading! #1323
  • ✨ Updated the @bolt/build-tools to allow for customizing the full URL that gets proxied by Browsersync. This allows for non-Bolt provided servers (like Drupal) to benefit from live reloading when CSS and Javascript changes while doing local development! #1237
  • ✨ Updated the openServerAtStart config option to now try and reuse an existing browser tab previously opened. This should be a super helpful update for devs ever needing to restart the build tools while doing local development!
  • 🔧 Update @bolt/build-tools to add 'env' to the global data exposed to all JavaScript files (via Webpack) + wrap 'env' and 'lang' in JSON.stringify() #1241
  • 🔧 Adjusts the CLI logic for toggling internationalization on / off #1362
  • 📝 Added docs on configuring language-specific builds using the @bolt/build-tools #1267
  • 👽 Fixed errors in the Build Tools caused by a recent upstream dependency change #1362
  • ✅ Updated @bolt/build tools Jest snapshots to reflect minor CSS changes #1333

Infrastructure, Examples, & Docs Site Updates

Infrastructure

  • ✨ Added a new monorepo helper script to automatically update NPM dependencies in packages not managed by directly by Lerna (ex. the example integration demos using Vue, Angular, Drupal Lab, etc). #1205
  • ✨Added a new suite of testing utilities (including a powerful new way to walk through Twig-based dependencies) + quicker Jest tests via #1226
  • ⚡️ DevOps related updates to upgrade Bolt’s Puppeteer instances to now use Puppeteer Core + launch using an instance of Chrome already installed; significantly speeding up / slimming down local dev installs + shaving nearly a minute off of our Travis CI build! #1255
  • ⚡️Decreased time to run Jest tests by ~70% (4 minutes faster!) 🎉 #1282
  • 🔧 Updated the Nightwatch config to fix chrome driver issues #1328
  • 🏗 Major updates to Bolt’s Web Component Server Side Rendering Server thanks in huge part to @christophersmith262 -- speeds up server-side rendering by ~128x (~0.01s response)!! #1309
  • 🏗 Incorporated several different updates to improve overall testing consistency in Bolt (ex. more predictable results when running Jest tests locally vs on Travis) in addition to better handling the results from successful / failing visual regression tests. #1272
    image
  • 🏗 Added global type checking (not compiling) of Javascript files in the Bolt monorepo using TypeScript via yarn test:types.
  • ➕ Added missing yeoman-doctor dependency needed for Bolt's Yeoman component generator #1333
  • ➕ Updated the monorepo install process to properly install and pre-build the new @bolt/critical-path-polyfills package #1333

Docs Site

  • 🚀 Migrated all Bolt code deployments to use static site hosting on Now.sh v2 + stop using Docker containers for deployments. #1249
  • 💄 Pattern Lab UIKit visual improvements #1255
  • 🐛Squashed a bunch of IE-specific Pattern Lab bugs #1255
  • 📝 Added developer docs on manually cutting a Bolt release. #1283
  • 📝 Added guidelines for when (and when not) to patch npm packages on the consumer/Drupal side #1301

Drupal Lab

  • ✅ Added new Drupal Lab tests to check that a temporary workaround fixes the issue in Drupal (immediate workaround using the most recent release of Bolt) + adds a new suite of tests for the latest upcoming release of our build tools. #1265

Deprecations

  • 💥 Deprecate isBackgroundVideo prop #1326
  • 💥 Renamed Bolt's Yeoman component generator package, generator-bolt to @bolt/generator-bolt to avoid publishing issues due to NPM namespace permissions. #1305



By the numbers:

  • ~52 new features, improvements, and maintenance updates!
  • 9+ bugs squashed
  • 2 code deprecations
  • 10 contributors
  • 451 commits (excluding merge commits)

Commits Per Person (v2.5.7...v2.6.0)

  • 252 Salem Ghoweri
  • 66 Daniel Morse
  • 39 Evan Lovely
  • 35 Mike Mai
  • 23 Tasha Zuniga
  • 21 Adam Szałapski
  • 6 Joe Karasek
  • 4 Marcin Religa
  • 3 Rémy Denton
  • 2 Chris Smith
Emojii Guide
  • ♿ Accessibility / Usability
  • 💥 Breaking changes
  • ✨ New features
  • 🐛 Bug fix
  • ✏️ Typo
  • 💄 Cosmetic improvements / UI and style updates
  • ♻️ Refactoring code
  • ✅ Adding / updating tests + Snapshots
  • ⚡️Performance improvements
  • 📝 Writing and updating docs
  • 🔧 Configuration changes
  • 👽 Updating code due to external API changes.
  • 🏗 Architectural changes
  • 🚀 Deployment-related work

Check out the full emojii guide.


By The Numbers Breakdown

New features, improvements & maintenance

  • ✨ 8
  • 📝 5
  • ⚡️ 3
  • 🔧 4
  • ♿ 3
  • 👽 2
  • 💄 5
  • ♻️ 4
  • 🏗 3
  • ➕ 2
  • 🚀 1
  • ✅ 13

Code deprecations

  • 💥 2

Bug Fixes

  • 🐛 9