ba

Coffee is not forever: a global history of the coffee leaf rust / Stuart McCook

Dewey Library - SB608.C6 M33 2019




ba

Diatoms: fundamentals and applications / edited by Joseph Seckbach and Richard Gordon

Barker Library - QK569.D54 D54 2019




ba

Tomato: a global history / Clarissa Hyman

Dewey Library - SB349.H96 2019




ba

Peri-urban China: land use, growth, and integrated urban-rural development / Li Tian and Yan Guo

Rotch Library - HD923.T53 2019




ba

Agrarian capitalism and the development of the coffee industry in colonial Zimbabwe: 1900-1980 / by Takesure Taringana

Hayden Library - SB270.Z55 T37 2018




ba

Formation and control of biofilm in various environments Hideyuki Kanematsu, Dana M. Barry

Online Resource




ba

Ocean recovery: a sustainable future for global fisheries? / Ray Hilborn and Ulrike Hilborn

Dewey Library - SH329.S87 H55 2019




ba

Marine hydrocarbon seeps: microbiology and biogeochemistry of a global marine habitat / Andreas Teske, Verena Carvalho, editors

Online Resource




ba

Socio-economic and eco-biological dimensions in resource use and conservation: strategies for sustainability / Niranjan Roy, Shubhadeep Roychoudhury, Sunil Nautiyal, Sunil K. Agarwal, Sangeeta Baksi, editors

Online Resource




ba

Tropical wetlands: proceedings of the International Workshop on Tropical Wetlands - Innovation in Mapping and Management, October 19-20, 2018, Banjarmasin, Indonesia / edited by Yiyi Sulaeman, Laura Poggio, Budiman Minasny, Dedi Nursyamsi

Online Resource




ba

Shareholder cities: land transformations along urban corridors in India / Sai Balakrishnan

Rotch Library - HD879.M444 B35 2019




ba

Reconciling human needs and conserving biodiversity: large landscapes as a new conservation paradigm: The Lake Tumba, Democratic Republic of Congo / Bila-Isia Inogwabini

Online Resource




ba

Ecological models / Jay Odenbaugh

Dewey Library - QH541.15.M3 O44 2019




ba

Estuaries and coastal zones in times of global change: proceedings of ICEC-2018 / Kim Dan Nguyen, Sylvain Guillou, Philippe Gourbesville, Jérôme Thiébot, editors

Online Resource




ba

Allelopathy: potential for green agriculture / Waseem Mushtaq, Mohammad Badruzzaman Siddiqui, Khalid Rehman Hakeem

Online Resource




ba

Sustainable Food Chains and Ecosystems: Cooperative Approaches for a Changing World / edited by Konstantinos Mattas, Henk Kievit, Gert van Dijk, George Baourakis, Constantin Zopounidis

Online Resource




ba

Collaborative research in fisheries: co-creating knowledge for fisheries governance in Europe / Petter Holm, Maria Hadjimichael, Sebastian Linke, Steven Mackinson, editors

Online Resource




ba

Shifting baselines in the Chesapeake Bay: an environmental history / Victor S. Kennedy

Hayden Library - QH541.5.C65 K46 2018




ba

City unseen: new visions of an urban planet / Karen C. Seto and Meredith Reba

Rotch Library - QH541.5.C6 S45 2018




ba

Mixed plantations of eucalyptus and leguminous trees: soil, microbiology and ecosystem services / Elke Jurandy Bran Nogueira Cardoso, José Leonardo de Moraes Gonçalves, Fabiano de Carvalho Balieiro, Avílio Antônio Franco, editors

Online Resource




ba

A theory of global biodiversity / Boris Worm and Derek P. Tittensor

Barker Library - QH541.15.B56 W67 2018




ba

The Great Barrier Reef: biology, environment and management / Pat Hutchings, Michael Kingsford, and Ove Hoegh-Guldberg, editors

Hayden Library - QH541.5.C7 G74 2019




ba

The Relation Between Large-Scale Land Acquisitions and Rural Households: Evidence from Ethiopia and Tanzania / Giulia Barbanente

Online Resource




ba

New frontiers in stress management for durable agriculture Amitava Rakshit, Harikesh Bahadur Singh, Anand Kumar Singh, Uma Shankar Singh, Leonardo Fraceto, editors

Online Resource




ba

15 CSS Background Effects

