+ All Categories
Home > Documents > COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina...

COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina...

Date post: 10-Apr-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
66
Transcript
Page 1: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 2: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

COMPONENT DRIVENDESIGN AND DEVELOPMENT

Cristina Chumillas

Page 3: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

CRISTINA CHUMILLAS / @chumillas ckrina

Designer and frontend developer at Ymbra

Page 4: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

WHAT ARE WE GOING TO TALKABOUT

ComponentsDesign SystemsCSS MethodologiesStyles GuidesIn Drupal

Page 5: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

WEB PROJECTS

Page 6: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 7: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

invisble

Page 8: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

vsResponsiveInteractions...

Page 9: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

COMPONENTS

Page 10: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

invisble

Page 11: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

<!-- Last News component -->

<div class="last-news"> <h2 class="last-news__title"> Últimas noticias </h2>

<ul class="last-news__list"> <li class="last-news__item">(...)</li> <li class="last-news__item">(...)</li> </ul>

<a class="last-news__more">Ver más</a> </div>

Page 12: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

USE COMPONENTSTO MAKE SYSTEMS MODULAR

For a system to be modular, it must have interchangeableparts.

Page 13: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

WHAT MAKES A COMPONENTMODULAR?

Standard & shared designCentralized codeControlled via system, not the userCustomizable options

Page 14: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 15: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 16: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

“We’re not designing pages, we’redesigning systems of components.”

--Stephen Hay

Page 17: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

DESIGN SYSTEMS

Page 18: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

Everything that makes up your product.

--Mark Otto, FOWA 2013

Everything.Typography, layouts and grids, colors, icons, components, coding conventions...

Page 19: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 20: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 21: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

WHY DESIGN SYSTEMS?Reusable work - COMPONENTS

More efficient projects

Large-scale ready code

Everybody knows how everything works

Integrates multi-disciplinary workflow

Page 22: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

ATOMIC DESIGN

Page 24: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 25: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 26: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 27: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 28: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 29: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

WHEN?

Page 30: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

WIREFRAMESStatic wireframes vs HTML Wireframes

Page 31: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

STATIC WIREFRAMESThey are abstractionsThey are full of assumptionsThey are never complete

Page 32: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

HTML WIREFRAMESThey get into the browser quickerThey reinforce the notion that you’re creating a websiteThey are interactiveThey allow annotationsThey are the base for the final product

Page 33: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

DESIGNStatic delirables vs HTML delirables-prototypes

Page 34: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

DESIGNING IN THE BROWSERPSD for early planning/research phasesThe composition in the browserMake decisions in the browserReusable work > Developer will know how do you wantyou output

Page 35: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

CSS METHODOLOGIES

Page 36: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

OOCSS(Object Oriented CSS)

Based in Object Oriented programming paradigm:

Do One Thing WellSingle Responsibility Principle(1 responsability = 1 class)

Focuses on Separation of Concerns(SoC)

Page 37: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

OOCSS(Object Oriented CSS)

/* Media Object */ .media {} .media .image {} .media .comment {}

Page 38: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

BEM(Block Element Modifier)

.site-search {} /* Block */ .site-search__field {} /* Element */ .site-search--full {} /* Modifier */

Page 39: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

BEM <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>

Page 40: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

SMACSS

Page 41: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

STYLE GUIDESDocumentation of a Design System

Page 42: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 43: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

WHY?Improve User ExperienceEasy onboarding of new team membersEfficient Design and DevelopmentMakes Testing easier

Page 44: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 45: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 46: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 47: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

STYLEGUIDE DRIVENDEVELOPMENT(SDD)

Style guides that are generated directly from the styledefinition sources

Page 48: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

KSS (KNYLE STYLE SHEETS)

Documentation specification and styleguide format.

Structured to be automatically extracted and processed.

Page 49: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

base/

layout/

components/

pager/

_pager.scss

_pager.hbs

Page 50: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

_pager.scss

// Pager//// Markup: pager.hbs//// Style guide: components.navigation.pager

.pager,%pager { margin: 0; // All the styles here.}

Page 51: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

_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>

Page 52: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker
Page 53: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

STYLE GUIDES - RESOURCESstyleguides.io

Articles, Books, Podcasts, Talks, Tools, Examples, etc.

Page 54: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

IN DRUPAL

Page 55: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

GENERAL APPROACHES1. Wrapping components2. Changing default markup

Page 56: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

OUR COMPONENTS TO DRUPALCOMPONENTS

In codeDisplay SuitePanels

Page 57: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

IN CODEField formatterProcess and preprocess functionshook_(...)_alter

hook_page_alter()hook_form_alter()hook_node_view_alter()(...)

...

Page 58: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

DISPLAY SUITEView modes

Page 59: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

DISPLAY SUITEField templates (Display Suite extras)

Page 60: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

PANELSCustom PanesTemplates for paneAdd class to the paneMini PanelsContext

Page 61: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

PANELSCustom Panes (CTools Content Type or Plugin)

<?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) { (...)}

Page 62: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

PANELSCustom template for pane

/** * 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; } }

Page 63: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

PANELSCustom class

/** * 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; } }

Page 64: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

PANELSMini-panels

Page 65: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

PANELSContext

Page 66: COMPONENT DRIVEN - DrupalCon · 2015-09-22 · COMPONENT DRIVEN DESIGN AND DEVELOPMENT Cristina Chumillas. CRISTINA CHUMILLAS ... HTML WIREFRAMES They get into the browser quicker

THANKS! / @chumillas ckrina

Drupal-generatedmarkup is not your

friend -- use astyleguide!

Robert CaracausTuesday 22 14:15-15:15

Room 112

Prototypes and Drupal: fromdesigning in-browser toimplementing custom

templates Yuriy Gerasimov and Morten Christoffersen

Wednesday 23 10:45-11:45Room 111


Recommended