This commit is contained in:
CDN 2025-04-21 09:52:28 +08:00
commit c862db8191
Signed by: CDN
GPG key ID: 0C656827F9F80080
10 changed files with 10912 additions and 0 deletions

32
assets/REC.svg Normal file
View file

@ -0,0 +1,32 @@
<?xml version='1.0' encoding='iso-8859-1'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' version='1.1' overflow='visible' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 25 380' enable-background='new 0 0 25 380'>
<g shape-rendering='geometricPrecision' text-rendering='geometricPrecision' image-rendering='optimizeQuality'>
<g id='Background'>
</g>
<g id='Guides'>
</g>
<g id='Foreground'>
<rect fill-rule='evenodd' width='25' fill='#005A9C' clip-rule='evenodd' height='380'/>
<polygon fill-rule='evenodd' points='5.13,205.456 5.13,207.396 14.531,211.117 5.13,214.917 5.13,216.776 14.531,220.556 5.13,224.316 5.13,226.276 18.891,220.756 18.891,220.376 7.731,215.856 18.891,211.376 18.891,210.996 ' clip-rule='evenodd' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M7.391,204.019c-0.42-0.939-0.58-1.58-0.58-2.32 c0-1.439,0.78-2.36,2.04-2.36c1.24,0,1.98,0.9,1.98,2.701h1.8c-0.1-1.94,0.94-2.92,2.281-2.92c1.32,0,2.18,0.859,2.18,2.199 c0,1-0.34,2.001-1.04,3.04h2.12c0.5-0.979,0.78-1.96,0.78-2.9c0-2.52-1.7-4.3-4.14-4.3c-1.4,0-2.82,0.601-3.24,1.961 c-0.68-1.24-1.54-1.74-3.06-1.74c-2.16,0-3.56,1.579-3.56,4.02c0,1.02,0.18,1.801,0.58,2.62H7.391z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M6.071,182.718c-0.78,1.86-1.12,3.28-1.12,4.681 c0,4.339,3.04,7.479,7.2,7.479c2.86,0,6.8-2.24,6.8-7.36c0-2.14-0.5-3.6-1.2-4.939h-2.14c1,1.539,1.54,3.22,1.54,4.76 c0,3.279-2.12,5.521-5.18,5.521c-3,0-5.22-2.32-5.22-5.44c0-1.58,0.44-3.02,1.42-4.7H6.071z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M5.13,174.994h13.64v-1.96h-5.92v-0.82c0-1,0.32-1.82,3.12-3.62 l2.8-1.8v-2.34c-1.3,0.94-1.76,1.28-2.7,1.86c-1.7,1.04-2.96,1.8-3.78,3.04c-0.58-1.46-1.76-2.28-3.34-2.28 c-2.36,0-3.82,1.72-3.82,4.48V174.994z M6.811,173.034v-1.26c0-1.899,0.78-2.66,2.06-2.68c1.14-0.02,2.22,0.58,2.22,2.68v1.26 H6.811z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M16.171,155.903c0.68,1.04,1.08,2.06,1.08,3.14 c0,1.72-0.919,2.74-2.7,3.02v-6.32c-3.32,0-4.94,1.52-4.94,3.9c0,2.48,1.84,4.2,4.56,4.2c2.48,0,4.78-1.56,4.78-4.36 c0-1.52-0.34-2.5-1.06-3.58H16.171z M13.371,162.023c-1.42-0.24-2.22-1.06-2.22-2.42c0-1.26,0.86-2.04,2.22-2.1V162.023z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M10.231,147.432c-0.38,0.86-0.62,1.56-0.62,2.6 c0,2.72,1.88,4.44,4.84,4.44c2.64,0,4.5-1.879,4.5-4.56c0-0.94-0.24-2.08-0.52-2.68h-1.76c0.4,0.9,0.6,1.62,0.6,2.38 c0,1.84-1.12,3.04-2.98,3.04c-1.82,0-3.041-1.12-3.041-2.74c0-0.78,0.2-1.46,0.88-2.48H10.231z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M9.611,141.274c0,2.68,2,4.74,4.58,4.74 c2.76,0,4.76-1.98,4.76-4.74c0-2.88-1.92-4.86-4.76-4.86C11.531,136.414,9.611,138.454,9.611,141.274z M11.21,141.294 c0-1.78,1.26-3.06,3-3.06c1.94,0,3.14,1.18,3.14,3.06c0,1.72-1.26,2.9-3.16,2.9C12.471,144.194,11.21,142.974,11.21,141.294z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M9.791,134.722h8.98v-1.78h-6.52c-0.86-0.74-1.14-1.34-1.14-2.24 c0-0.88,0.62-1.62,2.08-1.62h5.58v-1.78h-6.52c-0.66-0.64-1.16-1.42-1.14-2c0-1.02,0.74-1.86,2.1-1.86h5.56v-1.78h-5.64 c-2.12,0-3.52,1.16-3.52,2.98c0,1.28,0.74,2.22,1.62,3c-1.06,0.6-1.62,1.54-1.62,2.68c0,0.84,0.44,1.7,1.36,2.621h-1.18V134.722z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M9.791,119.507h8.98v-1.78h-6.52c-0.86-0.74-1.14-1.34-1.14-2.24 c0-0.88,0.62-1.62,2.08-1.62h5.58v-1.78h-6.52c-0.66-0.64-1.16-1.42-1.14-2c0-1.02,0.74-1.86,2.1-1.86h5.56v-1.78h-5.64 c-2.12,0-3.52,1.16-3.52,2.98c0,1.28,0.74,2.22,1.62,3c-1.06,0.6-1.62,1.54-1.62,2.68c0,0.84,0.44,1.7,1.36,2.621h-1.18V119.507z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M16.171,96.712c0.68,1.04,1.08,2.06,1.08,3.14 c0,1.72-0.919,2.74-2.7,3.02v-6.32c-3.32,0-4.94,1.521-4.94,3.9c0,2.48,1.84,4.2,4.56,4.2c2.48,0,4.78-1.56,4.78-4.36 c0-1.52-0.34-2.5-1.06-3.58H16.171z M13.371,102.833c-1.42-0.24-2.22-1.06-2.22-2.42c0-1.26,0.86-2.04,2.22-2.1V102.833z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M9.791,93.102v1.78h8.98v-1.78h-6.44 c-0.94-0.84-1.3-1.46-1.3-2.24c0-1.08,0.86-1.76,2.18-1.76h5.56v-1.78h-5.54c-2.46,0-3.62,1.36-3.62,3.06c0,1,0.5,2,1.36,2.68v0.04 H9.791z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M5.13,77.281v1.78h4.84c-0.26,0.72-0.36,1.28-0.36,1.88 c0,2.62,1.86,4.48,4.46,4.48c2.88,0,4.7-1.68,4.7-4.36v-3.78H5.13z M17.271,79.061v1.8c0,2.06-1.26,2.74-2.94,2.74 c-1.88,0-3.12-1.16-3.12-2.88c0-0.6,0.1-1.06,0.34-1.66H17.271z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M17.171,68.085c0.3,0.4,0.48,0.76,0.48,0.94 c0,0.22-0.12,0.34-0.46,0.34h-4.62c-2.04,0-2.96,1.44-2.96,3.26c0,1.3,0.4,2.28,1.22,2.98h1.94c-1.02-0.86-1.479-1.86-1.479-2.84 c0-1.08,0.46-1.62,1.58-1.62h0.48l0.56,1.58c0.52,1.44,1.06,3.06,2.84,3.06c1.16,0,2.2-0.88,2.2-2.2c0-0.82-0.3-1.64-0.92-2.42 c0.64-0.16,0.92-0.58,0.92-1.36c0-0.56-0.16-0.9-0.7-1.72H17.171z M16.951,71.145c0.46,0.48,0.74,1,0.74,1.56 c0,0.74-0.52,1.28-1.26,1.28c-1.06,0-1.58-1.32-2.1-2.84H16.951z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M7.931,64.633l3.26,3.34h0.2v-1.56h4.74 c1.62,0,2.82-0.98,2.82-2.92c0-0.58-0.26-1.54-0.6-2.16h-1.66c0.44,0.72,0.66,1.38,0.66,2.02c0,0.52-0.3,1.28-1.36,1.28h-4.6v-2.84 h-1.6v2.84H7.931z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M9.791,58.445v1.78h8.98v-1.78H9.791z M7.071,58.265 c-0.58,0-1.06,0.48-1.06,1.06s0.48,1.06,1.06,1.06s1.06-0.48,1.06-1.06S7.651,58.265,7.071,58.265z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M9.611,51.89c0,2.68,2,4.74,4.58,4.74c2.76,0,4.76-1.98,4.76-4.74 c0-2.88-1.92-4.86-4.76-4.86C11.531,47.029,9.611,49.07,9.611,51.89z M11.21,51.91c0-1.78,1.26-3.06,3-3.06 c1.94,0,3.14,1.18,3.14,3.06c0,1.72-1.26,2.9-3.16,2.9C12.471,54.81,11.21,53.589,11.21,51.91z' fill='#FFFFFF'/>
<path fill-rule='evenodd' clip-rule='evenodd' d='M9.791,43.518v1.78h8.98v-1.78h-6.44 c-0.94-0.84-1.3-1.46-1.3-2.24c0-1.08,0.86-1.76,2.18-1.76h5.56v-1.78h-5.54c-2.46,0-3.62,1.36-3.62,3.06c0,1,0.5,2,1.36,2.68v0.04 H9.791z' fill='#FFFFFF'/>
</g>
<g id='Calque_1'>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400">
<g transform="translate(200 200) rotate(-45) translate(-200 -200)" style="font: 750 70px Arial, sans-serif; letter-spacing: 3px" fill="#100808" stroke="#100808" stroke-width="3">
<text x="53%" y="220" style="text-anchor: middle">UNOFFICIAL</text>
<text x="53%" y="305" style="text-anchor: middle">DRAFT</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 393 B

