Difference between revisions of "Dn-css-3"

From EncyclopAtys

Jump to: navigation, search
(Created page with "===Text box=== A text box with an border. Here I would like to propose my version of Template:ContentBox. My goal is to simplify the code, make it more readable. lets star...")
 
m
Line 129: Line 129:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
----<br/>
 
----<br/>
 +
{{:dn-menu-buttons
 +
|CellCount=2
 +
|Pallete=MR
 +
|Link1=[[dn-css-2| <- BACK]]
 +
|Link2=[[dn-css-4| NEXT ->]]
 +
}}

Revision as of 23:34, 25 February 2021

Text box

A text box with an border. Here I would like to propose my version of Template:ContentBox. My goal is to simplify the code, make it more readable. lets start with:

The original

<includeonly>
<div style="
position:relative; left:4px; right: 4px; top:2px;
border:1px solid #{{ColorAtys|group={{{palette}}}}};
height:25px;
background: #{{ColorAtys|type=bg|group={{{palette}}}}};
background: linear-gradient(to right, #{{ColorAtys|type=bg|group={{{palette}}}}}, #{{ColorAtys|type=light|group={{{palette}}}}});
border: thin solid #{{ColorAtys|type=bg|group={{{palette}}}}};
border-bottom: thin outset #{{ColorAtys|type=dark|group={{{palette}}}}};
color: #{{ColorAtys|type=fg|group={{{palette}}}}};
font-weight: bold;
font-size: 1.25em;
text-align: center;
">
<div style="position:absolute; left:5px; top:-5px;">[[File:{{{image}}}|38px|link=]]</div>
<div style="position:absolute; left:40px; top:2px; right:0px"><h2 {{#if:{{{id|}}} | id="{{{id}}}Head"| }} style="margin:0; border-bottom:0; font-size:120%; font-weight:bold; text-align:left; padding:.15em .4em;
text-shadow: #{{ColorAtys|type=light|group={{{palette}}}}} -0.1em -0.1em 0.2em, #{{ColorAtys|type=dark|group={{{palette}}}}} 0.1em 0.1em 0.2em;">{{{title}}}</h2></div></div>
|-
|<div {{#if:{{{id|}}}|id="{{{id}}}"|}} style="padding-left:10px; padding-bottom:5px; padding-top:0px;">
{{{content}}}
{{#if:{{{link|}}}|<div align="right">{{{link}}}</div>|}}
</div>
|-
</includeonly>

my approach

Before I propose anything... I will like to share my way of approaching such template. Here I will try to present all steps I took before I get to final result.

First step is to understand why was this template created. This one is easy, as template documentation explains it all: we want to have a box with colored ribbon with an icon, title and content. Template call is nicely done as well, and it is crystal clear. We will have to work with 6 parameters (this is more like pseudo code, a working and tested version of the code will be in dnContentBox-template):
|title=
|id=
|image=
|content=
|link=
|palette=

Lets try to read template code... Eheum... Lets don't. Lets dissect it, that can work:

<includeonly>
<div style="
position:relative; left:4px; right: 4px; top:2px;
border:1px solid #{{ColorAtys|group={{{palette}}}}};
height:25px;
background: #{{ColorAtys|type=bg|group={{{palette}}}}};
background: linear-gradient(to right, #{{ColorAtys|type=bg|group={{{palette}}}}}, #{{ColorAtys|type=light|group={{{palette}}}}});
border: thin solid #{{ColorAtys|type=bg|group={{{palette}}}}};
border-bottom: thin outset #{{ColorAtys|type=dark|group={{{palette}}}}};
color: #{{ColorAtys|type=fg|group={{{palette}}}}};
font-weight: bold;
font-size: 1.25em;
text-align: center;
">

Lets pull out stuff that looks suspicious:

border:1px solid #{{ColorAtys|group={{{palette}}}}};

Ok, we are setting color to border here... #{{ColorAtys|group={{{palette}}}}}... Altho idea is good, this looks a bit too complicated for me, plus putting # in front of a template, I am not sure that that's the best practice... as hash sign here is a integral part of the hex-color. Maintain colors is a discussion on it self... Lets just assume that Colors can be defined with two parameters: pallete and function. So same line in my code would look like:

border:1px solid {{:{{{Pallete}}}{{varColorsBorder}}}};
I would apply same logic to rest of that
and try to bring 'stuff' together, with this result:
position:relative; left:4px; right: 4px; top:2px; height:25px;
border:1px solid {{:{{{Pallete}}}{{varColorsBorder}}}};
background: {{:{{{Pallete}}}{{varColorsBackGround}}}};
background: linear-gradient(to right, {{:{{{Pallete}}}{{varColorsLight}}}}, {{:{{{Pallete}}}{{varColorsDark}}}});
border: thin solid {{:{{{Pallete}}}{{varColorsBorder}}}};
border-bottom: thin outset {{:{{{Pallete}}}{{varColorsDark}}}};
color: {{:{{{Pallete}}}{{varColorsTextColor}}}};
font-weight: bold;
font-size: 1.25em;
text-align: center;

and as it bothers me to look at it while reading rest of code:

<div style={{:dnContentBox/css|Pallete={{{Pallete}}}}}">
<div style="position:absolute; left:5px; top:-5px;">[[File:{{{image}}}|38px|link=]]</div>
<div style="position:absolute; left:40px; top:2px; right:0px"><h2 {{#if:{{{id|}}} | id="{{{id}}}Head"| }} style="margin:0; border-bottom:0; font-size:120%; font-weight:bold; text-align:left; padding:.15em .4em;
text-shadow: #{{ColorAtys|type=light|group={{{palette}}}}} -0.1em -0.1em 0.2em, #{{ColorAtys|type=dark|group={{{palette}}}}} 0.1em 0.1em 0.2em;">{{{title}}}</h2></div></div>
|-
|<div {{#if:{{{id|}}}|id="{{{id}}}"|}} style="padding-left:10px; padding-bottom:5px; padding-top:0px;">
{{{content}}}
{{#if:{{{link|}}}|<div align="right">{{{link}}}</div>|}}
</div>
|-
</includeonly>

Not gonna go into detail here.. but rest needs the same, imo:

<div style={{:dnContentBox/css|Pallete={{{Pallete}}}}}">
{{:dnContentBox/image|Image={{{Image}}}|Pallete={{{Pallete}}}}}
{{:dnContentBox/title|Title={{{Title}}}|Pallete={{{Pallete}}}}}
{{:dnContentBox/content|Content={{{Content}}}|Pallete={{{Pallete}}}}}
</div>

Ta Da!!! I can read that :-)


dn-text-box

Article

PROVIDE EXAMPLES

Navigation

PROVIDE EXAMPLES

Page box

PROVIDE EXAMPLES

Layouts

Main Page

This page should be attractive enough to invite people to read its content as informative as possible. 
  • Proposal A
PROVIDE EXAMPLES
  • Proposal B
PROVIDE EXAMPLES