トップ / 使い方 / 素材を作って配る / コメントスキン

コメントスキンを作る

コメント欄の見た目を、CSS 1枚で変える素材です。使う人は〔配信画面一括設定〕の〔コメント表示〕でスキンを選び、 あなたが用意した「つまみ」で色や形を変えられます。

見本のカードを落とす(sample-card.zip・9 KB)

入れるもの

必ず入れるものskin.css
入れてよいファイル.css .json .png .jpg .jpeg .webp .gif .svg .woff .woff2(ほかの種類が入っていると断ります)
フォルダフォルダは使えません(ファイルは meta.json と同じ場所に置く)
大きさ1ファイル 8 MB まで・合計 24 MB まで・60 ファイルまで

skin.css は配信画面に読み込まれ、下の要素に当たります。同じ zip に入れた絵(png など)やフォント(woff2 など)は、 url(mark.png) のようにファイル名だけで指せます。

当てられる要素

コメント1件は、次の要素でできています。状態(配信者・初見・投げ銭など)は、行の data- で分かります。

セレクタ何か
.commentコメント1件(行)。いちばん外側
.comment-youtubeサービスごとのクラス(comment-<サービス>。youtube・twitch・tiktok など)
.comment[data-service="youtube"]サービスの名前(data-service)
.comment[data-user]表示名(data-user)
.comment[data-userid]アカウントの ID(data-userid)
.comment[data-first="true"]初めてコメントした人(data-first が "true"/"false")
.comment[data-owner="true"]配信者本人(data-owner が "true"/"false")
.comment[data-moderator]モデレーター(data-moderator が "true"/"false")
.comment[data-member]メンバー・サブスク(data-member が "true"/"false")
.comment[data-hasgift="true"]投げ銭・ギフト・スタンプ・ポイントの付いた行(data-hasgift)
.comment .comment-icon img.comment-imgアイコンの画像(アイコンを出さない設定のときは .comment-icon ごと作られない)
.comment .comment-body名前と本文をまとめた箱
.comment .comment-name名前の行(バッジ・印もこの中)
.comment .comment-name .nm-text名前の文字
.comment .comment-name .bd.first「初見」の印(色は利用者が決める。スキンで決め打ちにしない)
.comment .comment-block本文の吹き出し
.comment .comment-block .comment-text本文の文字
.comment .comment-block img.em絵文字・エモートの画像(本文のうしろ)
.comment.comment-gift投げ銭・ギフトの行(行そのものに comment-gift が付く)
.comment.comment-gift[data-kind="SuperChat"]贈り物の種類(data-kind。SuperChat・Bits・Membership など)
.comment.comment-gift[data-amount]金額(data-amount)と通貨(data-currency)
.comment.comment-gift .gift-head投げ銭の行の見出し(名前と金額)
.comment.comment-gift .gift-amount金額の文字(本文が無いときは吹き出しの中に入る)
時刻の要素はありません
コメント1件の中に、時刻を出す要素は作られません。

配信画面が渡す変数

利用者がコメント表示の設定で決めた値です。スキンの中で使えます(同じ名前を自分で決めないでください)。

変数何か
--fs本文の文字の大きさ(px)
--nms名前の文字の大きさ(px)
--avsアイコンの大きさ(px)
--fontコメント表示で選んだ書体
--first-color「初見」の印の色

つまみ(params)

meta.json の params に書くと、コメント表示の設定(スキンを選んだ下)にその欄が出ます。key は -- で始まる CSS の変数名で、 利用者が動かした値がその変数に入ります。動かすまでは何も入らないので、既定の値は skin.css の :root に書いておきます。

