[Laszlo-dev] dguide: Color chapter

P T Withington ptw at pobox.com
Wed Nov 19 05:52:07 PST 2008


Yes, let's stop using these non-standard names.  Let's not advertise  
them.  If you want a 'custom' color, you should specify it with hex or  
rgb.  I am told that is what our designers do.

I plan to remove colors.lzx, it is a pile of crap.  If you look at it,  
you will see that it has only a few names, which are names from the  
X11 standard, but the names are assigned to colors that are _not_ what  
the X11 standard uses!  I really think this was just pulled from thin  
air as a demo and does not deserve to be enshrined in our doc or system.

If we want to use named colors, we out to use the standard names and  
values, not make up something random.

Since I plan to fix lpp-7365 by deleting colors.lzx, you would do me a  
favor if you deleted any examples based on it.


On 2008-11-19, at 08:00EST, Lou Iorio wrote:

> Since this example is about using nonstandard colors, using the  
> standard colors
> "yellow" and "aqua" does not make much sense.
>
> Should we just drop the entire section "Non-Standard Colors", or  
> confine it to mentioning hex
> values only? From my (perhaps naive) view, hex is the best way to  
> specify color, standard or
> otherwise. "iceblue" looks blue to me, but nothing like ice.
>
> On Nov 18, 2008, at 3:43 PM, P T Withington wrote:
>
>> See my comment on the bug you just filed.
>>
>> Lets stop using the non-standard names from base/colors.lzx  
>> altogether.  They are bogus.  For this example, how about just  
>> using `yellow` and `aqua`.
>>
>> Sorry this is such a mess.
>>
>> On 2008-11-18, at 14:31EST, J Crowley wrote:
>>
>>> Hrmm, including base/colors.lzx doesn't get this to work in  
>>> DHTML.  I filed a bug on this, but Andre said (in http://www.openlaszlo.org/pipermail/laszlo-dev/2008-November/018145.html 
>>>  ) it could be fixed by including base/colors.lzx, but that  
>>> doesn't seem to work...  Any ideas?
>>>
>>> P T Withington wrote:
>>>> I appended our email as a comment.
>>>>
>>>> On 2008-11-18, at 12:33EST, Lou Iorio wrote:
>>>>
>>>>> I see there is a JIRA for this and Josh owns it.
>>>>>
>>>>> http://www.openlaszlo.org/jira/browse/LPP-7194
>>>>>
>>>>>
>>>>> On Nov 18, 2008, at 7:42 AM, Lou Iorio wrote:
>>>>>
>>>>>> So in this broken example in the dguide (I think Josh is  
>>>>>> working on it, but
>>>>>> I want to make sure I understand):
>>>>>>
>>>>>> <canvas debug="true">
>>>>>> <simplelayout axis="x" spacing="10"/>
>>>>>> <class name="box1" width="100" height="100" bgcolor="$ 
>>>>>> {global['gold4']}"/>
>>>>>> <class name="box2" width="100" height="100" bgcolor="$ 
>>>>>> {iceblue1}"/>
>>>>>> <box1 id="sun">
>>>>>>     <text text="Sun"/>
>>>>>> </box1>
>>>>>> <box2 id="mystic">
>>>>>>     <text fgcolor="0xFFFFFF" text="Mystic"/>
>>>>>> </box2>
>>>>>> </canvas>
>>>>>>
>>>>>> You need to change the class tags:
>>>>>>
>>>>>> <class name="box1" width="100" height="100" bgcolor="gold4"/>
>>>>>> <class name="box2" width="100" height="100" bgcolor="iceblue1"/>
>>>>>>
>>>>>> But this only works because the debugger is on, and that  
>>>>>> includes the extra colors.
>>>>>>
>>>>>> If you turn the debugger off, the example displays the wrong  
>>>>>> colors. You then need
>>>>>> to add this:
>>>>>>
>>>>>> <include href="base/colors.lzx"/>
>>>>>>
>>>>>> for the example to work.
>>>>>>
>>>>>> I don't see a JIRA for this. If I'm correct, I'll file a JIRA  
>>>>>> and fix the example and
>>>>>> the paragraph that introduces it.
>>>>>>
>>>>>>
>>>>>> On Nov 16, 2008, at 10:11 AM, P T Withington wrote:
>>>>>>
>>>>>>> Probably so.
>>>>>>>
>>>>>>> Amusingly, for your little example that we worked on, since it  
>>>>>>> includes a slider, you get all those colors.  I think if you  
>>>>>>> include _any_ component, you get all the extra colors, but if  
>>>>>>> you just try to use one of those extra colors on a plain view,  
>>>>>>> you will lose (unless you happen to be in debug mode, in which  
>>>>>>> case the debugger will have included them for you).  Messy.
>>>>>>>
>>>>>>> On 2008-11-16, at 07:05EST, Lou Iorio wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> On Nov 15, 2008, at 6:52 PM, P T Withington wrote:
>>>>>>>>
>>>>>>>>> If you load base/colors.lzx, it defines a whole bunch of  
>>>>>>>>> colors (adds them to lz.colors).  Once that is loaded, you  
>>>>>>>>> can, in fact, specify colors using those names.
>>>>>>>>
>>>>>>>> Ah, thanks, I didn't know that. Perhaps I should add that to  
>>>>>>>> the dguide?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> André has pointed out that when you turn debugging on in  
>>>>>>>>> swf8 or 9, the debugger gets loaded into your app, and it  
>>>>>>>>> happens to load these extra colors.  So, by accident, you  
>>>>>>>>> can use these colors in debug mode in swf8/9 (this is one of  
>>>>>>>>> the many problems with running the debugger in the app,  
>>>>>>>>> which is why I did not do it that way for dhtml, and why we  
>>>>>>>>> have the 'console remote debug' option for swf8/9.  If you  
>>>>>>>>> run the demo app in either dhtml or with the console  
>>>>>>>>> debugger, you will see only the standard CSS color names.
>>>>>>>>>
>>>>>>>>> The upshot is, if you want a demo that uses these extended  
>>>>>>>>> color names, you need to make your demo include the base/ 
>>>>>>>>> colors.lzx file.
>>>>>>>>>
>>>>>>>>> As to the names of the colors in that file, I believe they  
>>>>>>>>> are psuedo-standard, they might be from emacs, who knows.  I  
>>>>>>>>> did not create that file.
>>>>>>>>>
>>>>>>>>> On 2008-11-15, at 04:48EST, Lou Iorio wrote:
>>>>>>>>>
>>>>>>>>>> I concede to your technical prowess. But I still contend  
>>>>>>>>>> that what I was looking for here is the hex value.
>>>>>>>>>> I can't use "gray20" to specify a color in lzx, right? I'm  
>>>>>>>>>> a bit leery of "psuedo-standards".
>>>>>>>>>>
>>>>>>>>>> In addition, why is there no red20, green20 or blue20?
>>>>>>>>>>
>>>>>>>>>> I'm not suggesting that you change anything, and I'm not  
>>>>>>>>>> trying to be difficult, I'm just curious.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Nov 14, 2008, at 7:33 PM, P T Withington wrote:
>>>>>>>>>>
>>>>>>>>>>> Uh, because 20% gray has a technical meaning:  
>>>>>>>>>>> rgb(256*(1-20/100),256*(1-20/100),256*(1-20/100)) or  
>>>>>>>>>>> lab(1-20/100,0,0), or hsb(0,0,20), or #333333, etc., but  
>>>>>>>>>>> it much shorter to think/say when you want a gray with a  
>>>>>>>>>>> certain brightness.
>>>>>>>>>>>
>>>>>>>>>>> On 2008-11-14, at 18:06EST, Lou Iorio wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Sure, but what do I care what someone chose to define as  
>>>>>>>>>>>> 20% gray? What does that even mean?
>>>>>>>>>>>> 20% gray, and 80% what else? Any color where the r, g,  
>>>>>>>>>>>> and b values are the same is gray. Why pick
>>>>>>>>>>>> an integer percent and name it?
>>>>>>>>>>>>
>>>>>>>>>>>> As I said, I'm old; I still think in hex. (And, I still  
>>>>>>>>>>>> call it 'grey'.)
>>>>>>>>>>>>
>>>>>>>>>>>> On Nov 14, 2008, at 6:49 PM, P T Withington wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Well, as I said in my TODO, there needs to be a way, for  
>>>>>>>>>>>>> a type like color, for you to say what your preferred  
>>>>>>>>>>>>> presentation is.  Like maybe you should be allowed to  
>>>>>>>>>>>>> say something like 'color(rgb)' or 'color(#)' or  
>>>>>>>>>>>>> 'color(token,#)' or something...  We could get really  
>>>>>>>>>>>>> carried away!
>>>>>>>>>>>>>
>>>>>>>>>>>>> I'm pretty sure gray20 is '20% gray' and a psuedo- 
>>>>>>>>>>>>> standard color name.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 2008-11-14, at 17:38EST, Lou Iorio wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I also noticed several "gray" colors showing up. Cute,  
>>>>>>>>>>>>>> but I'm not sure I like it.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> gray 20, for example, seems completely arbitrary. For  
>>>>>>>>>>>>>> me, I really want to see
>>>>>>>>>>>>>> the hex values. But then, I'm old.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Nov 14, 2008, at 6:31 PM, P T Withington wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 'data' is historical, because that was the original  
>>>>>>>>>>>>>>> application for setting/getting string versions of a  
>>>>>>>>>>>>>>> value, but now we see there are more general reasons  
>>>>>>>>>>>>>>> to do that.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Isn't it cute how 0 becomes 'black' and 0xffffff  
>>>>>>>>>>>>>>> becomes 'white'?  If you are very careful, you can set  
>>>>>>>>>>>>>>> the slider to some other named colors...
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Gee, it would be fun to have a 'digital' slider that  
>>>>>>>>>>>>>>> only let you pick named colors.  Hm...
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 2008-11-14, at 17:10EST, Lou Iorio wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I like it mucho. The example works just as I intended.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> From a purely subjective point of view, I like  
>>>>>>>>>>>>>>>> 'present' and 'accept'.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The "Data" part seems extraneous.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Lou
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Nov 14, 2008, at 5:43 PM, P T Withington wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> My fixes are in.  Update, rebuild and try this and  
>>>>>>>>>>>>>>>>> see if you like it:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> <canvas>
>>>>>>>>>>>>>>>>> <simplelayout spacing="5"/>
>>>>>>>>>>>>>>>>> <view id="swatch" width="300" height="100" bgcolor="$ 
>>>>>>>>>>>>>>>>> {color.value}" />
>>>>>>>>>>>>>>>>> <view id="sliders">
>>>>>>>>>>>>>>>>> <simplelayout />
>>>>>>>>>>>>>>>>> <slider id="color" width="300" value="0"  
>>>>>>>>>>>>>>>>> minvalue="0" maxvalue="0xffffff" type="color" />
>>>>>>>>>>>>>>>>> <text text="${color.updateData()}" />
>>>>>>>>>>>>>>>>> </view>
>>>>>>>>>>>>>>>>> </canvas>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> `updateData` is probably not the most mnemonic name  
>>>>>>>>>>>>>>>>> for how to get a string representation of the  
>>>>>>>>>>>>>>>>> slider's value according to the type (in this case  
>>>>>>>>>>>>>>>>> 'color').  The inverse is called `applyData`, it  
>>>>>>>>>>>>>>>>> takes a string representation and tries to parse it  
>>>>>>>>>>>>>>>>> according to the type. `presentValueAsString` /  
>>>>>>>>>>>>>>>>> `acceptValueFromString` seem too ponderous.  Perhaps  
>>>>>>>>>>>>>>>>> simply `present` and `accept`?  I'd appreciate your  
>>>>>>>>>>>>>>>>> input.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On 2008-11-14, at 09:42EST, Lou Iorio wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Nov 13, 2008, at 1:17 PM, P T Withington wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Basically, using '0x000000' in CSS was a kludge,  
>>>>>>>>>>>>>>>>>>> non-standard, and probably should have been  
>>>>>>>>>>>>>>>>>>> documented as such.  It will cause a deprecation  
>>>>>>>>>>>>>>>>>>> warning.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Any of the other 3 methods are standard,  
>>>>>>>>>>>>>>>>>>> acceptable, and work.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> It would be fine with me if we just said that you  
>>>>>>>>>>>>>>>>>>> specified colors the same as the CSS standard.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> You can specify your color as a numeric value  
>>>>>>>>>>>>>>>>>>> also, the result of a computation, it doesn't need  
>>>>>>>>>>>>>>>>>>> to be expressed as a hex constant.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I'll add this to the chapter. I'd like to include a  
>>>>>>>>>>>>>>>>>> simple example:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>>>>>>>>>>>> <canvas>
>>>>>>>>>>>>>>>>>> <simplelayout spacing="5"/>
>>>>>>>>>>>>>>>>>> <view id="swatch" width="300" height="100"  
>>>>>>>>>>>>>>>>>> bgcolor="${color.value}" />
>>>>>>>>>>>>>>>>>> <view id="sliders">
>>>>>>>>>>>>>>>>>> <simplelayout />
>>>>>>>>>>>>>>>>>> <slider id="color" width="300" value="0"  
>>>>>>>>>>>>>>>>>> minvalue="0" maxvalue="16777215"/>
>>>>>>>>>>>>>>>>>> <text text="${color.value}" />
>>>>>>>>>>>>>>>>>> </view>
>>>>>>>>>>>>>>>>>> </canvas>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Is this worth including? My intent for the last  
>>>>>>>>>>>>>>>>>> <text> tag was to print the hex equivalent
>>>>>>>>>>>>>>>>>> of the slider value, but I can't figure out how to  
>>>>>>>>>>>>>>>>>> do that. I tried:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> <text text="${color.value.toString(16)}" />
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> but that doesn't work. Any ideas? Better example?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Lou
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On 2008-11-13, at 08:49EST, Lou Iorio wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> The text preceding Example 20.3. Coloring text  
>>>>>>>>>>>>>>>>>>>> using CSS seems to completely contradict what the  
>>>>>>>>>>>>>>>>>>>> example shows.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> The text says:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> OpenLaszlo enables coloring in four ways:  
>>>>>>>>>>>>>>>>>>>> 0x000000, #000000, rgb(0,0,0), and "black". For  
>>>>>>>>>>>>>>>>>>>> now, the best reason to prefer to use the hex  
>>>>>>>>>>>>>>>>>>>> style 0x000000 is that it always works, whether  
>>>>>>>>>>>>>>>>>>>> the color is assigned explicitly within the view,  
>>>>>>>>>>>>>>>>>>>> or by stylesheet. Color assignment by stylesheet  
>>>>>>>>>>>>>>>>>>>> fails by name, #hex, or rgb(). Explicit color  
>>>>>>>>>>>>>>>>>>>> assignment by rgb() fails unless the RGB values  
>>>>>>>>>>>>>>>>>>>> are all numerals -- that is, rgb(0,0,0) produces  
>>>>>>>>>>>>>>>>>>>> black, but rgb(FF,FF,FF), which should produce  
>>>>>>>>>>>>>>>>>>>> white, comes back at compile time as an invalid  
>>>>>>>>>>>>>>>>>>>> color.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Coloring of text with fgcolor="foo" is enabled in  
>>>>>>>>>>>>>>>>>>>> the same fashions, but with the same limitations.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> CSS spits out an error if you use 0x000000. How  
>>>>>>>>>>>>>>>>>>>> about:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> OpenLaszlo enables coloring in four ways:  
>>>>>>>>>>>>>>>>>>>> 0x000000, #000000, rgb(0,0,0), and "black". Using  
>>>>>>>>>>>>>>>>>>>> the format 0x000000 only works for explicit  
>>>>>>>>>>>>>>>>>>>> assignment; it does not work in CSS. Color  
>>>>>>>>>>>>>>>>>>>> assignment using rgb() must be specified with  
>>>>>>>>>>>>>>>>>>>> decimal values from 0 - 255.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Coloring of text with fgcolor="foo" is enabled in  
>>>>>>>>>>>>>>>>>>>> the same fashions, but with the same limitations.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> In addition, the title of the example, "Coloring  
>>>>>>>>>>>>>>>>>>>> text using CSS", might be better if changed to  
>>>>>>>>>>>>>>>>>>>> "Applying color explictly and with CSS" since it  
>>>>>>>>>>>>>>>>>>>> shows coloring views as well as text.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> If you agree (or have a better idea), I'll make  
>>>>>>>>>>>>>>>>>>>> the changes.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Lou
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>




More information about the Laszlo-dev mailing list