18
assets/W3C Normal file
View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" id="Layer_1" viewBox="0 0 72 48.000001" width="72" height="48">
<metadata id="metadata1654">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs1652" />
<rect x="0" y="0" width="72" height="48" fill="#1a5e9a" id="rect993" style="stroke-width:0.467575;fill:#005a9c" />
<path fill="#005a9c" d="m 2.032453,8.005453 9.53125,32.169922 h 0.396485 l 5.957031,-19.935547 5.958984,19.935547 h 0.396485 l 7.142578,-24.105469 c 1.364136,-4.603602 0.687308,-4.09375 4.757812,-4.09375 H 39.5305 l -6.636719,11.519532 h 2.664063 c 1.721607,0 3.534281,0.621234 4.488281,1.865234 0.133648,0.172602 0.253747,0.360478 0.365234,0.55664 0.02583,0.04519 0.04955,0.09224 0.07422,0.138672 0.104919,0.198597 0.202906,0.404193 0.28711,0.625 0.334699,0.878194 0.503906,1.933265 0.503906,3.167969 0,1.748 -0.384344,3.243281 -1.152344,4.488281 -0.208483,0.337699 -0.430231,0.625068 -0.664062,0.871094 -0.149564,0.157361 -0.305105,0.293883 -0.464844,0.414063 -0.01343,0.01005 -0.02751,0.01951 -0.04102,0.0293 -0.16287,0.11871 -0.328479,0.220536 -0.501953,0.300781 -0.158112,0.07314 -0.323214,0.125 -0.490234,0.166015 -0.04266,0.01039 -0.08568,0.01904 -0.128907,0.02734 -0.171803,0.03328 -0.346243,0.05664 -0.527343,0.05664 -0.0081,0 -0.01537,-0.0019 -0.02344,-0.002 -0.0081,-4.1e-5 -0.01539,-0.0019 -0.02344,-0.002 -0.0041,-3.9e-5 -0.0078,-0.0015 -0.01172,-0.002 -0.0094,-1.18e-4 -0.01799,-0.0018 -0.02734,-0.002 -0.238184,-0.0043 -0.471291,-0.0224 -0.695312,-0.0625 -0.0013,-2.26e-4 -0.0027,2.27e-4 -0.0039,0 -0.06129,-0.01103 -0.117505,-0.03511 -0.177734,-0.04883 -0.01254,-0.0028 -0.02493,-0.0059 -0.03711,-0.0098 -0.01528,-0.0037 -0.02971,-0.0098 -0.04492,-0.01367 -0.152838,-0.03546 -0.306311,-0.06965 -0.451172,-0.125 -0.228292,-0.08723 -0.447099,-0.195603 -0.658203,-0.326172 C 34.94049,35.478399 34.737935,35.326101 34.544172,35.151938 34.12993,34.701856 33.817992,34.190231 33.487531,33.691 h -4.054687 c 0.274888,0.816985 0.616402,1.555996 1.009765,2.234375 l -0.01172,0.02148 c 0.04254,0.07684 0.09949,0.148778 0.146484,0.22461 0.280031,0.454876 0.581602,0.886262 0.917969,1.27539 0.299571,0.346562 0.620593,0.666438 0.964844,0.960938 0.171266,0.146622 0.346692,0.28372 0.52539,0.412109 0,0 0.002,0.002 0.002,0.002 0.177989,0.127783 0.35957,0.245774 0.544922,0.355469 0.115046,0.06809 0.233683,0.126384 0.351563,0.1875 0.01577,0.0082 0.03106,0.01734 0.04687,0.02539 0.05701,0.03134 0.113495,0.06405 0.171875,0.0918 0.0018,8.68e-4 0.004,0.0011 0.0059,0.002 0.191896,0.09099 0.386651,0.17313 0.585937,0.246093 0.0027,10e-4 0.0051,0.0029 0.0078,0.0039 0,0 0.002,0 0.002,0 0.19779,0.07217 0.398564,0.134947 0.603516,0.189453 0.004,0.0011 0.0077,0.0029 0.01172,0.0039 0,0 0.002,0 0.002,0 0.20397,0.05382 0.412003,0.09842 0.623046,0.134766 0.0051,8.82e-4 0.01049,0.0011 0.01563,0.002 0.188465,0.03187 0.380106,0.05416 0.574218,0.07227 0.0046,4.32e-4 0.009,0.0015 0.01367,0.002 0.0071,0.0014 0.01417,0.0032 0.02148,0.0039 0.01093,0.0019 0.02197,0.0029 0.0332,0.0039 0,0 0.002,0 0.002,0 0.0053,4.46e-4 0.01031,0.0015 0.01563,0.002 0,0 0.002,0 0.002,0 0.116936,0.0096 0.238074,0.0091 0.357422,0.01367 0.02479,9.55e-4 0.04934,0.0032 0.07422,0.0039 0.0156,8.44e-4 0.03113,0.0016 0.04687,0.002 0.06026,0.0036 0.120272,0.0077 0.181641,0.0078 0.0079,2.2e-5 0.0155,0 0.02344,0 0.178244,0 0.34802,-0.01694 0.521484,-0.02734 v -0.0098 c 0.186606,-0.01341 0.378263,-0.0155 0.560547,-0.03906 0.02559,-0.0035 0.05069,-0.0079 0.07617,-0.01172 0.342257,-0.04769 0.6738,-0.119812 0.996094,-0.210937 1.50249,-0.424817 2.793149,-1.310157 3.861328,-2.679688 1.549,-1.986 2.324218,-4.434656 2.324218,-7.347656 0,-2.356 -0.530843,-4.407297 -1.589843,-6.154297 -0.804245,-1.326738 -1.898881,-2.339405 -3.283203,-3.041015 -0.04289,-0.02175 -0.08941,-0.03939 -0.132813,-0.06055 -0.178828,-0.087 -0.358606,-0.17317 -0.546875,-0.25 -0.233487,-0.09575 -0.473854,-0.183791 -0.722656,-0.263672 2.324763,-4.025522 4.690291,-8.027757 6.978515,-12.074219 H 33.805891 c -3.624299,0 -4.352809,0.6176449 -5.611329,4.896485 L 23.876203,27.585531 18.116438,8.005453 h -4.167969 l 0.953125,3.199219 c 0.794004,2.664306 0.723496,3.97222 -0.02148,6.49414 L 11.960188,27.585531 6.2023749,8.005453 Z" id="path1599-5" style="opacity:0.991;fill:#ffffff" />
<path id="path6-9" d="m 66.92,8.0059999 c -0.819,0 -1.554,0.295 -2.111,0.861 -0.591,0.6 -0.92,1.3760001 -0.92,2.1780001 0,0.802 0.313,1.545 0.887,2.128 0.583,0.591 1.334,0.912 2.145,0.912 0.793,0 1.562,-0.321 2.161,-0.903 0.574,-0.557 0.886,-1.301 0.886,-2.137 0,-0.811 -0.321,-1.5700001 -0.878,-2.1360001 -0.583,-0.591 -1.343,-0.903 -2.17,-0.903 z M 69.563,11.071 c 0,0.701 -0.271,1.351 -0.769,1.832 -0.523,0.507 -1.173,0.777 -1.891,0.777 -0.675,0 -1.342,-0.278 -1.84,-0.785 -0.498,-0.506 -0.777,-1.157 -0.777,-1.849 0,-0.692 0.287,-1.3680001 0.802,-1.8910001 0.481,-0.49 1.131,-0.751 1.84,-0.751 0.726,0 1.376,0.271 1.883,0.785 0.49,0.489 0.752,1.1480001 0.752,1.8820001 z M 67.005,9.2639999 h -1.3 V 12.709 h 0.65 V 11.24 h 0.642 l 0.701,1.469 h 0.726 l -0.769,-1.571 c 0.498,-0.101 0.785,-0.439 0.785,-0.928 0,-0.6250001 -0.473,-0.9460001 -1.435,-0.9460001 z m -0.119,0.422 c 0.608,0 0.886,0.169 0.886,0.5910001 0,0.405 -0.278,0.549 -0.87,0.549 H 66.353 V 9.6859999 Z" style="opacity:0.991;fill:#ffffff" />
<path id="path8-7" d="m 61.807,7.8249999 0.338,2.0535 C 62.460497,11.795283 62.1396,12.589153 61.2875,14.2195 L 60.092,16.507 c 0,0 -0.918,-1.941 -2.443,-3.015 -1.285,-0.905 -2.122,-1.102 -3.431,-0.832 -1.681,0.347 -3.587,2.357 -4.419,4.835 -0.995,2.965 -1.005,4.4 -1.04,5.718 -0.056,2.113 0.277,3.362 0.277,3.362 0,0 -1.451,-2.686 -1.438,-6.62 0.009,-2.808 0.451,-5.354 1.75,-7.867 1.143,-2.2090001 2.842,-3.5350001 4.35,-3.6910001 1.559,-0.161 2.791,0.59 3.743,1.404 C 58.44,10.655 59.451,12.521 59.451,12.521 Z" style="opacity:0.991;fill:#ffffff" />
<path id="path10-5" d="m 62.102,31.063 c 0,0 -1.057,1.889 -1.715,2.617 -0.659,0.728 -1.837,2.01 -3.292,2.651 -1.456,0.641 -2.218,0.762 -3.656,0.624 -1.437,-0.138 -2.773,-0.97 -3.241,-1.317 -0.468,-0.347 -1.664,-1.369 -2.339,-2.322 -0.676,-0.954 -1.733,-2.859 -1.733,-2.859 0,0 0.589,1.911 0.958,2.721 0.212,0.466 0.864,1.894 1.79,3.136 0.862,1.159 2.539,3.154 5.086,3.604 2.547,0.451 4.297,-0.693 4.73,-0.971 0.433,-0.277 1.432309,-0.93042 2.010243,-1.548482 0.603066,-0.644938 0.923083,-1.107393 1.325111,-1.920775 0.292057,-0.590889 0.544763,-1.977304 0.381146,-2.829243 z" style="opacity:0.991;fill:#ffffff" />
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

