aa
Designer and frontend developer at Ymbra
aa
vs |
|
|
For a system to be modular, it must have interchangeable parts.
“We’re not designing pages, we’re designing systems of components.”
--Stephen Hay
Everything that makes up your product.
--Mark Otto, FOWA 2013
Everything.
Typography, layouts and grids, colors, icons, components, coding conventions...
Reusable work - COMPONENTS
More efficient projects
Large-scale ready code
Everybody knows how everything works
Integrates multi-disciplinary workflow
Static wireframes vs HTML Wireframes
Static delirables vs HTML delirables-prototypes
/* Media Object */
.media {}
.media .img {}
.media .img img {}
.media .imgExt {}
.site-search {} /* Block */
.site-search__field {} /* Element */
.site-search--full {} /* Modifier */
<div class="block-name__wrapper">
<div class="block-name">
<h2 class="block-name__title">Block title</h2>
<p class="block-name__text">Block text</p>
</div>
</div>
<div class="block-name--big">
<h2 class="block-name__title">Block title</h2>
<p class="block-name__text">Block text</p>
</div>
Documentation of a Design System
Style guides that are generated directly from the style definition sources
base/
layout/
components/
	pager/
		_pager.scss
		_pager.hbs
_pager.scss
// Pager
//
// Markup: pager.hbs
//
// Style guide: components.navigation.pager
.pager,
%pager {
clear: both;
margin: 0;
padding: 0;
text-align: center;
// A page item in the pager list.
&__item {
@include adjust-font-size-to(12px);
display: inline;
padding: 0 .5em;
border-right: solid 1px color(grey-dark);
list-style-type: none;
background-image: none;
color: color(grey-dark);
}
// The current page's list item.
&__current-item {
@extend %pager__item;
}
}
_pager.hbs
// Pager
<ul class="pager {{modifier_class}}">
<li class="pager__item">
<a title="Go to page 1" href="/admin/content">1</a>
</li>
<li class="pager__item">
<a title="Go to page 2" href="/admin/content?page=1">2</a>
</li>
<li class="pager__current-item">3</li>
<li class="pager__item">
<a title="Go to page 4" href="/admin/content?page=3">4</a>
</li>
<li class="pager__item">
<a title="Go to page 5" href="/admin/content?page=4">5</a>
</li>
</ul>
Articles, Books, Podcasts, Talks, Tools, Examples, etc.
hook_alter
View modes
Field templates (Display Suite extras)
<?php
$plugin = array(
'single' => TRUE,
'title' => t('Menu shortcuts to the themes'),
'category' => t('MSF ES: Themes'),
'render callback' => 'jumpmenu_themes_render',
'admin info' => 'jumpmenu_themes_admin_info',
);
/**
* The 'admin info' callback for panel pane.
*/
function jumpmenu_themes_admin_info($subtype, $conf, $contexts) {
(...)
}
/**
* Render callback function.
*/
function jumpmenu_themes_render($subtype, $conf, $args, $contexts) {
(...)
}
/**
* Implements hook_preprocess_panels_pane().
*/
function mymodule_preprocess_panels_pane(&$variables) {
switch ($variables['pane']->subtype) {
case 'my-pane-name':
$variables['template_files'][] = 'panels-pane-test';
break;
}
}
/**
* Implements hook_preprocess_panels_pane().
*/
function mymodule_preprocess_panels_pane(&$variables) {
switch ($variables['pane']->subtype) {
case 'my-pane-name':
$classes = 'my-custum-class';
$variables['classes_array'][] = $classes;
break;
}
}
Drupal-generated markup is not your friend -- use a styleguide! Robert Caracaus Tuesday 22 14:15-15:15 Room 112 |
Prototypes and Drupal: from designing in-browser to implementing custom templates Yuriy Gerasimov and Morten Christoffersen Wednesday 23 10:45-11:45 Room 111 |