Weeknote 50: Post-away day bath

Jesus Christ I am sparked out. I'll talk about this more in a jiffy probably but I was in 1 Horse Guards for a Design System developer away day yesterday where we all sat in a stuffy old civil service office meeting room for a whole day overclocking our brains trying to figure out how to rebuild our colour API. I trundled home afterwards with a thumping headache and immediately had a bath. The tiredness still carried over; today I was slow as molasses. It doesn't help the mental ops that I'm behind on my exercising this week. One to try to pull back on the weekend I guess.

Anyway we're at the big 50! Landmark moment!

This week

  • Took the exploration that the designers did last week and a bit of this week and helped form it into an executive summary of what needs doing, including a rough release plan. Seemed to go down a treat when we played it back which is nice. We just have to do it now.
  • Drafted a summary of all our thinking about the changes we want to make to our colour API in 6.0 in preparation for our design system dev away day
  • Attended a dev away day where we attempted to firstly get our heads around our browser support model and how we need to reform it to account for CSS as well as javascript as we start to pull in more advanced CSS bits we want to start using like CSS custom properties. Secondly we tried to figure out what needs to change in our colour API to account for the new colour palette system and if it requires other changes. Extremely heady work but extremely valuable work. We've got a forward plan.
  • Did some forward planning for next week when we're gonna continue some of the colour exploration and start doing pre-releases
  • Helped with releasing GOV.UK Frontend 5.13.0. Upgrade or I'm coming for ya
  • Did some teeny tiny work on adding forced states to our review app to make it easier for designers to assess different components states at a glance. This is in absence of a states system in our review app that would let us see forced versions of all the states of all our components, which I did a bunch of thinking about but ran out of time to implement. One day maybe.
  • After flashing the same SD card a million times which has probably burnt it to within an inch if its life, managed to get my decade old pi zero working with the pi camera module, including casting over my local network! Learnt quite a lot about RTSP and WebRTC which feels blog-worthy... when I one day use this website for blogs other than weeknotes. One day!
  • Went to Tayyabs with a few design system folks. Return of the lamb chops. Tasty, spicy, was very gassy on the way home. Cracking.

Deeper reflections

Colourful ideas

Now that we've done a bunch of mapping of the new palette and new palette system to the old, 'flat' map style palette, we now need to figure out how to implement it. Just updating the palette isn't too hard. The challenge is twofold:

  1. We have a big list of what we call main colours externally and 'applied' colours internally aka colours that are things rather than just a palette of hex codes eg: this colour is what we use for error states, this colour is what we use for input borders etc. Right now it's functional but there's an opportunity here to tighten it up and make it more systemic rather than just being a bunch of variables.
  2. We want to use those them there CSS custom properties and outputting custom properties from our sass functions like govuk-colour rather than hex values. What does that API look like? How do we balance the need for hex values with custom props? Are they opt in? Opt out?

Both of these are very granular, tricky things to figure out but they do need figuring out before we press on with 6.0. Solving both of these, or at least planning a path to solving them, opens the door later on to theming of GOV.UK Frontend, which opens up some exciting opportunities like a feature I won't say the name of but I'm super excited to explore when we are ready to explore it.

The leaning at the moment is to set the cheek levels towards high and see how we get on. We've got a plan for custom properties to prioritise them over hex and only access hex's for when we want our hex values to form individual component APIs for example a set of changeable custom properties for buttons and their different forms like warning and inverse buttons. We'll be putting this all out in a series of pre-releases. If you're reading this and you're working on a service that uses GOV.UK Frontend then I and the team would greatly appreciate your engagement to make sure we're getting things right.

For next week, the plan is just the new palette, applied as per our mapping from last week, with some warning management for the old palette. Expect 6.0.0-beta.0 end of next week.

Ah PS: if you're using govuk-tint or govuk-shade I'd advise dropping them because we'll be scooping them out as well. The new colour system includes a set of prescribed tints and shades per colour so use that or roll your own.