support (shift+)meta (alt) key combinations
[sheet.git] / base.css
index 40d0cb1f87be61bbc52f4cff1f75219ce026cea8..989f8be48f3afe0aafb65a4048826ffd1c2d33f5 100644 (file)
--- a/base.css
+++ b/base.css
@@ -1,3 +1,11 @@
+/* media features */
+
+@import url(terse.css) all and (max-width: 80em);
+
+@import url(mono.css) all and (monochrome);
+
+/* general */
+
 body {
        background: #FFF;
        color: #000;
@@ -11,6 +19,9 @@ a:active, a:hover {
        color: #00F;
        text-decoration: none;
 }
+
+/* common sections */
+
 h1, h2 {
        text-align: center;
        font-size: 200%;
@@ -18,7 +29,34 @@ h1, h2 {
 }
 h2 {
        font-size: 125%;
-       margin-bottom: -4ex;
+}
+
+hr {
+       clear: both;
+       visibility: hidden;
+       height: 2ex;
+       margin: 0;
+}
+
+.diinfo h2 {
+       margin: 0 1ex;
+       clear: both;
+       font-size: 110%;
+       text-align: left;
+}
+
+p {
+       text-align: center;
+       margin: 1ex 0 1em;
+}
+p.aside {
+       font-size: 80%;
+}
+p.footer {
+       margin: 1em 0 0;
+}
+hr ~ .footer {
+       margin: 0;
 }
 
 /* "keyboard" (list of keys) */
@@ -28,6 +66,7 @@ ul {
        padding: 0;
        list-style: none;
 }
+ul#rows {margin-top: -5ex} /* top (esc) row fits besides header */
 li.row1 {margin-left: 7em} /* row offsets relative to ~6em key width */
 li.row2 {margin-left: 8em}
 li.row3 {margin-left: 10em} /* should actually align to next key on row0 */
@@ -68,7 +107,7 @@ ul.keys li b {
        line-height: 2.5ex; /* inherits otherwise */
        padding-left: 2px;
 }
-ul.keys.omni li {
+ul.keys.omni li { /* omni-present esc */
        width: 8.5em;
 }
 
@@ -80,31 +119,213 @@ ul.keys li b[title] { /* mnemonic hover */
 ul.keys li[onclick]:hover { /* link */
        cursor: pointer;
 }
+ul.keys.meta li b,
 ul.keys.ctrl li b,
 ul.keys.lead li b { /* char with ctrl or leading key */
        font-size: 100%; /* space is too limited for 2+ double-sized chars */
        line-height: 5ex; /* keep double height though */
 }
+ul.keys.meta li b small,
 ul.keys.ctrl li b small { /* meta key indicator */
        font-size: 70%;
        font-weight: normal; /* nice and subtle */
 }
 
+/* character table */
+
+table.glyphs {
+       border-collapse: collapse;
+}
+.glyphs thead th, .glyphs td {
+       text-align: center;
+       width: 1.6em; /* regular interval */
+}
+.glyphs th, .glyphs td {
+       border-color: #778;
+       border: 1px solid #888;
+       background: #DDD;
+}
+.glyphs tbody td {
+       font-size: 112%;
+}
+
+/* table headers */
+
+.glyphs th,
+.glyphs thead td {
+       border: 0;
+       background: transparent !important;
+}
+.glyphs thead td {
+       width: auto; /* no glyph cells in header */
+}
+.glyphs th {
+       padding: 0 0.2em;
+}
+.diinfo .glyphs th {
+       font-size: 50%; /* mostly insignificant here */
+       font-weight: normal;
+}
+.diinfo .glyphs tbody th {
+       text-align: right; /* variable width so keep near cells */
+       padding: 0 0.5em;
+}
+
+/* digraphs map */
+
+table.glyphs.dimap {
+       table-layout: fixed; /* prevent resizing, notably in msie6 */
+}
+.glyphs.dimap thead th, .glyphs.dimap td {
+       /* below-maximum size (but still average enough to be regular) so we can fit more */
+       width: 1.2em; /* msie only looks at the first row */
+       min-width: 1em; /* prevents gecko from restricting to page width */
+}
+.glyphs.dimap th {
+       text-align: center; /* row headers are also glyph-sized */
+}
+
+.glyphs.dimap tbody, .glyphs.dimap colgroup {
+       border: 2px double #888; /* major character group grid */
+}
+.glyphs.dimap tbody {
+       border-width: 2px 0; /* horizontal group dividers */
+}
+.glyphs.dimap colgroup {
+       border-width: 0 2px; /* vertical divides */
+}
+
+/* digraph selection */
+
+.diinfo {
+       -moz-column-width: 24em;
+}
+.diinfo > div {
+       overflow: hidden;
+}
+
+.diinfo table.glyphs {
+       margin: 1ex 1ex 2ex;
+       float: left;
+}
+
+/* glyph cell overlay (digraph labels) */
+
+.glyphs.dilabel td {
+       padding: 0;
+       padding-bottom: 1.1ex; /* reserve space for label */
+       vertical-align: bottom;
+}
+.glyphs small {
+       font-size: 50%;
+       display: block;
+       margin-top: 0.2ex;
+       margin-bottom: -2.2ex; /* take cell padding */
+}
+.glyphs small.digraph {
+       background: #000;
+       color: #FFF;
+       opacity: 0.3;
+}
+.glyphs small.value {
+       background: #600;
+       color: #FFF;
+       opacity: 0.3;
+}
+
+/* character properties */
+
+td.X  {background: #FFF} /* unidentified */
+td.Xr {background: #EEE} /* reverse */
+td.Xa {color: #0A0} /* ascii */
+td.Xl {color: #070} /* latin1 */
+  .Xz {color: #D00} /* proposed */
+
+td.Lm, td.Mc, td.Me, td.Zl, td.Zp, td.Cs {background: #F00} /* unstyled */
+
+/* letter scripts */
+td.Greek    {background: #FFE0CF}
+td.Cyrillic {background: #FFDDA8}
+td.Latin    {background: #FFB}
+td.Hebrew   {background: #FFD}
+td.Arabic   {background: #EFE}
+td.Hangul   {background: #DEA}
+td.Katakana {background: #DFA}
+td.Hiragana {background: #DFC}
+td.Bopomofo {background: #BFC}
+
+/* other categories */
+td.Nd, td.Nl, td.No        {background: #FBB} /* number */
+td.Sc                      {background: #FCD} /* currency */
+td.Sm                      {background: #ECE} /* math */
+td.So                      {background: #DCF} /* symbol */
+td.Cf, td.Pd, td.Po        {background: #CDF} /* punctuation */
+td.Ps, td.Pe, td.Pi, td.Pf {background: #BEF} /* quote */
+td.Lm, td.Sk               {background: #CEE} /* spacing modifier */
+td.Mn                      {background: #ACC} /* modifier */
+td.Cc         {color: #666; background: #BBB} /* control */
+td.Zs                      {background: #ACB} /* space */
+td.Zs span                 {background: #EEE}
+td.Co                      {background: #A99} /* private */
+
+/* implementation-based alternatives */
+td.di-b       {background: #FDD} /* bmp */
+td.di-d       {background: #FFD} /* rfc-1345 digraph */
+td.di-prop    {background: #FED} /* proposed digraph */
+td.di-a       {background: #EFD} /* ascii */
+td.di-rare    {background: #EEE} /* disfavoured */
+td.di-invalid {background: #BBB} /* impossible */
+
+/* hover effects */
+td.di-d,
+td.X:hover {cursor: help}
+td.Greek:hover                                     {background: #FA9}
+td.Cyrillic:hover                                  {background: #FB7}
+td.Latin:hover                                     {background: #FF6}
+td.Hebrew:hover                                    {background: #FFA}
+td.Arabic:hover                                    {background: #CFD}
+td.Hangul:hover                                    {background: #CE6}
+td.Katakana:hover                                  {background: #BF7}
+td.Hiragana:hover                                  {background: #AF8}
+td.Bopomofo:hover                                  {background: #8FA}
+td.Nd:hover, td.Nl:hover, td.No:hover              {background: #F88} /* number */
+td.Sc:hover                                        {background: #F8C} /* currency */
+td.Sm:hover                                        {background: #F8F} /* math */
+td.So:hover                                        {background: #A8F} /* symbol */
+td.Cf:hover, td.Pd:hover, td.Po:hover              {background: #8AF} /* punctuation */
+td.Ps:hover, td.Pe:hover, td.Pi:hover, td.Pf:hover {background: #8DF} /* quote */
+td.Lm:hover, td.Sk:hover                           {background: #BFF} /* spacing modifier */
+td.Mn:hover                                        {background: #CDE} /* modifier */
+td.Zs:hover                                        {background: #CED} /* space */
+td.Cc:hover                                        {background: #DDD} /* control */
+td.Co:hover                                        {background: #A77} /* private */
+td.Xa:hover {outline: 1px solid #0F0} /* ascii */
+td.Xl:hover {outline: 1px solid #0C0} /* latin1 */
+td.Xz:hover {outline: 1px solid #F00} /* proposed */
+td.di-rare:hover                                   {background: #BBB}
+td.di-b:hover                                      {background: #F88}
+td.di-d:hover                                      {background: #FF8}
+td.di-prop:hover                                   {background: #FC8}
+td.di-a:hover                                      {background: #CF8}
+
 /* key type colorization */
 
 .pm {background: #BFB}   /* motion */
 .po {background: #DFA}   /* window */
 .co {background: #FFA}   /* command */
 .ci {background: #BFE}   /* info */
+.cp {background: #FDA}   /* TODO */
 .mi {background: #FCA}   /* insert mode */
 .mo {background: #FCC}   /* mode */
 .mv {background: #ECE}   /* visual mode */
 .me {background: #CCF}   /* key mode */
 
+.ci[onclick]:hover {background: #5ED}
 .mi[onclick]:hover {background: #F97}
 .mo[onclick]:hover {background: #F88}
 .me[onclick]:hover {background: #99F}
 .mv[onclick]:hover {background: #D9D}
+.co[onclick]:hover {background: #EE4}
 
 .no {
        background: #EEE;
@@ -125,20 +346,6 @@ ul.keys li.vim7 {
        -moz-border-radius: 0;
 }
 
-/* footer */
-
-hr {
-       clear: both;
-       visibility: hidden;
-       height: 2ex;
-       margin: 0;
-}
-
-p.footer {
-       margin: 0;
-       text-align: center;
-}
-
 /* l/r help columns */
 
 .help {
@@ -148,13 +355,14 @@ p.footer {
 .help > * {
        display: table-cell;
        width: 20%;
+       vertical-align: top;
 }
 
 .left dl.legend {
-       margin-left: 6.2em;
+       margin-left: 6.4em; /* a bit over 6.2em to allow for borders+padding (border-sizing would work too) */
 }
 .left dl.legend dt {
-       margin-left: -6.2em; /* msie<=6 multiply this by two for some reason */
+       margin-left: -6.4em; /* msie<=6 multiply this by two for some reason */
        float: left;
        clear: left;
 }
@@ -162,10 +370,10 @@ p.footer {
        float: left; /* align next to dt (except msie<=7 does just the opposite) */
 }
 .right dl.legend {
-       margin-right: 6.2em;
+       margin-right: 6.4em;
 }
 .right dl.legend dt {
-       margin-right: -6.2em;
+       margin-right: -6.4em;
        float: right;
        clear: right;
 }
@@ -199,11 +407,24 @@ ul.legend-set li {
        margin: 6px 0; /* similar to dl legends */
 }
 
+.legend {
+       margin-top: 1em;
+}
+.legend table {
+       width: 100%;
+}
+.legend td {
+       padding: 0 0.2em;
+}
+
 /* printing hints */
 
-@page {size: landscape}
+@page {
+       size: landscape;
+       margin: 0;
+}
 
 @media print {
-       ul.legend-set {display: none}
+       ul.legend-set {display: none} /* current options only relevant on dynamic media */
 }