typo

[Figma Workshop 01] Introduction to Styles: Typography & Colors (November 14, 2024 4:00pm)

Event Begins: Thursday, November 14, 2024 4:00pm
Location: North Quad
Organized By: Figma Learning for User Experience (FLUX)


In this first workshop session, we learn the basics of colors and typography, and by the end you’ll have a useable fully functional styles set up in Figma that you can use in any project.

All FLUX workshops ensure you walk away with something you can use for your own projects.

———
FLUX stands for Figma Learning for User Experience. We are a group of students passionate about user experience design and Figma.

Our mission is to create events and activities that support the learning of Figma and UX for students of all levels of expertise and backgrounds across the University of Michigan.




typo

Fixed a typo, updated some minor information.

I fixed a typo on the front page, updated my about page.




typo

Typology

Fr. Theodore Paraskevopoulos preaches on the Sunday of the Blind Man and explains the use of typology in the Holy Scriptures.




typo

Introducing TODS – a typographic and OpenType default stylesheet

Introducing TODS, an open source typography and opentype default stylesheet. One of the great things about going to conferences is the way it can spark an idea and kick start something. This project was initiated following a conversation with Roel Nieskens (of Wakamai Fondue fame) at CSS Day, where he demonstrated his Mildly Opinionated Prose Styles (MOPS).

The idea is to set sensible typographic defaults for use on prose (a column of text), making particular use of the font features provided by OpenType. The main principle is that it can be used as starting point for all projects, so doesn’t include design-specific aspects such as font choice, type scale or layout (including how you might like to set the line-length).

Within the styles is mildly opinionated best practice, which will help set suitable styles should you forget. This means you can also use the style sheet as a checklist, even if you don't want to implement it as-is.

TODS uses OpenType features extensively and variable font axes where available. It makes full use of the cascade to set sensible defaults high up, with overrides applied further down. It also contains some handy utility classes.

You can apply the TODS.css stylesheet in its entirety, as its full functionality relies on progressive enhancement within both browsers and fonts. Anything that is not supported will safely be ignored. The only possible exceptions to this are sub/superscripts and application of a grade axis in dark mode, as these are font-specific and could behave unexpectedly depending on the capability of the font.

In order to preview some of the TODS features, you can check out the preview page tods.html and toggle TODS.css on and off. (This needs more work as the text is a bit of a mish-mash of examples and instructions, and it's missing some of the utility classes and dark mode. But that’s what open source is for… feel free to fork, improve and add back into the repo.)

Walkthrough of the TODS.css stylesheet

You can download a latest version of the stylesheet from the TODS Github repo (meaning some of the code may have changed a bit).

Table of contents:

  1. Reset
  2. Web fonts
  3. Global defaults
  4. Block spacing
  5. Opentype utility classes
  6. Generic help classes
  7. Prose styling defaults
  8. Headings
  9. Superscripts and subscripts
  10. Tables and numbers
  11. Quotes
  12. Hyphenation
  13. Dark mode/inverted text

1. Reset

Based on Andy Bell’s more modern CSS reset. Only the typographic rules in his reset are used here. You might like to apply the other rules too.

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

Prevent font size inflation when rotating from portrait to landscape. The best explainer for this is by Kilian. He also explains why we still need those ugly prefixes too.

body, h1, h2, h3, h4, h5, h6, address, p, hr, pre, blockquote, ol, ul, li, dl, dt, dd, figure, figcaption, div, table, caption, form, fieldset {
  margin: 0;
}

Remove default margins in favour of better control in authored CSS.

input,
button,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
}

Inherit fonts for inputs and buttons.

2. Web fonts

Use modern variable font syntax so that only supporting browsers get the variable font. Others will get generic fallbacks.

@font-face {
  font-family: 'Literata';
  src: url('/fonts/Literata-var.woff2') format('woff2') tech(variations),
       url('/fonts/Literata-var.woff2') format('woff2-variations');
  font-weight: 1 1000;
  font-stretch: 50% 200%;
  font-style: normal;
  font-display: fallback;
}

Include full possible weight range to avoid unintended synthesis of variable fonts with a weight axis. Same applies to stretch range for variable fonts with a width axis.

For main body fonts, use fallback for how the browser should behave while the webfont is loading. This gives the font an extremely small block period and a short swap period, providing the best chance for text to render.

@font-face {
  font-family: 'Literata';
  src: url('/fonts/Literata-Italic-var.woff2') format('woff2') tech(variations),
       url('/fonts/Literata-Italic-var.woff2') format('woff2-variations');
  font-weight: 1 1000;
  font-stretch: 50% 200%;
  font-style: italic;
  font-display: swap;
}

For italics use swap for an extremely small block period and an infinite swap period. This means italics can be synthesised and swapped in once loaded.

@font-face {
  font-family: 'Plex Sans';
  src: url('/fonts/Plex-Sans-var.woff2') format('woff2') tech(variations),
       url('/fonts/Plex-Sans-var.woff2') format('woff2-variations');
  font-weight: 1 1000;
  font-stretch: 50% 200%;
  font-style: normal;
  font-display: fallback;
  size-adjust:105%; /* make monospace fonts slightly bigger to match body text. Adjust to suit – you might need to make them smaller */
}

When monospace fonts are used inline with text fonts, they often need tweaking to appear balanced in terms of size. Use size-adjust to do this without affecting reported font size and associated units such as em.

