16
XWiki Skins Progress and Future Ecaterina Moraru — 22 July 2015 —

Future of XWiki Skins

Embed Size (px)

Citation preview

XWiki SkinsProgress and Future

Ecaterina Moraru — 22 July 2015 —

A XWiki skin is used to customizethe interface of a XWiki Enterpriseinstance.

A skin is composed of:

Velocity templatesCSS filesLESS filesJavaScript filesImagesFonts

What is a Skin?

·

·

······

2/16

Colibri vs. Colibri 3.4

Flamingo's Add button position

Flamingo's Menu Go to options

XCS Flavors (Documentation, etc.)

What do we do for Nestedchanges?

Create a new skin? (Macaw)Make Flamingo configurable?

Harder to testIncreases complexityChoosing the defaults

Skin Variations

·

·

·

·

·

··

···

4/16

Credits

How different a new skin needs to be?

Credits

Can we support multiple skins at the same time?

Responsive

HTML5

Bootstrap

LESSAlso in SSXOverride LESS templates

Icon ThemesSilk ThemeFont Awesome Theme

Flamingo ThemesBootswatch Themes

Flamingo Enhancements

·

·

·

···

···

··

< >

1 / 4

Bootswatch Themes Integration

extensions.xwiki.org Themes

7/16

PRO

PowerfulAbility to write LESS

Less complexExcludes Velocity templatesPreserves structure

CON

Overrides the Skin mechanismPossible source of bugs

Predisposed to duplication Rely on a particular structure

Confusing differences withColor Themes

Flamingo Themes vs. Skins

·

··

···

·

··

··

·8/16

Credits

Flamingo Themes: an evolution? or something to avoid?

UI generated from multiple places:Velocity, JavaScript, Macros, Sheets,etc.

Hard to achieve global consistency:Applications Isolation Missing a Style Guide

Not so extensible skin structure

Slower UI novelties adoption:Material Design GuidelinesNew JavaScript frameworks

Proposal: UI Standards fornow and the future (Jul 7, 2014)Marry to Bootstrap (+ our own add-ons built on top ofBootstrap)

Create our own standard (and bind it to whateverframework you want)

Mix Standard: XWiki specific classes + a selection ofBootstrap classes

Skin Issues

·

···

·

···

·

·

·

10/16

Credits

What will happen when Bootstrap goes out-of-style?

Skin as a collection of Extensions Points (UIXP):

Interface Extensions (UIX)

Skin as a collection of Layout Templates:

At Skin levelAt Page level

Example: Totem Application

Discussion: Stop using UIExtension Points anddeprecate this concept (Mar 4, 2014)

Define LayoutClass andContainerClass

Skin Extensibility

·

·

·

··

·12/16

Credits

How extensible should a skin be?

Skin Balance

Simplicity vs. Customisable

Standard vs. Extensible

Modern vs. Stable

Accommodation of new features

·

·

·

·

14/16

Thank you

Ecaterina Moraru — 22 July 2015 —