9
assets/W3C-REC Normal file
View file

@ -0,0 +1,9 @@
/* Style for a "Recommendation" */
@import "base.css";
body {
background-image: url(REC.svg);
}

1529
assets/base.css Normal file

File diff suppressed because it is too large Load diff

120
assets/dark.css Normal file
View file

@ -0,0 +1,120 @@
/******************************************************************************
* Dark-mode Colors for the W3C specifications
*
* This style sheet overlays base.css in order to provide colors for dark mode.
* Import this stylesheet via
* <link rel="stylesheet" media="(prefers-color-scheme: dark)" href="...">
*
******************************************************************************/
/* In case a transparent-bg image doesn't expect to be on a dark bg,
which is quite common in practice... */
img { background: white; }
:root {
--text: #ddd;
--bg: black;
--unofficial-watermark: url(./assets/UD-watermark-dark.svg);
--logo-bg: #1a5e9a;
--logo-active-bg: #c00;
--logo-text: white;
--tocnav-normal-text: #999;
--tocnav-normal-bg: var(--bg);
--tocnav-hover-text: var(--tocnav-normal-text);
--tocnav-hover-bg: #080808;
--tocnav-active-text: #f44;
--tocnav-active-bg: var(--tocnav-normal-bg);
--tocsidebar-text: var(--text);
--tocsidebar-bg: #080808;
--tocsidebar-shadow: rgba(255,255,255,.1);
--tocsidebar-heading-text: hsla(203,20%,40%,.7);
--toclink-text: var(--text);
--toclink-underline: #6af;
--toclink-visited-text: var(--toclink-text);
--toclink-visited-underline: #054572;
--heading-text: #8af;
--hr-text: var(--text);
--algo-border: #456;
--del-text: #f44;
--del-bg: transparent;
--ins-text: #4a4;
--ins-bg: transparent;
--a-normal-text: #6af;
--a-normal-underline: #555;
--a-visited-text: var(--a-normal-text);
--a-visited-underline: var(--a-normal-underline);
--a-hover-bg: rgba(25%, 25%, 25%, .2);
--a-active-text: #f44;
--a-active-underline: var(--a-active-text);
--borderedblock-bg: rgba(255, 255, 255, .05);
--blockquote-border: silver;
--blockquote-bg: var(--borderedblock-bg);
--blockquote-text: currentcolor;
--issue-border: #e05252;
--issue-bg: var(--borderedblock-bg);
--issue-text: var(--text);
--issueheading-text: hsl(0deg, 70%, 70%);
--example-border: hsl(50deg, 90%, 60%);
--example-bg: var(--borderedblock-bg);
--example-text: var(--text);
--exampleheading-text: hsl(50deg, 70%, 70%);
--note-border: hsl(120deg, 100%, 35%);
--note-bg: var(--borderedblock-bg);
--note-text: var(--text);
--noteheading-text: hsl(120, 70%, 70%);
--notesummary-underline: silver;
--advisement-border: orange;
--advisement-bg: #222218;
--advisement-text: var(--text);
--advisementheading-text: #f84;
--amendment-border: #330099;
--amendment-bg: var(--borderedblock-bg);
--amendment-text: var(--text);
--amendmentheading-text: #a086ff;
--amendment-border: #330099;
--amendment-bg: #080010;
--amendment-text: var(--text);
--amendmentheading-text: #cc00ff;
--warning-border: red;
--warning-bg: hsla(40,100%,20%,0.95);
--warning-text: var(--text);
--def-border: #8ccbf2;
--def-bg: #080818;
--def-text: var(--text);
--defrow-border: #136;
--datacell-border: silver;
--indexinfo-text: #aaa;
--indextable-hover-text: var(--text);
--indextable-hover-bg: #181818;
--outdatedspec-bg: rgba(255, 255, 255, .5);
--outdatedspec-text: black;
--outdated-bg: maroon;
--outdated-text: white;
--outdated-shadow: red;
--editedrec-bg: darkorange;
}

