Oh dear - why devs don’t stop using !important - it is so hard to customize it 
by use more specific selectors... anyway - as long as the css are clear and 
simple to support functions of the backend they are ok. Users can even 
customize them. display: none to hide something is simple and clear and 
bug-free.

kind regards

Tobias

> Am 13.03.2020 um 15:21 schrieb Maxim Solodovnik <solomax...@gmail.com>:
> 
> Additional note:
> 
> Bootstrap has following CSS
> 
> [hidden] {
>  display: none !important;
> }
> 
> which makes life much more diffiicult ...
> 
>> On Fri, 13 Mar 2020 at 21:17, Martin Grigorov <mgrigo...@apache.org> wrote:
>> 
>> On Fri, Mar 13, 2020 at 4:13 PM Martin Grigorov <mgrigo...@apache.org>
>> wrote:
>> 
>>> Hi Sven,
>>> 
>>> <html>
>>> 
>>>    <head>
>>>        <style>
>>>            /* rule from the application that should be used when the
>>> element is visible */
>>>            div {
>>>                display: flex;
>>>                margin-bottom: 200px;
>>>            }
>>> 
>>>            /* Rule coming from wicket-core.css */
>>>            .wicket--hidden {
>>>                display: none;
>>>            }
>>> 
>>>        </style>
>>>    </head>
>>> 
>>>    <body>
>>>        <p>
>>>            Element when visible: <br/>
>>>            A1 <div id="blah1.1" >B1</div> C1 <span>D1</span>
>>>            <br/>
>>>        </p>
>>>        <p>
>>>            Element when hidden (there is no B1 because Wicket renders
>>> just the tag, without any children): <br/>
>>>            A2 <div id="blah1.2" hidden></div> C2 <span>D2</span>
>>>            <br/>
>>>            <small><strong>C2 &amp; D2</strong> are still 200px down
>>> because 'hidden' is not like 'display: none'!
>>>            The application developer will have to do something more for
>>> the placeholder case to hide it.</small>
>>>        </p>
>>> 
>>>        <p>
>>>            Element with wicket--hidden class<br/>
>>>            A3 <div id="blah3" class="wicket--hidden">B3</div> C3
>>> <span>D3</span>
>>>            <br/>
>>>            <small><strong>C3 &amp; D3</strong> are not 200px down because
>>> of 'display: none'!
>>>            The application developer has nothing to do!</small>
>>>        </p>
>>>    </body>
>>> 
>>> </html>
>>> 
>>> It shows two things:
>>> 
>>> 1) since Wicket placeholder tags do not have children elements [1] there
>>> is not really a need to use 'hidden' or 'display: none'
>>> 
>> 
>> As I explained below we do need to use display: none.
>> I've forgot to update this line.
>> 
>> 
>>> 
>>> 2) if we really want to hide the element without leaving extra work for
>>> web designers then we have to use display: none
>>> 
>>> 
>>> 1.
>>> https://github.com/apache/wicket/blob/10d10a92dda2e5834508f52d7807fe361f20fbea/wicket-core/src/main/java/org/apache/wicket/Component.java#L2370
>>> 
>>> 
>>> 
>>>> On Thu, Mar 12, 2020 at 4:35 PM Sven Meier <s...@meiers.net> wrote:
>>> 
>>>> Hi all,
>>>> 
>>>> I've looked at all responses and most arguments in favor of a "core.css"
>>>> boil down to:
>>>> 
>>>>> `hidden` attribute doesn't work (even `display: flex` breaks it)
>>>> 
>>>>> Using the hidden attribute puts the responsibility with the developer
>>>>> where this should be on the framework. The hidden attribute just
>>>> doesn't work.
>>>> 
>>>>> When something as simple as using flex or display:block on a div breaks
>>>>> the hidden attribute [1] we should not depend on it working.
>>>> 
>>>> Sorry, but I don't share that assessment: 'hidden' works just fine!
>>>> Every browser supports it and it has a strong semantic meaning we can
>>>> utilize.
>>>> 
>>>> If you (or your web designer) decides to style hidden elements as
>>>> floating, static, flex, pink or with marquee ... feel free to do so.
>>>> 
>>> 
>>> No. The web designer styles the element when it is supposed to be visible.
>>> But then when some condition is met Wicket may render it as a placeholder
>>> for Ajax requests and then this element will be rendered.
>>> It does not have text content but the CSS rules will be still applied and
>>> the web designer will have to add more rules for the cases when 'hidden' is
>>> there.
>>> Most probably something like:
>>> div[hidden] {
>>>   display:none;
>>> }
>>> 
>>> 
>>>> Wicket doesn't need to ship a CSS file to fix anything here.
>>>> Note that the way we are hiding components in Wicket never exposes any
>>>> sensible information anyways. This topic is just about layout and
>>>> styling and that is completely in the responsibility of your developer
>>>> ...  and works out-of-the-box if you don't break it!
>>>> 
>>> 
>>> What about the cases when the children need to be invisible ?
>>> .wicket--hidden-fields
>>> 
>>> 
>>>> 
>>>>> Wicket ... has been dependent on its own styles, spread out through
>>>> our code in odd ways
>>>>> I consider not having a wicket stylesheet file a bug, not a feature
>>>> 
>>>> I couldn't disagree more. These "odd ways" is one of many cool features
>>>> of Wicket named "components". BTW we Wicket devs have never been very
>>>> successful in crafting CSS anyways, we shouldn't start with this now :P.
>>>> 
>>> 
>>> We don't really start.
>>> We do not mandate styling. We just hide whatever is supposed to be hidden.
>>> Nothing more.
>>> 
>>> As agreed (?!) earlier .wicket--color-red should be just a marker CSS
>>> class. The content should be provided by the application. Just like
>>> FeedbackPanel's CSS classes. I will remove it now!
>>> 
>>> 
>>>> 
>>>> I'll start a vote soon.
>>>> 
>>>> Sidenote : This doesn't mean I'm against the CSP feature in general!
>>>> After some iterations we arrived at a very cool solution (with some
>>>> minor detail questions remaining).
>>>> 
>>>> Have fun
>>>> Sven
>>>> 
>>>> On 27.02.20 22:18, Emond Papegaaij wrote:
>>>>> Hi Andrew,
>>>>> 
>>>>> I thought of this solution as well and it will work. The major
>>>>> advantage is that the styling is only added when it is actually used.
>>>>> But it requires significantly more work to build and is a lot more
>>>>> complex than the current solution. For this, we need some place to
>>>>> accumulate element styling, like we do for JS event handlers. This
>>>>> then needs to be rendered in the response.
>>>>> 
>>>>> The most complex part is ajax updates. These might change some of the
>>>>> styling. Simply replacing the style element will not work, because in
>>>>> an ajax request only the added components are rendered. Rendering a
>>>>> style element per component will work, but is far from ideal. This is
>>>>> why I went for the easy solution.
>>>>> 
>>>>> Emond
>>>>> 
>>>>> On Thu, Feb 27, 2020 at 10:08 PM Andrew Kondratev <and...@kondratev.pro>
>>>> wrote:
>>>>>> Just as a brainstorm. Not sure if it's a good idea.
>>>>>> 
>>>>>> Wicket potentially can add nounced style to the document with hidden
>>>>>> elements hidden by id.
>>>>>> 
>>>>>> Imagine generated HTML has components like these
>>>>>> <div class="wupb-container">
>>>>>>         <div class="wupb-progressBar" id="ida"><div
>>>>>> class="wupb-border"><div class="wupb-background"><div
>>>>>> class="wupb-foreground"></div></div></div></div>
>>>>>>         <div class="wupb-uploadStatus" id="id9"></div>
>>>>>>     </div>
>>>>>> 
>>>>>> #ida and #id9 must be hidden, so in the page header we add something
>>>> like
>>>>>> this
>>>>>> 
>>>>>> <style nonce="abracadabra">
>>>>>> #ida, #id9 {display: none;}
>>>>>> </style>
>>>>>> 
>>>>>> Even if the  wupb-progressBar  has display: flex, the #ida will win.
>>>> Will
>>>>>> win even over  #id8 .wupb-progressBar {display: fles}
>>>>>> 
>>>>>> !important can potentially be added.
>>>>>> 
>>>>>> 
>>>>>> чт, 27 февр. 2020 г. в 23:56, Ernesto Reinaldo Barreiro <
>>>> reier...@gmail.com
>>>>>>> :
>>>>>>> Hi,
>>>>>>> 
>>>>>>> On Thu, Feb 27, 2020 at 12:33 PM Andrea Del Bene <
>>>> an.delb...@gmail.com>
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> On Wed, Feb 26, 2020 at 10:26 AM Ernesto Reinaldo Barreiro <
>>>>>>>> reier...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>>> Hi,
>>>>>>>>> 
>>>>>>>>> Right now I have no enough knowledge to vote in this feature. One
>>>>>>> thing I
>>>>>>>>> didn't like, and I already mentioned it before, is some of us were
>>>>>>>> waiting
>>>>>>>>> for 9.x to be released some time ago (at least a few months ago I
>>>> was
>>>>>>>>> preparing some branch of our application and ported it to 9.x, after
>>>>>>>> asking
>>>>>>>>> about release plans) and all of the sudden this feature is
>>>> introduced
>>>>>>> and
>>>>>>>>> all sub-frameworks depending on Wicket will have to be adapted.
>>>>>>>> 
>>>>>>>> In which way sub-frameworks should be affected? I mean, as far as I
>>>>>>>> understand it, if we disable CSP blocking configuration everything
>>>> should
>>>>>>>> work "the old way", and that's why I would prefer to keep CSP
>>>> disabled by
>>>>>>>> default.
>>>>>>>> 
>>>>>>> Well if something is supported at core level then if associated
>>>> projects
>>>>>>> want to comply with this new feature, which might be ideal,  then
>>>> they will
>>>>>>> have to be adapted (or not?). I'm not talking about not releasing the
>>>> new
>>>>>>> feature. I'm talking about not releasing as part of 9.x, as it was
>>>> said to
>>>>>>> be almost ready for release a few months ago, and deffer it to 10.x
>>>> (and
>>>>>>> try to release it soon).
>>>>>>> 
>>>>>>> --
>>>>>>> Regards - Ernesto Reinaldo Barreiro
>>>>>>> 
>>>> 
>>> 
> 
> 
> 
> -- 
> WBR
> Maxim aka solomax

Reply via email to