scott jehl, designer / developer - filament group€¦ · • html/css consistency across ui...

56
Scott Jehl, Designer / Developer

Upload: others

Post on 24-Aug-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Scott Jehl, Designer / Developer

Page 2: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Design Reusable jQuery Components Like a Rockstar Professional

Scott Jehl, Designer / Developer

Page 3: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Hello.

A quick introduction...

Designer / Developerhttp://FilamentGroup.com

Founderhttp://WriteMaps.com

Scott Jehl http://ScottJehl.com

Page 4: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Also designer of the new jQuery Indentity:

Page 5: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

...and website:

Page 6: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework
Page 7: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Filament Group is a design firm in Boston, MA. Although our business is based upon client work, we frequently contribute our UI and Code solutions to the jQuery / open source community.

Page 8: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework
Page 9: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

• Make visualizations, components, and interactions more accessible

• Create elegant solutions for complex UI scenarios

• Find patterns for progressive enhancement in UI components

With jQuery, we’ve been able to

Page 10: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Making visualizations, components, and interactions more accessible.

Page 12: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Creating elegant solutions for complex UI scenarios

Page 15: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Finding patterns for progressive enhancement in UI components.

Page 17: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework
Page 18: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

In Action!

A couple of quick demos

Page 19: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

jQuery UI in a web application

Page 20: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

UI Slider UI Draggable UI Sortable

Zoom tool for scaling sitemaps structures within the viewport

Print preview tool uses UI draggable for tiling print output of large sitemaps

Pages within a sitemap are enabled for sorting using UI sortable.

in

http://WriteMaps.com

Page 21: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Enhancing a form with jQuery UI

Page 22: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Demo page from : Test-Driven Progressive Enhancementby Scott Jehl, A List Apart Issue 268

http://alistapart.com/articles/testdriven

Page 23: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Demo page from : Test-Driven Progressive Enhancementby Scott Jehl, A List Apart Issue 268

http://alistapart.com/articles/testdriven

Page 24: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework
Page 25: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

• Redesign the jQuery UI Component family (and beyond).

• Make existing components more reusable from a design perspective.

Project goals:

Page 26: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Redesigning the jQuery UI component family (and beyond)

Page 27: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Redesigning the jQuery UI component family

Page 28: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Redesigning the jQuery UI component family

Page 29: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Redesigning the jQuery UI component family

Page 30: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

...and lots more:

Page 31: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

...and lots more:

Page 32: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

...and lots more:

Page 33: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

...and lots more:

Page 34: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

...and lots more:

Page 35: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Making jQuery UI components more reusable from a design perspective:

Page 36: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

ThemeRoller

Page 37: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework
Page 38: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

ThemeRoller is...

• A Web application that allows you to design custom themes for jQuery UI components.

• Great for design collaboration. Themes are saved by URL at all times for copying and bookmarking for future usage as a site expands.

• A CSS framework for creating reusable jQuery components

• http://ThemeRoller.com

Page 39: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Scalability (EMs).ui-datepicker { font-size: 30px; }

Page 40: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Themeability

Page 42: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Extensibility

ThemeRollerReady

ThemeRollerThemeRollerReady

Page 43: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Extensibility

ThemeRoller

jquery-ui-themeroller.css

Page 44: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

How TR-Ready WorksContainer Classes:

• .ui-component: Outermost wrapper div

• .ui-component-content: For content areas within a component.

Page 45: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

How TR-Ready Works

• .ui-default-state: Default (clickable) state

• .ui-hover-state: Hover state

• .ui-active-state: Active state

State Classes:

Each state is built upon a few levers: background-color + texture, border-color, text-color, and icon-color.

Page 46: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

How TR-Ready WorksIcon Classes:

TR includes a version of each icon for all states:

Icon class syntax: .ui-[ icon type ]-[direction]-[state]

For example:.ui-arrow-down-hover

Page 47: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

How TR-Ready WorksHelper Classes:

• .ui-reset: provides styles for resetting margins, padding, list-style, etc

• .ui-hidden: hides elements

• .ui-accessible-hidden: hides elements through positioning

• .ui-clearfix: Common clearfix styles

Page 48: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Benefits of TR-Ready

• Easier integration into existing design environments

• HTML/CSS consistency across UI plugins

• Easier Mashups of multiple components

• Offload the design to the framework. More time for writing javascript!

• TR-Ready plugins on jQuery.com (Coming soon?)

Page 49: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Some Examples

A ThemeRoller-Ready Button:

<button type="submit" class="ui-default-state">Submit</button>HTML:

@import('jquery-ui-themeroller.smoothness.css'); /*ThemeRoller CSS*/button.ui-default-state { padding: .5em 1em; }

CSS:

$('.ui-default-state').hover( function(){ $(this).addClass('ui-hover-state'); }, function(){ $(this).removeClass('ui-hover-state'); } );

jQuery:

Page 50: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Some Examples

A ThemeRoller-Ready Menu:

<div id="jumpMenu" class="ui-component"> <a href="#menuContain" id="trigger"class="ui-default-state">

<span class="ui-arrow-down-default">Menu</span></a>

<div id="menuContain" class="ui-component-content" > <ul id="menu" class="ui-reset" > <li><a href="#">Nav Item</a></li> <li><a href="#">Nav Item</a></li> <li><a href="#">Nav Item</a></li> <li><a href="#">Nav Item</a></li> </ul> </div></div>

HTML:

Page 51: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

When Integrating:

• Attempt to use CSS only for dimensional qualities (width, height, margin, padding, position, float)

• If you only need part of a class, use it and use specificity to override the styles you don’t need.

• Be careful not to overuse state classes as it can cause visual clutter. All clickables need not look like .ui-hover-default!

• Use your own judgement on whether a class is appropriate for a situation.

Page 52: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

TR-Ready Documented at:

http://www.filamentgroup.com/lab/

Also will be added to docs soon...

Page 53: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

One last thing...

Page 54: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

ThemeRoller Developer Tool:

One last thing...

Page 56: Scott Jehl, Designer / Developer - Filament Group€¦ · • HTML/CSS consistency across UI plugins • Easier Mashups of multiple components • Offload the design to the framework

Thanks. Questions?

Scott Jehl, Designer / Developer