Did you know that you can use CSS to create beautiful animations and interesting effects? Combined with HTML and JavaScript, or even on its own, CSS can be extremely powerful. You’d be surprised at what developers can create. From simple …




ba

Template-based fabrication of spatially organized 3D bioactive constructs using magnetic low-concentration gelation methacrylate (GelMA) microfibers

Soft Matter, 2020, 16,3902-3913
DOI: 10.1039/C9SM01945F, Paper
Tao Sun, Yibing Yao, Qing Shi, Huaping Wang, Paolo Dario, Junzhong Sun, Qiang Huang, Toshio Fukuda
A new template-based method to apply low-concentration GelMA microfibers as building blocks for higher-order cellular assembly.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Structural properties of contractile gels based on light-driven molecular motors: a small-angle neutron and X-ray study

Soft Matter, 2020, 16,4008-4023
DOI: 10.1039/D0SM00031K, Paper
Giacomo Mariani, Jean-Rémy Colard-Itté, Emilie Moulin, Nicolas Giuseppone, Eric Buhler
The collective rotation of light-driven molecular motors actuates the structural changes and macroscopic contraction of the chemical gels.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Using microprojectiles to study the ballistic limit of polymer thin films

Soft Matter, 2020, 16,3886-3890
DOI: 10.1039/D0SM00295J, Communication
Shawn H. Chen, Amanda J. Souna, Christopher L. Soles, Stephan J. Stranick, Edwin P. Chan
In this work, a microballistic impact test called laser induced projectile impact test (LIPIT) was used to study the perforation behavior of polycarbonate thin films to demonstrate the importance of film thickness on the film's ballistic limit.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Bioactive scaffolds based on collagen filaments with tunable physico-chemical and biological features

Soft Matter, 2020, Advance Article
DOI: 10.1039/D0SM00233J, Paper
Ting Lu, Hong Hu, Yuanqi Li, Qingsong Jiang, Jinlei Su, Hai Lin, Yun Xiao, Xiangdong Zhu, Xingdong Zhang
Native tissues such as nerve bundles, blood vessels and tendons have extracellular matrices with a characteristic linear orientation, which cannot be fully achieved with the current technology for the development of regenerative biomaterials.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Investigating the Role of Carbon Nanotubes (CNTs) in Piezoelectric Performance of PVDF/KNN based Flexible Electrospun Nanogenerator

Soft Matter, 2020, Accepted Manuscript
DOI: 10.1039/D0SM00438C, Paper
Satyaranjan Bairagi, Wazed Ali
In the present study, the effect of varying concentrations of carbon nanotube (CNT) on the piezoelectric performance of poly (vinylidene fluoride) (PVDF)/potassium sodium niobate (KNN) based electrospun nanocomposite has been...
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Developing Super Tough Gelatin-based Hydrogels by Incorporating Linear Poly(methacrylic Acid) to Facilitate Sacrificial Hydrogen Bonding

Soft Matter, 2020, Accepted Manuscript
DOI: 10.1039/D0SM00422G, Communication
Hui Jie Zhang, Li Ni Wang, Xuechuan Wang, Qingxin Han, Xiangyou You
Mechanically robust protein-based hydrogels are strongly desired but their construction remains a significant challenge. In this work, gelatin, together with methacrylic acid, is used to construct a novel hydrogen-bonded hydrogel...
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Classical and Non-Classical Melatonin Receptor Agonist-Directed Micellization of Bipyridinium-Based Supramolecular Amphiphiles in Water

Soft Matter, 2020, Accepted Manuscript
DOI: 10.1039/D0SM00424C, Paper
Zhimin Sun, Lihui Xi, Kai Zheng, Zhao Zhang, Kim Baldridge, Mark Anthony Olson
The addition of molecular recognition units into structures of amphiphiles is a means by which soft matter capable of undergoing template-directed micellization can be obtained. These supramolecular amphiphiles can bind...
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Polymorphism of asymmetric catalysts based on amphiphilic lipopeptides in solution

Soft Matter, 2020, Advance Article
DOI: 10.1039/D0SM00245C, Paper
Juliane N. B. D. Pelin, Charlotte J. C. Edwards-Gayle, Andrea M. Aguilar, Amanpreet Kaur, Ian W. Hamley, Wendel A. Alves
The self-assembly of model [P]RWG lipopeptides (P: L-proline, R: L-arginine, W: L-tryptophan, G: L-glycine), containing one or two aliphatic octadecyl (C18) chains in water and cyclohexanone/water solutions was examined. The enantiomeric selectivity was found to be related to the assembly of catalyst molecules.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Effect of polar amino acid incorporation on Fmoc-diphenylalanine-based tetrapeptides

