common: inline light stylesheet on page
[sheet.git] / base.css
index eb181287143f8c86dd6644f121e0efbf2a6753a9..3dc8bd9b8dc330a1659fba68a9e034652c34fdb8 100644 (file)
--- a/base.css
+++ b/base.css
@@ -28,6 +28,12 @@ h2, caption {
 caption {
        margin: 1ex;
 }
+caption aside {
+       position: absolute;
+       margin-left: 1ex;
+       font-weight: normal;
+       display: inline;
+}
 
 hr {
        clear: both;
@@ -79,6 +85,12 @@ p.footer {
        margin: 2ex auto;
        clear: both;
 }
+.error > * {
+       margin-bottom: 1ex;
+}
+.error > *:last-child {
+       margin-bottom: 0;
+}
 
 ul {
        margin: 0;
@@ -86,10 +98,18 @@ ul {
        list-style: none;
 }
 
-#source pre {
+pre {
        display: inline-block;
        text-align: left;
 }
+body > pre {
+       width: 78ch;
+       tab-size: 4;
+       -moz-tab-size: 4;
+       padding: 0 1em;
+       border-width: 0 1px;
+       border-style: solid;
+}
 
 h2 small {
        position: absolute; /* side note; do not influence alignment */
@@ -156,6 +176,7 @@ dl.legend dt,
        border: 1px solid #000;
        border-radius: 4px;
        -moz-border-radius: 4px;
+       text-transform-variation: text;
 }
 .keys td b {
        float: left;
@@ -208,6 +229,20 @@ thead th, td {
        text-align: center;
 }
 
+td.joind {
+       border-bottom: none;
+}
+td.joinu {
+       /* first cell determines border width for entire row */
+       border-top-color: transparent;
+}
+td.joinr {
+       border-right: none;
+}
+td.joinl {
+       border-left: none;
+}
+
 /* character table */
 
 .glyphs thead th, .glyphs td {
@@ -220,18 +255,22 @@ thead th, td {
        font-size: 200%;
 }
 .glyphs .glyphs {
-       margin: 0.5ex 0;
+       margin: 0.5ex 0; /* nested in legend */
 }
 .glyphs .glyphs td {
        font-size: 100%;
 }
 
+.cover td {
+       min-width: 2.5ex; /* square cells */
+}
+
 /* table headers */
 
 th,
 tfoot td,
 thead td {
-       border: 0;
+       border-width: 0;
        background: transparent;
 }
 .glyphs thead td {
@@ -258,13 +297,21 @@ tfoot .cat th {
 
 /* colour map */
 
-table.color th {
+table.color td {
        border: 1px solid #555;
        font-weight: normal;
-       padding: 0 1ex;
+       padding: 0 8px;
 }
-table.color th ~ td {
-       font-family: monospace;
+table.color td samp {
+       margin: 0 -8px 0 8px;
+       font-family: inherit;
+       float: right;
+}
+table.color td samp ~ samp {
+}
+table.color td samp small {
+       font: 100% monospace;
+       padding: 0 .5ex;
 }
 
 /* digraphs map */
@@ -315,18 +362,18 @@ table.dimap {
        padding-bottom: 1.1ex; /* reserve space for label */
        vertical-align: bottom;
 }
-.glyphs small {
+.glyphs.dilabel small {
        font-size: 50%;
        display: block;
        margin-top: 0.2ex;
        margin-bottom: -2.2ex; /* take cell padding */
 }
-.glyphs small.digraph {
+.glyphs.dilabel small.digraph {
        background: #000;
        color: #FFF;
        opacity: 0.3;
 }
-.glyphs small.value {
+.glyphs.dilabel small.value {
        background: #600;
        color: #FFF;
        opacity: 0.3;
@@ -335,12 +382,7 @@ table.dimap {
 /* character properties */
 
 .X  {background: #FFF} /* unidentified */
-#digraphs .Xa {color: #0A0} /* ascii */
-#digraphs .Xl {color: #070} /* latin1 */
-#digraphs .u-prop {color: #D00} /* proposed */
-#digraphs .u-prop.ex {color: #D88; color: rgba(221, 0, 0, .5)} /* unofficial proposal */
-
-.Lm, .Mc, .Me, .Zl, .Zp {background: #F00} /* unstyled */
+.Mc, .Me, .Zl, .Zp      {background: #F00} /* unstyled */
 .X > span               {background: #898; background: rgba(0, 0, 0, .25)} /* invisible contents */
 
 /* letter scripts */
@@ -393,6 +435,13 @@ table.dimap {
 .ex {     color: #888; color: rgba(0, 0, 0, .5)} /* experimental, disfavoured */
 .u-invalid {background: #BBB} /* invalid, impossible */
 
+/* foreground representation */
+#digraphs .u-l3 {color: #080} /* partial */
+#digraphs .u-l3.ex {color: #4C0} /* experimental */
+#digraphs .u-l2 {color: #A44; color: rgba(128, 0, 0, .6)} /* unofficial proposal */
+#digraphs .u-l1 {color: #D00; color: rgba(255, 0, 0, .8)} /* minimal or invalid */
+
+/* support percentage (browser cells) */
 .p0         {opacity: .6}
 .p0.p       {opacity: 1}
 .p::after   {content: '!'; color: #F00}
@@ -423,8 +472,10 @@ table.dimap {
 .sy-error      { font-weight: bold; background-color: #F00; color: #FFF }
 .sy-todo       { background-color: #FF0 }
 
+/* boolean alternate */
+.glyphs b      { font-weight: normal; color: #800 }
+
 /* hover effects */
-.u-di,
 .X:hover {cursor: help}
 .X:hover > span                            {background: #FFF} /* whitespace marker */
 .Greek:hover, .Armenian:hover              {background: #FA8}
@@ -454,15 +505,16 @@ table.dimap {
 .Co:hover                                  {background: #A77} /* private */
 .Xr:hover                                  {background: #FFF} /* reserved */
 .Xi:hover                                  {background: #DDD} /* invalid */
-.Xa:hover {outline: 1px solid #0F0} /* ascii */
-.Xl:hover {outline: 1px solid #0C0} /* latin1 */
-.u-prop:hover {outline: 1px solid #F00} /* proposed */
 .l0:hover                                  {background: #888}
 .l1:hover                                  {background: #F88}
 .l2:hover                                  {background: #FC8}
 .l3:hover                                  {background: #FF8}
 .l4:hover                                  {background: #CF8}
 .l5:hover                                  {background: #8F8}
+.u-l3:hover    {outline: 1px solid #080}
+.u-l3.ex:hover {outline: 1px solid #8F0}
+.u-l2:hover    {outline: 1px solid #800}
+.u-l1:hover    {outline: 1px solid #F00}
 
 /* key type colorization */
 
@@ -641,6 +693,25 @@ form.aside {
        right: 1em;
 }
 
+.family-name {
+       font-variant: small-caps;
+}
+
+#index nav {
+       columns: 3;
+       -moz-columns: 3;
+       -webkit-columns: 3;
+}
+nav > .section {
+       break-inside: avoid;
+       -webkit-column-break-inside: avoid; /* webkit */
+       page-break-inside: avoid; /* moz */
+}
+#index nav a {
+       display: inline-block;
+       margin-top: 1em;
+}
+
 /* printing hints */
 
 @page {
@@ -652,3 +723,23 @@ form.aside {
        ul.legend-set {display: none} /* current options only relevant on dynamic media */
 }
 
+/* terse optimisation */
+
+@media (max-width: 79em) {
+       .keys td {
+               position: relative; /* hides overflow */
+               width: 4.5em;
+       }
+       .keys td b,
+       .keys.meta td b,
+       .keys.ctrl td b,
+       .keys.lead td b { /* leading chars always fit */
+               position: absolute; /* background */
+               right: 0; /* least overlap in corner */
+               font-size: 250%;
+               line-height: 2.5ex;
+               opacity: .5;
+               color: #FFF;
+       }
+}
+