Mais conteúdo relacionado Semelhante a Future-proof styling in Drupal (8) (20) Future-proof styling in Drupal (8)14. /**
* Grid container
* Must only contain '.cell' children.
*/
.grid {
height: 100%;
!
font-size: 0;
!
white-space: nowrap;
}
15. /**
* Grid container
* Must only contain '.cell' children.
*/
.grid {
height: 100%;
/* Remove inter-cell whitespace */
font-size: 0;
/* Prevent inline-block cells wrapping */
white-space: nowrap;
}
17. CSS formatting guidelines
CSS file organization (for Drupal 8)
CSS architecture (for Drupal 8)
[META] Architect our CSS – http://drupal.org/node/1921610
31. • module_name.module.css
(layout, component, state)
• module_name.theme.css
• module_name.admin.css
(layout, component, state)
• module_name.admin.theme.css
CSS files for Drupal 8 modules
32. • module_name.module.css
(layout, component, state)
• module_name.theme.css
• module_name.admin.css
(layout, component, state)
• module_name.admin.theme.css
• module_name.base.css
CSS files for Drupal 8 modules
33. # Stylesheets override
!
!
# Remove not used stylesheets
Change record: https://drupal.org/node/1876600
stylesheets-override:
- system.theme.css
!
!
stylesheets-remove:
- node.module.css
mysubtheme.info.yml
38. Tip: use Sass Globbing
@import
"config/**/*",
"base/**/*",
"layout/**/*",
"components/**/*";
https://github.com/chriseppstein/sass-globbing
47. body #content .data img:hover {}
!
!
!
!
#content .data img
:hover body
0*1000 + 1*100 + 2*10 + 2*1 = 122
0 1 2 2 » 122
Specificity example
56. „Class names should communicate
useful information to developers.”
– Nicolas Gallagher
About HTML Semantics and Front-End Architecture
59. • Base
• Layout
• Component
• Block
• Element
• Modifier
• State
• Theme
John Albin: Managing complex projects with design components
60. <div class="flower__bed">
<div class="flower">
<div class="flower__petals">
<div class="flower__face"></div>
</div>
<div class="flower__stem">
<div class="flower__leaves"></div>
</div>
</div>
</div>
John Albin: Managing complex projects with design components
Component
• Block
61. <div class="flower__bed">
<div class="flower">
<div class="flower__petals">
<div class="flower__face"></div>
</div>
<div class="flower__stem">
<div class="flower__leaves"></div>
</div>
</div>
</div>
John Albin: Managing complex projects with design components
Component
• Element
62. <div class="flower__bed">
<div class="flower flower--tulip">
<div class="flower__petals">
<div class="flower__face"></div>
</div>
<div class="flower__stem">
<div class="flower__leaves"></div>
</div>
</div>
</div>
John Albin: Managing complex projects with design components
Component
• Modifier
63. <div class="flower__bed">
<div class="flower is-pollinating">
<div class="flower__petals">
<div class="flower__face"></div>
</div>
<div class="flower__stem">
<div class="flower__leaves"></div>
</div>
</div>
</div>
John Albin: Managing complex projects with design components
Component
• State
67. CSS architecture (for Drupal 8)
Progress bar component
<div class="progress progress--small">
<label class="label label--small">Uploading sunset.jpg</label>
<div class="progress__track">
<div class="progress__bar" style="width: 29%"></div>
</div>
<div class="progress__description">
<div class="layout-pull">Uploaded 221 of 762KB</div>
<strong class="layout-push">29%</strong>
</div>
<a class="progress__cancel" href="#" title="cancel">
<span class="visually-hidden">cancel</span>
</a>
</div>
68. CSS architecture (for Drupal 8)
Progress bar component
/**
* Progress Bar component
*/
.progress {}
.progress__track {}
.progress__bar {}
.progress__description {}
.progress__cancel {}
.progress__cancel:focus,
.progress__cancel:hover {}
/**
* Progress Bar small variant
*/
.progress--small .progress__track {}
.progress--small .progress__bar {}
.progress--small .progress__cancel {}
70. <div class="media attribution">
<a href="http://twitter.com/stubbornella" class="img">
<img src="http://stubbornella.com/profile_image.jpg"
alt="me" />
</a>
<div class="bd">
@Stubbornella 14 minutes ago
</div>
</div>
/* ====== media ====== */
.media {margin:10px;}
.media, .bd {overflow:hidden; _overflow:visible; zoom:1;}
.media .img {float:left; margin-right: 10px;}
.media .img img{display:block;}
.media .imgExt{float:right; margin-left: 10px;}
http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/
71. %media {
overflow: hidden;
&:first-child {
float: left;
}
&:last-child {
overflow: hidden;
}
}
.status {
@extend %media
// ...
}
!
.profile {
@extend %media
// ...
}
http://ianstormtaylor.com/oocss-plus-sass-is-the-best-way-to-css
73. „Layouts where you put your
components.”
– John Ferris
https://austin2014.drupal.org/session/layout-design-patterns