CSS Systems

Natalie Downe
Natalie DowneDirector of Frontend Engineering um Eventbrite
WRITING MAINTAINABLE CSS
Natalie Downe | Barcamp London 5




                                   28th September 2008
                                                         1
WRITING MAINTAINABLE CSS
Natalie Downe | Barcamp London 5




                                   28th September 2008
                                                         2
CSS SYSTEMS
Natalie Downe | Barcamp London 5




                                   28th September 2008
                                                         3
I am an optimist


                   4
so I am going to
  assume that


                   5
you already write beautiful and valid markup
                                               6
you use semantic markup & class / id names
                                             7
you separate content, presentation & behavior
                                                8
because you care


                   9
Maintainability in CSS?


                          10
It’s not a solved
     problem.


                    11
It’s not just about
     the future


                      12
It’s about now


                 13
CLEARLEFT

High quality code
To tight deadlines
For handover to external developers




                                      14
CSS SYSTEMS

              15
A CSS SYSTEM IS...

a top down approach

personalised for an individual site

a reusable set of markup patterns and CSS

looking at the overall stucture and individual
components

glossary of shared vocabulary for developers



                                                 16
ORDERING

Rule blocks are loosely ordered by specificity,

  Elements, grouped by type of tag

  Classes, grouped by the effect they create

  IDs, grouped by the component they affect




                                                 17
GROUPING

general styles
   body styles
   reset
   links
   headings
   other elements, tags
helper styles
   forms
   notifications and errors
   consistant items with normally just one class
page structure
   skeleton including page furniture,
page components
   most of your styles will be in here
overrides



                                                   18
GROUPING

general styles
   body styles
   reset
   links
   headings
   other elements, tags
helper styles
   forms
   notifications and errors
   consistant items with normally just one class
page structure
   skeleton including page furniture,
page components
   most of your styles will be in here
overrides



                                                   19
CSS Edit
macrabbit.com/cssedit

                        20
CSS Edit
macrabbit.com/cssedit

                        21
CONDITIONAL COMMENTS

Never use browser hacks

Browser specific stylesheets for all versions of IE and
another for IE6 and under

If you have to entirely re-engineer for IE, overriding
your standards ready CSS in a conditional comment,
you’re Doing It Wrong




                                                         22
please look
  to my right
for a moment


                23
please look
  to my right
for a moment




                24
BEFORE YOU START
  So I have a design ... what now?

                                     25
look at the basics


                     26
will it be liquid?
elastic? or fixed?


                     27
MAINTAINABLE LAYOUT


if you are using an em or fixed width layout, try to only
set a width on the container, using percentages
inside

a max-width of 100% will stop your layout creeping
out the side of the viewport

up and down font size all the time

be afraid of heights, vertigo is healthy on the web.
NEVER use height in px on anything with text inside

                                                           28
29
the grid


           30
draw diagrams
                31
lots of diagrams
                   32
make calculations
                    33
get inventive
                34
levels of headings


                     35
36
page structure
and components


                  37
38
39
40
MAINTAINABILITY MYTHS
  Any existing ‘best practices’ or approaches?

                                                 41
CSS frameworks
                 42
Single line declaration blocks
                                 43
Selector based indentation
                             44
colour.css / layout.css / typography.css
                                           45
ON YOUR MARKS ...
You have your design and your plan - you’re all set!

                                                       46
use the cascade
                  47
div#page div.teaser ul.products li p.name




                                            48
ul.products p.name




                     49
you love to float
                   50
shorthand?
             51
p { font: 12px/14px sans-serif }
p { font: 80% sans-serif }
p { font: x-large/110% quot;New Century Schoolbookquot;, serif }
p { font: bold italic large Palatino, serif }
p { font: normal small-caps 120%/120% fantasy }




                                                           52
53
background: url(quot;w00t.pngquot;) orange 0 50% repeat fixed;




                                                        54
background: lime;




                    55
background: url(quot;rofl.gifquot;);




                              56
background-color: lime;


background-image: url(quot;rofl.pngquot;);




                                    57
PREPARE FOR THE WORST
  n00bs will one day be let loose on your code
                   (accept it)
                                                 58
clear your footer


                    59
careful with
dimensions


               60
