For Black Friday 2021, we wanted to release a site-wide rebrand to replace our previous, ten-year-old design with something much more modern. Our goals were for it to not only be exciting and new from a visual perspective, but to also make use of progress in web tech and accessibility.
Every decision we’ve made since then has been based on a set of assumptions that our CEO, Sahil, made back then.But assumptions and reality drift apart over time. This is not a phenomenon specific to Gumroad; ideas and requirements change as our culture and technology does. Software engineering moves quickly, and there are new things to learn every day.
Heading 2
This clean slate meant complete freedom on how to structure the new design system and its files. We had a lot to consider, as there had been much progress since our inception in 2011:
- Accessibility as a whole has recently and rightfully become a much more popular topic on the web exciting and innovative while still being understandable to visually impaired users.
- HTML had introduced multiple new semantic elements conveying meaning and natively encapsulating functionality. These have implicit accessibility benefits as browsers can render them however is most beneficial given the context.
- CSS had grown to support many new technologies - grid layouts now provide consistent styling of child elements, advanced selectors allow supporting and enforcing a specific structure, and animations have become so much easier to create and work with.
Aside from the progress in web technologies, there were also a lot of new design frameworks to pick from, with the most popular currently being Tailwind (sold via Gumroad!). Most of these frameworks offer a pre-built component gallery and/or a collection of utility classes to cover common use-cases of CSS.
Heading 2
We ultimately decided against using any of these frameworks, and to instead build a custom component system from scratch in (S)CSS. We had a great opportunity to think about Gumroad’s design from the ground up, and we did not want to taint that with someone else’s assumptions. We love working with HTML, CSS, and web standards. And thanks in large part to the progress mentioned above, we didn’t need much more than that:
Heading 3
We use inline CSS to describe exceptions, and meaningless and specific layout containers. This is probably the biggest departure from the usual procedure in CSS frameworks and code styles, which tend to prefer using utility classes in such cases.
Heading 4
We use inline CSS to describe exceptions, and meaningless and specific layout containers. This is probably the biggest departure from the usual procedure in CSS frameworks and code styles, which tend to prefer using utility classes in such cases.
Heading 5
We use inline CSS to describe exceptions, and meaningless and specific layout containers. This is probably the biggest departure from the usual procedure in CSS frameworks and code styles, which tend to prefer using utility classes in such cases.
- Accessibility as a whole has recently and rightfully become a much more popular topic on the web exciting and innovative while still being understandable to visually impaired users.
- HTML had introduced multiple new semantic elements conveying meaning and natively encapsulating functionality. These have implicit accessibility benefits as browsers can render them however is most beneficial given the context.
- CSS had grown to support many new technologies - grid layouts now provide consistent styling of child elements, advanced selectors allow supporting and enforcing a specific structure, and animations have become so much easier to create and work with.
Heading 2
Every decision we’ve made since then has been based on a set of assumptions that our CEO, Sahil, made back then.But assumptions and reality drift apart over time. This is not a phenomenon specific to Gumroad; ideas and requirements change as our culture and technology does. Software engineering moves quickly, and there are new things to learn every day.
Every decision we’ve made since then has been based on a set of assumptions that our CEO, Sahil, made back then.But assumptions and reality drift apart over time. This is not a phenomenon specific to Gumroad; ideas and requirements change as our culture and technology does. Software engineering moves quickly, and there are new things to learn every day.
“ This is probably the biggest departure from the usual procedure in CSS frameworks and code styles, which tend to prefer using utility classes in such cases. ”
We ultimately decided against using any of these frameworks, and to instead build a custom component system from scratch in (S)CSS. We had a great opportunity to think about Gumroad’s design from the ground up, and we did not want to taint that with someone else’s assumptions. We love working with HTML, CSS, and web standards.