3. Global defaults

Set some sensible defaults that can be used throughout the whole web page. Override these where you need to through the magic of the cascade.

body {
    line-height: 1.5;
    text-decoration-skip-ink: auto;
    font-optical-sizing: auto;
    font-variant-ligatures: common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;
    font-kerning: normal;
}

Set a nice legible line height that gets inherited. The font- properties are set to default CSS and OpenType settings, however they are still worth setting specifically just in case.

button, input, label { 
  line-height: 1.1; 
}

Set shorter line heights on interactive elements. We’ll do the same for headings later on.

4. Block spacing

Reinstate block margins we removed in the reset section. We’re setting consistent spacing based on font size on primary elements within ‘flow’ contexts. The entire ‘prose’ area is a flow context, but so might other parts of the page. For more details on the ‘flow’ utility see Andy Bell’s favourite three lines of CSS.

.flow > * + * {
  margin-block-start: var(--flow-space, 1em);
}

Rule says that every direct sibling child element of .flow has margin-block-start added to it. The > combinator is added to prevent margins being added recursively.

.prose {
  --flow-space: 1.5em;
}

Set generous spacing between primary block elements (in this case it’s the same as the line height). You could also choose a value from a fluid spacing scale, if you are going down the fluid typography route (recommended, but your milage may vary). See Utopia.fyi for more details and a fluid type tool.

5. OpenType utility classes

.dlig { font-variant-ligatures: discretionary-ligatures; }
.hlig { font-variant-ligatures: historical-ligatures; }
.dlig.hlig { font-variant-ligatures: discretionary-ligatures historical-ligatures; } /* Apply both historic and discretionary */

.pnum { font-variant-numeric: proportional-nums; }
.tnum { font-variant-numeric: tabular-nums;    }
.lnum { font-variant-numeric: lining-nums; }
.onum { font-variant-numeric: oldstyle-nums; }
.zero { font-variant-numeric: slashed-zero;    }
.pnum.zero { font-variant-numeric: proportional-nums slashed-zero; } /* Apply slashed zeroes to proportional numerals */
.tnum.zero { font-variant-numeric: tabular-nums slashed-zero; }
.lnum.zero { font-variant-numeric: lining-nums slashed-zero; }
.onum.zero { font-variant-numeric: oldstyle-nums slashed-zero; }
.tnum.lnum.zero { font-variant-numeric: tabular-nums lining-nums slashed-zero; }
.frac { font-variant-numeric: diagonal-fractions; }
.afrc { font-variant-numeric: stacked-fractions; }
.ordn { font-variant-numeric: ordinal; }

.smcp { font-variant-caps: small-caps; }
.c2sc { font-variant-caps: unicase; }
.hist { font-variant-alternates: historical-forms; }

Helper utilities matching on/off Opentype layout features available through high level CSS properties.

@font-feature-values "Fancy Font Name" { /* match font-family webfont name */

    /* All features are font-specific. */
    @styleset { cursive: 1; swoopy: 7 16; }
    @character-variant { ampersand: 1; capital-q: 2; }
    @stylistic { two-story-g: 1; straight-y: 2; }
    @swash { swishy: 1; flowing: 2; wowzers: 3 }
    @ornaments { clover: 1; fleuron: 2; }
    @annotation { circled: 1; boxed: 2; }
}

Other Opentype features can have multiple glyphs, accessible via an index number defined in the font – these will be explained in documentation that came with your font. These vary between fonts, so you need to set up a new @font-font-features rule for each different font, ensuring the font name matches that of the font family. You then give each feature a custom name such as ‘swoopy’. Note that stylesets can be combined, which is why swoopy has a space-separated list of indices 7 16.

/* Stylesets */
.ss01 { font-variant-alternates: styleset(cursive); }
.ss02 { font-variant-alternates: styleset(swoopy); }

/* Character variants */
.cv01 { font-variant-alternates: character-variant(ampersand); }
.cv02 { font-variant-alternates: character-variant(capital-q); }

/* Stylistic alternates */
.salt1 { font-variant-alternates: stylistic(two-story-g); }
.salt2 { font-variant-alternates: stylistic(straight-y); }

/* Swashes */
.swsh1 { font-variant-alternates: swash(swishy); }
.swsh2 { font-variant-alternates: swash(flowing); }

/* Ornaments */
.ornm1 { font-variant-alternates: ornaments(clover); }
.ornm2 { font-variant-alternates: ornaments(fleuron); }

/* Alternative numerals */
.nalt1 { font-variant-alternates: annotation(circled); }
.nalt2 { font-variant-alternates: annotation(boxed); }

Handy utility classes showing how to access the font feature values you set up earlier using the font-variant-alternates property.

:root {
    --opentype-case: "case" off;
    --opentype-sinf: "sinf" off;
}

/* If class is applied, update custom property */
.case {
    --opentype-case: "case" on;
}

.sinf {
    --opentype-sinf: "sinf" on;
}

/* Apply current state of all custom properties, defaulting to off */
* { 
    font-feature-settings: var(--opentype-case, "case" off), var(--opentype-sinf, "sinf" off);
}

Set custom properties for OpenType features only available through low level font-feature-settings. We need this approach because font-feature-settings does not inherit in the same way as font-variant. See Roel’s write-up, including how to apply the same methodology to custom variable font axes.

6. Generic helper classes

Some utilities to help ensure best typographic practice.

