-- Now setting background-size & background-position properties on the
keycap foregrounds (which are the elements that have gradients applied).
-- Now, instead of each section getting its own gradient, they each get
the *same* gradient... so when they are laid on top of each other, the
gradients match.
-- This is just about perfect for DCS (cylindrical).
-- The effect is less convincing for DSA/SA caps; ideally we'd be able
to "blend" the two gradients together somehow, but CSS doesn't support
non-normal blend-modes, and I don't want to get into <canvas> rendering.
-- The palette swatch will have a glyph to indicate it's the current
foreground/background color.
-- We print the color name beside the foreground/background color editor
fields.
1. Instead of using the specified color for the top of the cap, and then
darkening the side, I use the specified color for the sides of the cap,
and then lighten the top.
-- All swatches were sampled from the smooth part of the color chips...
and the smooth is usually present on the *side* of the caps, not the
top.
-- The top of the caps usually has a matte-finish, which is visibly
lighter than the smooth finish.
2. Lighten the color in LAB-space, instead of in RGB-space.
-- results in better appearance for the light colors
3. Tweaked the gradients for DSA and DCS.
4. Updated existing sample layouts to use SP color values.
-- Deleted old/unloved sample layouts.
-- Darkened the Stealth-Black layout to match other changes.
5. Changed the default keycap color from #eeeeee --> #cccccc
-- Relative appearance is similar between old & new versions.
-- Somewhere along the line they got moved up... moved them back down.
-- Made the DSA version 1px smaller, so that it would fit in the
available space.
1. Added some info to the tooltips.
2. When you check the 'stepped' checkbox, we will modify the
width/width2 values so that they are different (if they are not
already).
-- At the very least, this gives a visual indication that the checkbox
actually *did* something.
Colors were sampled from actual plastic chips using an X-Rite
ColorMunki, and then converted to sRGB (D65) using the formulas on Bruce
Lindbloom's website.
-- Line spacing was too big on the keycaps (I think it was picking up
the spacing from Bootstrap); fixed in CSS
-- DSA keys were showing the inner-border in the incorrect spot (wasn't
really noticable on the dark colors of Retro DSA); fixed in CSS
-- Replaced custom min/max functions with the correct Math.min, Math.max
functions.
-- The valiation for x/y offsets was too aggressive; for some
oddly-shaped keys, it didn't let you set values that were big enough.
-- Swapped the order of the keylabel tops for the primary & secondary
rectangles. This ensures that the label is in the same place whether
stepped or not, at the expense of maybe affecting old layouts.
-- The first section is for true "presets"... standard layouts without
much customization.
-- The second section is for "samples"... these are layouts with more
extensive changes.
We've always allowed HTML in the key text, but HRs didn't render... now
I've added styles to render the HR as a string of horizontal-line
characters (which ensures they pick up the correct text-color).
-- Primary size applies to the first cap; secondary size applies to all
other caps
-- If primary is changed, we automatically change the secondary to keep
it in sync; this is *usually* what we want.
-- Some special serialization rules to ensure we don't write out more
data than needed; same rules apply there, if primary is changed,
secondary changes.
-- Previously used "fixed" position; this is fixed to the window, so
isn't affected by scrolling, which is why it didn't work.
-- Now using "absolute" position; this is relative to the parent
element, so it *is* affected by scrolling.
-- Also had to reparent the selection rectangle so that the coordinates
were correct.
-- Used to be 1-5; is now 1-9.
-- DSA used to make size=5 *really* big. Now that there are more sizes,
DSA no longer has any overrides (so it's back to being a linear
scale)... old size 5 ==> new size 8.
The new parser is generated by Jison (a JS parser generator, like
Bison).
-- Modified one of the Jison samples to support our "leniency"
requirement.
-- Added a makefile to build & minify the parser.
-- The new parser also generates better error messages... but they
expect to be displayed in a console. So I changed the error alert DIV
to use a fixed-width font.