watch your height


                    61
hooks


        62
editable content


                   63
sanitise text


                64
abstract your icons


                      65
DESIGN TO AVOID DEBUGGING
     engineer your way around the browser

                                            66
Simultaneously develop
                         67
dont re-engineer
seperate solutions


                     68
floating


          69
you need to set
psuedo selectors on
       links

                      70
buttons


          71
review


         72
HANDOVER
what to give the client

                          73
THE IDEAL HANDOVER INCLUDES


The markup scheme, a set of files demonstrating
the different markup components

The CSS itself

Supporting documents that explain the system as
clearly as possible

A face to face meeting if possible



                                                  74
FINALLY




          75
ITS ALL ABOUT THE SYSTEM



define it
develop it
maintain it
communicate it
                           76
THANK YOU




            77
?   78
1 von 78

Recomendados

CSS For Backend Developers von
CSS For Backend DevelopersCSS For Backend Developers
CSS For Backend Developers10Clouds
1.5K views60 Folien
CSS - OOCSS, SMACSS and more von
CSS - OOCSS, SMACSS and moreCSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and moreRuss Weakley
113.7K views169 Folien
Regular Expressions for Regular Joes (and SEOs) von
Regular Expressions for Regular Joes (and SEOs)Regular Expressions for Regular Joes (and SEOs)
Regular Expressions for Regular Joes (and SEOs)Paul Shapiro
15.3K views34 Folien
What is Object Oriented CSS? von
What is Object Oriented CSS?What is Object Oriented CSS?
What is Object Oriented CSS?Nicole Sullivan
43K views68 Folien
PHP POWERPOINT SLIDES von
PHP POWERPOINT SLIDESPHP POWERPOINT SLIDES
PHP POWERPOINT SLIDESIsmail Mukiibi
3.9K views19 Folien
Tag-it 2016 slides: UX + A/B Testing at Booking.com: Design focused on conver... von
Tag-it 2016 slides: UX + A/B Testing at Booking.com: Design focused on conver...Tag-it 2016 slides: UX + A/B Testing at Booking.com: Design focused on conver...
Tag-it 2016 slides: UX + A/B Testing at Booking.com: Design focused on conver...Maria Lígia Klokner
3.6K views72 Folien

Más contenido relacionado

Was ist angesagt?

BEM it! Introduction to BEM methodology von
BEM it! Introduction to BEM methodologyBEM it! Introduction to BEM methodology
BEM it! Introduction to BEM methodologyVarya Stepanova
1.9K views60 Folien
Bootstrap von
BootstrapBootstrap
BootstrapJadson Santos
31.3K views32 Folien
Efficient, maintainable CSS von
Efficient, maintainable CSSEfficient, maintainable CSS
Efficient, maintainable CSSRuss Weakley
41.3K views24 Folien
Object Oriented CSS von
Object Oriented CSSObject Oriented CSS
Object Oriented CSSNicole Sullivan
283.2K views64 Folien
大規模なJavaScript開発の話 von
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話terurou
12.1K views30 Folien
SMBetray—Backdooring and breaking signatures von
SMBetray—Backdooring and breaking signaturesSMBetray—Backdooring and breaking signatures
SMBetray—Backdooring and breaking signaturesPriyanka Aash
714 views112 Folien

Was ist angesagt?(20)