.centered {
    text-align: center;
    text-wrap: balance;
}

When centring text you’ll almost always want the text to be ‘balanced’, meaning roughly the same number of characters on each line.

.uppercase {
    text-transform: uppercase;
    --opentype-case: "case" on;
}

When fully capitalising text, ensure punctuation designed to be used within caps is turned on where available, using the Opentype ‘case’ feature.

.smallcaps {
    font-variant-caps: all-small-caps;
    font-variant-numeric: oldstyle-nums;    
}

Transform both upper and lowercase letters to small caps, and use old style-numerals within runs of small caps so they match size-wise.

7. Prose styling defaults

Assign a .prose class to your running text, that is to say an entire piece of prose such as the full text of an article or blog post.

.prose {
    text-wrap: pretty;
    font-variant-numeric: oldstyle-nums proportional-nums;
    font-size-adjust: 0.507;
}

Firstly we get ourselves better widow/orphan control, aiming for blocks of text to not end with a line containing a word on its own. Also we use proportional old-style numerals in running text.

Also adjust the size of fallback fonts to match the webfont to maintain legibility with fallback fonts and reduce visible reflowing. The font-size-adjust number is the aspect ratio of the webfont, which you can calculate using this tool.

strong, b, th { 
    font-weight: bold;
    font-size-adjust: 0.514; 
}

Apply a different adjustment to elements which are typically emboldened by default, as bold weights often have a different aspect ratio – check for the different weights you may be using, including numeric semi-bolds (eg. 650). Headings are dealt with separately as the aspect ratio may be affected by optical sizing.

8. Headings

h1, h2, h3, h4 { 
    line-height: 1.1; 
    font-size-adjust: 0.514;
    font-variant-numeric: lining-nums; }

Set shorter line heights on your main headings. Set an aspect ratio for fallback fonts – check for different weights of headings. Use lining numerals in headings, especially when using Title Case.

h1 {
    font-variant-ligatures: discretionary-ligatures; 
    font-size-adjust: 0.521;
}

Turn on fancy ligatures for main headings. If the font has an optical sizing axis, you might need to adjust the aspect ratio accordingly.

h1.uppercase {
    font-variant-caps: titling-caps;
}

When setting a heading in all caps, use titling capitals which are specially designed for setting caps at larger sizes.

9. Superscripts and subscripts

Use proper super- and subscript characters. Apply to sub and sup elements as well as utility classes for when semantic sub/superscripts are not required.

@supports ( font-variant-position: sub ) {
    sub, .sub {
        vertical-align: baseline;
        font-size: 100%;
        line-height: inherit;
        font-variant-position: sub;
    }
}

@supports ( font-variant-position: super ) {
    sup, .sup {
        vertical-align: baseline;
        font-size: 100%;
        line-height: inherit;
        font-variant-position: super;
    }
}

If font-variant-position is not specified, browsers will synthesise sub/superscripts, so we need to manually turn off the synthesis. This is the only way to use a font’s proper sub/sup glyphs, however it’s only safe to use this if you know your font has glyphs for all the characters you are sub/superscripting. If the font lacks those characters (most only have sub/superscript numbers, not letters), then only Firefox (correctly) synthesises sup and sub – all other browsers will display normal characters in the regular way as we turned the synthesis off.

.chemical { 
    --opentype-sinf: "sinf" on;
}

For chemical formulae like H2O, use scientific inferiors instead of sub.

10. Tables and numbers

td, math, time[datetime*=":"] {
    font-variant-numeric: tabular-nums lining-nums slashed-zero;    
}

Make sure all numbers in tables are lining tabular numerals, adding slashed zeroes for clarity. This could usefully apply where a time is specifically marked up, as well as in mathematics.

11. Quotes

Use curly quotes and hang punctuation around blockquotes.

:lang(en) > * { quotes: '“' '”' '‘' '’' ; } /* “Generic English ‘style’” */
:lang(en-GB) > * { quotes: '‘' '’' '“' '”'; } /* ‘British “style”’ */
:lang(fr) > * { quotes: '«?0202F' '?0202F»' '“' '”'; } /* « French “style” » */

Set punctuation order for inline quotes. Quotes are language-specific, so set a lang attribute on your HTML element or send the language via a server header. Note the narrow non-breaking spaces encoded in the French example.

q::before { content: open-quote }
q::after  { content: close-quote }

Insert quotes before and after q element content.

.quoted, .quoted q {
    quotes: '“' '”' '‘' '’';
}

Punctuation order for blockquotes, using a utility class to surround with double-quotes.

.quoted p:first-of-type::before {
    content: open-quote;
}
.quoted p:last-of-type::after  {
    content: close-quote;
}

Append quotes to the first and last paragraphs in the blockquote.

.quoted p:first-of-type::before {
    margin-inline-start: -0.87ch; /* Adjust according to font */
}
.quoted p {
    hanging-punctuation: first last;
}
@supports(hanging-punctuation: first last) {
    .quoted p:first-of-type::before {
        margin-inline-start: 0;
    }
}

Hang the punctuation outside of the blockquote. Firstly manually hang punctuation with a negative margin, then remove the manual intervention and use hanging-punctuation if supported.

12. Hyphenation

Turn on hyphenation for prose. Language is required in order for the browser to use the correct hyphenation dictionary.

