[Epiphany] Fonts configuration proposal



This is far from a complete proposal, but I want to hear people
opinions before doing more work on it.

According to w3c spec there are 3 types of style sheets.
See http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#cascade.

1 Author stylesheets, defined by the document.
2 User Agent stylesheets, defined by the browser
3 User stylesheet, defined by the user.

They are applied in 1, 3, 2 order (which means 1 have precedence
over the others) normally.

For 1, documents can provide more than one style sheet. It could be good
to let the user choose between them. Unfortunately I dont think they
are widely used atm, so I'm not sure how much it's worth the interface
clutter.

For 2 we are using the default mozilla one. I think we should instead
get information from the system to customize it (as that w3c page seem
to imply). We should move the color informations we now set with prefs
there and we should use default GNOME fonts in it.
Application Font for elements where a variable width font is required,
Terminal Font for monospace (like PRE...).

For 3, in my opinion, we should just provide a simple interface to allow
users to costumize a few properties. I considered a theme like approach
but I think it's an overkill. Better to leave that part up to 2, as
there is already a theme configured desktop wide, it's just matter to
get information from it (we could even make a css part of the
metatheme).

So what are the things that make sense to configure, given the
costumization we already got with previous points using just system wide
values ?
In my opinion the use task that make sense are:
- Costumize the font family/size for variable width
- Costumize the font family/size for fixed width

Both of these would override system wide values, so we would need a
checkbox to enable them. This is actually quite similar to what other
GNOME apps does (gedit and gnome-terminal that I remember), which is
ever good.

Additionaly we have to allow to disregard author style sheet. A simple
checkbox should do it. I'm not sure if it's necessary to allow to
disregard only author specified fonts.

Now what happen to font families configuration. In this context I
believe it's no more necessary:

- It would be used only in a small number of cases, which make
costumization not worth the effort and confusing. If the page does
provide fonts they are used. If it doesnt the user agent style sheet
fonts and when enabled the user style sheet would be used. The only case
where families are used is when the web developer provide a set of fonts
not available on the system and leave as last one the family name.
- Fontconfig provide system font families configuration that ensure they
work well i18n wise.
- The defaults are supposed to work well for all encodings. If you
decide to change font you probably know it will work well in your
favourite languages. And even if you get it wrong, the page will be
rendered correctly (using other fonts), assuming you have them
installed. Also if this is not a problem desktop wide, I dont see why it
should be for epiphany.

Finally I believe this would be a good improvement over what we have now
because:

- Current is too complex. Most users will just want to change font
size/family without losing time to understand so many options.
- It removes hardly solvable ui problems with current configuration.
Just to cite some: it's not clear the relation between Encoding and
other fields, we have technical terms hardly explainable in docs (serif,
sans serif), I dont think it's obvious that the proportional size apply
to serif and sans serif fonts.
- We provide a more consistent look with the other parts of the desktop
by default.
- We provide a more clear mapping between user expectations and
interface. In user experience there are not font families but (at best)
fonts with a variable width and fonts with a fixed one.
- We can use the default gnome font picker

Now I could be very well missing something, and that's why I'm posting
it here :)

Marco





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]