Bolt v2.6.0 Released!
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 thedisabled
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 defaulttarget
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 inaction-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 thedisabled
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:
- ✅Placeholder
- ✅Blocklist
- ✅Button Group
- ✅ Table
- ✅ Headline
- ✅ Band
- ✅ Device Viewer
- ✅ Copy to Clipboard
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
andvendor
directories. This should fully restore the ability to runnpm 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
- 🏗 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