リポジトリ / emssr / independent_common_compiler
r2
| r2 emssr | 1 | /* Common scope notebook の見た目。 |
| r2 emssr | 2 | 色は VS Code の既定テーマの値をそのまま使う。 |
| r2 emssr | 3 | 地と枠は Light Modern / Dark Modern、音節の色は light_plus / dark_plus の |
| r2 emssr | 4 | token color を当てる。ここで色を新しく作らない。 */ |
| r2 emssr | 5 | |
| r2 emssr | 6 | :root { |
| r2 emssr | 7 | --bg: #ffffff; /* editor.background */ |
| r2 emssr | 8 | --panel: #f8f8f8; /* sideBar.background */ |
| r2 emssr | 9 | --ink: #3b3b3b; /* editor.foreground */ |
| r2 emssr | 10 | --label: #616161; /* descriptionForeground */ |
| r2 emssr | 11 | --axis: #8c8c8c; /* editorLineNumber.foreground */ |
| r2 emssr | 12 | --ring: #cecece; /* input.border */ |
| r2 emssr | 13 | --rule: #e5e5e5; /* panel.border */ |
| r2 emssr | 14 | --sel: #e8e8e8; /* list.activeSelectionBackground */ |
| r2 emssr | 15 | --mark: #005fb8; /* focusBorder。強調はこの一色 */ |
| r2 emssr | 16 | |
| r2 emssr | 17 | /* token color(light_plus) */ |
| r2 emssr | 18 | --tok-num: #098658; /* constant.numeric */ |
| r2 emssr | 19 | --tok-key: #0000ff; /* keyword */ |
| r2 emssr | 20 | --tok-ctrl: #af00db; /* keyword.control */ |
| r2 emssr | 21 | --tok-var: #001080; /* variable */ |
| r2 emssr | 22 | --tok-type: #267f99; /* entity.name.type */ |
| r2 emssr | 23 | --tok-func: #795e26; /* entity.name.function */ |
| r2 emssr | 24 | --tok-str: #a31515; /* string */ |
| r2 emssr | 25 | --tok-cmt: #008000; /* comment */ |
| r2 emssr | 26 | --tok-bad: #cd3131; /* invalid */ |
| r2 emssr | 27 | |
| r2 emssr | 28 | /* 生成元の層を token color へ当てる */ |
| r2 emssr | 29 | --dyad: var(--tok-num); |
| r2 emssr | 30 | --bit: var(--tok-ctrl); |
| r2 emssr | 31 | --store: var(--tok-var); |
| r2 emssr | 32 | --omega: var(--tok-key); |
| r2 emssr | 33 | --judge: var(--tok-type); |
| r2 emssr | 34 | --region: var(--tok-type); |
| r2 emssr | 35 | --report: var(--tok-func); |
| r2 emssr | 36 | --frame: var(--axis); |
| r2 emssr | 37 | --letter: var(--tok-str); |
| r2 emssr | 38 | |
| r2 emssr | 39 | /* 図の四本 */ |
| r2 emssr | 40 | --acc: var(--tok-str); /* 境界とカット */ |
| r2 emssr | 41 | --sub: var(--tok-cmt); /* 閉包と副次の線 */ |
| r2 emssr | 42 | --warn: var(--tok-bad); /* 出口境界と失敗 */ |
| r2 emssr | 43 | |
| r2 emssr | 44 | --tu: #098658; |
| r2 emssr | 45 | --te: #cd3131; |
| r2 emssr | 46 | |
| r2 emssr | 47 | --mono: "Cascadia Mono", "Consolas", "SFMono-Regular", "Menlo", monospace; |
| r2 emssr | 48 | --ui: "Segoe UI", "Yu Gothic UI", "Hiragino Kaku Gothic ProN", system-ui, sans-serif; |
| r2 emssr | 49 | } |
| r2 emssr | 50 | |
| r2 emssr | 51 | @media (prefers-color-scheme: dark) { |
| r2 emssr | 52 | :root:not([data-theme="light"]) { |
| r2 emssr | 53 | --bg: #1f1f1f; |
| r2 emssr | 54 | --panel: #181818; |
| r2 emssr | 55 | --ink: #cccccc; |
| r2 emssr | 56 | --label: #9d9d9d; |
| r2 emssr | 57 | --axis: #6e7681; |
| r2 emssr | 58 | --ring: #3c3c3c; |
| r2 emssr | 59 | --rule: #2b2b2b; |
| r2 emssr | 60 | --sel: #04395e; |
| r2 emssr | 61 | --mark: #0078d4; |
| r2 emssr | 62 | |
| r2 emssr | 63 | --tok-num: #b5cea8; |
| r2 emssr | 64 | --tok-key: #569cd6; |
| r2 emssr | 65 | --tok-ctrl: #c586c0; |
| r2 emssr | 66 | --tok-var: #9cdcfe; |
| r2 emssr | 67 | --tok-type: #4ec9b0; |
| r2 emssr | 68 | --tok-func: #dcdcaa; |
| r2 emssr | 69 | --tok-str: #ce9178; |
| r2 emssr | 70 | --tok-cmt: #6a9955; |
| r2 emssr | 71 | --tok-bad: #f44747; |
| r2 emssr | 72 | |
| r2 emssr | 73 | --tu: #b5cea8; |
| r2 emssr | 74 | --te: #f44747; |
| r2 emssr | 75 | } |
| r2 emssr | 76 | } |
| r2 emssr | 77 | |
| r2 emssr | 78 | * { box-sizing: border-box; } |
| r2 emssr | 79 | [hidden] { display: none !important; } /* display を上書きした要素にも効かせる */ |
| r2 emssr | 80 | |
| r2 emssr | 81 | html, body { |
| r2 emssr | 82 | margin: 0; height: 100%; |
| r2 emssr | 83 | background: var(--bg); color: var(--ink); |
| r2 emssr | 84 | font-family: var(--ui); font-size: 13px; line-height: 1.65; |
| r2 emssr | 85 | } |
| r2 emssr | 86 | |
| r2 emssr | 87 | button, input, select, textarea { font-family: inherit; } |
| r2 emssr | 88 | |
| r2 emssr | 89 | /* ===== ヘッダ ===== */ |
| r2 emssr | 90 | |
| r2 emssr | 91 | #bar { |
| r2 emssr | 92 | display: flex; align-items: center; gap: 10px; |
| r2 emssr | 93 | height: 34px; padding: 0 12px; |
| r2 emssr | 94 | border-bottom: 1px solid var(--rule); |
| r2 emssr | 95 | background: var(--panel); |
| r2 emssr | 96 | font-size: 12px; |
| r2 emssr | 97 | } |
| r2 emssr | 98 | #bar .brand { font-weight: 650; letter-spacing: .01em; } |
| r2 emssr | 99 | #bar .sp { flex: 0 0 4px; } |
| r2 emssr | 100 | #bar .right { margin-left: auto; color: var(--label); display: flex; align-items: center; gap: 8px; } |
| r2 emssr | 101 | #bar .right a { color: var(--mark); text-decoration: none; } |
| r2 emssr | 102 | #bar .right a:hover { text-decoration: underline; } |
| r2 emssr | 103 | #pick { |
| r2 emssr | 104 | font: inherit; background: var(--bg); color: var(--ink); |
| r2 emssr | 105 | border: 1px solid var(--ring); padding: 2px 6px; max-width: 320px; |
| r2 emssr | 106 | } |
| r2 emssr | 107 | |
| r2 emssr | 108 | .tag { padding: 1px 8px; border: 1px solid var(--ring); font-size: 11px; color: var(--label); } |
| r2 emssr | 109 | .tag.ok { color: var(--tu); border-color: var(--tu); } |
| r2 emssr | 110 | .tag.bad { color: var(--te); border-color: var(--te); } |
| r2 emssr | 111 | |
| r2 emssr | 112 | /* ===== 三分割 ===== */ |
| r2 emssr | 113 | |
| r2 emssr | 114 | #full { |
| r2 emssr | 115 | display: grid; |
| r2 emssr | 116 | grid-template-columns: 208px minmax(380px, 1fr) minmax(430px, 1.15fr); |
| r2 emssr | 117 | height: calc(100% - 34px); |
| r2 emssr | 118 | } |
| r2 emssr | 119 | body[data-mode="solo"] #full { display: none; } |
| r2 emssr | 120 | body[data-mode="solo"] #bar .right .windows { display: none; } |
| r2 emssr | 121 | |
| r2 emssr | 122 | #toc { border-right: 1px solid var(--rule); overflow: auto; padding: 10px 0 20px; background: var(--panel); } |
| r2 emssr | 123 | #toc a { |
| r2 emssr | 124 | display: block; padding: 4px 12px; color: var(--label); |
| r2 emssr | 125 | text-decoration: none; font-size: 12px; border-left: 2px solid transparent; |
| r2 emssr | 126 | } |
| r2 emssr | 127 | #toc a:hover { background: var(--sel); } |
| r2 emssr | 128 | #toc a.on { color: var(--ink); border-left-color: var(--mark); background: var(--sel); } |
| r2 emssr | 129 | #toc a.add { color: var(--mark); margin-top: 8px; } |
| r2 emssr | 130 | #toc .head { padding: 8px 12px 4px; color: var(--axis); font-size: 10.5px; letter-spacing: .08em; } |
| r2 emssr | 131 | |
| r2 emssr | 132 | #sheet { overflow: auto; padding: 14px 24px 110px; } |
| r2 emssr | 133 | |
| r2 emssr | 134 | /* ===== 道具立て ===== */ |
| r2 emssr | 135 | |
| r2 emssr | 136 | .toolbar { |
| r2 emssr | 137 | display: flex; gap: 6px; flex-wrap: wrap; align-items: center; |
| r2 emssr | 138 | padding: 0 0 12px; border-bottom: 1px solid var(--rule); margin-bottom: 14px; |
| r2 emssr | 139 | } |
| r2 emssr | 140 | .toolbar button, .tools button, .adder button, .cell .bar button, .leaf > header button { |
| r2 emssr | 141 | font: inherit; font-size: 11px; padding: 3px 11px; cursor: pointer; |
| r2 emssr | 142 | border: 1px solid var(--ring); background: var(--bg); color: var(--ink); |
| r2 emssr | 143 | } |
| r2 emssr | 144 | .toolbar button:hover, .tools button:hover, .adder button:hover, |
| r2 emssr | 145 | .cell .bar button:hover { border-color: var(--mark); color: var(--mark); } |
| r2 emssr | 146 | |
| r2 emssr | 147 | /* ===== 表題と説明 ===== */ |
| r2 emssr | 148 | |
| r2 emssr | 149 | #intro .title { |
| r2 emssr | 150 | display: block; width: 100%; font-size: 19px; font-weight: 650; |
| r2 emssr | 151 | border: 0; border-bottom: 1px solid transparent; background: none; color: var(--ink); |
| r2 emssr | 152 | padding: 2px 0; margin: 0 0 6px; outline: 0; |
| r2 emssr | 153 | } |
| r2 emssr | 154 | #intro .title:hover, #intro .title:focus { border-bottom-color: var(--ring); } |
| r2 emssr | 155 | #intro .lead { color: var(--label); margin: 0 0 12px; cursor: text; min-height: 1.2em; } |
| r2 emssr | 156 | #intro .lead:hover { background: var(--panel); } |
| r2 emssr | 157 | .leadedit, .noteedit, .settings textarea { |
| r2 emssr | 158 | display: block; width: 100%; font-family: var(--mono); font-size: 12px; |
| r2 emssr | 159 | border: 1px solid var(--ring); background: var(--bg); color: var(--ink); |
| r2 emssr | 160 | padding: 6px 8px; outline: 0; resize: vertical; |
| r2 emssr | 161 | } |
| r2 emssr | 162 | .leadedit { margin: 0 0 12px; min-height: 90px; } |
| r2 emssr | 163 | |
| r2 emssr | 164 | code { font-family: var(--mono); background: var(--panel); padding: 0 3px; } |
| r2 emssr | 165 | |
| r2 emssr | 166 | /* ===== セル ===== */ |
| r2 emssr | 167 | |
| r2 emssr | 168 | .cell { border: 1px solid var(--rule); background: var(--panel); } |
| r2 emssr | 169 | .cell.note { border: 0; border-left: 2px solid var(--ring); background: none; padding-left: 12px; } |
| r2 emssr | 170 | .cell > .note { padding: 9px 12px; color: var(--label); cursor: text; } |
| r2 emssr | 171 | .cell > .note:hover { background: var(--bg); } |
| r2 emssr | 172 | .cell.note > .note { padding: 4px 0 6px; } |
| r2 emssr | 173 | .cell > .note b { color: var(--ink); font-weight: 650; } |
| r2 emssr | 174 | .cell > .note p { margin: 0 0 7px; } |
| r2 emssr | 175 | .cell > .note p:last-child { margin: 0; } |
| r2 emssr | 176 | .cell > .note h3, #intro .lead h3 { |
| r2 emssr | 177 | font-size: 14px; font-weight: 650; color: var(--ink); |
| r2 emssr | 178 | margin: 14px 0 6px; padding-bottom: 3px; border-bottom: 1px solid var(--rule); |
| r2 emssr | 179 | } |
| r2 emssr | 180 | .cell > .note h3:first-child { margin-top: 2px; } |
| r2 emssr | 181 | .cell > .note h4, #intro .lead h4 { font-size: 12.5px; font-weight: 650; color: var(--ink); margin: 10px 0 4px; } |
| r2 emssr | 182 | .cell .noteedit { margin: 6px 10px; width: calc(100% - 20px); } |
| r2 emssr | 183 | |
| r2 emssr | 184 | .cell .row { display: flex; align-items: stretch; } |
| r2 emssr | 185 | .cell .gut { |
| r2 emssr | 186 | flex: 0 0 48px; padding: 7px 8px; text-align: right; |
| r2 emssr | 187 | color: var(--axis); font-family: var(--mono); font-size: 11px; |
| r2 emssr | 188 | border-right: 1px solid var(--rule); |
| r2 emssr | 189 | } |
| r2 emssr | 190 | .cell textarea.src { |
| r2 emssr | 191 | flex: 1; min-width: 0; font-family: var(--mono); font-size: 13px; line-height: 1.75; |
| r2 emssr | 192 | border: 0; outline: 0; resize: vertical; padding: 6px 10px; |
| r2 emssr | 193 | background: var(--bg); color: var(--ink); min-height: 2.8em; |
| r2 emssr | 194 | } |
| r2 emssr | 195 | .cell textarea.src.over { outline: 2px solid var(--mark); outline-offset: -2px; } |
| r2 emssr | 196 | .cell .bar { |
| r2 emssr | 197 | display: flex; gap: 10px; align-items: center; flex-wrap: wrap; |
| r2 emssr | 198 | padding: 5px 10px 5px 56px; border-top: 1px solid var(--rule); |
| r2 emssr | 199 | font-size: 11px; color: var(--axis); |
| r2 emssr | 200 | } |
| r2 emssr | 201 | .cell .bar .hint { color: var(--axis); } |
| r2 emssr | 202 | .tools { display: flex; gap: 4px; margin-left: auto; } |
| r2 emssr | 203 | .cell.note .tools { padding: 0 0 6px; } |
| r2 emssr | 204 | .cell .out { padding: 8px 10px 11px 56px; font-family: var(--mono); font-size: 12px; } |
| r2 emssr | 205 | .cell .out:empty { display: none; } |
| r2 emssr | 206 | .cell .out .err { color: var(--te); white-space: pre-wrap; } |
| r2 emssr | 207 | .cell .out .expected { color: var(--tok-ctrl); white-space: pre-wrap; } |
| r2 emssr | 208 | .cell .out .val { font-size: 15px; color: var(--ink); } |
| r2 emssr | 209 | .cell .out .dim { color: var(--axis); } |
| r2 emssr | 210 | |
| r2 emssr | 211 | .adder { display: flex; gap: 6px; padding: 5px 0 9px; opacity: .35; transition: opacity .12s; } |
| r2 emssr | 212 | .adder:hover { opacity: 1; } |
| r2 emssr | 213 | |
| r2 emssr | 214 | /* ===== 設定 ===== */ |
| r2 emssr | 215 | |
| r2 emssr | 216 | .settings { margin: 0; border-top: 1px solid var(--rule); } |
| r2 emssr | 217 | .cell .settings { padding: 0 10px 8px 56px; } |
| r2 emssr | 218 | #intro .settings { border: 0; margin: 0 0 16px; } |
| r2 emssr | 219 | .settings > summary { |
| r2 emssr | 220 | cursor: pointer; font-size: 11px; color: var(--axis); padding: 5px 0; |
| r2 emssr | 221 | list-style: none; |
| r2 emssr | 222 | } |
| r2 emssr | 223 | .settings > summary::before { content: '▸ '; } |
| r2 emssr | 224 | .settings[open] > summary::before { content: '▾ '; } |
| r2 emssr | 225 | .fields { display: flex; gap: 12px; flex-wrap: wrap; padding: 2px 0 6px; } |
| r2 emssr | 226 | .field { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--label); } |
| r2 emssr | 227 | .field input { |
| r2 emssr | 228 | font-family: var(--mono); font-size: 11.5px; padding: 2px 5px; |
| r2 emssr | 229 | border: 1px solid var(--ring); background: var(--bg); color: var(--ink); |
| r2 emssr | 230 | } |
| r2 emssr | 231 | |
| r2 emssr | 232 | .formula { |
| r2 emssr | 233 | font-family: var(--mono); font-size: 12px; color: var(--label); |
| r2 emssr | 234 | border-left: 2px solid var(--ring); padding: 2px 0 2px 10px; margin: 8px 0 10px; |
| r2 emssr | 235 | white-space: pre-wrap; overflow-x: auto; |
| r2 emssr | 236 | } |
| r2 emssr | 237 | |
| r2 emssr | 238 | table { border-collapse: collapse; font-size: 11.5px; margin: 6px 0 10px; } |
| r2 emssr | 239 | th, td { border: 1px solid var(--rule); padding: 1px 7px; text-align: right; } |
| r2 emssr | 240 | th { color: var(--label); font-weight: 500; background: var(--panel); } |
| r2 emssr | 241 | td.l, th.l { text-align: left; } |
| r2 emssr | 242 | |
| r2 emssr | 243 | /* ===== scope のパネル ===== */ |
| r2 emssr | 244 | |
| r2 emssr | 245 | #scopewrap { border-left: 1px solid var(--rule); display: flex; flex-direction: column; min-width: 0; } |
| r2 emssr | 246 | |
| r2 emssr | 247 | #palette { |
| r2 emssr | 248 | display: flex; align-items: center; gap: 6px; flex-wrap: wrap; |
| r2 emssr | 249 | padding: 5px 8px; border-bottom: 1px solid var(--rule); background: var(--panel); |
| r2 emssr | 250 | } |
| r2 emssr | 251 | #palette .hint { color: var(--axis); font-size: 10.5px; margin-right: 2px; } |
| r2 emssr | 252 | .tab { |
| r2 emssr | 253 | font-size: 11px; padding: 2px 9px; cursor: grab; |
| r2 emssr | 254 | border: 1px solid var(--ring); background: var(--bg); color: var(--ink); |
| r2 emssr | 255 | user-select: none; |
| r2 emssr | 256 | } |
| r2 emssr | 257 | .tab:active { cursor: grabbing; } |
| r2 emssr | 258 | |
| r2 emssr | 259 | #grid, #soloScope { flex: 1; min-height: 0; min-width: 0; display: flex; overflow: auto; } |
| r2 emssr | 260 | .solobody { flex: 1; overflow: auto; padding: 12px 16px 30px; min-width: 0; } |
| r2 emssr | 261 | |
| r2 emssr | 262 | .node { display: flex; min-width: 0; min-height: 0; flex: 1 1 0; } |
| r2 emssr | 263 | .node.row { flex-direction: row; } |
| r2 emssr | 264 | .node.col { flex-direction: column; } |
| r2 emssr | 265 | .gap { flex: 0 0 5px; background: var(--rule); cursor: col-resize; } |
| r2 emssr | 266 | .node.col > .gap { cursor: row-resize; } |
| r2 emssr | 267 | |
| r2 emssr | 268 | .leaf { |
| r2 emssr | 269 | display: flex; flex-direction: column; min-width: 210px; min-height: 120px; |
| r2 emssr | 270 | border: 1px solid transparent; position: relative; background: var(--bg); |
| r2 emssr | 271 | } |
| r2 emssr | 272 | .leaf > header { |
| r2 emssr | 273 | display: flex; align-items: center; gap: 3px; padding: 3px 6px; |
| r2 emssr | 274 | border-bottom: 1px solid var(--rule); background: var(--panel); |
| r2 emssr | 275 | font-size: 11px; color: var(--label); cursor: grab; |
| r2 emssr | 276 | } |
| r2 emssr | 277 | .leaf > header select.name { |
| r2 emssr | 278 | font: inherit; font-size: 11px; font-weight: 600; color: var(--ink); |
| r2 emssr | 279 | border: 1px solid transparent; background: none; padding: 1px 2px; |
| r2 emssr | 280 | } |
| r2 emssr | 281 | .leaf > header select.name:hover { border-color: var(--ring); } |
| r2 emssr | 282 | .leaf > header .sp { margin-left: auto; } |
| r2 emssr | 283 | .leaf > header button { |
| r2 emssr | 284 | font-size: 11px; line-height: 1.2; padding: 1px 5px; |
| r2 emssr | 285 | border-color: transparent; color: var(--axis); |
| r2 emssr | 286 | } |
| r2 emssr | 287 | .leaf > header button:hover { border-color: var(--ring); color: var(--ink); } |
| r2 emssr | 288 | .leaf > header button:disabled { opacity: .3; cursor: default; } |
| r2 emssr | 289 | .leaf > .body { flex: 1; overflow: auto; padding: 11px 13px 26px; min-width: 0; } |
| r2 emssr | 290 | |
| r2 emssr | 291 | .dropmark { |
| r2 emssr | 292 | position: absolute; background: rgba(29, 78, 216, .16); |
| r2 emssr | 293 | border: 1px solid var(--mark); pointer-events: none; z-index: 5; |
| r2 emssr | 294 | } |
| r2 emssr | 295 | |
| r2 emssr | 296 | /* ===== scope の中身 ===== */ |
| r2 emssr | 297 | |
| r2 emssr | 298 | .scopebox { margin: 0 0 18px; } |
| r2 emssr | 299 | .scopebox h2 { font-size: 12px; margin: 0 0 3px; font-weight: 650; letter-spacing: .03em; } |
| r2 emssr | 300 | .scopebox svg, .leaf svg, .solobody svg { display: block; max-width: 100%; height: auto; } |
| r2 emssr | 301 | .scopebox table { font-family: var(--mono); } |
| r2 emssr | 302 | .empty { color: var(--axis); } |
| r2 emssr | 303 | |
| r2 emssr | 304 | svg text { font-family: var(--mono); fill: var(--label); } |
| r2 emssr | 305 | svg .lab { fill: var(--ink); } |
| r2 emssr | 306 | svg .wire { stroke: var(--axis); stroke-width: 1; fill: none; } |
| r2 emssr | 307 | svg .edge { stroke: var(--ring); stroke-width: 1; fill: none; } |
| r2 emssr | 308 | svg .box { fill: var(--bg); stroke: var(--axis); stroke-width: 1; } |
| r2 emssr | 309 | svg .axis { stroke: var(--axis); stroke-width: 1; } |
| r2 emssr | 310 | svg .grid { stroke: var(--ring); stroke-width: .7; } |
| r2 emssr | 311 | |
| r2 emssr | 312 | /* ===== 単独ウィンドウ ===== */ |
| r2 emssr | 313 | |
| r2 emssr | 314 | body[data-mode="solo"] #solo { display: flex; flex-direction: column; height: calc(100% - 34px); } |
| r2 emssr | 315 | #soloHead { |
| r2 emssr | 316 | padding: 6px 14px; border-bottom: 1px solid var(--rule); |
| r2 emssr | 317 | background: var(--panel); font-size: 11.5px; color: var(--label); |
| r2 emssr | 318 | } |
| r2 emssr | 319 | |
| r2 emssr | 320 | /* ===== 起動 ===== */ |
| r2 emssr | 321 | |
| r2 emssr | 322 | #boot { position: fixed; inset: 0; background: var(--bg); display: flex; |
| r2 emssr | 323 | align-items: center; justify-content: center; z-index: 40; } |
| r2 emssr | 324 | #boot.done { display: none; } |
| r2 emssr | 325 | .bootbox { width: 460px; } |
| r2 emssr | 326 | .bootbox h1 { font-size: 16px; margin: 0 0 6px; font-weight: 650; } |
| r2 emssr | 327 | .bootbox p { color: var(--label); margin: 0 0 12px; } |
| r2 emssr | 328 | #bootlog { font-family: var(--mono); font-size: 11.5px; color: var(--axis); |
| r2 emssr | 329 | margin: 0; padding-left: 18px; } |
| r2 emssr | 330 | #bootlog li.ok { color: var(--label); } |
| r2 emssr | 331 | #bootlog li.bad { color: var(--te); } |
| r2 emssr | 332 | |
| r2 emssr | 333 | /* ===== 説明セルの Markdown ===== |
| r2 emssr | 334 | 見出しから表まで、紙の技術文書の組み方に寄せる。 */ |
| r2 emssr | 335 | |
| r2 emssr | 336 | .md > :first-child { margin-top: 0; } |
| r2 emssr | 337 | .md > :last-child { margin-bottom: 0; } |
| r2 emssr | 338 | .md p { margin: 0 0 8px; } |
| r2 emssr | 339 | .md h1, .md h2, .md h3, .md h4, .md h5, .md h6 { |
| r2 emssr | 340 | color: var(--ink); font-weight: 650; line-height: 1.4; |
| r2 emssr | 341 | margin: 16px 0 6px; |
| r2 emssr | 342 | } |
| r2 emssr | 343 | .md h1 { font-size: 17px; padding-bottom: 4px; border-bottom: 1px solid var(--rule); } |
| r2 emssr | 344 | .md h2 { font-size: 15px; padding-bottom: 3px; border-bottom: 1px solid var(--rule); } |
| r2 emssr | 345 | .md h3 { font-size: 13.5px; } |
| r2 emssr | 346 | .md h4, .md h5, .md h6 { font-size: 12.5px; } |
| r2 emssr | 347 | .md ul, .md ol { margin: 0 0 8px; padding-left: 1.5em; } |
| r2 emssr | 348 | .md li { margin: 1px 0; } |
| r2 emssr | 349 | .md li > p { margin: 0 0 4px; } |
| r2 emssr | 350 | .md blockquote { |
| r2 emssr | 351 | margin: 8px 0; padding: 2px 0 2px 12px; |
| r2 emssr | 352 | border-left: 3px solid var(--ring); color: var(--label); |
| r2 emssr | 353 | } |
| r2 emssr | 354 | .md hr { border: 0; border-top: 1px solid var(--rule); margin: 14px 0; } |
| r2 emssr | 355 | .md a { color: var(--mark); } |
| r2 emssr | 356 | .md code { |
| r2 emssr | 357 | font-family: var(--mono); font-size: 92%; |
| r2 emssr | 358 | background: var(--panel); border: 1px solid var(--rule); padding: 0 3px; |
| r2 emssr | 359 | } |
| r2 emssr | 360 | .md pre { |
| r2 emssr | 361 | margin: 8px 0; padding: 8px 10px; overflow-x: auto; |
| r2 emssr | 362 | background: var(--panel); border: 1px solid var(--rule); |
| r2 emssr | 363 | } |
| r2 emssr | 364 | .md pre code { background: none; border: 0; padding: 0; font-size: 12px; line-height: 1.55; } |
| r2 emssr | 365 | .md table { border-collapse: collapse; margin: 8px 0; font-size: 12px; } |
| r2 emssr | 366 | .md th, .md td { border: 1px solid var(--rule); padding: 3px 9px; text-align: left; } |
| r2 emssr | 367 | .md th { background: var(--panel); font-weight: 600; color: var(--label); } |
| r2 emssr | 368 | .md img, .md video, .md audio, .md svg { display: block; max-width: 100%; margin: 8px 0; } |
| r2 emssr | 369 | .md figure { margin: 10px 0; } |
| r2 emssr | 370 | .md figcaption { font-size: 11.5px; color: var(--axis); margin-top: 3px; } |
| r2 emssr | 371 | .md kbd { |
| r2 emssr | 372 | font-family: var(--mono); font-size: 91%; padding: 0 4px; |
| r2 emssr | 373 | border: 1px solid var(--ring); border-bottom-width: 2px; |
| r2 emssr | 374 | } |
| r2 emssr | 375 | .md details { margin: 8px 0; } |
| r2 emssr | 376 | .md details > summary { cursor: pointer; color: var(--label); } |
| r2 emssr | 377 | .md sup, .md sub { font-size: 78%; } |
| r2 emssr | 378 | |
| r2 emssr | 379 | /* 数式。行の中と別行で字送りを変える */ |
| r2 emssr | 380 | .md .katex { font-size: 1.04em; } |
| r2 emssr | 381 | .md .katex-display { margin: 10px 0; overflow-x: auto; overflow-y: hidden; padding: 2px 0; } |
| r2 emssr | 382 | |
| r2 emssr | 383 | /* 書きながら見る欄 */ |
| r2 emssr | 384 | .livepreview { |
| r2 emssr | 385 | margin: 4px 0 10px; padding: 8px 10px; |
| r2 emssr | 386 | border: 1px dashed var(--ring); background: var(--panel); |
| r2 emssr | 387 | color: var(--label); max-height: 44vh; overflow: auto; |
| r2 emssr | 388 | } |
| r2 emssr | 389 | .cell .livepreview { margin: 4px 10px 10px; } |
| r2 emssr | 390 | textarea.over { outline: 2px solid var(--mark); outline-offset: -2px; } |