+ All Categories
Home > Documents > Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit...

Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit...

Date post: 09-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
51
// Kristofer Walters (Knowit Oslo) #Maintainable.CSS { // The Next Frontier Of // Front-End Engineering }
Transcript
Page 1: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

// Kristofer Walters (Knowit Oslo)

#Maintainable.CSS {

// The Next Frontier Of// Front-End Engineering

}

Page 2: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

<blink color=”#FF0000”>Best practices

considered harmful

</blink>

Page 3: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Maintainable Code

* Easy to understand* Easy to fix* Easy to add new stuff* Easy to adjust for new environments

Page 4: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Separation of Contentand Presentation

Page 5: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

<aside id=”articles”><div class=”article”>

<h3>Lorem Ipsum</h3><p>…</p><a href=”…”>Read more</a>

</div>

</aside>

Page 6: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

#articles { … }.article { … }.article h3 { … }.article p { … }.article a { … }

Page 7: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

#articles {color: #009682;

left: 785px;

font-size: 0.8125em;

}

Page 8: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

$my-brand-green: #009682;

@function rel-font-size($size) {@return ($size / $context-size) * 1em;

}

#articles {color: $my-brand-green;

left: $page-width – $main-col-width;

font-size: rel-font-size(13);

}

Page 9: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Don'tRepeatYourself

Page 10: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

background: -moz-linear-gradient(top, #CCC 0%, #FFF 100%);

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#CCC), color-stop(100%,#FFF));

background: -webkit-linear-gradient(top, #CCC 0%,#FFF 100%);

background: -o-linear-gradient(top, #CCC 0%,#FFF 100%);

background: -ms-linear-gradient(top, #CCC 0%,#FFF 100%);

background: linear-gradient(to bottom, #CCC 0%,#FFF 100%);

filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#ffffff',GradientType=0 );

Page 11: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

@import “compass/css3/images”;

.button {@inlude background-image(

linear-gradient(left top,#FFF, #CCC));

}

Page 12: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.article {float: left;

}

.article:after, .article:before {content: " ";

display: table;

}

.article:after {clear: both;

}

// IE 6/7 - trigger hasLayout.article {*zoom: 1;

}

Page 13: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

@import “compass/utilities/clearfix”,

.article {float: left;

@include clearfix;

}

Page 14: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,
Page 15: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

<aside id=”articles”><div class=”article”>

<h3>Lorem Ipsum</h3><p>…</p><a href=”…”>Read more</a>

</div>

</aside>

Page 16: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

#articles { … }.article { … }.article h3 { … }.article p { … }.article a { … }

Page 17: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.article h3 { … }

Page 18: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.article h3 { … }#sidebar .article h3 { … }

Page 19: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.article h3 { … }#sidebar .article h3 { … }.author-page #sidebar .article h3 { …

Page 20: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.article h3, .article h4 { … }#sidebar .article h3,#sidebar .article h4 { … }.author-page #sidebar .article h3,.author-page #sidebar .article h4 { …

Page 21: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

ObjectOrientedCSS

Page 22: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Lorem Ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis

ac volutpat ultricies, massa nisl laoreet risus, id faucibus dui urna

sollicitudin velit.

Read More

Lorem Ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis

ac volutpat ultricies, massa nisl laoreet risus, id faucibus dui urna

sollicitudin velit.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis

ac volutpat ultricies, massa nisl laoreet risus, id faucibus dui urna

sollicitudin velit.

Read More

Page 23: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

<div class=”article”><h3>Lorem Ipsum</h3>

<p>…</p>

<a href=”…”>Read more</a>

</div>

Page 24: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

<div class=”mod”><div class=”inner”>

<div class=”hd highlighted”><h3 class=”h3”>Lorem Ipsum</h3>

</div><div class=”bd”><p>…</p>

</div><div class=”ft”><a href=”…”>Read more</a>

</div></div>

</div>

Page 25: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.mod { … }

.hd { … }

.bd { … }

.ft { … }

.h3 { … }

.highlighted { … }

Page 26: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

BlockElementModifier

Page 27: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

#{block}#{block} + #{element}#{block} + #{modifier}#{block} + #{element} + #{modifier}

Page 28: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.global-nav { … }

Page 29: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.global-nav { … }

.global-nav-item { … }

.global-nav-logged-in { … }

Page 30: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.global-nav { … }

.global-nav_item { … }

.global-nav--logged-in { … }

Page 31: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.global-nav { … }

.global-nav_item { … }

.global-nav--logged-in { … }

.global-nav_item--disabled { … }

Page 32: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.global-nav { … }

.global-nav_item { … }

.global-nav--logged-in { … }

.global-nav_item--disabled { … }

.global-nav--logged-in .global-nav_item { … }

Page 33: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

.globalNav { … }

.globalNav-item { … }

.globalNav_loggedIn { … }

.globalNav-item_disabled { … }

.globalNav_loggedIn .globalNav-item { … }

Page 34: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

<ul class=”nav nav_loggedIn”><li class=”nav-item”>

<a href=”nav-link”> … </a></li>

<li class=”nav-item nav-item_cur”>

<a href=”nav-link”> … </a></li>

</ul>

Page 35: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Scalable and ModularArchitecture forCSS

Page 36: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Base RulesLayout RulesModule RulesState RulesTheme Rules

Page 37: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

@import url(“base.css”);@import url(“layout.css”);@import url(“modules.css”);

@import url(“theme.css”);

Page 38: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

@import “base/*.scss”;@import “layout/*.scss”;@import “modules/*.scss”;

@import “theme/*.scss”;

Page 39: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

SOLID?

Page 40: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Single responsibility principle

A class should have only a singleresponsibility

Page 41: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Open/Closed principle

open for extension,closed for modification

Page 42: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Liskov substitution principle

objects in a program should bereplaceable with instances oftheir subtypes without alteringthe correctness of that program

Page 43: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Interface segregation principle

many client-specific interfacesare better than one general-purposeinterface

Page 44: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Dependency inversion principle

depend upon abstractions,not upon concretions

Page 45: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,
Page 46: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

Individuals and interactionsover processes and tools

Working softwareover comprehensive documentation

Customer collaborationover contract negotiation

Responding to changeover following a plan

Page 47: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,
Page 48: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,
Page 49: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,
Page 50: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

“Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.”

Page 51: Kristofer Walters (Knowit Oslo) #Maintainable.CSS ...€¦ · Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce pulvinar, turpis ac volutpat ultricies,

[email protected] @kwltrs

Sass http://sass-lang.com/

Compass http://compass-style.org/

OOCSS https://github.com/stubbornella/oocss/wiki

BEM http://bem.info/method/

SMACSS http://smacss.com/


Recommended