.prose {
    -webkit-hyphens: auto;
    -webkit-hyphenate-limit-before: 4;
    -webkit-hyphenate-limit-after: 3;
    -webkit-hyphenate-limit-lines: 2;

    hyphens: auto;
    hyphenate-limit-chars: 7 4 3;
    hyphenate-limit-lines: 2;    
    hyphenate-limit-zone: 8%;
    hyphenate-limit-last: always;
}

Include additional refinements to hyphenation. Respectively, these stop short words being hyphenated, prevent ladders of hyphens, and reduce overall hyphenation a bit. Safari uses legacy properties to achieve some of the same effects, hence the ugly prefixes and slightly different syntax.

.prose pre, .prose code, .prose var, .prose samp, .prose kbd,
.prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 {
    -webkit-hyphens: manual;
    hyphens: manual;
}

Turn hyphens off for monospace and headings.

13. Dark mode/inverted text

Reduce grade if available to prevent bloom of inverted type.

:root {
  --vf-grad: 0;
}

@media (prefers-color-scheme: dark) {
  :root {
    --vf-grad: -50;
  }
}

* {
  font-variation-settings: "GRAD" var(--vf-grad, 0);
}

Not all fonts have a grade (GRAD) axis, and the grade number is font-specific. We’re using the customer property method because font-variation-settings provides low-level control meaning each subsequent use of the property completely overrides prior use – the values are not inherited or combined, unlike with font-variant for example.

There are probably better ways of doing some of these things, and the preview page is rather lacking at the moment. Please let me know on Github, or better still fork it, edit and resubmit.

Read or add comments




typo

Towards a Typology of Virtual Communities of Practice




typo

Typology on Leadership toward Creativity in Virtual Work

Aim/Purpose: This study aims to develop a descriptive typology to better identify leadership toward creativity in virtual work in different types of companies. Background: The study empirically explores how leadership toward creativity occurs in virtual work and uses the theoretical lenses of creativity-conducive leadership and heterarchy to generate a typology. Methodology : A multiple qualitative case study design, interpretivist approach, and abductive analysis are applied. Data is collected by interviewing 21 leaders and employees face-to-face in four companies in the ICT sector and one business advisor company. Contribution: The empirical evidence of this study enriches the understanding of leadership toward creativity in virtual work and contributes to the limited empirical knowledge on leadership that stimulates a virtual workforce to achieve creativity. Findings: The four different types of companies in the typology utilize various transitions toward leadership creativity in virtual work. The trend in leadership in the existing virtually networked business environment is toward the “collective mind” company, which is characterized by shared values, meaningful work, collective intelligence, conscious reflection, transparency, coaching, empowering leadership by example, effective multichannel interaction, and assertiveness. The findings empirically support applying a heterarchy perspective to lead a virtual workforce toward creativity and promote leaders who are genuinely interested in people, their development, collaboration, and technology. Recommendations for Practitioners: The typology helps professionals realize the need to develop leadership, communication, interaction, learning, and growth to foster creative interaction and improve productivity and competitiveness. Recommendation for Researchers: This study enables researchers to more rigorously and creatively conceptualize the conditions and relationships in leadership that facilitate creativity in virtual work. Impact on Society : The findings highlight humanistic values for developing leadership. The study strengthens the view that collective creativity in virtual work cannot emerge without virtual and physical interaction in appropriate spaces and caring for each other. Future Research: Future studies may focus on other fields, industries, networks, roles of materialities, and employees in fostering creativity and on theory development. Longitudinal studies are advisable.




typo

A New Typology Design of Performance Metrics to Measure Errors in Machine Learning Regression Algorithms

Aim/Purpose: The aim of this study was to analyze various performance metrics and approaches to their classification. The main goal of the study was to develop a new typology that will help to advance knowledge of metrics and facilitate their use in machine learning regression algorithms Background: Performance metrics (error measures) are vital components of the evaluation frameworks in various fields. A performance metric can be defined as a logical and mathematical construct designed to measure how close are the actual results from what has been expected or predicted. A vast variety of performance metrics have been described in academic literature. The most commonly mentioned metrics in research studies are Mean Absolute Error (MAE), Root Mean Squared Error (RMSE), etc. Knowledge about metrics properties needs to be systematized to simplify the design and use of the metrics. Methodology: A qualitative study was conducted to achieve the objectives of identifying related peer-reviewed research studies, literature reviews, critical thinking and inductive reasoning. Contribution: The main contribution of this paper is in ordering knowledge of performance metrics and enhancing understanding of their structure and properties by proposing a new typology, generic primary metrics mathematical formula and a visualization chart Findings: Based on the analysis of the structure of numerous performance metrics, we proposed a framework of metrics which includes four (4) categories: primary metrics, extended metrics, composite metrics, and hybrid sets of metrics. The paper identified three (3) key components (dimensions) that determine the structure and properties of primary metrics: method of determining point distance, method of normalization, method of aggregation of point distances over a data set. For each component, implementation options have been identified. The suggested new typology has been shown to cover a total of over 40 commonly used primary metrics Recommendations for Practitioners: Presented findings can be used to facilitate teaching performance metrics to university students and expedite metrics selection and implementation processes for practitioners Recommendation for Researchers: By using the proposed typology, researchers can streamline development of new metrics with predetermined properties Impact on Society: The outcomes of this study could be used for improving evaluation results in machine learning regression, forecasting and prognostics with direct or indirect positive impacts on innovation and productivity in a societal sense Future Research: Future research is needed to examine the properties of the extended metrics, composite metrics, and hybrid sets of metrics. Empirical study of the metrics is needed using R Studio or Azure Machine Learning Studio, to find associations between the properties of primary metrics and their “numerical” behavior in a wide spectrum of data characteristics and business or research requirements




