Why are we using Sass to create Grid Frameworks?sharjeet
Sass is used to create grid frameworks because it allows for nesting, variables, mixins and other features that make writing CSS more efficient. Sass code is compiled to CSS, so it can provide all the benefits of a framework like reducing repetitive code and making layouts easier, while adding powerful features like variables and mixins that aren't available in regular CSS. Frameworks built with Sass like Compass provide pre-built tools that make styling and layouts even quicker and easier.
HTML Tour - Buenas prácticas en el desarrollo webPlain Concepts
This document discusses best practices for web development. It covers CSS best practices like using reset.css, link vs import, and CSS sprites. It then discusses CSS specificity, inheritance, and cascading. It also discusses LESS, OOCSS design patterns, and testing and minifying JavaScript.
Spectrum 2015 going online with style - an intro to cssNeil Perlin
This document introduces CSS (Cascading Style Sheets) and provides an overview of some basic CSS concepts:
- CSS allows authors to define styles that can be applied consistently throughout a project for formatting elements like headings, paragraphs, etc. This improves efficiency and consistency compared to local formatting.
- A style sheet is a separate file containing all styles for a project. It cascades in that changes can inherit to child styles.
- The document discusses CSS basics like style rules, the box model, relative sizing units, and different CSS levels.
- It recommends best practices like defining styles upfront in a CSS before authoring and avoiding inline styles.
This document discusses the CSS cascade and how it determines which CSS rules are applied when there are conflicts. It explains that CSS declarations with higher specificity, source order, or importance will take precedence over others. It provides an example where declaring the same styles for an element in multiple places results in the last declaration winning due to source order. The document also outlines different types of CSS selectors like elements, classes, IDs, and complex selectors that impact specificity.
This document provides an introduction and overview of CSS (Cascading Style Sheets). It begins with a table of contents listing the main topics covered. It then provides a brief history of CSS and discusses how CSS is used to style HTML pages through external style sheets, internal style tags, and inline styles. The core components of CSS like selectors, declarations, and properties are introduced.
This is the first of three presentations detailing the front end optimization of goodtoknow.co.uk. Part one describes how we refactored the CSS, part two will address the HTML structure and implementation of Behat tests, and part three will contend with image optimization specifically addressing data URI’s and sprites.
Full notes here: http://spannerspace.com/make-your-css-beautiful-again/
Why are we using Sass to create Grid Frameworks?sharjeet
Sass is used to create grid frameworks because it allows for nesting, variables, mixins and other features that make writing CSS more efficient. Sass code is compiled to CSS, so it can provide all the benefits of a framework like reducing repetitive code and making layouts easier, while adding powerful features like variables and mixins that aren't available in regular CSS. Frameworks built with Sass like Compass provide pre-built tools that make styling and layouts even quicker and easier.
HTML Tour - Buenas prácticas en el desarrollo webPlain Concepts
This document discusses best practices for web development. It covers CSS best practices like using reset.css, link vs import, and CSS sprites. It then discusses CSS specificity, inheritance, and cascading. It also discusses LESS, OOCSS design patterns, and testing and minifying JavaScript.
Spectrum 2015 going online with style - an intro to cssNeil Perlin
This document introduces CSS (Cascading Style Sheets) and provides an overview of some basic CSS concepts:
- CSS allows authors to define styles that can be applied consistently throughout a project for formatting elements like headings, paragraphs, etc. This improves efficiency and consistency compared to local formatting.
- A style sheet is a separate file containing all styles for a project. It cascades in that changes can inherit to child styles.
- The document discusses CSS basics like style rules, the box model, relative sizing units, and different CSS levels.
- It recommends best practices like defining styles upfront in a CSS before authoring and avoiding inline styles.
This document discusses the CSS cascade and how it determines which CSS rules are applied when there are conflicts. It explains that CSS declarations with higher specificity, source order, or importance will take precedence over others. It provides an example where declaring the same styles for an element in multiple places results in the last declaration winning due to source order. The document also outlines different types of CSS selectors like elements, classes, IDs, and complex selectors that impact specificity.
This document provides an introduction and overview of CSS (Cascading Style Sheets). It begins with a table of contents listing the main topics covered. It then provides a brief history of CSS and discusses how CSS is used to style HTML pages through external style sheets, internal style tags, and inline styles. The core components of CSS like selectors, declarations, and properties are introduced.
This is the first of three presentations detailing the front end optimization of goodtoknow.co.uk. Part one describes how we refactored the CSS, part two will address the HTML structure and implementation of Behat tests, and part three will contend with image optimization specifically addressing data URI’s and sprites.
Full notes here: http://spannerspace.com/make-your-css-beautiful-again/
The document provides an overview of CSS topics covered in an advanced CSS course. It includes sections on lectures covering CSS theory, the Natours project setup and use of advanced CSS techniques, responsive design, flexbox, CSS grid, and several coding projects. Individual lectures cover topics such as CSS architecture, the cascade, specificity, value processing, inheritance, and the visual formatting model.
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}Eric Carlisle
The document discusses a presentation on using Flexbox, SASS, and Mustache templating for building user interfaces. The presentation covers general best practices, using SASS for variables, nesting, mixins and extends, Flexbox for responsive design, and Mustache templating. The presenter is Eric Carlisle, a UI/UX architect who will demonstrate coding techniques with these tools.
The document provides a list of over 70 expert tips for improving CSS coding efficiency. It discusses how CSS coding can sometimes become complex depending on skill level and experience, particularly with selector application. The tips aim to minimize complexity through useful CSS attributes, properties, tricks, techniques and coding solutions. The list includes both well-known and not-so-well-known methods that can benefit all projects.
This document provides an overview of PostCSS, including what it is, how it works, popular plugins, and how to create your own PostCSS plugin. Some key points:
- PostCSS is a tool for transforming CSS with JS plugins that parses CSS into an AST, passes it through plugins, and outputs modified CSS. It allows for variables, mixins, future syntax support, and more.
- Popular plugins include Autoprefixer, CSSnext, PreCSS, StyleLint, PostCSS Assets, and CSSNano.
- To create a plugin, make a node module with index.js, require PostCSS, and use the PostCSS API to modify the AST and output CSS.
This document discusses the differences between CSS and JavaScript and when each is most appropriate to use. It argues that CSS is often underestimated in favor of JavaScript solutions. CSS has advanced significantly with features like calc(), media queries, animations/transitions, flexbox, grid, variables and more. These powerful features allow many tasks to be accomplished with CSS alone without needing JavaScript. The document encourages embracing the "squishiness" of the web and considering CSS more when building interfaces.
Many developers used to believe that class-free, lean markup and descendant selectors were the answer. Many developers still build websites for a single resolution, or a small range of devices. However, these practices are now being questioned. Where do we stand? What is best practice web development today? Russ Weakley will explore these topics and more... or possibly less...
50 favorite CSS Tools & resources. It’s a huge post of all of the really cool CSS resources, frameworks, libraries, UI kits and tools that have been released this year.
From: http://ltheme.com/50-css-tools-resources-from-2014/
CSS custom properties, also known as CSS variables, allow authors to store reusable values that can be used throughout a document. Custom properties are defined with a double hyphen prefix like --main-color and accessed with the var() function like color: var(--main-color). They can be used to create reusable themes, dynamic UIs that respond to user input, and more accessible interfaces. CSS variables provide inheritance, fallbacks, and other advantages over preprocessors. They are supported in all modern browsers but polyfills exist for older environments.
SCSS is a an extension of CSS that adds power and elegance to the basic language.
It helps keep large stylesheets well organized and get small stylesheets up and running quickly.
This recipe provides a structured approach for using SCSS Pre-processor for your web applications.
Features covered :
• Pre-processing
• Variables
• Nesting
• Partials
• Imports
• Mixins
• Inheritance
• Operators
Authoring Stylesheets with Compass & Sasschriseppstein
The document discusses authoring stylesheets using Sass and Compass. It provides an overview of Sass features like variables, nested rules, mixins, and more. It also discusses how Compass can be used to simplify CSS development with features like a project context, libraries, and asset management. The presentation aims to teach attendees the Sass syntax and how to set up and use Compass projects.
This document discusses Sass, styleguides, and KSS. It introduces Sass as a way to add superpowers to CSS with features like variables and nesting. It defines styleguides as sets of standards for consistent writing and design. KSS is presented as a styleguide generator for Sass that allows documentation of CSS in comments. Resources on creating styleguides and existing styleguides are also listed.
The document discusses using the 960.gs CSS framework for Drupal theming. It provides an introduction to CSS frameworks and their benefits, including making development easier and more scalable. It then describes the basics of grid-based design and how 960.gs works with 12-column and 16-column grids. It shows some examples of common layouts and how to implement grid classes. Finally, it briefly discusses the NineSixty Drupal theme which implements 960.gs and the ns() function for generating grid classes.
This document discusses the 960 Grid System, a CSS framework that utilizes a 12-column grid layout with widths of 60px each and gutters of 20px. It can be used for rapid prototyping and integrated into production environments. The document provides code examples of typical grid layouts and nested grids. It also discusses related topics like fixed-width grids, grid generators, and myths around CSS best practices.
SASS is a CSS preprocessor that provides a more structured language for stylesheet development. It features include variables, nested rules, mixins, and functions that allow developers to write cleaner CSS code. SASS files can be compiled into normal CSS files. Using SASS improves code quality by reducing repetition and making stylesheets easier to maintain as projects increase in complexity. SASS also encourages separating CSS into multiple files based on components, media queries, or other logical structures to better organize the code.
An Introduction to Object Oriented CSSNati Devalle
This document introduces object oriented CSS (OOCSS) as a way to create scalable and maintainable stylesheets. OOCSS involves separating structure from skin, and separating containers from content. This allows styles to be reused and shared across elements. The document recommends identifying common patterns, creating reusable components, and extending those components. Applying OOCSS principles can reduce duplicated CSS declarations and make future changes easier.
MERN Stack Training in Hyderabad - MERN Stack Training Course in Hyderabad.pptxeshwarvisualpath
Visualpath offers the Best MERN Stack Training in Hyderabad by real-time experts for hands-on learning. Our MERN Stack Training Course in Hyderabad is available in Hyderabad and is provided to individuals globally in the USA, UK, Canada, Dubai, and Australia. Contact us at +91-9989971070.
Join us on whatsApp: https://bit.ly/47eayBz
Visit: https://visualpath.in/full-stack-mern-online.html
Read Our blog: https://fullstackmearnwebdevlopment.blogspot.com/
The document outlines steps for developing a CSS framework, including defining layout rules, framework files, resets, typography, forms and tables, and generic classes. Key steps are to 1) define a non-intrusive layout using classes instead of IDs, 2) establish a grid and unit system, and 3) include resets, typography, forms/tables, and generic styles. The goal is to create a reusable, short, and productive framework that reduces bugs.
(1) The document outlines steps to develop a CSS framework, including defining layout, grids, resets, typography, forms, tables, generic classes, components, and a default theme.
(2) Key aspects are making the framework non-intrusive with classes instead of IDs, using a generic template, and separating files for concerns like layout, grids, and components.
(3) The framework is developed by first defining the overall layout, then grids and units, resets, typography, and later more specific aspects like forms, tables, generic classes, and common components.
This presentation by Yong Lim, Professor of Economic Law at Seoul National University School of Law, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
The document provides an overview of CSS topics covered in an advanced CSS course. It includes sections on lectures covering CSS theory, the Natours project setup and use of advanced CSS techniques, responsive design, flexbox, CSS grid, and several coding projects. Individual lectures cover topics such as CSS architecture, the cascade, specificity, value processing, inheritance, and the visual formatting model.
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}Eric Carlisle
The document discusses a presentation on using Flexbox, SASS, and Mustache templating for building user interfaces. The presentation covers general best practices, using SASS for variables, nesting, mixins and extends, Flexbox for responsive design, and Mustache templating. The presenter is Eric Carlisle, a UI/UX architect who will demonstrate coding techniques with these tools.
The document provides a list of over 70 expert tips for improving CSS coding efficiency. It discusses how CSS coding can sometimes become complex depending on skill level and experience, particularly with selector application. The tips aim to minimize complexity through useful CSS attributes, properties, tricks, techniques and coding solutions. The list includes both well-known and not-so-well-known methods that can benefit all projects.
This document provides an overview of PostCSS, including what it is, how it works, popular plugins, and how to create your own PostCSS plugin. Some key points:
- PostCSS is a tool for transforming CSS with JS plugins that parses CSS into an AST, passes it through plugins, and outputs modified CSS. It allows for variables, mixins, future syntax support, and more.
- Popular plugins include Autoprefixer, CSSnext, PreCSS, StyleLint, PostCSS Assets, and CSSNano.
- To create a plugin, make a node module with index.js, require PostCSS, and use the PostCSS API to modify the AST and output CSS.
This document discusses the differences between CSS and JavaScript and when each is most appropriate to use. It argues that CSS is often underestimated in favor of JavaScript solutions. CSS has advanced significantly with features like calc(), media queries, animations/transitions, flexbox, grid, variables and more. These powerful features allow many tasks to be accomplished with CSS alone without needing JavaScript. The document encourages embracing the "squishiness" of the web and considering CSS more when building interfaces.
Many developers used to believe that class-free, lean markup and descendant selectors were the answer. Many developers still build websites for a single resolution, or a small range of devices. However, these practices are now being questioned. Where do we stand? What is best practice web development today? Russ Weakley will explore these topics and more... or possibly less...
50 favorite CSS Tools & resources. It’s a huge post of all of the really cool CSS resources, frameworks, libraries, UI kits and tools that have been released this year.
From: http://ltheme.com/50-css-tools-resources-from-2014/
CSS custom properties, also known as CSS variables, allow authors to store reusable values that can be used throughout a document. Custom properties are defined with a double hyphen prefix like --main-color and accessed with the var() function like color: var(--main-color). They can be used to create reusable themes, dynamic UIs that respond to user input, and more accessible interfaces. CSS variables provide inheritance, fallbacks, and other advantages over preprocessors. They are supported in all modern browsers but polyfills exist for older environments.
SCSS is a an extension of CSS that adds power and elegance to the basic language.
It helps keep large stylesheets well organized and get small stylesheets up and running quickly.
This recipe provides a structured approach for using SCSS Pre-processor for your web applications.
Features covered :
• Pre-processing
• Variables
• Nesting
• Partials
• Imports
• Mixins
• Inheritance
• Operators
Authoring Stylesheets with Compass & Sasschriseppstein
The document discusses authoring stylesheets using Sass and Compass. It provides an overview of Sass features like variables, nested rules, mixins, and more. It also discusses how Compass can be used to simplify CSS development with features like a project context, libraries, and asset management. The presentation aims to teach attendees the Sass syntax and how to set up and use Compass projects.
This document discusses Sass, styleguides, and KSS. It introduces Sass as a way to add superpowers to CSS with features like variables and nesting. It defines styleguides as sets of standards for consistent writing and design. KSS is presented as a styleguide generator for Sass that allows documentation of CSS in comments. Resources on creating styleguides and existing styleguides are also listed.
The document discusses using the 960.gs CSS framework for Drupal theming. It provides an introduction to CSS frameworks and their benefits, including making development easier and more scalable. It then describes the basics of grid-based design and how 960.gs works with 12-column and 16-column grids. It shows some examples of common layouts and how to implement grid classes. Finally, it briefly discusses the NineSixty Drupal theme which implements 960.gs and the ns() function for generating grid classes.
This document discusses the 960 Grid System, a CSS framework that utilizes a 12-column grid layout with widths of 60px each and gutters of 20px. It can be used for rapid prototyping and integrated into production environments. The document provides code examples of typical grid layouts and nested grids. It also discusses related topics like fixed-width grids, grid generators, and myths around CSS best practices.
SASS is a CSS preprocessor that provides a more structured language for stylesheet development. It features include variables, nested rules, mixins, and functions that allow developers to write cleaner CSS code. SASS files can be compiled into normal CSS files. Using SASS improves code quality by reducing repetition and making stylesheets easier to maintain as projects increase in complexity. SASS also encourages separating CSS into multiple files based on components, media queries, or other logical structures to better organize the code.
An Introduction to Object Oriented CSSNati Devalle
This document introduces object oriented CSS (OOCSS) as a way to create scalable and maintainable stylesheets. OOCSS involves separating structure from skin, and separating containers from content. This allows styles to be reused and shared across elements. The document recommends identifying common patterns, creating reusable components, and extending those components. Applying OOCSS principles can reduce duplicated CSS declarations and make future changes easier.
MERN Stack Training in Hyderabad - MERN Stack Training Course in Hyderabad.pptxeshwarvisualpath
Visualpath offers the Best MERN Stack Training in Hyderabad by real-time experts for hands-on learning. Our MERN Stack Training Course in Hyderabad is available in Hyderabad and is provided to individuals globally in the USA, UK, Canada, Dubai, and Australia. Contact us at +91-9989971070.
Join us on whatsApp: https://bit.ly/47eayBz
Visit: https://visualpath.in/full-stack-mern-online.html
Read Our blog: https://fullstackmearnwebdevlopment.blogspot.com/
The document outlines steps for developing a CSS framework, including defining layout rules, framework files, resets, typography, forms and tables, and generic classes. Key steps are to 1) define a non-intrusive layout using classes instead of IDs, 2) establish a grid and unit system, and 3) include resets, typography, forms/tables, and generic styles. The goal is to create a reusable, short, and productive framework that reduces bugs.
(1) The document outlines steps to develop a CSS framework, including defining layout, grids, resets, typography, forms, tables, generic classes, components, and a default theme.
(2) Key aspects are making the framework non-intrusive with classes instead of IDs, using a generic template, and separating files for concerns like layout, grids, and components.
(3) The framework is developed by first defining the overall layout, then grids and units, resets, typography, and later more specific aspects like forms, tables, generic classes, and common components.
Semelhante a Thoughtful architecture and good practices in CSS - myth or new realities (20)
This presentation by Yong Lim, Professor of Economic Law at Seoul National University School of Law, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
This presentation by Juraj Čorba, Chair of OECD Working Party on Artificial Intelligence Governance (AIGO), was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
This presentation by OECD, OECD Secretariat, was made during the discussion “Pro-competitive Industrial Policy” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/pcip.
This presentation was uploaded with the author’s consent.
This presentation by Professor Alex Robson, Deputy Chair of Australia’s Productivity Commission, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
This presentation by Nathaniel Lane, Associate Professor in Economics at Oxford University, was made during the discussion “Pro-competitive Industrial Policy” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/pcip.
This presentation was uploaded with the author’s consent.
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij
This is a workshop about communication and collaboration. We will experience how we can analyze the reasons for resistance to change (exercise 1) and practice how to improve our conversation style and be more in control and effective in the way we communicate (exercise 2).
This session will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
Abstract:
Let’s talk about powerful conversations! We all know how to lead a constructive conversation, right? Then why is it so difficult to have those conversations with people at work, especially those in powerful positions that show resistance to change?
Learning to control and direct conversations takes understanding and practice.
We can combine our innate empathy with our analytical skills to gain a deeper understanding of complex situations at work. Join this session to learn how to prepare for difficult conversations and how to improve our agile conversations in order to be more influential without power. We will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
In the session you will experience how preparing and reflecting on your conversation can help you be more influential at work. You will learn how to communicate more effectively with the people needed to achieve positive change. You will leave with a self-revised version of a difficult conversation and a practical model to use when you get back to work.
Come learn more on how to become a real influencer!
This presentation by Thibault Schrepel, Associate Professor of Law at Vrije Universiteit Amsterdam University, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
This presentation by OECD, OECD Secretariat, was made during the discussion “The Intersection between Competition and Data Privacy” held at the 143rd meeting of the OECD Competition Committee on 13 June 2024. More papers and presentations on the topic can be found at oe.cd/ibcdp.
This presentation was uploaded with the author’s consent.
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfBen Linders
Psychological safety in teams is important; team members must feel safe and able to communicate and collaborate effectively to deliver value. It’s also necessary to build long-lasting teams since things will happen and relationships will be strained.
But, how safe is a team? How can we determine if there are any factors that make the team unsafe or have an impact on the team’s culture?
In this mini-workshop, we’ll play games for psychological safety and team culture utilizing a deck of coaching cards, The Psychological Safety Cards. We will learn how to use gamification to gain a better understanding of what’s going on in teams. Individuals share what they have learned from working in teams, what has impacted the team’s safety and culture, and what has led to positive change.
Different game formats will be played in groups in parallel. Examples are an ice-breaker to get people talking about psychological safety, a constellation where people take positions about aspects of psychological safety in their team or organization, and collaborative card games where people work together to create an environment that fosters psychological safety.
XP 2024 presentation: A New Look to Leadershipsamililja
Presentation slides from XP2024 conference, Bolzano IT. The slides describe a new view to leadership and combines it with anthro-complexity (aka cynefin).
The importance of sustainable and efficient computational practices in artificial intelligence (AI) and deep learning has become increasingly critical. This webinar focuses on the intersection of sustainability and AI, highlighting the significance of energy-efficient deep learning, innovative randomization techniques in neural networks, the potential of reservoir computing, and the cutting-edge realm of neuromorphic computing. This webinar aims to connect theoretical knowledge with practical applications and provide insights into how these innovative approaches can lead to more robust, efficient, and environmentally conscious AI systems.
Webinar Speaker: Prof. Claudio Gallicchio, Assistant Professor, University of Pisa
Claudio Gallicchio is an Assistant Professor at the Department of Computer Science of the University of Pisa, Italy. His research involves merging concepts from Deep Learning, Dynamical Systems, and Randomized Neural Systems, and he has co-authored over 100 scientific publications on the subject. He is the founder of the IEEE CIS Task Force on Reservoir Computing, and the co-founder and chair of the IEEE Task Force on Randomization-based Neural Networks and Learning Systems. He is an associate editor of IEEE Transactions on Neural Networks and Learning Systems (TNNLS).
This presentation by Katharine Kemp, Associate Professor at the Faculty of Law & Justice at UNSW Sydney, was made during the discussion “The Intersection between Competition and Data Privacy” held at the 143rd meeting of the OECD Competition Committee on 13 June 2024. More papers and presentations on the topic can be found at oe.cd/ibcdp.
This presentation was uploaded with the author’s consent.
This presentation by OECD, OECD Secretariat, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
2. Hello world!
Senior Frontend Developer @ Boldare
● SCRUM and Agile programming enthusiast
● antiquity and space admirer
● Canada addict
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
3. Some Theory of CSS
W3C:
“CSS is the language for describing the presentation of Web
pages, including colors, layout, and fonts. It allows one to
adapt the presentation to different types of devices, such as
large screens, small screens, or printers. CSS is independent
of HTML and can be used with any XML-based markup
language. (...) This is referred to as the separation of
structure (or: content) from presentation.”
CSS
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
4. Myth or reality?
Cambridge Dictionary:
● “an ancient story or set of stories, especially explaining
the early history of a group of people or about natural
events and facts”
● “a commonly believed but false idea”
MYTH
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
5. Myth or reality?
Cambridge Dictionary:
● “an ancient story or set of stories, especially explaining
the early history of a group of people or about natural
events and facts”
● “a commonly believed but false idea”
MYTH
Example: It is impossible to only talk about CSS
for 45 minutes ;)
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
6. Myth: CSS is always easy and simple
CSS
IS
AWESOME
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
7. Myth: It is impossible to write modular and scalable CSS code
What can we do?
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
14. Reality: methodologies
METHODOLOGIES
Cambridge Dictionary:
“a system of ways of doing, teaching,
or studying something”
CUBE CSS OOCSS
BEM
ACSS
ITCSS
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
SM
ACSS
15. Reality: Objective Oriented CSS
OOCSS
● modular and object-oriented CSS
● first, global classes, then more
specialized ones
● separated styles for containers
and content
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
16. Reality: Objective Oriented CSS
OOCSS
● modular and object-oriented CSS
● first, global classes, then more
specialized ones
● separated styles for containers
and content
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
17. Reality: Scalable and Modular Architecture for CSS
SMACSS
● styles are divided into 5 groups:
- basic
- layout (l- prefix)
- modules
- state (is- prefix)
- subject
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
18. Reality: BEM
BEM
● modular CSS code
● elements are divided into:
- blocks (e.g. form)
- elements (e.g. input)
- modifiers (e.g. password input)
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
19. Reality: Atomic CSS
ACSS
● content-independent and reusable
CSS classes
● most often single-line,
responsible for only one setting
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
20. Reality: Inverted Triangle CSS
ITCSS
● CSS code is separated into several
sections (layers)
● it uses 3 principles:
- generic to explicit
- low to high specificity
- far-reaching to localized
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
https://www.creativebloq.com/web-design/manage-large-css-projects-itcss-101517528
21. Myth: It is impossible to write modular and scalable CSS code
WAIT…
WHY NOT USE SOMETHING
THAT WE ALREADY KNOW?
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
22. Myth: It is impossible to write modular and scalable CSS code
DRY
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Don’t Repeat Yourself
23. Myth: It is impossible to write modular and scalable CSS code
YAGNI
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
You Ain’t Gonna Need It
24. Myth: It is impossible to write modular and scalable CSS code
KISS
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Keep It Simple, Silly
25. Myth: It is impossible to write modular and scalable CSS code
SCA
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Separation of concerns
26. Myth: It is impossible to write modular and scalable CSS code
SOLID Wikipedia:
“In object-oriented programming, SOLID is a mnemonic
acronym for five design principles intended to make software
designs more understable, flexible and maintainable.
The principles are a subset of many principles promoted by
American software engineer and instructor Robert C. Martin,
first introduced in his 2000 paper Design Principles
and Design Patterns”
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
27. Myth: It is impossible to write modular and scalable CSS code
SOLID
SOLID is an acronym for the first five OOD principles:
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
D
I
ependency Inversion Principle
nterface Segregation Principle
L iskov Substitution Principle
O pen closed Principle
S ingle responsibility Principle
28. Myth: It is impossible to write modular and scalable CSS code
SOLID
Robert C. Martin “Uncle Bob”
American software engineer, instructor,
author of many books on software engineering,
founder of the Agile Manifesto
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
29. Myth: It is impossible to use Single Responsibility Principle in CSS
SOLID SRP
a class should only have one responsibility
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
30. Myth: It is impossible to use Open Closed Principle in CSS
SOLID OCP
a class should be open to extensions
and closed to modifications
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
31. Myth/True: It is impossible to use Liskov Substitution Principle in CSS
SOLID LSP
a class that extends to another class
should not change the behavior
of the base class
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
32. Myth/True: It is impossible to use Interface Segregation Principle in CSS
SOLID ISP
many dedicated classes are better
than one very general one
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
33. Myth/True: It is impossible to use Dependency Inversion Principle in CSS
SOLID DIP
changing the styles of the child classes
should not affect the styles
of the parent classes
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
44. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
CSS Testing
Regression
45. Reality: design system
DESIGN SYSTEM
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
“At FOWA 2013 in London, Mark Otto described a design system as
“everything that makes up your product”
Everything? Everything. From typography, layouts and grids, colors, icons,
components and coding conventions, to voice and tone, style-guide and
documentation, a design system is bringing all of these together in a way
that allows your entire team to learn, build, and grow.”
https://css-tricks.com/design-systems-building-future/
46. Reality: design system
DESIGN SYSTEM
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
47. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
48. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
https://stateofcss.com
49. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
DECLARATIVE / IMPERATIVE programming language?
50. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
DECLARATIVE IMPERATIVE
describes a detailed sequence of steps that
leads to a solution (how to do it)
- a sequence of commands to be
executed by the computer
- requesting some action to be performed
- the result of the operation is stored for
later operations
- performing more complex expressions
consisting of arithmetic operations
and entire functions
JavaScript, PHP
51. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
DECLARATIVE IMPERATIVE
describes the conditions that the final solution
must meet (what we want to achieve)
describes a detailed sequence of steps that
lead to solution (how to do it)
- independence
(the end result doesn’t depend on any
external condition)
- statelessness
(it has no internal state that is preserved
between calls)
- determinism
(always gives the same result for the
same input arguments)
- a sequence of commands to be
executed by the computer
- requesting some action to be performed
- the result of the operation is stored for
later operations
- performing more complex expressions
consisting of arithmetic operations
and entire functions
CSS, HTML JavaScript, PHP
52. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
DESCRIPTIVE PROGRAMMABLE
- it only describes the data structures
and the expected result
- is most often not Turing complete or it
achieves completeness in some other
way
- its declarative model of computation is
Turing complete
CSS, HTML, SQL Prolog
53. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
BUT...
54. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS is gaining imperative features
55. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS is gaining imperative features
FUNCTIONS
56. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS is gaining imperative features
FUNCTIONS
OPERATORS
57. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS is gaining imperative features
FUNCTIONS
OPERATORS
MATH VARIABLES
58. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS is gaining imperative features
FUNCTIONS
OPERATORS
MATH VARIABLES
59. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
TURING MACHINE programming language?
60. Is CSS a programming language?
CSS
Douglas Crockford
JavaScript guru,
American computer programmer and entrepreneur,
writer and speaker on JavaScript
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
61. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
Wikipedia:
“In computability theory, a system of data-manipulation rules (such as a computer's instruction set, a programming
language, or a cellular automaton) is said to be Turing-complete or computationally universal if it can be used to
simulate any Turing machine. This means that this system is able to recognize or decide other data-manipulation rule
sets. Turing completeness is used as a way to express the power of such a data-manipulation rule set. (...)
To show that something is Turing-complete, it is enough to show that it can be used to simulate some Turing-complete
system. For example, an imperative language is Turing-complete if it has conditional branching (e.g., "if" and "goto"
statements, or a "branch if zero" instruction; see one-instruction set computer) and the ability to change an arbitrary
amount of memory (e.g., the ability to maintain an arbitrary number of data items). Of course, no physical system can
have infinite memory; but if the limitation of finite memory is ignored, most programming languages are otherwise
Turing-complete.
62. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
Rule 110 cellular automaton
Wikipedia:
In an elementary cellular automaton, a one-dimensional pattern of 0s and 1s evolves according to a simple set of rules. Whether a point in the
pattern will be 0 or 1 in the new generation depends on its current value, as well as on those of its two neighbors.
Set of rules:
Current pattern 111 110 101 100 011 010 001 000
New state for center cell 0 1 1 0 1 1 1 0
63. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
https://jsfiddle.net/Camilo/eQyBa/
Rule 110 cellular automaton
64. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS is NOT Turing complete
65. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS + HTML is Turing complete
66. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS + HTML is Turing complete
67. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS + HTML + USER INTERACTION is Turing complete
68. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
DOMAIN - SPECIFIC / GENERAL - PURPOSE programming language?
69. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
DOMAIN - SPECIFIC GENERAL - PURPOSE
a programming language that is widely used
across all application domains and has no
special functionality for a particular domain
JavaScript, PHP
70. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
DOMAIN - SPECIFIC GENERAL - PURPOSE
a programming language adapted to solve a
specific problem area, a specific
representation of a problem or a specific
technique for solving them
a programming language that is widely used
across all application domains and has no
special functionality for a particular domain
HTML, CSS JavaScript, PHP
71. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CONTEXTUAL programming language?
72. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
Wikipedia:
“In computer science, a task context
is the minimal set of data used by a
task (which may be a process, thread,
or fiber) that must be saved to allow a
task to be interrupted, and later
continued from the same point.
73. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
COMPLEX programming language?
74. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
FLEXIBILITY
DEMANDING
DISCIPLINE
BROWSER
COMPATIBILITY
RESILIENCE
75. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
FLEXIBILITY
DEMANDING
DISCIPLINE
RESILIENCE
76. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
FLEXIBILITY
DEMANDING
DISCIPLINE
BROWSER
COMPATIBILITY
RESILIENCE
77. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
FLEXIBILITY
DEMANDING
DISCIPLINE
BROWSER
COMPATIBILITY
RESILIENCE
78. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
EASY TO LEARN language?
79. Reality: low entry threshold for CSS
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
https://stateofcss.com
80. Reality: CSS roadmap 2021
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Preprocessors
Frameworks
Methodologies
Styled
Component
CSS Module
CSS-in-JS
81. Reality: CSS can be complicated
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
https://codepen.io/ivorjetski/details/xMJoYO
82. Reality: CSS can be complicated
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
https://codepen.io/_fbrz/pen/whxbF
83. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
LOWER EFFORT language?
84. Is CSS a programming language?
Adam Argyle
Chrome CSS Developer Advocate at Google,
UI + UX Specialized Full Stack Web App Engineer
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
85. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
TO SUM IT UP...
86. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
CSS is a WORTHY language!
87. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
Is CSS a programming language?
Chris Coyier
web designer and developer,
CSS-TRICKS creator,
CodePen co-founder,
writer and speaker
88. Is CSS a programming language?
CSS
Lea Verou
software developer, speaker and author,
Invited Expert in the W3C CSS Working Group,
W3C Technical Architecture Group (TAG) member
Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
89. Thoughtful architecture and good practices in CSS - myth or new realities? Anna Matysiak
We are all developers :)