SWELLのアイコン付きBOXは色や大きさを変える事はできますが、アイコンが変えられなかった。
調べても出てこなかったので、自作する事にしました。
とは言え、この見せ方も良いと思いましたので、かなりSWELL寄りにカスタマイズしてみました。
CSSでの設定なのでSWELLだけでなく、他のテーマでも使用できると思います。
SWELLのアイコン付きBOX
SWELLのアイコン付きBOXはディフォルトで以下のようなもの揃っています。
SWELLのアイコン付きBOXの種類
これらのアイコン付きBOXは、テキストの色や大きさ、背景色などは変更可能です。
ただ、どうしてもアイコンを変えたり、この他の使用にするのが分かりませんでした。
そこで、自作してみようと思った次第です。
自作のアイコン付きBOX
当サイトでは「fontawesome」を使用していません。
軽量化の為に、使用しないフォントを読み込むのを防いでいるからです。
しかし、一部で使用したい事もありますので、その場合は各ページで読み込むようにしています。
ただ、今回の場合は、ほとんど全ページで使用するものなので、アイコンに関してはSVGを当て込んでいます。
SVGのアイコンを使用する事で、fontawesomeからJSを読み込む必要はありません。
更に、サーバー内に置いたとしてもJSを使用するので結局は同じ事になります。
その為、頻繁に表示させる「アイコン付きBOX」で使用するアイコンはSVGで使用する事にしました。
自作のアイコン付きBOX見本
以下がカスタマイズしたSWELL風アイコン付きBOXです。
当サイトで使用するものは限られていますが、元々はメインのサイト用に作成しました。
いずれもアイコンはSWELLのアイコンより小さめに作っています。
スマホで展開した時にあまり大きくても野暮ったいかも?と思ったので小さめです。
PCとタブレット・スマホと出し分けても良かったのですが、そこまでする必要もないと思い現在この大きさです。
自作のアイコン付きBOX作成方法
私の備忘録も兼ねて
ここでは、カスタマイズしたアイコン付きBOXのCSSへの記載及び呼び出しコードを記載しておきます。
自作のアイコン付きBOX作成の手順
まずは順を追って解説いたします。
fontawesomeで使用するアイコンをSVGでダウンロードします。
アイコンの右上などにコードのコピーやダウンロードのアイコンがあるはずです。
ダウンロードしたSVGのアイコンをアップロードします。
通常のメディアアップロードと同じです。
ただし、SVGがアップロードできる環境でない場合は、プラグインが必要です。
「Safe SVG」などのプラグインを使用するとアップロードできます。
作成したCSSコードは、追加CSSなどに記載します。
呼び出しコードはページ内でカスタムHTML内に記載します。
CSSコード
CSSコードは少し特徴があります。
それはダウンロードした画像のURLを記載しなければならない事。
/* =================================
SWELL風 アイコン付きボックス(枠線なし版)
================================= */
.◯◯◯◯◯◯◯◯◯◯ {
position: relative;
padding: 1em 1.2em 1em 4.5em;
margin: 1.4em 0;
border-radius: 6px;
font-size: 0.95em;
line-height: 1.8;
/* 周囲のボーダーを削除 */
border: none !important;
background: #f7f7f7;
}
/* ===== アイコン配置(共通設定) ===== */
.◯◯◯◯◯◯◯◯◯◯::before {
content: "" !important;
position: absolute !important;
top: 50% !important;
left: 1.8em !important;
transform: translate(-50%, -50%) !important;
width: 1.6em !important;
height: 1.6em !important;
-webkit-mask-repeat: no-repeat !important;
mask-repeat: no-repeat !important;
-webkit-mask-position: center !important;
mask-position: center !important;
-webkit-mask-size: contain !important;
mask-size: contain !important;
display: block !important;
z-index: 2 !important;
}
/* ===== 縦ボーダー(アイコン横の線は維持) ===== */
.◯◯◯◯◯◯◯◯◯◯:after {
content: "" !important;
position: absolute !important;
top: 12% !important;
bottom: 12% !important;
left: 3.4em !important;
width: 1px !important;
opacity: 0.3 !important;
display: block !important;
}コード内の「◯◯◯◯◯◯◯◯◯◯」に好きな名称を英数字で記入。
現在の大きさで左端とボーダーのセンターに表示するようにしています。
大きさを変えたい場合は微調整が必要です
各アイコン付きBOXの記載
/* ===============================
info
=============================== */
.◯◯◯◯◯◯◯◯◯◯.is-info {
background: #edf3ff !important;
border-color: #5A79BA !important;
}
.swell-like-box.is-info::before {
-webkit-mask-image: url("●●●●●●●●●●●●●") !important;
mask-image: url("●●●●●●●●●●●●●) !important;
background-color: #5A79BA !important;
}
.◯◯◯◯◯◯◯◯◯◯.is-info::after {
background: #5A79BA !important;
}コード内の「◯◯◯◯◯◯◯◯◯◯」は同じ名称を記入。
「.◯◯◯◯◯◯◯◯◯◯.is-info」の「is-info」も好きなものに変更します。
ここでは「is-info」にしていますが単純に「info」だけでも良い。
「●●●●●●●●●●●●●」にはSVGのURLが入ります。
メディアからSVGのURLをコピーしてペーストします。
その他は色の変更のみです。「#5A79BA」を好きな色に変更します。
呼び出しコード
各アイコン付きBOXの呼び出しコードは下記になります。
カスタムHTML内に記載します。
<div class="◯◯◯◯◯◯◯◯◯◯">
<strong>内容をここに書きます。</strong>
</div>私の呼び出しコードは
<div class=”swell-like-box is-good“>なら「swell-like-box is-good」という名前にしています。
「◯◯◯◯◯◯◯◯◯◯」の部分ですが、ここは好きに自作します。
記載文字を太くしない場合は「<strong></strong>」を消せば良いだけ。
改行する時は「<br>」を記入します。
ただ、難点はカスタムHTMLに記載しないとダメです。
エディター画面で表示する事も可能ですが、SWELLの中をいじる事になるのでやめました。
オリジナルのファイルを作っても良いのですが、エディターの画面が崩れる事もあるので我慢。
自作アイコン付きBOXのメリット・デメリット
自作のアイコン付きBOXにはメリットもデメリットもあります。
自作アイコン付きBOXのメリット
- 自作のアイコン付きBOXのメリットは、好きなアイコンとカラーを自由に作成できる事です。
- fontawesomeを使用していますが、外部からの読み込みが必要ないので、表示にストレスが無い。
- SVGを使用しているので軽量化できる。
上記の事がメリットとして挙げられます。
自作アイコン付きBOXのデメリット
- カスタムHTMLへの記載なので、エディターではカラーなどが確認できない。
- <strong></strong>・<br>などのコード挿入が必要だと、執筆時手間が掛かる。
上記の事がデメリットとして挙げられます。
自作アイコン付きBOX まとめ
SWELLで事足りるようであれば必要はありませんね。
この自作のアイコン付きBOXは、テーマがSWELLである必要はないので、どのテーマでも使用できるはずです。
ただ、SWELLに寄せてみたというだけですので、このようなアイコン付きBOXは探せばいくらでも出てきます。
アイコンをSVGにしているという点が特殊ではあるような気がします。
fontawesomeを読み込まないという点で、かなり軽量化できています。
