proposal for kdevelop.org new website design

Sam S. smls75 at gmail.com
Sun May 9 17:33:09 UTC 2010


[Warning, long email ahead...]

Amilcar, this mail mainly concerns you (but of course Niko and others might
have opinions too) - anyways if you find some time, could you briefly take a
look at the following things, put your webmaster hat on and make some
decisions... :-)

(Deciding whether or not to include the "additional features" and "content
changes & restructuring" stuff can be delayed until after the new style is
finished (and has gone live). The clean-up stuff, however, should be decided
now, as this strongly affects the ongoing CSS implementation.)

A. *Clean-up*

Until now, as far as I can see, the implementation of the CSS for the new
style (mainly by Niko) was done in such a ways as to keep the current HTML
of the website intact wherever possible, at most putting in additional divs
or class names.
While we could certainly continue on that road and get the CSS finished with
none or very few further HTML changes, I'm finding more and more reasons for
possibly taking another approach. But of course it's your decision...

The following constitute potential HTML changes, which:
a) are not technically required for implementing the new CSS design
b) however would make the process easier and/or give a better (less
bugs/corner-cases) and cleaner (easier-to-maintain) result
c) would break the old CSS style though

(In case you don't mind considerable changes being made to the HTML markup
wherever one of us (Niko, you, me) sees fit, and you don't care about
keeping the HTML compatible with the old CSS style, just say so, then you
don't need to read the rest of this section...)

In detail, I propose to:

   1. *Get rid of "moduleentry" everywhere*

   In the old style, *every* little piece of the website was a box, end they
   all looked the same, so having <div class="moduleentry"></div> wrappers all
   over the place which could all be styled through unified CSS markup made
   sense.

   However, in the new style, the actual page content is not made up of
   boxes anymore: Simple semantically correct markup of the form "<h1>Page
   title</h1> <p>...</p> <h2>Section 1</h2> <p>...</p>" should suffice.
   There are only three kinds of boxes in the new design, and they all need
   *different* CSS markup: 1) the boxes for the navigation menu (left
   column), 2) those for the quick-access links (right column), and 3) those
   for highlighting important pieces of content such as the "What is KDevelop"
   box on the front page (currently this is not planned to be used anywhere
   other than on the front page).

   I propose the following resolutions regarding all those
   div.moduleentry's:

   - *Navigation Menu boxes (left column):*  rename to div.navbox
   - *Quick Access boxes (right column):  *rename to div.quickbox
   - *Important Content boxes (on front page):*  rename to div.importantbox
   - *all other occurences:*  simply remove without replacement - no need
      for those anymore!

   The main advantages will be:
   - *more semantically correct HTML* (no superfluous invisible div's that
      are not used at all; also, the "div.header > h3" of each
modulebox would be
      replaced by whatever actually makes sense in each specific context, e.g.
      <h2></h2> if it's a normal page section.)
      - *more readable HTML and CSS* (because of more meaningful class
      names!)
      - *more flexibility* (e.g. applying the quick-access box style to
      "div.quickbox" directly instead of "#quickoverview div.moduleentry" would
      make it easier to add other quick-access boxes in the future
which are *not*
      part of a dedicated "#quickoverview" column, like for example in my "News
      Page" mockup which shows a quick-access box with text floated
around it. In
      general, I think it's good practice to make CSS styling of any element as
      agnostic about the surrounding page structure as possible, and choose
      meaningful class names accordingly.)
      - less headaches for Niko and me while implementing the CSS style :-)

   2. *Unified, sensibly-named layout columns on all pages*

   On the front page, the actual page content (i.e. the middle column of the
   layout, which is surrounded by the header/footer/navigation bars and link
   boxes) is currently wrapped inside <div id="news"></div>, even though the
   actual News section forms only a small part of it.
   It should be renamed to <div id="maincontent"></div>, like it is already
   called on all other pages (which don't have a right layout column).

   A truly unified handling of columns on all pages might be easiest to
   implement if point 4 ("fluid columns layout") is implemented, because then
   the CSS styling for the main (center) column might not even care whether
   there is a right column or not.

   3. *Unified markup for lists of aggregated news/blog items*

   The "KDevelop News" and "Developer blog posts" lists show information
   that has the same logical structure (except for an additional "source" field
   in the latter), and they are supposed to show this info with exactly the
   same visual style.
   Yet, they currently have very a different HTML structure ("p.newsDate,
   h2, p" opposed to "div [h4 [span.date], div.entry-content]") and hence two
   separate sections in the CSS file.
   This should be replaced by unified HTML markup combined with CSS that's
   agnostic towards the "type" of the news as well as the surrounding page
   structure. The last part also means that heading elements (h2, h4, etc.)
   should not be used here, as the whole thing can appear at different levels
   of the logical page structure (compare news lists on front page and news
   page) without it's style being affected.

   4. *(Possibly) switch from the current absolutely-positioned
columnslayout to a fluid
   columns layout...*

   ...using either floated or display:inline'd div's.
   This *might* require HTML changes such as switching the order in which
   the individual columns are defined in the HTML markup.
   It could help with making the layout more rubust regarding different
   page-content-dimensions and screen resolutions, however I'm not sure yet
   whether it will actually be necessary.


B. *Additional features*

   1. *Breadcrumbs bar*

   (as seen in the mockups)
   Amilcar, you're the expert on this (you created the Sitemap page...) -
   would breadcrumbs be difficult to implement?
   Will it be possible to have "virtual pages"/categories in the breadcrumb
   hirachy, e.g. show "News >> News of 2007" even though there isn't actually a
   "News" page, only "News of X" pages (clicking on it in the breadcrumb bar
   would either bring you to the most recent (current year) news page, or not
   be clickable at all).

   2. *Quick-access boxes for horizontal links within page classes*

   Quick-access boxes are intended to also show up in various places other
   than the "Downloads", "Support" and "How to contribute" boxes on the front
   page (of course, those specific ones should only be shown on the front
   page).

   Specifically, I think pages that are part of a "class" of similar pages
   differentiated by a linear parameter (such as calendar year or KDevelop
   version) should show a right-aligned, floated quick-access box with links to
   the other pages of the same "class".
   As an example for what I'm talking about, see my 'News page' mockup (link
   at http://sam.megabyet.net/kdevelop-website-design/) which shows the
   'News of 2007' page with a quick-access box for the 'News of year X' class.
   As another example, the 'KDevelop 4.0 Screenshots' page should show a
   corresponding quick-access box for the 'KDevelop X.X Screenshots' class, and
   so on (this would effectively replace the "Other versions" section at the
   bottom of the page).


C. *Content changes & restructuring*

   1. *Cleaning up the top links*

   --> only Download, Features, Screenshots
   (Niko has already done this on the test site.)

   2. *Cleaning up and restructuring of the navigation menu links (left
   column)** for KDev4.x*

   Back when my proposal for the new website design was first discussed, I
   think it was agreed upon to remove the "Links" section from the navigation
   menu, as it doesn't link to any useful content anymore.

   In addition to that, I've made various other changes to that menu in my
   mockups compared to the current state of the website. These changes can be
   seen as suggestions for a cleaner and more easily-accessible navigation
   menu. What do you think?

   3. *Rephrasing the "What is KDevelop and KDevPlatform" text on the front
   page*

   (my suggestion can be seen in the mockups.)

   4. *A dedicated 'About' page*

   This would be the page that you get to when clicking the "About" link in
   the left navigation menu as I propose it.
   Also, the "more info..." links in the "What is KDevelop and KDevPlatform"
   and "KDev3 vs KDev4" boxes on the front page would link to this page.
   It would be a simple static page, not one that needs to be duplicated for
   each release like e.g. the screenshots page.
   It's purpose would be to:
   - *explain what KDevelop is, what it is not, what it's
      purpose/goal/vision is, etc.* (more verbose than the text on the front
      page, but without going into technical details - for that, it
should refer
      to the 'Features' page)
      - *explain what KDevPlatform is*
      - *explain the difference between KDev3 and KDev4* (in general terms,
      more verbose than on the front page, but not comparing all the individual
      features - for that, it should link to the wiki page with the comparison
      table.)
      - *explain who is behind the development of KDevelop* (explain its
      open-source nature, it's relation to the KDE project, etc.), and
link to the
      'Authors' page of the current release.
      - *link to the FAQ page* (as that is not linked to in the navigation
      menu)

   5. *A dedicated 'Features' page*

   This would ideally present KDevelop's features with detailed text and
   close-up pictures in a professional manner. I have some cool ideas for that,
   but they'll have to wait for now as I'm focusing on the CSS re-design
   currently :-)...

   For now, even an empty page with just one sentence that states that this
   page has not been finished yet and in the meantime links to Andreas's
   release anouncement would imo be much better than linking to some section of
   some wiki page directly from the "Features" top menu link. That's just
   unprofessional imo (for such a "core" page of the website), and also it
   means there's no easy way to reach the KDevelop 3 features page then (since
   wiki pages don't integrate with the "See also: This page for KDevelop
   version x.x" paradigm).

   6. *New pages for everything else that doesn't have a KDev4-page yet but
   appears in the main menu or quick-access boxes in my mockup...*

   ...especially "User Manual", "Tutorials", "Tips & Tricks", and the
   various "How to contribute" links.
   It wouldn't matter if these were only empty wiki pages initially with
   only one or two sentences, and only slowly gain content after time. Still
   better than nothing, or than linking to outdated stuff by default.

Phew!
I didn't actually intent to write this much when I started the
email<http://www.dict.cc/?s=%5Bcoll.%5D>
...

Anyhow, have a nice week y'all!

Sam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20100509/f852f46a/attachment.html>


More information about the KDevelop-devel mailing list