Soft Matter, 2020, Accepted Manuscript
DOI: 10.1039/D0SM00320D, Paper
Alexandra Daryl Ariawan, Biyun Sun, Jonathan Pawel Wojciechowski, Ian Lin, Eric Y Du, Sophia C Goodchild, Charles Gordon Cranfield, Lars M Ittner, Pall Thordarson, Adam David Martin
Peptide hydrogels show great promise as extracellular matrix mimics due to their tuneable, fibrous nature. Through incorporation of polar cationic, polar anionic or polar neutral amino acids into the Fmoc-diphenylalanine...
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Impact of Chiral Supramolecular Nanostructure on the Mechanical and Electrical Performances of Triphenylene-based discotic physical gels

Soft Matter, 2020, Accepted Manuscript
DOI: 10.1039/D0SM00152J, Paper
Hongli Zhang, Junjie Cheng, Qiang Zhou, Qijin Zhang, Gang Zou
Discotic π-conjugated supramolecular assemblies, especially with chiral supramolecular nanostructures, have been attracting growing research interests due to their significant optoelectronic properties and the possibilities of their applications in the new...
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Phenylalanine dimer assembly structure as the basic building block of an amyloid like photoluminescent nanofibril network

Soft Matter, 2020, 16,4105-4109
DOI: 10.1039/D0SM00387E, Communication
Prabhjot Singh, Nishima Wangoo, Rohit K. Sharma
Self-assembled phenylalanine dimer as the basic supramolecular structure of β-amyloid like photoluminescent nanofibrils.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Rapid analysis of cell-generated forces within a multicellular aggregate using microsphere-based traction force microscopy

Soft Matter, 2020, 16,4192-4199
DOI: 10.1039/C9SM02377A, Paper
Buğra Kaytanlı, Aimal H. Khankhel, Noy Cohen, Megan T. Valentine
We measure cell-generated forces from the deformations of elastic microspheres embedded within multicellular aggregates. Using a computationally efficient analytical model, we directly obtain the full 3D mapping of surface stresses within minutes.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Protonated state and synergistic role of Nd3+ doped barium cerate perovskite for the enhancement of ionic pathways in novel sulfonated polyethersulfone for H2/O2 fuel cells

Soft Matter, 2020, 16,4220-4233
DOI: 10.1039/D0SM00427H, Paper
R. Gayathri, M. Ramesh Prabhu
1.8 times higher current density and power density were obtained for a Nd3+ doped barium cerate membrane compared to pure SPES.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Active noise experienced by a passive particle trapped in an active bath

Soft Matter, 2020, Advance Article
DOI: 10.1039/D0SM00006J, Paper
Simin Ye, Peng Liu, Fangfu Ye, Ke Chen, Mingcheng Yang
We study the properties of active noise experienced by a passive particle harmonically trapped in an active bath. The active noise is shown to depend on the trap stiffness.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Investigation of Thermal Conductivity for Liquid Metal Composites Using Micromechanics-Based Mean-Field Homogenization Theory

Soft Matter, 2020, Accepted Manuscript
DOI: 10.1039/D0SM00279H, Paper
JiYoung Jung, Seunghee Jeong, Klas Hjort, Seunghwa Ryu
For the facile use of liquid metal composite (LMC) for soft, stretchable and thermal systems, it is crucial to understand and predict the thermal conductivity of the composite as a...
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Wall entrapment of peritrichous bacteria: A mesoscale hydrodynamics simulation study

Soft Matter, 2020, Accepted Manuscript
DOI: 10.1039/D0SM00571A, Paper
S. Mahdiyeh Mousavi, Gerhard Gompper, Roland G. Winkler
Microswimmers such as E. Coli bacteria accumulate and exhibit an intriguing dynamics near walls, governed by hydrodynamic and steric interactions. Insight into the underlying mechanisms and predominant interactions demand a...
The content of this RSS Feed (c) The Royal Society of Chemistry




ba

Sustainable Design Basics


 

An accessible, climate-diverse guide that transforms readers from sustainable design novices to whole-solution problem solvers.

Sustainable Design Basics is a student-friendly introduction to a holistic and integral view of sustainable design. Comprehensive in scope, this textbook presents basic technical information, sustainability strategies, and a practical, step-by-step approach for sustainable building projects. Clear and relatable chapters illustrate