BEM it! Introduction to BEM methodology von Varya Stepanova
BEM it! Introduction to BEM methodologyBEM it! Introduction to BEM methodology
BEM it! Introduction to BEM methodology
Varya Stepanova1.9K views
Efficient, maintainable CSS von Russ Weakley
Efficient, maintainable CSSEfficient, maintainable CSS
Efficient, maintainable CSS
Russ Weakley41.3K views
大規模なJavaScript開発の話 von terurou
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou12.1K views
SMBetray—Backdooring and breaking signatures von Priyanka Aash
SMBetray—Backdooring and breaking signaturesSMBetray—Backdooring and breaking signatures
SMBetray—Backdooring and breaking signatures
Priyanka Aash714 views
Maintainable CSS von Stephen Hay
Maintainable CSSMaintainable CSS
Maintainable CSS
Stephen Hay24.3K views
Learn BEM: CSS Naming Convention von In a Rocket
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
In a Rocket977K views
Headless CMS – the foundation of modern SEO von Cory Schmidt
Headless CMS – the foundation of modern SEOHeadless CMS – the foundation of modern SEO
Headless CMS – the foundation of modern SEO
Cory Schmidt490 views
Frontend Crash Course: HTML and CSS von Thinkful
Frontend Crash Course: HTML and CSSFrontend Crash Course: HTML and CSS
Frontend Crash Course: HTML and CSS
Thinkful749 views
Introduction to Bootstrap: Design for Developers von Melvin John
Introduction to Bootstrap: Design for DevelopersIntroduction to Bootstrap: Design for Developers
Introduction to Bootstrap: Design for Developers
Melvin John1.3K views
Presentation on html, css von Aamir Sohail
Presentation on html, cssPresentation on html, css
Presentation on html, css
Aamir Sohail573 views
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기 von KyeongmanKang
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
KyeongmanKang399 views
About Best friends - HTML, CSS and JS von Naga Harish M
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
Naga Harish M5K views
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか von Koichiro Matsuoka
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くかDDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
Koichiro Matsuoka21.2K views

Destacado

Atomic design von
Atomic designAtomic design
Atomic designBrad Frost
2M views173 Folien
The Great State of Design with CSS Grid Layout and Friends von
The Great State of Design with CSS Grid Layout and FriendsThe Great State of Design with CSS Grid Layout and Friends
The Great State of Design with CSS Grid Layout and FriendsStacy Kvernmo
2.1M views149 Folien
Looking for Patterns von
Looking for PatternsLooking for Patterns
Looking for PatternsKeith Wright
1.2K views26 Folien
Interruption Timer Périodique von
Interruption Timer PériodiqueInterruption Timer Périodique
Interruption Timer PériodiqueAnne Nicolas
685 views18 Folien
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing von
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud ComputingOSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud ComputingMark Hinkle
4.2K views46 Folien
Crafting Front-End Style Guides von
Crafting Front-End Style GuidesCrafting Front-End Style Guides
Crafting Front-End Style GuidesBrian Crumley
1.3K views134 Folien

Destacado(20)

The Great State of Design with CSS Grid Layout and Friends von Stacy Kvernmo
The Great State of Design with CSS Grid Layout and FriendsThe Great State of Design with CSS Grid Layout and Friends
The Great State of Design with CSS Grid Layout and Friends
Stacy Kvernmo2.1M views
Looking for Patterns von Keith Wright
Looking for PatternsLooking for Patterns
Looking for Patterns
Keith Wright1.2K views
Interruption Timer Périodique von Anne Nicolas
Interruption Timer PériodiqueInterruption Timer Périodique
Interruption Timer Périodique
Anne Nicolas685 views
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing von Mark Hinkle
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud ComputingOSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing
Mark Hinkle4.2K views
Crafting Front-End Style Guides von Brian Crumley
Crafting Front-End Style GuidesCrafting Front-End Style Guides
Crafting Front-End Style Guides
Brian Crumley1.3K views
HTML/CSS Crash Course (april 4 2017) von Daniel Friedman
HTML/CSS Crash Course (april 4 2017)HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)
Daniel Friedman627 views
Fleet & transport policy - Envision International (Conf 2010) von Andre Knipe
Fleet & transport policy - Envision International (Conf 2010)Fleet & transport policy - Envision International (Conf 2010)
Fleet & transport policy - Envision International (Conf 2010)
Andre Knipe975 views
Curso de cascading style sheets (css) von Educagratis
Curso de cascading style sheets (css)Curso de cascading style sheets (css)
Curso de cascading style sheets (css)
Educagratis163 views
Cascading Style Sheets (CSS) - An introduction von rachaelboyer
Cascading Style Sheets (CSS) - An introductionCascading Style Sheets (CSS) - An introduction
Cascading Style Sheets (CSS) - An introduction
rachaelboyer577 views
Css best practices style guide and tips von Chris Love
Css best practices style guide and tipsCss best practices style guide and tips
Css best practices style guide and tips
Chris Love1.5K views
Basic Transport & Fleet Mngt - AK2015 von Andre Knipe
Basic Transport & Fleet Mngt - AK2015Basic Transport & Fleet Mngt - AK2015
Basic Transport & Fleet Mngt - AK2015
Andre Knipe1.2K views
Fasten RWD Development with Sass von Sven Wolfermann
Fasten RWD Development with SassFasten RWD Development with Sass
Fasten RWD Development with Sass
Sven Wolfermann5.2K views
Introduction to CSS3 von Doris Chen
Introduction to CSS3Introduction to CSS3
Introduction to CSS3
Doris Chen4.4K views
6 Steps to Make Your CSS Code More Maintainable von 10Clouds
6 Steps to Make Your CSS Code More Maintainable6 Steps to Make Your CSS Code More Maintainable
6 Steps to Make Your CSS Code More Maintainable
10Clouds7.8K views
Building a game with JavaScript (March 2017, washington dc) von Daniel Friedman
Building a game with JavaScript (March 2017, washington dc)Building a game with JavaScript (March 2017, washington dc)
Building a game with JavaScript (March 2017, washington dc)
Daniel Friedman257 views