typo

Learning to (Co)Evolve: A Conceptual Review and Typology of Network Design in Global Health Virtual Communities of Practice

Aim/Purpose: This conceptual review analyzes the designs of global health virtual communities of practice (VCoPs) programming reported in the empirical literature and proposes a new typology of their functioning. The purpose of this review is to provide clarity on VCoP learning stages of (co)evolution and insight into VCoP (re)development efforts to best meet member, organization, and network needs against an ever-evolving landscape of complexity in global health. Background: Since the COVID-19 pandemic, the field of global health has seen an uptick in the use of VCoPs to support continuous learning and improve health outcomes. However, evidence of how different combinations of programmatic designs impact opportunities for learning and development is lacking, and how VCoPs evolve as learning networks has yet to be explored. Methodology: Following an extensive search for literature in six databases, thematic analysis was conducted on 13 articles meeting the inclusion criteria. This led to the development and discussion of a new typology of VCoP phases of learning (co)evolution. Contribution: Knowledge gained from this review and the new categorization of VCoPs can support the functioning and evaluation of global health training programs. It can also provide a foundation for future research on how VCoPs influence the culture of learning organizations and networks. Findings: Synthesis of findings resulted in the categorization of global health VCoPs into five stages (slightly evolving, somewhat revolving, moderately revolving, highly revolving, and coevolving) across four design domains (network development, general member engagement before/after sessions, general member engagement during sessions, and session leadership). All global health VCoPs reviewed showed signs of adaptation and recommended future evolution. Recommendations for Practitioners: VCoP practitioners should pay close attention to how the structured flexibility of partnerships, design, and relationship development/accountability may promote or hinder VcoP’s continued evolution. Practitioners should shift perspective from short to mid- and long-term VCoP planning. Recommendation for Researchers: The new typology can stimulate further research to strengthen the clarity of language and findings related to VCoP functioning. Impact on Society: VCoPs are utilized by academic institutions, the private sector, non-profit organizations, the government, and other entities to fill gaps in adult learning at scale. The contextual implementation of findings from this study may impact VCoP design and drive improvements in opportunities for learning, global health, and well-being. Future Research: Moving forward, future research could explore how VCoP evaluations relate to different stages of learning, consider evaluation stages across the totality of VCoP programming design, and explore how best to capture VCoP (long-term) impact attributed to health outcomes and the culture of learning organizations and networks.




typo

EU 2010 biodiversity baseline — adapted to the MAES typology (2015)

The report ‘EU 2010 biodiversity baseline - adapted to the MAES typology (2015)’ presents a revised overview of the EEA's EU 2010 biodiversity baseline report.

The revision is necessary because the typology of ecosystems used in the 2010 report has since been altered by a working group of biodiversity experts. The revised report provides recalculated information on the state and trends of the different biodiversity and ecosystem components, based on the new typology of ecosystems.

Find the report here.






typo

How to add typographic fonts to WordPress block themes

The easy and compliant way that every theme developer should know.




typo

Mastering the Art of Web Typography: Enhancing Readability and Brand Identity

Typography is a core element of web design that impacts how easily people can read and engage with your content.  Your message and brand identity stand out when you have a font that draws the eye in.  When you know how to use web typography principles to grab attention, you can transform a good-looking website...

The post Mastering the Art of Web Typography: Enhancing Readability and Brand Identity appeared first on noupe.




typo

Dramatic Typography Designs to Acquire Best Ideas

Typography designs are most beautiful type of artwork, you can get inspiration from typography design, creative typography design for you to get artistic ideas.

View and Vote




typo

Mastering Typography In Logo Design

Finding the right typeface for a logo is a challenge and can be a very time-consuming process that requires both creativity and a practical approach. Levi Honing provides the essential background and tools to enhance your typography journey and apply this knowledge to your logo design. Let’s dive deep to learn how to create a logo that is not only expressive but also purposeful and well-thought-out.




typo

JUST Creative wins Awwwards. ‘Typography Honors’ for Brand Builders Summit ’24 Website

Brand Builders Summit 2024 wins ‘Typography Honors’ at Awwwards for outstanding typography and design, attracting 60K+ visitors globally. 2025 waitlist open!




typo

The typo make us humna 

In our ever-changing and seemingly chaotic world, the typo, that simple yet ubiquitous mistake that everyone everywhere makes occasionally, is still too often deemed as the ultimate death knell for too many potential hires, projects, and deals. 

As the dyslexic son of an English teacher and a librarian, the importance of proper grammar and spelling has been metaphorically beaten into my brain since early childhood. “Food is good . . . You do things well . . .” was an all too common saying around my eastern North Carolina childhood home. 

The older I’ve gotten and the more that I’ve tried, these pesky, frustrating, and often hilarious mistakes still manage to creep their way into literally every single thing I do. It’s both maddening and inevitable, but also nearly always funny. 

What makes us unique

Everyone has a special, unique, and key talent. Mine is inevitably inserting typos at the exact wrong point and being unable to spot them after the fact . . . until, of course, it’s too late and I’ve sent my now mortifyingly unsendable error. 

