color themes

We've adjusted and expanded the CSS custom properties at tad to make the system more optimized in general and also allow for the new color ranges coming out of the marketing side. After discussion, we determined the areas that should be adjustable are the background, text, links and any buttons. These properties can always be changed with targeted CSS, but the more specific we make the atoms the more code we have to add at the molecule and card level to overload previous rules.

Starting with just impact, a normal approach wasn't too bad. It's ok to declare, as an example, in an impact molecule or card that the label should be black text on a white background. That's not a lot of code. It got a little more repetitive when we added the promo concept and then it got really ugly when we started putting these into a story body with its own rules.

What we have done here instead, using CSS custom properties, is set some defaults for our current cards to eliminate boilerplate code while also giving us a clean place to add new themes without increasing the payload by all that much. Here is the new set of standards for impact card and promo cards.

In the new setup, atoms like links, buttons and labels are listening for these properties. Here is a sampling of the CSS for the impact and promo molecules.

.impact,
.promo {
  --paper-color: #373737;
  --header-color: white;
  --text-color: white;
  --secondary-text-color: white;
  --link-color: white;
  --link-hover-color: white;
  --button-color: #222;
  --button-background-color: white;
}

.promo {
  --paper-color: #31409F;
  --button-color: #31409F;
}

This setup allows us to expand in the future for different ad campaigns. Here is a quick sample.

Here is the CSS to make those work.

.purple {
  background-color: #91096F;
  --header-color: white;
  --text-color: white;
  --secondary-text-color: white;
  --link-color: white;
  --link-hover-color: #FFE31A;
  --button-color: white;
  --button-background-color: #09932D;
}

.charcoal {
  background-color: #525D54;
  --header-color: white;
  --text-color: white;
  --secondary-text-color: white;
  --link-color: #FFDD69;
  --link-hover-color: white;
  --button-color: #7A8A0E;
  --button-background-color: white;
}

The same CSS also works for cards, along with any other element that uses our system.

Lastly, though we dont' use this in our designs, it was important in the structure that elements inside of a story body could be tailored too. The same rules could be applied to the article header, as an example.

Section

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus lorem amet.

Section

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus lorem amet.

Section

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus lorem amet.

THEMES
DECKS

amp story

A sample AMP story page.

author bio

A sample of the author bio page.

customer service

The new customer service page

gallery

A CSS Grid version using the experimental rail code.

homepage

A sample homepage.

immersive

A sample story page.

opinion story

A sample opinion story page.

search

Search results page.

section

A sample section page.

story

A sample story page.

topic

The topic layout.

CARDS

author-card

Author information at the bottom of articles

big-news

Goes on the top of the homepage during large news events.

correction

A correction disclaimer for the top of a story.

digest

Headline stacks for section content.

flag

The top banner of the sites including the search panel and account popout

footer

Standard footer for the bottom of all pages

gallery

Photo gallery to be used in all occasions.

header

An expanded package for article headers.

immersive

Immersive card to match the layout option.

in-depth

In depth module for section pages

inline-cta

Inline call to action for story display.

menu

Side menu panel tied to the hamburger.

panel

A stackable card for supplemental section and story information.

read-next

The custom read next card under story bodies.

related-stories

Display for stories related in CUE.

section-nav

Top navigation for section fronts where applied in CUE

series-nav

Series nav for article pages.

timeline

Used in live updates and for static timelines.

transparency

Provides story background information.

upper-nav

Top tab navigation used in niche verticals.

vendor-flag

A basic flag that can be used on 3rd-party sites in an iframe.

vendor-footer

A basic footer that can be used on 3rd-party sites in an iframe.

MOLECULES

card

Enhanced paper molecule with flex display.

color themes

An explanation of custom properties and color.

expander

A collapsible box with a caret.

flex-columns (deprecated)

A flexbox version of the grid using the same rules.

grid

A very basic starter grid

social-media

Social media icon row for story pages.

ATOMS

button

Button styles to ensure proper row alignment

byline

Standard byline and credit styles

figcaption

Default styles for all media captions

figure

Semantic wrapper for media in stories and cards

h1

Primary headline on story pages, video pages and video playlists. Lead headline on homepage and section pages.

h2

Secondary headlines in the lead group on the homepage and section pages.

h3

Used in headline stacks and cards on the homepage and section pages; primary subhead in articles.

h4

Used as footer labels.

h5

Used as labels for headline stacks.

h6

Used primarily for kickers.

impact

Reverse impact on any element.

inputs

Form input styles

label

Labels for the tops of cards and headline stacks on section pages.

lists

Default styles for lists in story bodies.

more-link

Used at the bottom of digests

p

Default text on story pages.

package

Provides spacing for text in cards and digests.

paper

Default paper molecule with a block display.

section (deprecated)

Stackable building block of pages

time

Used for publish and modified times.