Hi Devs,

I have setup a public demonstration of my Bluebird Experimental Skin in the
incubator:

http://incubator.myxwiki.org/xwiki/bin/view/BluebirdSkin/WebHome

This demo is aimed to support the purpose of this brainstorming. I hope it
will inspire you to comment further on this thread.

For those who will undoubtedly ask, no this skin is not yet published. I
doubt I will publish it since it is unfinished with some rough edges and
missing features, but you may try to convince me of the opposite ;)


On Fri, Feb 1, 2013 at 12:43 PM, Denis Gervalle <[email protected]> wrote:

>
>
>
> On Fri, Feb 1, 2013 at 11:52 AM, Paul Libbrecht <[email protected]> wrote:
>
>> Correct Jean-Vincent, and I was probably too harsh describing it,
>>
>> but I understood Ecaterina's point to be a strive for a radical request
>> to move away from html.
>> Maybe this can be described in several stages?
>>
>
> What we are discussing is mainly to get away from producing the same html
> in several places of our standard UI, so we can change it easily for
> creating different kind of skins. Currently, to produce a button in the
> XWiki UI, we always use the same html, but we produce that same HTML from
> different places in the source code, and it is therefore not easy to change
> the way button are rendered (to conform with markup require by bootstrap
> for example).
>
> Usually, you do not really care about the HTML since you can use a custom
> CSS to change its appearance. But here, we definitely want to the opposite,
> adapting our HTML to support existing CSS like bootstrap, and benefit of
> all the derived CSS based on it very easily.
>
> In no way, this will change your ability to use HTML in XWiki, we will
> propose additional way to produce UI elements that will
> integrate seamlessly with the XWiki UI. For exampke, when you write an
> extension, you may want your extension to look like the rest of the UI, and
> not reinvent the button.
>
>
>>
>> paul
>>
>>
>> On 1 févr. 2013, at 11:09, Jean-Vincent Drean wrote:
>>
>> > AFAIU the thread is not about breaking things, it's about using xwiki
>> > syntax and macros (mostly for forms since the 2.0 syntax covers a lot
>> > of the html markup) to benefit from a standardized styling. Existing
>> > HTML would still be working, and it would be possible to write apps
>> > with HTML, but you'd have to handle styling on your own.
>> >
>> > On Thu, Jan 31, 2013 at 10:20 PM, Paul Libbrecht <[email protected]>
>> wrote:
>> >>
>> >> Breaking the very broad toolset and knowledge of developers in HTML to
>> create XWiki content and applications is, to me, suicidal.
>> >> Who would be ready to replace most of its html by macros?
>> >>
>> >> Paul
>> >>
>> >>
>> >> On 31 janv. 2013, at 15:26, Ecaterina Moraru (Valica) wrote:
>> >>
>> >>> Hi Denis,
>> >>>
>> >>> When we discussed the Vertical Forms Standard [1] Thomas mentioned
>> >>> something about "commons tools to follow that standard (like form
>> related
>> >>> wiki macros for example)". Some considered that having macros for
>> standard
>> >>> HTML controls will just duplicate HTML language.
>> >>>
>> >>> One advantage of having such macros would be that for example (let's
>> say
>> >>> the macros will be defined in macros.vm) if you want to change the
>> classes
>> >>> used by the controls (like .buttonwrapper class for example), you are
>> just
>> >>> changing the macros, not all the places that call them.
>> >>>
>> >>> This way you could easily change what classes you assign to a button
>> for
>> >>> example from span.buttonwrapper input.button.secondary to
>> >>> button.btn.btn-primary (bootstrap way - of course we will also need to
>> >>> standardize the usage component: input, button, a, etc.)
>> >>>
>> >>> The example above refers mostly to standard HTML elements. Of course
>> if you
>> >>> want to use other types of components from different frameworks you
>> will
>> >>> need to rewrite the templates, and this always calls for a new skin.
>> >>>
>> >>> I thought about new skins for XWiki and since I joined the project we
>> >>> mostly deprecated old skins than creating new ones. But one problem I
>> have
>> >>> is the concept of base skin. For me the base skin should be something
>> very
>> >>> minimal.
>> >>> It should contain just the typography, standard controls, the grid,
>> the
>> >>> reset, anyway elements that are not layout dependent and that will
>> work for
>> >>> any skin. I'm not sure about templates, because mostly templates
>> refer to
>> >>> layout and how you arrange things and what functionality you reveal
>> and
>> >>> where, and this usually change with a new skin. Technical the base
>> skin
>> >>> should contain the Standard, the base for things that will remain the
>> same
>> >>> no matter what. Right now Colibri covers much more than that.
>> >>>
>> >>> And this standard is absolutely necessary also for the way we go with
>> >>> extensions. We know very well that in an Open Source project,
>> everybody
>> >>> codes with his own style and having a common ground is essential from
>> a
>> >>> consistency point of view. All the applications that will be created
>> and
>> >>> published by the community members should have a common style that
>> could
>> >>> make them integrate well inside XWiki, no matter of the creator.
>> >>>
>> >>> So the conclusion is that for this we will need a very well documented
>> >>> standard and the tools to enforce it. Not sure what this means.
>> >>>
>> >>> Also other things worth discussing is colorthemes variables and macros
>> >>> against LESS variables and mixins.
>> >>> Also the Bootstrap / LESS is also a direction bet, just like
>> Prototype vs.
>> >>> JQuery, and the solution we pick it would be great if it would be
>> loosely
>> >>> coupled.
>> >>>
>> >>> Thanks,
>> >>> Caty
>> >>>
>> >>> P.S. Another discussion somehow related to extensibility is
>> [Discussion]
>> >>> Problematic ColorTheme extensibility
>> >>> http://markmail.org/thread/ex6fgou6fl6vjwfr
>> >>>
>> >>> [1] http://platform.xwiki.org/xwiki/bin/view/DevGuide/VerticalForms
>> >>>
>> >>>
>> >>> On Tue, Jan 29, 2013 at 8:10 PM, Denis Gervalle <[email protected]>
>> wrote:
>> >>>
>> >>>> Hi Devs,
>> >>>>
>> >>>> As you may have noted from a previous mail, I have given a try to
>> skin
>> >>>> XWiki differently, based on Bootstrap. There is certainly many ways
>> to get
>> >>>> it done, but IMO, building over any pre-made css solution requires an
>> >>>> adaptation of the HTML generated.
>> >>>>
>> >>>> In the early days of XWiki, the were few places were we have HTML
>> >>>> generated. Most of the html produce came from three major places:
>> >>>> 1) .vm templates including macros.vm
>> >>>> 2) java generated (#display())
>> >>>> 3) XWiki tech document
>> >>>>
>> >>>> While 2) and 3) either provide very basic markup or customizable one
>> and
>> >>>> are not so much, and 1) was fully customizable by skins, to work out
>> a new
>> >>>> skin was not too complex.
>> >>>>
>> >>>> Today however, the UI of XWiki has considerably increase its
>> complexity,
>> >>>> and the source of HTML has followed, added to the above 3:
>> >>>> 4) XWiki and Java macros
>> >>>> 5) JavaScript (ie: annotation UI, comments preview)
>> >>>>
>> >>>> Changing all these places has become really more painful. There is no
>> >>>> central place, and a lot of hidden dependencies between UI components
>> >>>> exists. Worse examples are those written in JS, that hook into the
>> UI.
>> >>>>
>> >>>> I should admit that I have not a clear idea of the best way to
>> improve
>> >>>> that, but my feeling is that changing so much places simply to adapt
>> our
>> >>>> wiki skin to the "a la mode" skin solution (something that will
>> happen
>> >>>> again) is not nice.
>> >>>>
>> >>>> So this thread is now open for anyone to discuss the situation and
>> for
>> >>>> anyone interested to provide its input to the discussion.
>> >>>>
>> >>>> Looking at what I face building the UI with bootstrap, here is what I
>> >>>> noticed:
>> >>>>
>> >>>> 1) Bootstrap customize standard tags, without any css class
>> associated
>> >>>> 2) Bootstrap provide standard css classes to skin a given kind of UI
>> >>>> component
>> >>>> 3) Bootstrap use these class and custom attribute to inject JS
>> >>>> interactivity
>> >>>>
>> >>>> All these are really clean methods and work really well at building
>> very
>> >>>> simple html construct while providing nice looking and easy
>> interface.
>> >>>>
>> >>>> Let's take a concrete example, to build a button, you may use either
>> an a
>> >>>> tag, an input tag, a button tag or whatever, and set it a 'btn' css
>> class.
>> >>>> You may complement it with additional 'btn-primary', 'btn-success',
>> ... css
>> >>>> classes, to choose the kind of button you really want.
>> >>>>
>> >>>> However, in our XWiki UI, there no single place where we construct
>> buttons,
>> >>>> we do so in some velocity macros of macros.vm, we do so in .vm of
>> the UI,
>> >>>> we also do so in javascript, and finally in some wiki documents,
>> maybe we
>> >>>> also generate some in a java component.
>> >>>> All those buttons are usually built the same, with a very similar
>> HTML, but
>> >>>> there is no central place where the button markup is produced.
>> >>>>
>> >>>> And the same is true for most UI component. You may say we don't
>> care, and
>> >>>> CSS could solve them all, making any kind of markup look the way we
>> want.
>> >>>> But, we will loose the benefit of using existing CSS solution. And
>> there
>> >>>> are interesting benefit to that, since those solution gets
>> customized, see
>> >>>> BootsWatch for example.
>> >>>>
>> >>>> Therefore, it seems to me that we need something like an UI
>> generator, so
>> >>>> that when you build a application, you would simply says, I want a
>> primary
>> >>>> button here, a secondary button there, and it gets created both the
>> way it
>> >>>> should for your apps to use it, but also for the UI design we want
>> to use.
>> >>>>
>> >>>> Defining a list of these UI component is not simple, but we may take
>> >>>> Bootstrap as a starting point. There is in Bootstrap a large number
>> of
>> >>>> control already, that should cover many UI possibilities.
>> >>>>
>> >>>> How to provide that UI component to all the places we need it may be
>> less
>> >>>> obvious. For example, we need to create button from .vm, XWiki
>> document,
>> >>>> XWiki and java Macros, and even from javascript. Also defining how
>> you
>> >>>> could expect to interact with each control, from Javascript or from
>> java on
>> >>>> the server needs clarification.
>> >>>>
>> >>>> I have not yet googled, but there may be existing experience
>> regarding
>> >>>> these matters on other project. Not reinventing the wheel is always
>> better.
>> >>>> Your ideas are welcome.
>> >>>>
>> >>>> IMO, we really need that if we want our Skin 4.x to be really more
>> usable
>> >>>> for customization.
>> >>>>
>> >>>> WDYT ?
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Denis Gervalle
>> >>>> SOFTEC sa - CEO
>> >>>> eGuilde sarl - CTO
>> >>>> _______________________________________________
>> >>>> devs mailing list
>> >>>> [email protected]
>> >>>> http://lists.xwiki.org/mailman/listinfo/devs
>> >>>>
>> >>> _______________________________________________
>> >>> devs mailing list
>> >>> [email protected]
>> >>> http://lists.xwiki.org/mailman/listinfo/devs
>> >>
>> >> _______________________________________________
>> >> devs mailing list
>> >> [email protected]
>> >> http://lists.xwiki.org/mailman/listinfo/devs
>> >
>> >
>> >
>> > --
>> > Jean-Vincent Drean,
>> > XWiki.
>> > _______________________________________________
>> > devs mailing list
>> > [email protected]
>> > http://lists.xwiki.org/mailman/listinfo/devs
>>
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>
>
>
> --
> Denis Gervalle
> SOFTEC sa - CEO
> eGuilde sarl - CTO
>



-- 
Denis Gervalle
SOFTEC sa - CEO
eGuilde sarl - CTO
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to