Similar a CSS Systems

Drupal Theming with CSS Frameworks (960grid) von
Drupal Theming with CSS Frameworks (960grid)Drupal Theming with CSS Frameworks (960grid)
Drupal Theming with CSS Frameworks (960grid)Ryan Cross
2.8K views28 Folien
実践!CSSデザインの「型」でみる視覚表現テクニック von
実践!CSSデザインの「型」でみる視覚表現テクニック実践!CSSデザインの「型」でみる視覚表現テクニック
実践!CSSデザインの「型」でみる視覚表現テクニックYouji Sakai
1.3K views410 Folien
CSS3: Ripe and Ready to Respond von
CSS3: Ripe and Ready to RespondCSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to RespondDenise Jacobs
56.1K views230 Folien
Simply Responsive CSS3 von
Simply Responsive CSS3Simply Responsive CSS3
Simply Responsive CSS3Denise Jacobs
37.8K views229 Folien
Creating a Business Oriented UI in APEX von
Creating a Business Oriented UI in APEXCreating a Business Oriented UI in APEX
Creating a Business Oriented UI in APEXEnkitec
4.2K views92 Folien
An Introduction to CSS Frameworks von
An Introduction to CSS FrameworksAn Introduction to CSS Frameworks
An Introduction to CSS FrameworksAdrian Westlake
2.6K views20 Folien

Similar a CSS Systems(20)

Drupal Theming with CSS Frameworks (960grid) von Ryan Cross
Drupal Theming with CSS Frameworks (960grid)Drupal Theming with CSS Frameworks (960grid)
Drupal Theming with CSS Frameworks (960grid)
Ryan Cross2.8K views
実践!CSSデザインの「型」でみる視覚表現テクニック von Youji Sakai
実践!CSSデザインの「型」でみる視覚表現テクニック実践!CSSデザインの「型」でみる視覚表現テクニック
実践!CSSデザインの「型」でみる視覚表現テクニック
Youji Sakai1.3K views
CSS3: Ripe and Ready to Respond von Denise Jacobs
CSS3: Ripe and Ready to RespondCSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to Respond
Denise Jacobs56.1K views
Simply Responsive CSS3 von Denise Jacobs
Simply Responsive CSS3Simply Responsive CSS3
Simply Responsive CSS3
Denise Jacobs37.8K views
Creating a Business Oriented UI in APEX von Enkitec
Creating a Business Oriented UI in APEXCreating a Business Oriented UI in APEX
Creating a Business Oriented UI in APEX
Enkitec4.2K views
An Introduction to CSS Frameworks von Adrian Westlake
An Introduction to CSS FrameworksAn Introduction to CSS Frameworks
An Introduction to CSS Frameworks
Adrian Westlake2.6K views
Compass And Sass(Tim Riley) von elliando dias
Compass And Sass(Tim Riley)Compass And Sass(Tim Riley)
Compass And Sass(Tim Riley)
elliando dias968 views
Advanced CSS Troubleshooting von Denise Jacobs
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS Troubleshooting
Denise Jacobs11.7K views
CSS3: Ripe and Ready von Denise Jacobs
CSS3: Ripe and ReadyCSS3: Ripe and Ready
CSS3: Ripe and Ready
Denise Jacobs31.6K views
Structure Your SASS BADcamp 2013 von penguininja
Structure Your SASS   BADcamp 2013Structure Your SASS   BADcamp 2013
Structure Your SASS BADcamp 2013
penguininja919 views
How to develop a CSS Framework von Olivier Besson
How to develop a CSS FrameworkHow to develop a CSS Framework
How to develop a CSS Framework
Olivier Besson632 views
Object oriented css. Graeme Blackwood von PVasili
Object oriented css. Graeme BlackwoodObject oriented css. Graeme Blackwood
Object oriented css. Graeme Blackwood
PVasili718 views
The World of Stylesheet Languages von Andrea Tino
The World of Stylesheet LanguagesThe World of Stylesheet Languages
The World of Stylesheet Languages
Andrea Tino479 views
Object oriented css graeme blackwood von drupalconf
Object oriented css graeme blackwoodObject oriented css graeme blackwood
Object oriented css graeme blackwood
drupalconf448 views

