Improving Tufte CSS for Jekyll

After creating the ET-Jekyll theme almost two years ago, I finally got around to revamping the structure and improving a lot of minor performance issues.

Introductions

I’ve always been a sucker for Edward Tufte’s incredibly simple, yet powerful desig…


This content originally appeared on Ugly Duck and was authored by Bradley Taunt

After creating the ET-Jekyll theme almost two years ago, I finally got around to revamping the structure and improving a lot of minor performance issues.

Introductions

I’ve always been a sucker for Edward Tufte’s incredibly simple, yet powerful design work used in his books and handout projects. So, in 2018 I released a Tufte CSS inspired Jekyll theme for the open source community. I called it ET-Jekyll (so original, I know). Tufte CSS was a great starting point for my Jekyll theme, but there were areas I thought could use some minor improvements.

Feel free to read all the details on the design here: ET-Jekyll theme details

Minor Fixes One Year Later

When I finally circled back to this project recently, I noticed some minor issues that could be improved right away with little to no effort. Let’s see the changes made at a glance:

  • Sidenote, marginnote and figure element restyling (flexbox)
  • Table styling fixes (right alignment issues)
  • Switch MathJax over to SVG embeds (performance fixes)
  • Simplify HTML skeleton of main pages, remove overkill classes
  • Remove lazysizes.js to save on load times
  • Fallback on font-display for font loading
  • Inline all CSS for faster initial paint
  • Minor link :hover coloring (accessibility)
  • Add missing image link on example page
  • Update details post structure

You can view all the updates in more detail here.

So what did this accomplish? Let’s break it down below.

First Contentful Paint & Input Delay

The new improvements have netted the theme a savings of 300ms on first paint and reduced the input delay by 150ms. Small wins - but wins nonetheless since every millisecond counts.

First Paint Comparison
First contentful paint savings: 300ms
Input Delay Comparison
Reduction in input delay: 370ms down to 220ms

Fixing Render Blocking Items

The original theme reported a few items that were slowing down the initial render for the end-users:

URL Size Savings
/css/style.css 2KB 150ms
/lazysizes@4.0.1/lazysizes.js 5KB 960 ms
MathJax.js?config=TeX-MML-AM_CHTML 18KB 1,260 ms

These items were resolved by:

  • Rendering all styling inline (therefore removing the extra HTTP request)
  • Removing the lazysizes library altogether (browsers plan to support lazy loading natively in the future)
    • The future plan is to integrate something like Cloudinary for out-of-the-box image processing
  • Switch over MathJax to render equations as embedded SVGs (saves on bandwidth rendering an entire extra typeface)

Lighthouse Numbers

Though it might not look like much, the updated theme receives a 4-point boost to its performance rating during a Lighthouse audit. Having a perfect score would be even better, but I can settle for 2-points under (for now).

Old Version

Performance Accessibility Best Practices SEO
94 100 100 100

New Version

Performance Accessibility Best Practices SEO
98 100 100 100

Final Thoughts

This project could still use some more fine-tuning, but for now I’m fairly happy with the outcome. Even the smallest boost in performance and rendering time makes me feel like I accomplished something worthwhile.

Please don’t hesitate to suggest features or point out any issues you happen to stumble across if you plan to use ET-Jekyll. Thanks for reading!


This content originally appeared on Ugly Duck and was authored by Bradley Taunt


Print Share Comment Cite Upload Translate Updates
APA

Bradley Taunt | Sciencx (2019-11-01T00:00:00+00:00) Improving Tufte CSS for Jekyll. Retrieved from https://www.scien.cx/2019/11/01/improving-tufte-css-for-jekyll/

MLA
" » Improving Tufte CSS for Jekyll." Bradley Taunt | Sciencx - Friday November 1, 2019, https://www.scien.cx/2019/11/01/improving-tufte-css-for-jekyll/
HARVARD
Bradley Taunt | Sciencx Friday November 1, 2019 » Improving Tufte CSS for Jekyll., viewed ,<https://www.scien.cx/2019/11/01/improving-tufte-css-for-jekyll/>
VANCOUVER
Bradley Taunt | Sciencx - » Improving Tufte CSS for Jekyll. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2019/11/01/improving-tufte-css-for-jekyll/
CHICAGO
" » Improving Tufte CSS for Jekyll." Bradley Taunt | Sciencx - Accessed . https://www.scien.cx/2019/11/01/improving-tufte-css-for-jekyll/
IEEE
" » Improving Tufte CSS for Jekyll." Bradley Taunt | Sciencx [Online]. Available: https://www.scien.cx/2019/11/01/improving-tufte-css-for-jekyll/. [Accessed: ]
rf:citation
» Improving Tufte CSS for Jekyll | Bradley Taunt | Sciencx | https://www.scien.cx/2019/11/01/improving-tufte-css-for-jekyll/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.