type出る欄変数に入る値
color色を選ぶ欄色(#1f2a44 の形)
rangeすべり台(min・max・step。unit は欄の横に出るだけ)単位の無い数。CSS では calc(var(--x) * 1px) のように単位を掛ける
select選ぶ欄(options の label が並ぶ)選んだ value がそのまま入る(CSS の値をそのまま書ける)
font書体を選ぶ欄(利用者が取り込んだフォント)書体の名前。見本のように --skin-font を使う
text文字の欄打った文字がそのまま入る

label(と英語の labelEn)が欄の名前になります。presets は「色の見本」です。押すと、そこに書いた変数の値がまとめて入ります。値は "#fff0f4" のように文字で書いてください。

見本

次の見本は、もりあげログで実際に入れて、配信画面に描かれることを確かめたものです。これを土台に作り始めるのがおすすめです。

見本のカードを落とす(sample-card.zip・9 KB)

meta.json

{
  "format": 1,
  "kind": "comment-skin",
  "id": "sample-card",
  "name": "見本のカード",
  "nameEn": "Sample Card",
  "version": "1.0.0",
  "author": "Lino Labs",
  "license": {
    "text": "作り方の見本です。改変も再配布も自由です。ご自分の素材の土台にしてください。",
    "url": "https://lino-labs.com/docs/creators/"
  },
  "description": "左に線の入った、四角いカード。色・角の丸み・影・書体を変えられます。",
  "descriptionEn": "A square card with a line on the left. You can change the colours, corner radius, shadow and font.",
  "tags": ["見本", "シンプル"],
  "tagsEn": ["Sample", "Simple"],
  "params": [
    { "key": "--card-bg", "type": "color", "label": "カードの色", "labelEn": "Card colour", "default": "#1f2a44" },
    { "key": "--card-accent", "type": "color", "label": "線と名前の色", "labelEn": "Line and name colour", "default": "#9fe1cb" },
    { "key": "--card-radius", "type": "range", "label": "角の丸み", "labelEn": "Corner radius", "min": 0, "max": 24, "step": 1, "unit": "px", "default": 10 },
    { "key": "--card-shadow", "type": "select", "label": "影", "labelEn": "Shadow", "default": "none",
      "options": [
        { "value": "none", "label": "なし", "labelEn": "None" },
        { "value": "0 4px 14px rgba(0,0,0,.45)", "label": "あり", "labelEn": "On" }
      ] },
    { "key": "--skin-font", "type": "font", "label": "書体", "labelEn": "Font" }
  ],
  "presets": [
    { "name": "夜", "nameEn": "Night", "--card-bg": "#1f2a44", "--card-accent": "#9fe1cb" },
    { "name": "桜", "nameEn": "Sakura", "--card-bg": "#fff0f4", "--card-accent": "#e86a92" }
  ]
}

skin.css(あなたが書く部分)

/* 見本のカード(コメントスキンの作り方の見本・https://lino-labs.com/docs/creators/comment-skin/)
   配る skin.css は、この中身のうしろに「どのスキンにも要る土台」(build/skins/_common.css)を貼ったもの。 */

/* つまみの既定の値。つまみを動かすまでは、ここの値が使われる */
:root{
  --card-bg:#1f2a44;
  --card-accent:#9fe1cb;
  --card-radius:10;
  --card-shadow:none;
  --skin-font-fallback:"Yu Gothic UI","Hiragino Kaku Gothic ProN",sans-serif;
}

/* 1件のコメント。アイコンと中身を横に並べる */
.comment{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:6px 0;
  font-family:var(--skin-font, var(--font, var(--skin-font-fallback)));
}
.comment .comment-icon img{
  width:var(--avs, 36px);
  height:var(--avs, 36px);
  border-radius:50%;
}

/* 名前 */
.comment .comment-name{
  color:var(--card-accent);
  font-size:calc(var(--nms, 14px) * 1);
  font-weight:700;
  margin-bottom:2px;
}

/* 本文のカード。角の丸みは単位の無い数で届くので、1px を掛ける */
.comment .comment-block{
  background:var(--card-bg);
  color:#ffffff;
  border-left:4px solid var(--card-accent);
  border-radius:calc(var(--card-radius) * 1px);
  box-shadow:var(--card-shadow);
  padding:8px 12px;
  font-size:var(--fs, 18px);
  line-height:1.5;
}

/* 同じ zip に入れた絵は、ファイル名だけで指せる(skin.css と同じ場所から読まれる) */
.comment .comment-block{ position:relative; }
.comment .comment-block::after{
  content:"";
  position:absolute;
  right:6px;
  top:6px;
  width:10px;
  height:10px;
  background:url(mark.png) center/contain no-repeat;
}

/* 配信者・モデレーター・初見(状態は行の data- で分かる) */
.comment[data-owner="true"] .comment-name::after{ content:" ★"; }
.comment[data-moderator="true"] .comment-name::after{ content:" 🔧"; }
.comment[data-first="true"] .comment-block{ border-left-color:var(--first-color, #1ecf73); }

/* 投げ銭・ギフトの行(行に comment-gift が付く。金額は .gift-amount) */
.comment.comment-gift .comment-block{
  background:linear-gradient(135deg, #f6c445, #f08a24);
  color:#2a1600;
  border-left-color:#ffffff;
}
.comment.comment-gift .gift-amount{
  margin-left:.5em;
  font-weight:800;
}
skin.css の後ろに「土台」が付いています
zip の中の skin.css は、上の内容のあとに、どのスキンにも要る土台(バッジ・初見の印・絵文字の大きさ・本体の見た目の打ち消し)を貼ったものです。 自分で作るときも、見本の zip の skin.css から土台の部分を残してください。