Read More...




ba

Coronavirus | Chennai-based ayurvedic pharmacist dies after drinking concoction of his own preparation

Managing Director of the firm faints after tasting the chemical




ba

[ASAP] Monochromatic X-ray Source Based on Scattering from a Magnetic Nanoundulator

ACS Photonics
DOI: 10.1021/acsphotonics.0c00121




ba

[ASAP] Strong Optical Feedback Stabilized Quantum Cascade Laser

ACS Photonics
DOI: 10.1021/acsphotonics.0c00189




ba

Z’s Still Not Dead Baby, Z’s Still Not Dead

Andy Clarke digs deep into snow to find ways flat design can be brought back to life in CSS with the use of techniques to create a sense of depth. Like spring after an everlasting winter, perhaps it’s time to let a different style of design flourish. What a relief.


A reaction to overly ornamental designs, flat design has been the dominant aesthetic for almost a decade. As gradients, patterns, shadows, and three-dimensional skeuomorphism fell out of fashion, designers embraced solid colours, square corners, and sharp edges.

Anti-skeuomorphism no doubt helped designers focus on feature design and usability without the distraction of what some might still see as flourishes. But, reducing both product and website designs to a bare minimum has had unfortunate repercussions. With little to differentiate their designs, products and websites have adopted a regrettable uniformity which makes it difficult to distinguish between them.

Still, all fashions fade eventually. I’m hopeful that with the styling tools we have today, we’ll move beyond flatness and add an extra dimension. Here are five CSS properties which will bring depth and richness to your designs.

To illustrate how you might use them, I’ve made this design for the 1961 Austin Seven 850, the small car which helped define the swinging sixties.

The original Mini. Red, (British Racing) green, blue designs.

Transparency with alpha values

The simplest way to add transparency to a background colour, border, or text element is using alpha values in your colour styles. These values have been available in combination with RGB (red, green, blue) for years. In RGBA, decimal values below 1 make any colour progressively more transparent. 0 is the most transparent, 1 is the most opaque:

body {
  color: rgba(255, 0, 153, .75); 
}
Alpha values allow colour from a background to bleed through.

Alpha values also combine with HSL (hue, saturation, lightness) to form HSLA:

body {
  color: hsla(0, 0, 100, .75);
}

Currently a Working Draft, CSS Color Module Level 4 enables alpha values in RGB and HSL without the additional “A”:

body {
  color: rgb(255, 0, 153, .75);
  /* color: hsl(0, 0, 100, .75); */
}

This new module also introduces hexadecimal colours with alpha values. In this new value, the last two digits represent the transparency level, with FF producing 100% opacity and 00 resulting in 100% transparency. For the 75% opacity in my design, I add BF to my white hexadecimal colour:

body {
  color: #ffffffbf;
}

Although there’s already wide support for hexadecimal, HSL, and RGB with alpha values in most modern browsers, the current version of Microsoft Edge for Windows has lagged behind. This situation will no doubt change when Microsoft move Edge to Chromium.

2. Use opacity

Using the opacity property specifies the amount of opacity of any element (obviously) which allows elements below them in the stacking order to be all or partially visible. A value of 0 is most transparent, whereas 1 is most opaque.

Opacity tints images with colour from elements behind them.

This property is especially useful for tinting the colour of elements by allowing any colour behind them to bleed through. The British Motor Corporation logo in the footer of my design is solid white, but reducing its opacity allows it to take on the colour of the body element behind:

[src*="footer"] {
  opacity: .75; 
}

You might otherwise choose to use opacity values as part of a CSS filter. 0% opacity is fully transparent, while 100% is fully opaque and appears as if no filter has been applied. Applying a CSS filter is straightforward. First, declare the filter-function and then a value in parentheses:

[src*="footer"] {
  filter: opacity(75%); 
}

3. Start blending

Almost universally, contemporary browsers support the same compositing tools we’ve used in graphic design and photo editing software for years. Blend modes including luminosity, multiply, overlay, and screen can easily and quickly add depth to a design. There are two types of blend-mode.

background-blend-mode defines how background layers blend with the background colour behind them, and with each other. My layered design requires three background images applied to the body element:

body {
  padding: 2rem;
  background-color: #ba0e37;
  background-image:
    url(body-1.png),
    url(body-2.png),
    url(body-3.png);
  background-origin: content-box;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: contain;
}
From left: Three background images. Far right: How images combine in a browser.