247
assets/fixup.js Normal file
View file

@ -0,0 +1,247 @@
/******************************************************************************
* JS Extension for the W3C Spec Style Sheet *
* *
* This code handles: *
* - some fixup to improve the table of contents *
* - the obsolete warning on outdated specs *
******************************************************************************/
(function() {
"use strict";
var ESCAPEKEY = 27;
var collapseSidebarText = '<span aria-hidden="true">←</span> '
+ '<span>Collapse Sidebar</span>';
var expandSidebarText = '<span aria-hidden="true">→</span> '
+ '<span>Pop Out Sidebar</span>';
var tocJumpText = '<span aria-hidden="true">↑</span> '
+ '<span>Jump to Table of Contents</span>';
var sidebarMedia = window.matchMedia('screen and (min-width: 78em)');
var autoToggle = function(e){ toggleSidebar(e.matches) };
if(sidebarMedia.addListener) {
sidebarMedia.addListener(autoToggle);
}
function toggleSidebar(on, skipScroll) {
if (on == undefined) {
on = !document.body.classList.contains('toc-sidebar');
}
if (!skipScroll) {
/* Don't scroll to compensate for the ToC if we're above it already. */
var headY = 0;
var head = document.querySelector('.head');
if (head) {
// terrible approx of "top of ToC"
headY += head.offsetTop + head.offsetHeight;
}
skipScroll = window.scrollY < headY;
}
var toggle = document.getElementById('toc-toggle');
var tocNav = document.getElementById('toc');
if (on) {
var tocHeight = tocNav.offsetHeight;
document.body.classList.add('toc-sidebar');
document.body.classList.remove('toc-inline');
toggle.innerHTML = collapseSidebarText;
if (!skipScroll) {
window.scrollBy(0, 0 - tocHeight);
}
tocNav.focus();
sidebarMedia.addListener(autoToggle); // auto-collapse when out of room
}
else {
document.body.classList.add('toc-inline');
document.body.classList.remove('toc-sidebar');
toggle.innerHTML = expandSidebarText;
if (!skipScroll) {
window.scrollBy(0, tocNav.offsetHeight);
}
if (toggle.matches(':hover')) {
/* Unfocus button when not using keyboard navigation,
because I don't know where else to send the focus. */
toggle.blur();
}
}
}
function createSidebarToggle() {
/* Create the sidebar toggle in JS; it shouldn't exist when JS is off. */
var toggle = document.createElement('a');
/* This should probably be a button, but appearance isn't standards-track.*/
toggle.id = 'toc-toggle';
toggle.class = 'toc-toggle';
toggle.href = '#toc';
toggle.innerHTML = collapseSidebarText;
sidebarMedia.addListener(autoToggle);
var toggler = function(e) {
e.preventDefault();
sidebarMedia.removeListener(autoToggle); // persist explicit off states
toggleSidebar();
return false;
}
toggle.addEventListener('click', toggler, false);
/* Get <nav id=toc-nav>, or make it if we don't have one. */
var tocNav = document.getElementById('toc-nav');
if (!tocNav) {
tocNav = document.createElement('p');
tocNav.id = 'toc-nav';
/* Prepend for better keyboard navigation */
document.body.insertBefore(tocNav, document.body.firstChild);
}
/* While we're at it, make sure we have a Jump to Toc link. */
var tocJump = document.getElementById('toc-jump');
if (!tocJump) {
tocJump = document.createElement('a');
tocJump.id = 'toc-jump';
tocJump.href = '#toc';
tocJump.innerHTML = tocJumpText;
tocNav.appendChild(tocJump);
}
tocNav.appendChild(toggle);
}
var toc = document.getElementById('toc');
if (toc) {
if (!document.getElementById('toc-toggle')) {
createSidebarToggle();
}
toggleSidebar(sidebarMedia.matches, true);
/* If the sidebar has been manually opened and is currently overlaying the text
(window too small for the MQ to add the margin to body),
then auto-close the sidebar once you click on something in there. */
toc.addEventListener('click', function(e) {
if(document.body.classList.contains('toc-sidebar') && !sidebarMedia.matches) {
var el = e.target;
while (el != toc) { // find closest <a>
if (el.tagName.toLowerCase() == "a") {
toggleSidebar(false);
return;
}
el = el.parentElement;
}
}
}, false);
}
else {
console.warn("Can't find Table of Contents. Please use <nav id='toc'> around the ToC.");
}
/* Amendment Diff Toggling */
var showDiff = function(event) {
var a = event.target.parentElement.parentElement;
var ins = document.querySelectorAll("ins[cite='#" + a.id + "'], #" + a.id + " ins" );
var del = document.querySelectorAll("del[cite='#" + a.id + "'], #" + a.id + " del" );
ins.forEach( function(e) { e.hidden = false; e.classList.remove("diff-inactive") });
del.forEach( function(e) { e.hidden = false; e.classList.remove("diff-inactive") });
a.querySelectorAll("button[value=diff]")[0].disabled = true;
a.querySelectorAll("button[value=old]")[0].disabled = false;
a.querySelectorAll("button[value=new]")[0].disabled = false;
}
var showOld = function(event) {
var a = event.target.parentElement.parentElement;
var ins = document.querySelectorAll("ins[cite='#" + a.id + "'], #" + a.id + " ins" );
var del = document.querySelectorAll("del[cite='#" + a.id + "'], #" + a.id + " del" );
ins.forEach( function(e) { e.hidden = true; e.classList.add("diff-inactive") });
del.forEach( function(e) { e.hidden = false; e.classList.add("diff-inactive") });
a.querySelectorAll("button[value=diff]")[0].disabled = false;
a.querySelectorAll("button[value=old]")[0].disabled = true;
a.querySelectorAll("button[value=new]")[0].disabled = false;
}
var showNew = function(event) {
var a = event.target.parentElement.parentElement;
var ins = document.querySelectorAll("ins[cite='#" + a.id + "'], #" + a.id + " ins" );
var del = document.querySelectorAll("del[cite='#" + a.id + "'], #" + a.id + " del" );
ins.forEach( function(e) { e.hidden = false; e.classList.add("diff-inactive") });
del.forEach( function(e) { e.hidden = true; e.classList.add("diff-inactive") });
a.querySelectorAll("button[value=diff]")[0].disabled = false;
a.querySelectorAll("button[value=old]")[0].disabled = false;
a.querySelectorAll("button[value=new]")[0].disabled = true;
}
var amendments = document.querySelectorAll('[id].amendment, [id].correction, [id].addition');
amendments.forEach( function(a) {
var ins = document.querySelectorAll("ins[cite='#" + a.id + "'], #" + a.id + " ins" );
var del = document.querySelectorAll("del[cite='#" + a.id + "'], #" + a.id + " del" );
if (ins.length == 0 && del.length == 0) { return; }
var tbar = document.createElement('div');
tbar.lang = 'en'; tbar.class = 'amendment-toggles';
var toggle = document.createElement('button');
toggle.value = 'diff'; toggle.innerHTML = 'Show Change'; toggle.disabled = true;
toggle.addEventListener('click', showDiff, false);
tbar.appendChild(toggle);
toggle = document.createElement('button');
toggle.value = 'old'; toggle.innerHTML = 'Show Current';
toggle.addEventListener('click', showOld, false);
tbar.appendChild(toggle);
toggle = document.createElement('button');
toggle.value = 'new'; toggle.innerHTML = 'Show Future';
toggle.addEventListener('click', showNew, false);
tbar.appendChild(toggle);
a.appendChild(tbar);
});
/* Wrap tables in case they overflow */
var tables = document.querySelectorAll(':not(.overlarge) > table.data, :not(.overlarge) > table.index');
var numTables = tables.length;
for (var i = 0; i < numTables; i++) {
var table = tables[i];
if (!table.matches('.example *, .note *, .advisement *, .def *, .issue *')) {
/* Overflowing colored boxes looks terrible, and also
the kinds of tables inside these boxes
are less likely to need extra space. */
var wrapper = document.createElement('div');
wrapper.className = 'overlarge';
table.parentNode.insertBefore(wrapper, table);
wrapper.appendChild(table);
}
}
/* Dark mode toggle */
const darkCss = document.querySelector('link[rel~="stylesheet"][href$="dark.css"]');
if (darkCss) {
const colorScheme = localStorage.getItem("tr-theme") || "auto";
darkCss.disabled = colorScheme === "light";
darkCss.media = colorScheme === "auto" ? "(prefers-color-scheme: dark)" : "";
const render = document.createElement("div");
function createOption(option) {
const checked = option === colorScheme;
return `
<label>
<input name="color-scheme" type="radio" value="${option}" ${checked ? "checked": ""}>
<span>${option}</span>
</label>
`.trim();
}
render.innerHTML = `
<a id="toc-theme-toggle" role="radiogroup" aria-label="Select a color scheme">
<span aria-hidden="true"><img src="logos/dark.svg" title="theme toggle icon" /></span>
<span>
${["light", "dark", "auto"].map(createOption).join("")}
</span>
</a>
`;
const changeListener = (event) => {
const { value } = event.target;
darkCss.disabled = value === "light";
darkCss.media = value === "auto" ? "(prefers-color-scheme: dark)" : "";
localStorage.setItem("tr-theme", value);
};
render.querySelectorAll("input[type='radio']").forEach((input) => {
input.addEventListener("change", changeListener);
});
var tocNav = document.querySelector('#toc-nav');
tocNav.appendChild(...render.children);
}
})();

