Skip to content

Commit fac9803

Browse files
committed
ヘッダー行を pre と一体化し、出力欄に「実行結果」タブを付ける
- ツールバー行が白い帯として浮き、コードの上の隙間が広く見えていた ため、pre と同じ背景色を与えてコードブロックと一体のヘッダー行に する。ヘッダーが上の余白を兼ねるので、直後の pre の上 padding は 0.25em に抑える - RUN の出力欄のヘッダーが入力欄の枠に貼り付いて見えていたため、 境に 2px の白を挟んで区切る - 出力欄だとわかるように、出力欄ヘッダーの左端へ caption と同じ タブ様式の「実行結果」ラベルを付ける
1 parent a9b9397 commit fac9803

2 files changed

Lines changed: 20 additions & 9 deletions

File tree

theme/default/js/run.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,20 +138,24 @@ function setupBlock(pre, runner) {
138138
output = document.createElement('pre')
139139
output.className = 'highlight__run-output'
140140
output.setAttribute('aria-live', 'polite')
141-
// COPY ボタン(先頭)を残したまま本文を書き換えられるように、
142-
// 出力テキストは専用のテキストノードに持つ
141+
// 出力テキストは専用のテキストノードに持つ(丸ごと差し替えられる)
143142
outputTextNode = document.createTextNode('')
144143
output.appendChild(outputTextNode)
145144
pre.after(output)
146145
// 実行結果もコピーできるようにする(script.js の公開フック)。
147146
// 出力は実行のたびに変わるので、クリック時のテキストを渡す
148147
if (window.ruremaAddCopyButton) {
149148
window.ruremaAddCopyButton(output, () => outputTextNode.data)
150-
// 出力欄のツールバーと出力欄は、入力欄の pre に密着させて
151-
// 1つのブロックに見せる(pre 下マージンとツールバー上マージンを消す)
149+
// 出力欄のヘッダー行と出力欄は、入力欄の pre に密着させて
150+
// 1つのブロックに見せる(境の 2px の白は CSS 側)。左端には
151+
// 出力欄だとわかるように「実行結果」のタブを付ける
152152
const outToolbar = output.previousElementSibling
153153
if (outToolbar && outToolbar.classList.contains('highlight__toolbar')) {
154154
outToolbar.classList.add('highlight__toolbar--attached')
155+
const label = document.createElement('span')
156+
label.className = 'caption'
157+
label.textContent = '実行結果'
158+
outToolbar.insertBefore(label, outToolbar.firstChild)
155159
pre.classList.add('highlight--with-output')
156160
}
157161
}

theme/default/style.css

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,23 +138,30 @@ pre {
138138
}
139139

140140

141-
/* pre の直前に密着するツールバー行(script.js が生成)。
142-
左端に caption のタブ、右端に RUN/COPY のボタン群を置く */
141+
/* pre の直前に密着するヘッダー行(script.js が生成)。pre と同じ背景色で
142+
コードブロックと一体に見せる(白い帯として浮くと、コードの上の隙間が
143+
広く見える)。左端に caption のタブ、右端に RUN/COPY のボタン群を置く */
143144
.highlight__toolbar {
144145
display: flex;
145146
align-items: flex-end;
146147
margin: 1em 0 0;
148+
padding: 0.25em 0.25em 0 0.25em;
149+
background-color: #f2f2f2;
147150
}
148151
.highlight__toolbar + pre {
149152
margin-top: 0;
153+
/* ヘッダー行が上の余白を兼ねるので、上 padding は控えめにする */
154+
padding-top: 0.25em;
150155
}
151-
/* RUN の出力欄: 入力欄の pre と出力欄(ツールバー+pre)を密着させて
152-
1つのブロックに見せる(js/run.js が付与) */
156+
/* RUN の出力欄: 入力欄の pre と出力欄(ヘッダー行+pre)を密着させて
157+
1つのブロックに見せる(js/run.js が付与)。境には 2px だけ白を挟み、
158+
出力欄のヘッダー(「実行結果」タブ+COPY)が入力欄の枠に貼り付いて
159+
見えないよう区切る */
153160
.highlight--with-output {
154161
margin-bottom: 0;
155162
}
156163
.highlight__toolbar--attached {
157-
margin-top: 0;
164+
margin-top: 2px;
158165
}
159166

160167
/* ツールバー右端のボタン置き場。ボタン間の隙間のカーソル形状と

0 commit comments

Comments
 (0)