You can apply different background-blend modes for each background image. Specify them in the same order as your background images and separate them with a comma:

body {
  background-blend-mode: multiply, soft-light, hard-light;
}
Six background-blend-mode variations.

When I need to apply an alternative colour palette, there’s no need to export new background assets. I can achieve results simply by changing the background colour and these background-blend modes.

Backgrounds blend behind this brilliant little car.

Sadly, there’s not yet support for blending modes in Edge, so provide an alternative background image for that browser:

@supports not (background-blend-mode: normal) {
  body {
    background-image: url(ihatetimvandamme.png); 
  }
}

mix-blend-mode, on the other hand, defines how an element’s content should blend with its ancestors.

From left: Screen, overlay, and soft-light mix-blend-mode.

To blend my Mini image with the background colours and images on the body, I add a value of hard-light, plus a filter which converts my full-colour picture to greyscale:

[src*="figure"] {
  filter: grayscale(100%);
  mix-blend-mode: hard-light; 
}

You can also use mix-blend-mode to add depth to text elements, like this headline and large footer paragraph in a green and yellow version of my design:

.theme-green h1,
.theme-green footer p:last-of-type {
  color: #f8Ef1c;
  mix-blend-mode: difference;
}
Text elements blend to add interest in my design.

4. Overlap with CSS Grid

Whereas old-fashioned layout methods reinforced a rigid structure on website designs, CSS Grid opens up the possibility to layer elements without positioning or resorting to margin hacks. The HTML for my design is semantic and simple:

<body>

<p>You’ve never seen a car like it</p>

<h1><em>1961:</em> small car of the year</h1>

<figure>
  <img src="figure.png" alt="Austin Seven 850">
  <figcaption>
    <ul>
      <li>Austin Super Seven</li>
      <li>Morris Super Mini-Minor</li>
      <li>Austin Seven Cooper</li>
      <li>Morris Mini-Cooper</li>
    </ul>
  <figcaption>
</figure>

<footer>
  <p>Today’s car is a Mini</p>
  <p>Austin Seven 850</p>
  <img src="footer.png" alt="Austin Seven 850">
<footer>

</body>

I begin by applying a three-column symmetrical grid to the body element:

@media screen and (min-width : 48em) {

  body {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr; 
  }

}
Three-column symmetrical grid with column and row lines over my design.

Then, I place my elements onto that grid using line numbers:

body > p {
  grid-column: 1 / -1; 
}

h1 {
  grid-column: 1 / 3; 
}

figure {
  grid-column: 1 / -1; 
}

footer {
  display: contents; 
}

footer div {
  grid-column: 1 / 3; 
}  

[src*="footer"] {
  grid-column: 3 / -1;
  align-self: end; 
}

As sub-grid has yet to see wide adoption, I apply a second grid to my figure element, so I may place my image and figcaption:

figure {
  display: grid;
  grid-template-columns: 1fr 3fr; 
}

figcaption {
  grid-column: 1; 
}

[src*="figure"] {
  grid-column: 2; 
}
Left: This conventional alignment lacks energy. Right: Overlapping content adds movement which makes my design more interesting overall.

Previewing the result in a browser shows me the energy associated with driving this little car is missing. To add movement to my design, I change the image’s grid-column values so it occupies the same space as my caption:

figcaption {
  grid-column: 1;
  grid-row: 3; 
}

[src*="figure"] {
  grid-column: 1 / -1; 
  grid-row: 3;
  padding-left: 5vw; 
}

5. Stack with z-index

In geometry, the x axis represents horizontal, the y axis represents vertical. In CSS, the z axis represents depth. Z-index values can be either negative or positive and the element with the highest value appears closest to a viewer, regardless of its position in the flow. If you give more than one element the same z-index value, the one which comes last in source order will appear on top.

Visualisation of z-index illustrates the depth in this design.

It’s important to remember that z-index is only applied to elements which have their position property set to either relative or absolute. Without positioning, there is no stacking. However, z-index can be used on elements placed onto a grid.

All techniques combined to form a design which has richness and depth.

As the previous figure image and figcaption occupy the same grid columns and row, I apply a higher z-index value to my caption to bring it closer to the viewer, despite it appearing before the picture in the flow of my content:

figcaption {
  grid-column: 1;
  grid-row: 3;
  z-index: 2; 
}

