Overview

As the Service Year Alliance and the Service Year Exchange continue to grow, both as a product and an organization, one challenge we are faced with is learning how to refine the Service Year brand identity and apply it cohesively to each of our products. We created this styleguide to act as a central location where we house a live inventory of UI components, brand guidelines, brand assets, code snippets, developer guidelines and more. Anyone working on the Service Year product is encouraged to stay familiar with this styleguide and help ensure that it is kept up-to-date.

Goals

  • Cohesive design language: Refine our visual language to be simpler, more fun and more communicative.
  • Platform agnostic system: Develop a single, unified system that is transferrable across all platforms and devices.
  • Expedite the design process: By abstracting our base styles layer, now developers can churn out UIs with minimal design input.

Notes

  • This is not a 100% comprehensive or updated inventory of components on the Service Year Exchange
  • Certain design aspects in the style guide do not reflect the new branding of the Service Year Alliance

Service Year Developer Notes

The following are explanations of high-level approaches used in this project's styles. They are guidelines which means they should be adhered to as much as possible, but are breakable when needed.

BEM

The BEM (block, element modifier) approach to writing styles is extensively utilized throughout the Service Year styles. This helps us avoid style conflicts while maintaining low-specificity CSS. Side Effects in CSS is an excellent article describing these methodologies.

  • Blocks should be named descriptively yet succinctly:
    .preview-bar {
        background: blue;
        color: white;
        padding: 1em;
    }
    
  • Elements nested inside of these blocks are indicated with __elem syntax:
    .preview-bar__icon {
        vertical-align: middle;
    }
    
  • Modifier classes are added to top-level blocks to apply style overrides:

    .preview-bar--large {
        font-size: 2em;
    
        .preview-bar__icon {
            padding-bottom: 0.25em;
        }
    }
    

Normalize

We use Normalize instead of a reset to assist with consistent rendering across all browsers.

Foundation

We use Zurb Foundation as a boilerplate for this project. Where possible, it's recommended to adjust the _settings.scss file for global style changes. Foundation's documentation includes an overview of how to use settings

Autoprefixer

All of our CSS files are automatically vendor prefixed with autoprefixer during the build process. You can safely avoid manually writing vendor prefixes in your SASS files.

Smart quotes

Instead of using the ' and " characters, we use smart quote HTML escape codes. This small details provides a nice touch, and is the icing on the cake for our typography.

Left and right single quote:

‘

’

Left and right double quote:

“

”

Use ‘smart apostrophes’ vs 'dumb apostrophes'

Use “smart quotes” vs "dumb quotes"