60
assets/nanotabs.js Normal file
View file

@ -0,0 +1,60 @@
/* nanotabs ~ Sean Catchpole - Version 0.9 - MIT/GPL */
(function(){
var gc = function(s){ return document.getElementsByClassName(s); };
if(!document.getElementsByClassName) {
var all = document.getElementsByTagName('*');
gc = function(c){
var e=[]; c=' '+c+' ';
for(var i=0; i<all.length; i++)
if((' '+all[i].className+' ').indexOf(c)>=0)
e.push(all[i]);
return e;
}
}
var w = function(id){ var d; return (d=document.getElementById(id))&&[d]||gc(id); },
bind = function(f){ var self=this; return function(){ return f.apply(self, arguments); }; },
map = function(f,e,a) { for(var i=0; i<e.length; i++) f.apply(e[i],a||[]); },
add = function(c) { this.className += c; },
remove = function(c) { this.className = this.className.replace(new RegExp("(^|\\s)" + c + "(\\s|$)",'g'),''); } ,
hide = function() { this.style.display="none"; },
show = function() { this.style.display="block"; };
var tab = function(id,a,e,s) {
map(remove,a,[s.s]);
add.call(this,s.s);
map(hide,e);
map(show,w(id));
}
nanotabs = function(s){
var i, s=s||{}, o="cesdf".split('');
for(i in o) s[o[i]]=s[o[i]]||nanotabs.settings[o[i]];
var c=w(s.c), f=function(){
var t=this,o=t[0],a=[t[1],t[2],t[3],t[4]];
if( !s.f || s.f.apply(o,a)!==false ) tab.apply(o,a);
return false;
}
for(i=0; i<c.length; i++) {
var x=0, e=[], a=[], h=[], t=c[i].getElementsByTagName("a");
for(var j=0; j<t.length; j++)
if(t[j].href.match(/#/)) {
h.push(t[j].href.split('#')[1]);
if(typeof s.d=="string" && h[x]==s.d) s.d=x;
a.push(t[j]);
var g = w(h[x]);
for(var k=0; k<g.length; k++) e.push(g[k]);
x++;
}
for(var j=0; j<a.length; j++)
a[j]['on'+s.e] = bind.call([a[j],h[j],a,e,s],f);
if(typeof s.d=="number" && s.d>=0) tab.call(a[s.d],h[s.d],a,e,s);
}
}
nanotabs.settings = { c:"nanotabs", e:"click", s:"selected", d:0, f:false };
nanotabs();
})();

View file

@ -0,0 +1,5 @@
{
"outdatedDays": 90,
"latestVersion": "https://www.w3.org/TR/activitystreams-vocabulary/",
"stillValid": true
}

8886
index.html Normal file

File diff suppressed because it is too large Load diff