[src*="figure"] {
  grid-column: 1 / -1; 
  grid-row: 3;
  z-index: 1; 
}

Z’s not dead baby, Z’s not dead

While I’m not advocating a return to the worst excesses of skeuomorphism, I hope product and website designers will realise the value of a more vibrant approach to design; one which appreciates how design can distinguish a brand from its competition.


I’m incredibly grateful to Drew and his team of volunteers for inviting me to write for this incredible publication every year for the past fifteen years. As I closed my first article here on this day all those years ago, “Have a great holiday season!” Z’s still not dead baby, Z’s still not dead.


About the author

Andy Clarke is one of the world’s best-known website designers, consultant, speaker, and writer on art direction and design for products and websites. Andy founded Stuff & Nonsense in 1998 and for 20 years has helped companies big and small to improve their website and product designs. Andy’s the author of four web design books including ‘Transcending CSS,’ ‘Hardboiled Web Design’ and ‘Art Direction for the Web’. He really, really loves gorillas.

More articles by Andy




ba

Design Tokens and Component Based Design

Stuart Robson rolls up his sleeves and begins to piece together the jigsaw puzzle that is design tokens and component based design. Starting with the corners, and working around the edges, Stu helps us to piece together a full picture of a modern design system.


If you stare at your twitter feed long enough, it can look like everyone is talking about Design Systems. In some cases you could be persuaded to think how shallow the term can go.

“Isn’t this what we called Style Guides?”, “Here’s my React Design System”, “I’ve just updated the Design System in Sketch”

To me, they are some and all of these things. Over the last 4 years of consulting with two clients on their Design System, my own view has changed a little.

If you dig a little deeper into Design Systems twitter you will probably see the term “Design Tokens” pop up at least once a day somewhere. Design Tokens came out of work that was being done at Salesforce with Jina and others who pioneered the creation of Design Tokens as we know them today – creating the first command line tool in Theo that had started the adoption of Design Tokens to the wider Design Systems Community.

A cool term but, what are they?

If you look at your client work, your companies site, the project you’re working on you should notice some parts of the page have a degree of consistency: the background colour of your form buttons is the same colour as your link text, or your text has the same margin, or your card elements have the same spacing as your media object.

These are design decisions, and they should be littered across the overall design of your project. These decisions might start off in a Sketch file and make their way into code from detailed investigation of a Sketch file, or you may find that the design evolves from your design application once it gets into code.

These design decisions can change, and to keep them synchronised across design and development in applications, as well as a larger documentation site in your Design System, is going to take some effort.

This is where Design Tokens come in, and I find the best way to succinctly reiterate what they are is via the two following quotes…

“Design Tokens are an abstraction for everything impacting the visual design of an app/platform.”
– Sönke Rohde

…and

“We use them in place of hard-coded values in order to maintain a scale-able and consistent visual system.”
– Jina

There are several global design decisions that we can abstract to create a top level design token – Sizing, Font Families, Font Styles, Font Weights, Font Sizes, Line Heights, Border Styles, Border Colours, Border Radius, Horizontal Rule Colours, Background Colours, Gradients, Background Gradients, Box Shadows, Filters, Text Colours, Text Shadow, Time, Media Queries, Z Index, Icons – these can all be abstracted as required.

So, spicy Sass variables?

We can look at Design Tokens as an abstraction of CSS, sort of like Sass variables, but spicier. Looking at them like this we can see that they are (in either .yaml or .json) a group of related key value pairs with more information that can be added as needed.

The great thing with abstracting design decisions outside of your CSS pre-processor is that you’re not tying those decisions to one platform or codebase.

As a crude example, we can see here that we are defining a name and a value that could then become our color, background-color, or border-color, and more.

# Colours
# -------
- name: color-red
  value: #FF0000
- name: color-green
  value: #00FF00
- name: color-blue
  value: #0000FF
- name: color-white
  value: #FFFFFF
- name: color-black
  value: #000000

These can then generate our Sass variables (as an example) for our projects.

$color-red: #FF0000 !default;
$color-green: #00FF00 !default;
$color-blue: #0000FF !default;
$color-white: #FFFFFF !default;
$color-black: #000000 !default;

Why are they so good

Ok, so we now know what Design Tokens are, but why do we need them? What makes them better than our existing solutions (css pre-processors) for defining these design decisions?