Más de Natalie Downe

From Idea to Exit, the story of our startup von
From Idea to Exit, the story of our startupFrom Idea to Exit, the story of our startup
From Idea to Exit, the story of our startupNatalie Downe
940 views78 Folien
From idea to exit von
From idea to exitFrom idea to exit
From idea to exitNatalie Downe
2.2K views69 Folien
Becoming Accidental Entrepreneurs von
Becoming Accidental Entrepreneurs Becoming Accidental Entrepreneurs
Becoming Accidental Entrepreneurs Natalie Downe
917 views68 Folien
Serendipity and Lanyrd von
Serendipity and LanyrdSerendipity and Lanyrd
Serendipity and LanyrdNatalie Downe
748 views38 Folien
Practical Maintainable CSS (short version) von
Practical Maintainable CSS (short version)Practical Maintainable CSS (short version)
Practical Maintainable CSS (short version)Natalie Downe
1.4K views45 Folien
What I learned from making things von
What I learned from making thingsWhat I learned from making things
What I learned from making thingsNatalie Downe
759 views21 Folien

Más de Natalie Downe(7)

From Idea to Exit, the story of our startup von Natalie Downe
From Idea to Exit, the story of our startupFrom Idea to Exit, the story of our startup
From Idea to Exit, the story of our startup
Natalie Downe940 views
Becoming Accidental Entrepreneurs von Natalie Downe
Becoming Accidental Entrepreneurs Becoming Accidental Entrepreneurs
Becoming Accidental Entrepreneurs
Natalie Downe917 views
Practical Maintainable CSS (short version) von Natalie Downe
Practical Maintainable CSS (short version)Practical Maintainable CSS (short version)
Practical Maintainable CSS (short version)
Natalie Downe1.4K views
What I learned from making things von Natalie Downe
What I learned from making thingsWhat I learned from making things
What I learned from making things
Natalie Downe759 views

Último

Voice Logger - Telephony Integration Solution at Aegis von
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at AegisNirmal Sharma
17 views1 Folie
Unit 1_Lecture 2_Physical Design of IoT.pdf von
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdfStephenTec
11 views36 Folien
Tunable Laser (1).pptx von
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptxHajira Mahmood
23 views37 Folien
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors von
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensorssugiuralab
15 views15 Folien
Report 2030 Digital Decade von
Report 2030 Digital DecadeReport 2030 Digital Decade
Report 2030 Digital DecadeMassimo Talia
14 views41 Folien
20231123_Camunda Meetup Vienna.pdf von
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
28 views73 Folien

Último(20)

Voice Logger - Telephony Integration Solution at Aegis von Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma17 views
Unit 1_Lecture 2_Physical Design of IoT.pdf von StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec11 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors von sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab15 views
Lilypad @ Labweek, Istanbul, 2023.pdf von Ally339821
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdf
Ally3398219 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows von Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software225 views
Perth MeetUp November 2023 von Michael Price
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023
Michael Price15 views
1st parposal presentation.pptx von i238212
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptx
i2382129 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... von James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson33 views
Transcript: The Details of Description Techniques tips and tangents on altern... von BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada130 views

CSS Systems