The document compares the CSS preprocessors Less and Sass. It discusses their histories, philosophies, ecosystems, features like variables, nesting, mixins, and inheritance. Less is part of the JavaScript family while Sass is part of Ruby. Both aim to make CSS development easier by allowing variables, nesting, and other advanced features, but Sass takes a more imperative development approach while Less aims to be closer to CSS. In the end, the document concludes that for most developers the specific preprocessor does not matter greatly as long as it helps with organization and maintainability. Focus should be on CSS skills rather than getting too invested in one preprocessor over the other.
As CSS3 adds support for rich styling in standards-based web applications, style sheet markup can quickly get out of control! Many CSS effects today require repetitive rules to cover the proprietary browser CSS prefixes. LESS for CSS is an open source framework that makes modern CSS more manageable. With support for variables, mix-ins, nested CSS rules, and operations, LESS finally makes complex CSS easy to maintain. In this session, you will discover how LESS can be easily adopted in any ASP.NET project and learn about tools that make it easy to work with LESS in Visual Studio 2010.
What is Basic?
Basic was originally developed for client projects. Originally a stripped down version of the ZEN theme, basic has now become its own concept of a theme starter. Basic boasts a clean HTML structure with extensible CSS classes and ID's for unlimited theming possibilities as well as a top-down load order for improved SEO.
Basic's goal is to provide themers the building blocks needed to get their designs up and running quickly and simply.
What is SASS?
Sass is a meta-language on top of CSS that’s used to describe the style of a document cleanly and structurally, with more power than flat CSS allows. Sass both provides a simpler, more elegant syntax for CSS and implements various features that are useful for creating manageable stylesheets.
What will I Learn?
We will guide you through using Basic with SASS and Compass to kick-start your next Drupal theming project and show you how easy it is to get started. We will also cover the syntax and file structure of using SASS and how to get your development environment up
If you've ever wished for more readable and maintainable CSS, SCSS (the current version of Sass) is the tool you've been waiting for. SCSS builds upon CSS3 to add features such as reusable variables and blocks, functions for manipulating colors and doing mathematical operations, selector nesting, and style inheritance. Before deploying, you simply compile your SCSS into ordinary CSS files in one easy (and easily automated) step.
This session will present the core features of SCSS with helpful examples, and get you excited about writing CSS again.
As CSS3 adds support for rich styling in standards-based web applications, style sheet markup can quickly get out of control! Many CSS effects today require repetitive rules to cover the proprietary browser CSS prefixes. LESS for CSS is an open source framework that makes modern CSS more manageable. With support for variables, mix-ins, nested CSS rules, and operations, LESS finally makes complex CSS easy to maintain. In this session, you will discover how LESS can be easily adopted in any ASP.NET project and learn about tools that make it easy to work with LESS in Visual Studio 2010.
What is Basic?
Basic was originally developed for client projects. Originally a stripped down version of the ZEN theme, basic has now become its own concept of a theme starter. Basic boasts a clean HTML structure with extensible CSS classes and ID's for unlimited theming possibilities as well as a top-down load order for improved SEO.
Basic's goal is to provide themers the building blocks needed to get their designs up and running quickly and simply.
What is SASS?
Sass is a meta-language on top of CSS that’s used to describe the style of a document cleanly and structurally, with more power than flat CSS allows. Sass both provides a simpler, more elegant syntax for CSS and implements various features that are useful for creating manageable stylesheets.
What will I Learn?
We will guide you through using Basic with SASS and Compass to kick-start your next Drupal theming project and show you how easy it is to get started. We will also cover the syntax and file structure of using SASS and how to get your development environment up
If you've ever wished for more readable and maintainable CSS, SCSS (the current version of Sass) is the tool you've been waiting for. SCSS builds upon CSS3 to add features such as reusable variables and blocks, functions for manipulating colors and doing mathematical operations, selector nesting, and style inheritance. Before deploying, you simply compile your SCSS into ordinary CSS files in one easy (and easily automated) step.
This session will present the core features of SCSS with helpful examples, and get you excited about writing CSS again.
ITA - Preparare un Workshop con Playmobil.PRO®Hoang Huynh
Un evento dedicato a tutti coloro che vogliono cimentarsi nella progettazione di workshop utilizzando metafore e materiale fisico, in particolare Playmobil.PRO®
In collaborazione con Quadrante Bologna Startup e IDF Bologna
Questo contenuto è rilasciato come CC con attribuzione da parte dell'autore alla comunità White Label e da intendersi come restituzione alla comunità di pratiche.
ENG - How to Design a Workshop with Playmobil.PRO®Hoang Huynh
An event dedicated to all those who want to try their hand at designing workshops using metaphors and physical material, in particular Playmobil.PRO®
In collaboration with Quadrante Bologna Startup and IDF Bologna
This content is released as a CC with Attribution contribution by the author to the White Label community and intended as a giveback to the community of practices.
Personas: Un primer dedicato al più amato strumento proxy utilizzato in marketing, business strategy e design.
Questo contenuto è rilasciato come contributo CC with Attribution dall'autore alla community di White Label e da intendersi come giveback alla comunità di pratiche.
TAG LateNight - Experience and Digital Transformation - Hoang Huynh
Background deck for the TAG LateNight discussion table on the Digital Transformation.
Here's the live of the event:
https://www.facebook.com/taginnovationschool/videos/2043336152583886/
Riconoscere e Gestire il Debito UX - Agile Business Day 2016 #ABD16Hoang Huynh
Il debito tecnico è un indice fondamentale per determinare lo stato di salute di un progetto software e ci aiuta a valutare i rischi a cui siamo esposti nelle sue future evoluzioni.
Perchè quello che progettiamo viene spesso percepito dagli utenti in modo differente?
La differenza di esperienza, fra il percepito e l’implementato è il famigerato debito tecnico di UX (UX Debt)
Il debito tecnico UX è l’indicatore fondamentale di quanto ci stiamo discostando dall’esperienza che intendiamo progettare a quello che viene percepito dagli utenti attraverso il prodotto o servizio finale e le sue evoluzioni.
E’ un fattore importantissimo che deve essere tenuto a mente in ogni progetto che abbia una componente UX, ma per essere compreso e gestito, deve essere innanzitutto riconosciuto.
Come tutte le incognite di progetto, sottovalutarlo pone grandi rischi alla manutenibilità di quello che creiamo.
In queste due ore, impareremo che cos’e’, come riconoscerlo nelle sue varie forme e come gestirlo trasformandolo in una variabile controllata di progetto.
Crafting Great Hypotheses - Droidcon 2016Hoang Huynh
Building business apps is no joke.
As designers, we are often asked to create apps that have the wow factor, they need to be distinctive, and we are rarely appreciated when we create something pragmatic, something that simply works.
Moving forward in the face of uncertainty, it is essential to devise a plan, an UX roadmap that includes research, objectives and tests.
In a world where success is just when preparation meets opportunity, starting with ready to be validated solid hypotheses is the secret sauce to a project without risks. Are you a risk taker?
WIAD16 - L'Architettura dell'Informazione nel TurismoHoang Huynh
Talk presentato al WIAD Pescara 2016 con doppia conduzione Hoang Huynh e Valeria Adani. Una infarinatura dell'importanza di curare le informazioni e il loro impatto sulla sfera decisionale e un caso di studio reale .
Codemotion Milan 2014 - B00bs, Kittens and CelebsHoang Huynh
My UX talk about Attention, presented in Milan, Codemotion 2014.
Disclaimer: I'm not Matt Taylor and despise the title, there are no b00bs involved in the talk and you will be disappointed
The talk presented at Better Software 2014 in Florence:
A small practical guidebook for company people who want to defend themselves from the attacks of evil Agile Integralists, delivering, nevertheless, great user experiences, safeguarding their sanity and living happily ever after in a world they say is going to end.
Queste sono le slide a supporto del workshop svolto con la comunità dell'Interaction Design Foundation di Bologna. Il workshop si è svolto in Working Capital e ha avuto come scopo, quello di illustrare le basi dell'intervista utente come strumento di indagine per una migliore progettazione utente.
An UX talk about Human Errors, Errant Behavior and Design.
A small and humble talk presented at Codemotion 2014 in Rome: nothing new or disruptive, but some stuff "who knows why" usually ignored but so useful for UX folks and Developers as well.
This is my talk about Social Responsibility in UX and Code design at the Better Software Conference 2013 in Florence. The presentation was presented in Italian, however I added an english audio track for you all. Forgive my bad english, I'm really not used to.
I hope you enjoy it.
Le slide proiettate durante il mio talk su come sto vivendo l'esperienza di passare a partita IVA come consulente freelance, dopo 4 anni di dipendenza.
Il talk ha compreso uno spezzone video delle selezioni di Masterchef Italia seconda stagione, tutti i diritti di immagini e video sono dei rispettivi proprietari.
A speed run about playing with affordances in both real and digital world, for user who are not really sold about the "whole UX design thing".
Presented at Programmers in Padua.
Affordances are everywhere and somehow they are invisible to us unless you know they are there... Knowing them, seeing them, can make us design more understandable products and even more engaging.
ITA - Preparare un Workshop con Playmobil.PRO®Hoang Huynh
Un evento dedicato a tutti coloro che vogliono cimentarsi nella progettazione di workshop utilizzando metafore e materiale fisico, in particolare Playmobil.PRO®
In collaborazione con Quadrante Bologna Startup e IDF Bologna
Questo contenuto è rilasciato come CC con attribuzione da parte dell'autore alla comunità White Label e da intendersi come restituzione alla comunità di pratiche.
ENG - How to Design a Workshop with Playmobil.PRO®Hoang Huynh
An event dedicated to all those who want to try their hand at designing workshops using metaphors and physical material, in particular Playmobil.PRO®
In collaboration with Quadrante Bologna Startup and IDF Bologna
This content is released as a CC with Attribution contribution by the author to the White Label community and intended as a giveback to the community of practices.
Personas: Un primer dedicato al più amato strumento proxy utilizzato in marketing, business strategy e design.
Questo contenuto è rilasciato come contributo CC with Attribution dall'autore alla community di White Label e da intendersi come giveback alla comunità di pratiche.
TAG LateNight - Experience and Digital Transformation - Hoang Huynh
Background deck for the TAG LateNight discussion table on the Digital Transformation.
Here's the live of the event:
https://www.facebook.com/taginnovationschool/videos/2043336152583886/
Riconoscere e Gestire il Debito UX - Agile Business Day 2016 #ABD16Hoang Huynh
Il debito tecnico è un indice fondamentale per determinare lo stato di salute di un progetto software e ci aiuta a valutare i rischi a cui siamo esposti nelle sue future evoluzioni.
Perchè quello che progettiamo viene spesso percepito dagli utenti in modo differente?
La differenza di esperienza, fra il percepito e l’implementato è il famigerato debito tecnico di UX (UX Debt)
Il debito tecnico UX è l’indicatore fondamentale di quanto ci stiamo discostando dall’esperienza che intendiamo progettare a quello che viene percepito dagli utenti attraverso il prodotto o servizio finale e le sue evoluzioni.
E’ un fattore importantissimo che deve essere tenuto a mente in ogni progetto che abbia una componente UX, ma per essere compreso e gestito, deve essere innanzitutto riconosciuto.
Come tutte le incognite di progetto, sottovalutarlo pone grandi rischi alla manutenibilità di quello che creiamo.
In queste due ore, impareremo che cos’e’, come riconoscerlo nelle sue varie forme e come gestirlo trasformandolo in una variabile controllata di progetto.
Crafting Great Hypotheses - Droidcon 2016Hoang Huynh
Building business apps is no joke.
As designers, we are often asked to create apps that have the wow factor, they need to be distinctive, and we are rarely appreciated when we create something pragmatic, something that simply works.
Moving forward in the face of uncertainty, it is essential to devise a plan, an UX roadmap that includes research, objectives and tests.
In a world where success is just when preparation meets opportunity, starting with ready to be validated solid hypotheses is the secret sauce to a project without risks. Are you a risk taker?
WIAD16 - L'Architettura dell'Informazione nel TurismoHoang Huynh
Talk presentato al WIAD Pescara 2016 con doppia conduzione Hoang Huynh e Valeria Adani. Una infarinatura dell'importanza di curare le informazioni e il loro impatto sulla sfera decisionale e un caso di studio reale .
Codemotion Milan 2014 - B00bs, Kittens and CelebsHoang Huynh
My UX talk about Attention, presented in Milan, Codemotion 2014.
Disclaimer: I'm not Matt Taylor and despise the title, there are no b00bs involved in the talk and you will be disappointed
The talk presented at Better Software 2014 in Florence:
A small practical guidebook for company people who want to defend themselves from the attacks of evil Agile Integralists, delivering, nevertheless, great user experiences, safeguarding their sanity and living happily ever after in a world they say is going to end.
Queste sono le slide a supporto del workshop svolto con la comunità dell'Interaction Design Foundation di Bologna. Il workshop si è svolto in Working Capital e ha avuto come scopo, quello di illustrare le basi dell'intervista utente come strumento di indagine per una migliore progettazione utente.
An UX talk about Human Errors, Errant Behavior and Design.
A small and humble talk presented at Codemotion 2014 in Rome: nothing new or disruptive, but some stuff "who knows why" usually ignored but so useful for UX folks and Developers as well.
This is my talk about Social Responsibility in UX and Code design at the Better Software Conference 2013 in Florence. The presentation was presented in Italian, however I added an english audio track for you all. Forgive my bad english, I'm really not used to.
I hope you enjoy it.
Le slide proiettate durante il mio talk su come sto vivendo l'esperienza di passare a partita IVA come consulente freelance, dopo 4 anni di dipendenza.
Il talk ha compreso uno spezzone video delle selezioni di Masterchef Italia seconda stagione, tutti i diritti di immagini e video sono dei rispettivi proprietari.
A speed run about playing with affordances in both real and digital world, for user who are not really sold about the "whole UX design thing".
Presented at Programmers in Padua.
Affordances are everywhere and somehow they are invisible to us unless you know they are there... Knowing them, seeing them, can make us design more understandable products and even more engaging.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
PechaKucha Less VS Sass
1. 20013/04/17
20x20 Less VS Sass
Mine is Longer...
Hoang C. Huynh
@aetheros
mercoledì 17 aprile 13
2. Less VS Sass 2
WE ALL STANDARDS
mercoledì 17 aprile 13
3. Less VS Sass 3
Historical Outcomes
§ Fragmentation
§ Inconsistency
§ Vendor Captivity
§ “Wish I Could” Syndrome
§ Variables
§ Object Oriented
§ Inheritance
§ Functions
§ Business Logic
CSS’ TROUBLESOME YOUTH
mercoledì 17 aprile 13
4. Less VS Sass 4
http://lesscss.org/ http://sass-lang.com/
2009 - Alexis Sellier 2007 - Hampton Catlin
§ These are not frameworks nor toolkits.
§ These are preprocessors, that try to fill the gaps
present in the standard CSS development
What we are talking about? Code Less, Code Better
mercoledì 17 aprile 13
5. FIrst Thing FIrst 5
WHY PREPROCESS?
§ Error Detection
Misplaced {}, missing commas, misspelled attributes or inconsistent values
§ Code Minification
Compact of Selector and shorthand values, comments and spaces discard
§ Code Organization
Physical inclusion of files, namespacing, folder organization
§ Customization
mercoledì 17 aprile 13
6. FIrst Thing FIrst 6
WHY PREPROCESS?
§ Write less code and follow DRY principles
§ Write maintainable code and, hopefully,
more readable ( ...it’s not easy to get both... )
§ Juggle complexity and bounce it back to
who’s “able” to handle it
§ Power and Flexibility
mercoledì 17 aprile 13
7. Less VS Sass 7
§ Mixins: LESS Elements, Less Mixins § Mixins: GroundworkCSS, Bourbon
§ Layout: 960, Frameless, Semantic, § Grids: Neat, Gridset, Zen Grids
Less Framework, Even.less, Centage § ...
§ ... § Killer Framework: Compass
§ Killer App: Twitter Bootstrap § Killer App: Foundation
ECOSYSTEM DIFFERENCE
mercoledì 17 aprile 13
8. Less VS Sass 8
“It’s just CSS” “It’s more than CSS”
§ Declarative style of coding § Imperative style of coding
§ CSS Friendly Syntax § Compiler Directive
§ Declare what you want to see § Declare how you want things to be
done
PHILOSOPHICAL DIFFERENCE
mercoledì 17 aprile 13
9. Less VS Sass 9
Oldies but Goodies
§ SASS is part of the Ruby family gem install sass
mv style.css style.scss
§ Ruby comes with MacOSX
sass --watch style.scss:style.css
§ SASS has two syntaxes: SCSS & the former SASS
$main_color: #FF03DE; $main_color: #FF03DE
.content-navigation { .content-navigation
border-color: $main_color; border-color: $main_color
}
No handles, no commas, indentation based
mercoledì 17 aprile 13
10. Less VS Sass 10
WHY AM I SO POPULAR?
§ LESS is part of the Javascript family npm install -g less
§ To compile, Node.JS is required and lessc -x styles.less > styles.css
the package is available through NPN
§ LESS compilers comes in many flavors, even PHP doh!
§ LESS can run directly on the client browser!
<link
rel="stylesheet/less"
type="text/css"
href="styles.less">
<script
src="less.js"
type="text/javascript"></script>
...WHICH IS THE WORST, but Designers seem to like it...
mercoledì 17 aprile 13
11. Less VS Sass 11
WHY AM I SO POPULAR?
§ LESS is young and is catching up with SASS very fast,
fueled by the rapid growth of Node.JS and Bootstrap
§ The LESS universe is lagging behind a lack of syntactic
polishness and fragmentation of modules, add ons and
forks, but that it is not definitely a bad thing.
§ Documentation is more noob friendly
mercoledì 17 aprile 13
12. Less VS Sass 12
Variables
@nice-blue: #5B83AD; $nice-blue: #5B83AD;
@light-blue: (@nice-blue + #111); $light-blue: ($nice-blue + #111);
#header { color: @light-blue; } #header { color: $light-blue; }
#header { color: #6c94be; }
Winner: TIE
mercoledì 17 aprile 13
13. Less VS Sass 13
Nesting
table.hl { table.hl {
margin: 2em 0; margin: 2em 0;
“&” is the
&:hover { &:hover {
parent selector text-align: right; text-align: right;
} }
li { li {
font: {
font-family: serif; family: serif;
font-weight: bold; weight: bold;
}
} }
} }
table.hl { table.hl li {
margin: 2em 0; font-family: serif;
} font-weight: bold;
table.hl:hover { font-size: 1.2em;
text-align: right; }
Winner: SASS
}
mercoledì 17 aprile 13
14. Less VS Sass 14
Mixins
.bordered(@pix: 2px) { @mixin bordered($pix: 2px) {
border-top: dotted 1px black; border-top: dotted 1px black;
border-bottom: solid @pix black; border-bottom: solid $pix black;
} }
#menu a { #menu a {
.bordered(); @include bordered();
} }
.post a { .post a {
.bordered(4px); @include bordered(4px);
} }
#menu a { .post a {
border-top: dotted 2px black; border-top: dotted 2px black;
border-bottom: solid 4px black; border-bottom: solid 4px black;
} }
Winner: TIE
mercoledì 17 aprile 13
15. Less VS Sass 15
Inheritance
.module-a { .module-a {
color: #123456; color: #123456;
} }
.module-b {{ .module-b {
.module-a(); @extend .module-a;
border: 1px solid red; border: 1px solid red;
} }
LESS 1.4 will support the Extend directive
in the same way that SASS do, but as a pseudoclass
.module-a { .module-a, .module-b {
color: #123456; color: #123456;
} }
.module-b { .module-b {
color: #123456; border: 1px solid red;
border: 1px solid red; }
Winner: SASS (for now)
}
mercoledì 17 aprile 13
16. Less VS Sass 16
Advanced Logic
§ GUARDED MIXINS § IF ELSE
.mixin(params) when (dir=top){ @mixin my-mixin($parameters){
/* Conditional stuff */ @if $my-parameter == value {
} /* Conditional stuff */
}
}
§ RECURSION § LOOPS
.loop(@index) when (@index > 0) { @for $i from 1 through 10 {
(~".my-element:nth-child(@{index})") {
animation-name: "load-@{index}";
/* My stuff here */
} }
.loop(@index - 1);
}
.loop (0) {}
§ CONCATENATION
@nbElements: 10; #{$my-selector} {
.loop (@nbElements);
#{$my-property}: $my-value;
§ NO CONCATENATION }
Winner: SASS
mercoledì 17 aprile 13
17. In the End 17
SO? WHICH ONE SHOULD WE PICK?
DOES IT REALLY MATTER?
§ In a couple of month both preprocessors
will be 90% similar
§ Know your Client and your project, simply
pick the one that suits better for thy
mercoledì 17 aprile 13
18. In the End 18
GRAVE DANGER YOU ARE IN, IMPATIENT YOU ARE
§ Learn / Master CSS first, You must
§ To think re-usable, You have
§ Build Components not Views You will
§ K.I.S.S! Presentation not logic CSS is!
§ Nice SASS / LESS sources can compile in ugly code!
#dettaglioIniziative #content .vscroller .days li .month .list .activity .hour {
font-weight: 700; line-height: 50px; font-size: 18px; float: left;
}
mercoledì 17 aprile 13
19. In the End 19
FInal Takeaway
For the most of the average designer / developer, the general
knowledge of a preprocessor should really suffice, so in the end is
just a matter of preferences. Don’t get cocky and pick the right tool!
Don’t forget to check sometimes the new hero in town,
he may really surprise you :)
border-radius()
-webkit-border-radius arguments
-moz-border-radius arguments
border-radius arguments
body
font 12px Helvetica, Arial, sans-serif
a.button
border-radius 5px
mercoledì 17 aprile 13
20. Question Time 20
Question Time!
...We will be using Boostrap+Sass...
mercoledì 17 aprile 13