I think there are 5 really good reasons why we all should start abstracting these design decisions away from the CSS that they may live in. Some of these reasons are similar to reasons some developers use a pre-processor like Sass, but with added bonuses.

Consistency

Much like using a CSS pre-processor or using CSS custom properties, being able to define a background colour, breakpoint, or font-size in more than one place using the same key ensures that we are using the Sass values across the entire product suite we are developing for.

Using our Design Tokens in their generated formats, we can be sure to not end up with 261 shades of blue.

Maintainability

By using a pre-processor like Sass, or using native CSS custom properties, we can already have maintainable code in our projects. Design Tokens also do this at the abstracted level as well.

Scalability

“Design Tokens enable us to scale our Design across all the permutations.”
– Jina

At this point, we’re only talking about abstracting the design decisions for use in CSS. Having Design Tokens allows design to scale for multiple brands or multiple projects as needed.

The main benefit of Design Tokens in regards to scalability is the option that it gives us to offer the Design Tokens for other platforms and frameworks as needed. With some of the tools available, we can even have these Tokens shared between applications used by designers and developers.

Your marketing site and your iOS application can soon share the same design decisions codified, and you can move towards creating an Android app or web application as required.

Documentation

If we abstract the design decisions from one platform specific programming language it would be no good if it wasn’t made to be easily accessible.

The tools and applications available that are mentioned later in this article can now create their own documentation, or allow you to create your own. This documentation is either hosted within a web-based application or can be self-hosted with the rest of your Design Systems documentation.

Most of the command line tools go further and allow you do add more details that you wish to convey in the documentation, making it as unique as it is required for your project.

Empowerment

When you abstract your design decisions to Design Tokens, you can help empower other people on the project. With the tools available today, and the tools that are just around the corner, we can have these design decisions determined by anyone on the team.

No-one necessarily needs to understand how to set up the codebase to update the colour slightly. Some of the tools I mention later on allow you to update the Design Tokens in the browser.

Design Systems are already “bridging the gap” between design and development. With Design Tokens and the tooling available, we can create better team relationships by closing that gap instead.

Some of the benefits of creating and using Design Tokens are the same as using a pre-processor when it comes to authoring CSS. I feel the added bonuses of being able to empower other team members and document how you use them, as well as the fundamental reasoning in that they can be platform agnostic, are all great “selling points” to why you need to start using Design Tokens today.

Tools

There are several tools available to help you and your team to create the required files from your abstracted Design Tokens:

Command Line Tools

There are several tools available on the command line that can be used as part of, or separate to, your development process.

These tools allow you to define the Design Tokens in a .json or .yaml file format which can then be compiled into the formats you require.

Some have built in functions to turn the inputted values to something different when compiled – for example, turning hexadecimal code that is a Design Token into a RGB value in your .css file. These command line tools, written in JavaScript, allow you to create your own ways in which you want things transformed.

My current client has certain design decisions for typography in long form content (font size, weight, line height and margins) which need to be together to make sense. Being able to write JavaScript to compile these design decisions into an independent Sass map for each element allows us to develop with assurance that the long form content has the correct styling.

WYSIWYG Tools

WYSIWYG (What You See Is What You Get Tools) have been around for almost as long as we have been able to make websites. I can just about remember using Dreamweaver 2, before I knew what a <table> was.

When browsers started to employ vendor prefixes to new CSS for their browsers, a flurry of online WYSIWYG tools came with it built in. They’re still there, but the industry has moved on.

Design Tokens also have a few WYSIWYG tools available. From simpler online tools that allow you to generate the correct Sass variables needed for your design decisions to tools that store your decisions online and allow you to export them as npm packages.

These types of tools for creating Design Tokens can help empower the team as a whole, with some automatically creating documentation which can easily be shared with a url.

Retrofitting Tools

If you are starting from scratch on a new re-design or on a new project that requires a Design System and Tokens, the many of the tools mentioned above will help you along your way. But what if you’re in the middle of a project, or you have to maintain something and want to start to create the parts required for a Design System?

Luckily there are several tools and techniques to help you make a start.

One new tool that might be useful is Superposition. Currently in private beta with the public release set for Q1 of 2020 Superposition helps you “Extract design tokens from websites and use them in code and in your design tool.”

Entering your domain gives you a nice visual documentation of your sites styles as Design Tokens. These can then be exported as Sass Variables, CSS Custom Properties, JavaScript with the team working on exports to iOS and Android.