For most of my life, this has been a near-crippling fear. It’s slowed down productivity, inhibited timely responses, and very likely affected friendships and professional relationships. 

In a shocking (but obvious) sense of self-realization during a conversation about AI recently, the need for perfection—and the ever-blurring line between technology and humanity—I finally realized just how little these this actually matters in the grand scheme of things. And how these all too human mistakes show our quirks and personalities in ways that ever-evolving AI can and never will replicate. Let’s stop pretending otherwise. 

While I’m fully aware that my english teacher mother is likely looking down at me from beyond the grave unamused and shaking her head in disapproval at my self-realization, I do in fact believe that as a society we should be embracing our quirks more fully, as these are what truly make us human.  

For clarification, I’m not arguing for an age of not caring. I’m just arguing for an age of caring within reason. At the end of the day, life is far too short and there are far too many other things of higher importance that demand our attention than to needlessly worry about such things. I mean seriously . . . fukc it . . .

William Dodge is cofounder and artist at A Gang of Three and founder and design principal at p-u-b-l-i-c.




typo

More secure and better at correcting typos on your phone, can this Swiss start-up take on Google?

More secure and better at correcting typos on your phone, can this Swiss start-up take on Google?




typo

343: ‘Fussy Typography Improvements’, With Paul Kafasis

Paul Kafasis returns to the show to talk about Friday Night Baseball, Rogue Amoeba’s new Audio Hijack 4 release, and a bit of speculation on WWDC.




typo

Malware Campaign Uses Ethereum Smart Contracts to Control npm Typosquat Packages

An ongoing campaign is targeting npm developers with hundreds of typosquat versions of their legitimate counterparts in an attempt to trick them into running cross-platform malware. The attack is notable for utilizing Ethereum smart contracts for command-and-control (C2) server address distribution, according to independent findings from Checkmarx, Phylum, and Socket published over the past few




typo

Typo in Trump’s Name on Ballot Review Screen Is Not ‘Election Fraud’

A misspelling of former President Donald Trump's name occurred on an optional ballot review screen in Virginia, prompting an unfounded claim on social media of "election fraud." The error was a typo that appeared only on the ballot review screen, not on actual ballots, and would not affect any votes, election officials said.

The post Typo in Trump’s Name on Ballot Review Screen Is Not ‘Election Fraud’ appeared first on FactCheck.org.




typo

A Modern Typographic Scale

Rob Weychert reaches for the top notes to sing us a song of typographic scale. A little attention to scale and to the mathematics will help you to hit a high note with your designs this Christmas and beyond.


I’ve been studying music theory this year. While some of its core concepts were already familiar to me, much of their specifics were not. Or so I thought. A funny thing happened when I was learning the major scales.

While playing through a song I had written some years before, I started picking it apart to see how it correlated with the theory I was learning. I had composed the melody without any thought to what the specific notes were, but as I started to transcribe them, a pattern quickly emerged: all the B’s and E’s were flat and the rest of the notes were natural. Lo and behold, long before my music theory studies began, I had written a song in B♭ major. My ears already knew how the major scales worked even if my brain didn’t. (If you know how “do re mi fa so la ti do” is supposed to sound tonally, then your ears know, too.)

When music is composed to a scale, it sounds “right” to us. And just as our ears appreciate harmony and melody with a rational basis, our eyes can appreciate the same concepts applied to spatial relationships.

Have you ever struggled with sizing type in a design project, especially when you need more than just one or two sizes? Have you ever despaired at the number of ad-hoc type sizes on your site spiraling out of control over time? It could be that you’ve been composing the typographic equivalent of a cacophonous symphony. And the first thing any composer will tell you to do is to get that thing on a scale.

Meet the typographic scale

You don’t need to know music theory to work with a typographic scale. You only need to know that a scale is a range of values with an established mathematic relationship. For a typographic scale, that relationship is frequently a steady interval between type sizes. Depending on what you need your type to do, the interval might be fixed (e.g. each size is two pixels bigger than the size before it) or it might be proportional (e.g. each size is twice as big as the size before it). I personally rarely find fixed intervals useful, so I’ll be focusing on proportional intervals.

The most important thing to understand about proportional intervals is thankfully not complicated: The bigger the intervals are, the more drastic the size differences will be in your scale. If your layout calls for contrast, a bigger interval might be the way to go. If you’re aiming for something more nuanced, go smaller. But keep these things in mind:

  • There is such a thing as too much nuance: if a size on your scale is virtually indistinguishable from the sizes adjacent to it, it defeats the purpose of using a scale.
  • On the flip side, too much contrast renders the sizes’ proportional relationship moot. At a certain point, massive display type is arguably more graphic than textual.
  • More is less. The more sizes you use, the less they’ll mean.
A small interval (left, 1.1) offers a smoother range of sizes; a large interval (right, 1.8) offers more contrast.

Setting up the scale variables

The quickest way to get a scale up and running when working on the web is to drop its values into some CSS variables. The naming convention I typically use begins with --scale0, which is the body text size. The size below it is --scale-1 (as in “scale minus one”), the size above it is --scale1, and so on. Keeping the names relative to each other like this helps me move around the scale intuitively as I use it. If, say, --scale4 isn’t big enough for my h1, I can move up to --scale5 or --scale6, and I always know exactly how many steps away from the body text I am. Here’s a first pass at a simple set of scale variables using an interval of 1.5:

:root {
  --scale-2: 7.1px;  /* 10.7 ÷ 1.5 */
  --scale-1: 10.7px; /* 16 ÷ 1.5   */
  --scale0: 16px;    /* body text  */
  --scale1: 24px;    /* 16 × 1.5   */
  --scale2: 36px;    /* 24 × 1.5   */
}

I can use these variables with any CSS property that accepts a numeric value, like so:

p { font-size: var(--scale0); }

Rooting around in rems

I’m off to a good start. However, those px values are a little too absolute for my liking. If I convert them to rems, it’ll give my scale more flexibility. rem stands for “root em.” 1rem is equivalent to the html element’s text size, which in most browsers defaults to 16px. Crucially, though, users can adjust that size in their browser settings, and using rems in my CSS will respect those preferences.

:root {
  --scale-2: 0.4rem;  /* 0.7rem ÷ 1.5 */
  --scale-1: 0.7rem;  /* 1rem ÷ 1.5   */
  --scale0: 1rem;     /* body text    */
  --scale1: 1.5rem;   /* 1rem × 1.5   */
  --scale2: 2.25rem;  /* 1.5rem × 1.5 */
}

Another benefit of the relative nature of rems: I tend to use larger text sizes on large viewports and smaller text sizes on small viewports. Rather than adjusting dozens or hundreds of typographic CSS declarations per breakpoint, I can shift the whole scale up or down merely by adjusting the font-size on the html element:

html { font-size: 100%; }     /* 1rem = 16px */

@media screen and (min-width: 25em) {
  html { font-size: 112.5%; } /* 1rem = 18px */
}

Calculating with calc()

My scale is coming along. Its variables’ intuitive names make it easy for me to use, and its rem values respect the user’s browser preferences and allow me to easily shift the size of the entire scale at different viewport sizes. But my setup still isn’t optimized for one very important adjustment: the interval, which is currently 1.5. If 1.5 isn’t quite working for me and I want to see how an increase or decrease will affect the scale, I need to do the math all over again for every step in the scale every time I adjust the interval. The bigger the scale, the more time that will take. It’s time to put down the abacus and get calc() involved.

:root {
  --int: 1.5;
  --scale0: 1rem;
  --scale-1: calc(var(--scale0) / var(--int));
  --scale-2: calc(var(--scale-1) / var(--int));
  --scale1: calc(var(--scale0) * var(--int));
  --scale2: calc(var(--scale1) * var(--int));
}

My interval now has its very own variable, called --int. calc() determines each scale size by multiplying the preceding size by --int. Now that every size is ultimately dependent on --scale0’s value, --scale0 must appear first in the list. Since the sizes smaller than --scale0 are going down rather than up, their values require division rather than multiplication.

Scaling the scale

I can now quickly and easily tweak my scale’s interval by adjusting --int until the proportions are just right, but if I want to add more sizes to the scale, I need to add more variables and calc() values. This isn’t too big of a deal, but if I want to double or triple the number of sizes, it’s kind of a headache. Luckily, this is the sort of thing Sass is really good at. In the following code, adjusting the first four Sass variables at the top of :root will quickly spin up a set of CSS variables like the scale above, with any interval (proportional or fixed) and any number of scale sizes:

:root {
  $interval: 1.5;    // Unitless for proportional, unit for fixed
  $body-text: 1rem;  // Must have a unit
  $scale-min: -2;    // Unitless negative integer
  $scale-max: 2;     // Unitless positive integer

  --int: #{$interval};
  --scale0: #{$body-text};

  @if $scale-min < 0 {
  // Generate scale variables smaller than the base text size
    @for $i from -1 through $scale-min {
      @if type-of($interval) == number {
        @if unitless($interval) {
          --scale#{$i}: calc(var(--scale#{$i + 1}) / var(--int));
        } @else {
          --scale#{$i}: calc(var(--scale#{$i + 1}) - var(--int));
        }
      }
    }
  }
  @if $scale-max > 0 {
    // Generate scale variables larger than the base text size
    @for $i from 1 through $scale-max {
      @if type-of($interval) == number {
        @if unitless($interval) {
          --scale#{$i}: calc(var(--scale#{$i - 1}) * var(--int));
        } @else {
          --scale#{$i}: calc(var(--scale#{$i - 1}) + var(--int));
        }
      }
    }
  }
}

Go forth and scale

Typographic scales have been an indispensable part of my work for many years, and CSS variables and calc() make setup, adjustments, and experimentation easier than ever. I hope you find these techniques as useful as I do!


About the author

Rob Weychert is a Brooklyn-based designer. He helps shape the reading experience at ProPublica and has previously helped make books at A Book Apart, games at Harmonix, and websites at Happy Cog. In his free time, he obsesses over music and film. Despite all this, he is probably best known as a competitive air guitarist.

More articles by Rob




typo

Typology on Mutual Legal Assistance in Foreign Bribery Cases

This study focuses on the challenges that arise in providing and obtaining mutual legal assistance (MLA) in foreign bribery cases. Because these cases take place across borders, effective MLA between countries is crucial for the successful investigation, prosecution and sanctioning of this crime.




typo

Hand Drawn Typography at Refresh Seattle

Refresh Seattle – February 2014 First off, what is Refresh? According to their website… Refresh Seattle is a community of designers and developers working to refresh the creative, technical, and professional culture of New Media endeavors in the Seattle/Puget Sound area. Promoting design, technology, usability, and standards, Refresh Seattle is a part of Refresh and […]




