Generate fluid, custom property based design systems on the fly — entirely based on Utopia

Overview

Fluid Design Systems With Netlify On-demand Builders

A proof of concept demonstrating how Netlify on-demand builders can help generate fluid, custom property based design systems on the fly — entirely based on the incredible Utopia.fyi

Usage

To add a fluid typography and spacing system to your project, add a <link> tag like so:

<!-- generate/min-viewport/min-font-size/min-scale/max-viewport/max-font-size/max-scale -->
<link
  rel="stylesheet"
  href="https://fluid-design-system.netlify.app/generate/320/16/minor-third/1920/20/perfect-fourth"
/>

Once included, the link above will add a set of CSS custom properties to the html element, something like this:

:where(html) {
  /* Font Sizes */
  --step-0: clamp();
  /* ... */

  /* Spacing Units */
  --space-s: clamp();
  /* ... */

  /* Spacing Pairs */
  --space-s-m: clamp();
  /* ... */
}

These custom properties follow the exact same structure and syntax as the systems generated by Utopia.fyi — I highly reccomend taking a look there for more information on this approach to responsive design! ❤️

Note: Once generated, these external CSS files will be cached thanks to Netlify's On-demand builders.

Demo

To view a very simple working example of this on-demand builder, take a look at this CodePen 👀

You might also like...

A plugin that provides utilities for animation property.

tailwindcss-animation-property A plugin that provides utilities for animation property. Not only does the plugin provide the usual animation propertie

Sep 23, 2022

🤠 Functional utilities using object property paths with wildcards and regexps 🌵

🤠 Functional utilities using object property paths with wildcards and regexps. 🌵 Available functional methods include: 🗺️ Mapping: map() 🚂 Merging

Dec 15, 2022

🤠 Object property paths with wildcards and regexps 🌵

🤠 Object property paths with wildcards and regexps. 🌵 Get/set object properties using: ⛏️ Dot-delimited paths: foo.bar.0.baz ⭐ Wildcards: foo.*, **.

Jan 3, 2023

Explore Alveus Sanctuary with an interactive map and find out more about the different buildings on the property.

Alveus Sanctuary Interactive Map Explore Alveus Sanctuary with an interactive map and find out more about the different buildings on the property. htt

Aug 16, 2022

A jQuery plug-in to notify you of CSS, Attribute or Property changes in an element

selectWatch.js jQuery plug-in gives an opportunity to monitor changes of DOM element's CSS styles, attributes, properties, input element or select ele

Oct 28, 2022

Ios-calculator-js - Calculator made with vanilla javascript and custom css based on the design of iOS devices.

ios-calculator-js This is a practice project in which I try to replicate iOS calculator's both logic and styling. In case you spot room for improvemen

Nov 10, 2021

Uncensorable, immutable microblogging platform that is completely decentralized and does not rely on any centralized systems.

Uncensorable, immutable microblogging platform that is completely decentralized and does not rely on any centralized systems.

Zooko Truly decentralized, immutable and uncensorable microblogging Zooko is a working-example, proof-of-concept proving that you can have a decentral

Apr 20, 2022

At BlackBox Vision we use heavily React Admin to build internal systems for our clients.

🔥 RA Firebase Starter 🔥 At BlackBox Vision we use heavily React Admin to build internal systems for our clients. Also, we rely on firebase a lot for

Jun 7, 2022
Comments
  • Cascading T-Shirt Sizes (DX)

    Cascading T-Shirt Sizes (DX)

    Hi George!

    My name is justgu.us and I'm an indie dev that loves to create systematical naming conventions that spark the narrative of code in a more semantical way.

    I implemented my model for cascading t-shirt sizes on your spaceSteps and spacePairs naming convention, that used to be -2xl etc. It might look fresh at first, but you will soon spot the cascading pattern of the sizing I use; XX, XS, SS, SM, MM, ML, LL, LD, DD, ZZ

    It's a way to make fluid scales have a better relationship to each other as tokens using the t-shirt sizes that we know, plus Display. And as a refactoring-bonus; they are just "imaginary" numbers anyway, steps on a scale. So exchange the D with anything you see fit after Large.

    I believe the semantics will improve the user experience of end-users to create their own customPairs like I did, plus it makes for a programmatical pattern to step up or down the scales & sizes if you wish to take it further in procedural coding.

    As a reading experience bonus for both humans and computers, it cleans up the tokens quite nicely and makes them all stick to using the same amount of characters per token. Optimized for reduction.

    I added one step that was missing in the current spacePairs btw; the use of 3XL (-ZZ) as a pair at the end. Should you choose not to use these tokens, then at least the notice of a missing pair was of value ;)

    Thanks for reviewing and take care!

    opened by alolalo 2
Owner
George Francis
UI ⚡️ Generative everything ❤️ I write about creative coding & front-end development ✨
George Francis
A demo for E2E build piplelines in Design Systems using monorepo's and automation :zap:.

Design System Pipelines demo What is it? A working demonstration for end-to-end build piplelines in Design Systems using Primer Primitives, Primer CSS

Rez 7 Oct 20, 2022
A list of Design Systems built in Brazil 🇧🇷

A list of Design Systems built in Brazil ????

Bruna Bites 41 Dec 29, 2022
Kuldeep 2 Jun 21, 2022
A nonsensical React application made (almost) entirely by GitHub Copilot

GitHub Copilot Demo This is a demo project for the GitHub Copilot project. The previous sentence was written by it! This is a (fairly ugly) timer app

Cassidy Williams 32 May 1, 2022
This app helps manage a bookstore. It comes in handy when you need to manage a personal book store or library. Entirely built on es6.

Awesome Books A Microverse project on learnong javascript. Additional description about the project and its features. Built With HTML5 CSS3 Javascript

Atugonza ( Billions ) Joel 13 Apr 22, 2022
An free e-book entirely about JavaScript objects

Advanced JavaScript Objects An e-book entirely about JavaScript objects Chapters Total length: 70 A4 pages. Chapter 0 - Introduction Chapter 1 - Getti

Carl Riis 240 Dec 13, 2022
An open source, self-hosted, and entirely free solution to social media management.

An open source, self-hosted, and entirely free solution to social media management. Status ?? In Development ?? Shoutify is currently early in the dev

TechSquidTV 202 Dec 22, 2022
The Main Purpose The main purpose of creating an anaonline information system, as an effort responsive to the management of the data of the Members of the Persis Youth based on information technology systems

landing-page-pp landing-page-pp.vercel.app #The Main Purpose The main purpose of creating an anaonline information system, as an effort responsive to

Hilman Firdaus 6 Oct 21, 2022
Calculate the price range for property advertised on Domain and Real Estate.

Property Seeker Calculate the price range for property advertised on Domain and Real Estate. Install Chrome Firefox Edge Privacy All searches are perf

null 42 Dec 27, 2022
Adds a handy $parent magic property to your Alpine components.

✨ Help support the maintenance of this package by sponsoring me. Alpine $parent Access parent components using a handy $parent magic variable. This pa

Ryan Chandler 10 Aug 29, 2022