If you have an existing site, this could be a good first step before moving to one of the other tools mentioned above.

You could also make use of CSSStats or Project Wallace’s Analysis page that I mentioned earlier. This would give you an indication of what Design Tokens you would need to implement.

Component Based Design

So, we’ve created our Design Tokens by abstracting the design decisions of brand colours, typography, spacing and more. Is that as far as we can go?

Levels of Design Decisions

Once we have created our first set of Design Tokens for our project, we can take it that little bit deeper. With command line tools and some of the applications available, you can link these more global decisions to a more deeper level.

For example, you can take your chosen colours and make further design decisions on the themes of your project, such as what the primary, secondary, or tertiary colours are or what your general component and layout spacing will be.

With this, we can go one step further. We could also define some component specific design decisions that can then be compiled for the developer to use. Invest in time to check over the designs with a fine toothcomb and make sure you are using the correct Sass variable or CSS custom property for that component.

If you are going more than one or two levels of design decision making, you can compile each set of these Design Tokens to your Sass variables which can then be used as required. So you can provide: global, theme, component level Sass variables which can be used in the project. Or you could choose to only compile what you need for the components you are creating.

Variables, Maps, Custom Properties

Some of the tools available for creating and maintaining your Design Tokens allow you to compile to certain programming languages.

With my current client work, I am making use of Sass variables, Sass maps, and CSS custom properties. The Design Tokens are compiled into one or more of these options depending on how they will be used.

Colours are compiled as global Sass variables, inside of a couple of Sass maps and CSS custom properties. Our macro layout breakpoints are defined as a single Sass map.

If we know we are creating a component that has the ability to be themed, we can make use of CSS custom properties to reduce the amount of CSS we need to override, and also allow us to inline things that can be changed via a CMS as required. Which leaves us using Sass variables for parts of a component that won’t change. We are using Sass maps differently still. As mentioned, we generate a Sass map containing the design decisions for each element of text, and we can use long form text. This Sass map is then compiled into separate CSS declarations as needed using Sass mixins.

I find the beauty of being able to make use of the global, themed, and component level design decisions by compiling them into various formats (that essentially become CSS) and that gives us more power in authoring components.

Creating Consistent Utility Classes

As you have created your more global generic design decisions, you can create your own small set of utility classes.

Using a pre-processor like Sass you can define a set of mixins and functions that can take your Design Tokens that have been compiled down into variables and maps and generate separate classes for each design decision.

By making tokens available to all digital teams, we can enable them to create custom experiences that are aligned to current visual standards when a component does not (or will not) exist in the design system. Maya King

In creating utility classes with Design Tokens (using something like Sass) you have consistency with the overall Design System for times when you or a team need to create a one-off component for a project.

These exceptions tend to be something that won’t make it as part of the overall Design System, but it still needs that look and feel.

Having classes available that we can guarantee use the generic, global design decisions from the Design Tokens means these one-off components should be well on their way to have the overall look and feel of the project, and will get any updates with little to no additional overhead.

Wrapping Up

I think we are starting to see the potential of using Design Tokens as Design Systems become even more popular. I think that, from this overview, we can see how they can help us close the gap that still exists in places between the designers and developers on the team. They can help empower people who do not code to make changes that can be automatically updating live work.

I think you can start now. You may not have or need what you could term “a fully-fledged Design System” but this small step will help move towards one in the future and give you instant benefits of consistency and maintainability now. If you want more Design Tokens, as well as the links that are dotted around this article I also maintain a GitHub repo of Awesome Design Tokens which I try to keep updated with links to tools, articles, examples, videos, and anything else that’s related to Design Tokens.


About the author

Stuart Robson is a freelance front-end developer and design systems advocate who curates the design systems newsletter - news.design.systems

More articles by Stuart




ba

Addiction debates : hot topics from policy to practice / Catherine Comiskey.

Thousand Oaks : SAGE Publishing, 2019




ba

The effects of e-cigarette taxes on e-cigarette prices and tobacco product sales [electronic resource] : evidence from retail panel data / Chad D. Cotti, Charles J. Courtemanche, Johanna Catherine Maclean, Erik T. Nesson, Michael F. Pesko, Nathan Tefft

Cambridge, Mass. : National Bureau of Economic Research, 2020




ba

Suburban Xanadu [electronic resource] : the Casino Resort on the Las Vegas Strip and Beyond

Hoboken : Taylor & Francis, 2003.