typo

Billion-dollar correction in Australia's Future Submarine budget blamed on 'typo'

A figure "described inaccurately" is being blamed for an apparent dramatic cost increase on Australia's most expensive defence project in history, the $50 billion Future Submarine program.



  • ABC Radio Adelaide
  • adelaide
  • Business
  • Economics and Finance:All:All
  • Business
  • Economics and Finance:Industry:All
  • Business
  • Economics and Finance:Industry:Defence and Aerospace Industries
  • Defence and National Security:All:All
  • Defence and National Security:Defence Industry:All
  • Government and Politics:All:All
  • Government and Politics:Federal Government:All
  • Government and Politics:States and Territories:All
  • Australia:All:All
  • Australia:SA:Adelaide 5000
  • Australia:SA:All

typo

Komatsu blames typo for workers' bonus bungle that falls foul of Fair Work Act

A Japanese multinational agreed to pay its workers a 2 per cent annual bonus. It ended up in court blaming an errant keystroke after filing paperwork agreeing to pay a 10 per cent bonus.




typo

British designers create typographic tribute to cities affected by World War II

Designers Liam + Jord have created a series of minimalistic history-inspired “logos” for cities affected by World War II as part of RT’s tribute project #VictoryPages featuring cities such as Moscow, Warsaw, Berlin, and Hiroshima.
Read Full Article at RT.com





typo

URLCrazy Domain Name Typo Tool 0.7.1

URLCrazy is a tool that can generate and test domain typos and variations to detect and perform typo squatting, URL hijacking, phishing, and corporate espionage. It generates 15 types of domain variants, knows over 8000 common misspellings, supports multiple keyboard layouts, can check if a typo is a valid domain, tests if domain typos are in use, and estimates the popularity of a typo.




typo

Not just a typographical change: Why Brookings is capitalizing Black

Brookings is adopting a long-overdue policy to properly recognize the identity of Black Americans and other people of ethnic and indigenous descent in our research and writings. This update comes just as the 1619 Project is re-educating Americans about the foundational role that Black laborers played in making American capitalism and prosperity possible. Without Black…

       




typo

Typology on Mutual Legal Assistance in Foreign Bribery Cases

This study focuses on the challenges that arise in providing and obtaining mutual legal assistance (MLA) in foreign bribery cases. Because these cases take place across borders, effective MLA between countries is crucial for the successful investigation, prosecution and sanctioning of this crime.




typo

Typeset in the future: typography and design in science fiction movies / Dave Addey ; foreword by Matt Zoller Seitz

Hayden Library - PN1995.9.S26 A44 2018




typo

Typography = Typographie = Typographie : when, who, how / edited by Friedrich Friedl, Nicolaus Ott, Bernard Stein; text Philipp Luidl




typo

Typo survival kit for all type emergencies / Jill Yeland

Yelland, Jill




typo

Grid systems in graphic design : a visual communication manual for graphic designers, typographers and three dimensional designers = Raster Systeme für die visuelle Gestaltung: ein Handbuch für Grafiker, Typografen und Ausstellungsgestalter / Jo

Müller-Brockmann, Josef, 1914-1996, author




typo

Typographic systems / Kimberly Elam

Elam, Kimberly, 1951-




typo

Der typografische Raster = The typographic grid / Hans Rudolf Bosshard ; [English translation, Andrew Bluhm]

Bosshard, Hans Rudolph, 1929-




typo

Typography : macro- and microaesthetics / Willi Kunz

Kunz, Willi




typo

Typography : an encyclopedic survey of type design and techniques throughout history / by Friedrich Friedl, Nicolaus Ott, and Bernard Stein

Friedl, Friedrich




typo

Typorama : the graphic work of Philippe Apeloig / edited by Tino Grass ; with contributions by Ellen Lupton and Alice Morgaine

Apeloig, Philippe, 1962- artist




typo

The typographic universe : letterforms found in nature, the built world and human imagination / Steven Heller & Gail Anderson

Heller, Steven, author




typo

Making a splash : graphics that flow : graphic identities / print work / illustrations / typography / artefacts / edited and produced by Viction:ary




typo

Responsive typography / Jason Pamental

Pamental, Jason, author




typo

Type spaces : typography in three-dimensional spaces




typo

Grammatical Number in Welsh: Diachrony and Typology


 

The first comprehensive treatment of grammatical number in Welsh - an intriguing, yet relatively neglected area in the study of number phenomena. 



Read More...




typo

Central Catalan and Swabian: a study in the framework of the typology of syllable and word languages / Javier Caro Reina

Dewey Library - P217.52.R45 2019




typo

Participles: a typological study / Ksenia Shagal

Online Resource




typo

Genders and classifiers: a cross-linguistic typology / edited by Alexandra Y. Aikhenvald and Elena I. Mihas

Dewey Library - P271.G46 2019




typo

Verbs, clauses and constructions: functional and typological approaches / edited by Pilar Guerrero Medina, Roberto Torre Alonso and Raquel Vea Escarza

Hayden Library - P270.V47 2018




typo

Semantics: typology, diachrony and processing / edited by Klausn von Heusinger, Claudia Maienborn, Paul Portner

Hayden Library - P325.S37999 2019




typo

Phonological typology / edited by Larry M. Hyman and Frans Plank

Barker Library - P204.P56 2013