Webデザイナーに最適なノートPCの選び方 2022

WebデザイナーにとってPCは必要不可欠ですが、PCを購入する際どれくらいのスペックが必要なのかわからないという方も多いと思うので、PCの選び方について紹介していこうと思います。

1. WebデザイナーがPCを選ぶ際に重要なこと

Webデザイナーは、Adobeソフトを使用してデザインをしたりコードエディタツールを使用してコーディングをしていきます。また、NumbersやExcelでスケジュール管理や見積書作成も行います。
コミュニケーションツールにおいては、MessengerSlackなどを使用しますし、Backlog等でタスク管理も行います。

デザイナーはツールを同時に開きながら作業することが多いので、適切な「メモリ」が搭載されているPCを選ぶことが重要です。

2. メモリとは

メモリとはデータを記憶する部品のことです。一般的にはRAM(Random Access Memory)と呼ばれ、作業用のメインメモリ(主記憶装置)のことを指します。
前述した通り、Webデザイナーは色々なツールを同時に開いて作業しています。そのため作業するスペースを十分に確保することが必要です。

 

Macの場合、メモリは後から追加することができないので購入の際は必要な容量をしっかり考えましょう。

3. ストレージとは

ストレージとはパソコンのデータを保存しておく記憶領域のことです。
デザインデータやコーディングデータをPC保存する際に必要なものです。Macの場合、画面左上にあるAppleメニューから「このMacについて > ストレージ」を見ると自分のPCのストレージ容量と空き具合を確認することができます。

 

ストレージに関してはPCを買う際に小さい容量で買ってしまったとしても、USBメモリ等を使用してPC外にデータを保存することができます。ストレージについては下記の2種類がありますので、もし保存容量が足りないと感じた時は用途に応じて購入を検討してみましょう。

3-1. SSD

SSDはSolid State Drive(ソリッド・ステート・ドライブ)の略で、内蔵しているメモリーチップにデータの読み書きをする記憶装置です。データを保存できる容量はHHDに比べ少ないですが、処理が高速かつコンパクトなデザインが多いので持ち運びに便利でデータの出し入れを頻繁にする普段使いに向いています。

3-2. HDD

HDDはHard Disk Drive(ハード・ディスク・ドライブ)の略です。
保存できる容量は大きいですが、処理に時間がかかるためタイムマシーンなどバックアップ用に使用するのに向いています。SSDに比べ容量に対して価格が安いため、大容量のデータを扱うのに適しています。

4. 快適に作業ができるメモリとストレージ容量

Webデザイナーの仕事において、Adobeソフトを使用する際が一番PCに負荷がかかります。
メモリとストレージについてそれぞれ見ていきましょう。

4-1. メモリの推奨容量

Adobeツール(Illustrator,Photoshop等)のメモリの推奨は16GB以上です。
最低でも8GBは必要とのことですが使用感としては8GBだとかなり動作が重く作業がなかなかできないので、私は16GBをおすすめします。容量が大きくなるほど動作を快適にしたり、一度に多くの作業を実行できます。

4-2. ストレージの推奨容量

ソフトをインストールするのにIllustratorは最低でも2GBが必要で、Photoshopは4GBが必要です。
Adobeの公式サイトでは、ストレージの推奨は16GB以上となっています。
PCに搭載されているストレージは256GB以上だと思うのでどのPCを選んでも大丈夫でしょう。

5. おすすめノートPC

 

低予算で考えている場合は1〜4で記載したことを踏まえると、Mac book Air(M1)をおすすめします。
カスタマイズは「メモリ:16GB、ストレージ:512GB」がいいでしょう。
2022年6月現在の値段は190,800円なので、20万円以下で購入が可能です。

 

2022年6月にM2搭載のMac book Airが発表されましたが、カスタマイズすると値段が高くなるのでスペックだけを考えるとM1でも問題ないと思います。

 

もちろんAirよりもMac book Proのほうがスペックは高いので、予算に余裕がある方はMac book Proを選択するのがよいでしょう。また、大きい画面サイズが選べるのでより大きな画面で作業したい方もMac book Proをおすすめします。

おわりに

今回はPCの選び方について紹介しましたが、いかがでしたでしょうか。
PC選びは必要とするスペックで迷いがちなので、この記事を少しでも参考にしていただけたら幸いです。

複数のWebアプリ、チャットツールを一元管理する方法【Ferdi】

みなさんは普段Messengerやchatwork、slackなどのチャットツールは使用していますか?
Web業界では当たり前のように利用されているチャットツールですが、便利な一方、サービスの数が増えれば増えるほどブラウザのタブを開いておく必要があります。
大量のタブの中から特定のサービスを探して切り替えて使用する、となると便利なサービスと言えども本末転倒かと思います。
今回は、大量のタブ問題を解決してくれる便利なWebアプリ「Ferdi」を紹介しようと思います。

1. Ferdiとは

Ferdiとは、複数のチャットツールやその他Webアプリを一括して管理することができるアプリケーションです。
現在は300種類以上のツールを管理することができ、もし自分が管理したいツールがない場合は、「カスタムWebサイト」というサービスを使用して任意のWebサイトを追加することもできます。
もちろん利用は無料で、ソースコードもGithubで公開されています。
公式サイト:Ferdi

2. Ferdiのインストール方法

ダウンロードページよりお使いのOSを選択しダウンロードしてください。
もしHomebrewを使用できる環境があるなら、コマンドラインツールでのインストールが手軽なのでオススメです。

3. Ferdiの使い方

Ferdiでのアカウント作成は任意です。ただしアカウントを作成すれば、登録したツールとアカウントが紐づくため、デバイス間でサービスを同期することができます。必要であればアカウントを作成してください。
 
アプリを立ち上げると下記の画面が表示されます。
まずは言語設定から行いましょう。

3-1. Ferdiの日本語化

画面左下の歯車アイコンをクリックしてください。

英語の設定画面が表示されるので、上部の「Langage」ボタンをクリックしタブを切り替えると言語選択画面に遷移します。
スクロールボックス内から「日本語」を選択することで日本語化が完了します。

3-2. ツールの登録

日本語化が完了したら、実際にツールを登録して管理してみましょう。
 
画面左のプラスアイコンをクリックしてください。

ツール一覧画面が表示されますので、任意のツールを選択しましょう。
今回はMessengerを選択します。
「サービスを検索」から探すことも可能ですので、管理したいツールがない場合は一度検索してみましょう。

ツールを選択すると詳細設定画面が表示されるので、自分好みの設定を行ってください。これは後で変更することも可能です。
設定が完了したら「サービスの保存」をクリックしてください。

今回はMessengerを追加しましたのでMessengerのログイン画面が表示されます。
ログイン情報を入力しログインすることで普段と変わることなく使用できます。

同様の手順で他のツールを追加すると、左側のタブに追加されます。
各ツールのアイコンをクリックすることで即座に切り替えることができますので、普段使用しているツールをどんどん追加していきましょう。

3-3. 登録したいツールがない場合

300種類以上のツールが管理できるFerdiですが、もちろんサポートしていないツールも存在します。
そんな時は「Custom Website」を使用しましょう。
登録方法は先ほどと同様に、画面左のプラスアイコンからツール一覧を表示し、検索窓に「custom」と入力します。
すると「Custom Website」が表示されるのでアイコンをクリックします。

詳細設定画面が表示されますので、任意の「名前」「独自サーバー(URL)」「アイコン」を設定し「サービスの保存」をクリックします。
今回はBacklogを例に挙げます。

追加されたツールアイコンをクリックするとログイン画面が表示されますので、後はログイン情報を入力すれば完了です。

おわりに

今回はWebアプリ一元管理ツール「Ferdi」について紹介しました。
大量のブラウザを立ち上げておくことは管理も面倒ですし、何よりPCのパフォーマンスが低下します。
パフォーマンスの低下=作業効率の低下に直結しますので、管理ツールは積極的に取り入れましょう。
他にも管理ツールは存在しますが、「Ferdi」は挙動も軽くUIも分かりやすいのでぜひ利用してみてください。

【WordPress】functions.phpで不要なタグを削除しよう

DOLが抱えているサイトリニューアル案件では、WordPressのオリジナルテーマを作成することが多々あります。オリジナルテーマの作成は、まず静的なHTMLを用意してからWordPressの組み込みを行うのですが、組み込み後のソースコードを確認してみると記述した覚えのないタグがズラズラと追加されています。
 
これはWordPressの標準機能によるもので、ブログサイトとして利用する際に役立つタグを自動で追加してくれているのですが、コーポレートサイトやブランドサイトとして利用する場合はまったく不要のものだったりします。
 
不要なタグが混ざっているとソースコードが見づらくなる上に、セキュリティ的にも宜しくありません。そこで今回は「functions.php」を使用した不要なタグを削除する方法について紹介したいと思います。

1. functions.phpで削除できるタグ

1-1. WordPressのバージョン情報

<meta name="generator" content="WordPress 5.9.3" />

<meta name=”generator>は文書がどのソフトウェアで作成されたのかを示すタグです。WordPressで作成したサイトの場合、どのバージョンのWordPressで作成されたのかが自動で出力されてしまいます。WordPressの自動更新設定をONにして常に最新バージョンであればまだ良いのですが、もし古いバージョンを使用している場合、脆弱性をつかれて攻撃される恐れがあります。
 
バージョン情報はセキュリティ的にもよろしくないので削除しておきましょう。functions.phpには以下のコードを記述することで削除できます。

// WordPressバージョン情報の削除
remove_action('wp_head','wp_generator');

1-2. Windows Live Writerのマニフェストファイル

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://example.com/wp-includes/wlwmanifest.xml" />

このタグは「Windows Live Writer」というMicrosoftが提供しているブログエディタのマニフェストファイルです。このエディタを使用しない場合は不要なので削除しておきましょう。

// Windows Live Writerの削除
remove_action('wp_head', 'wlwmanifest_link');

また、それ以外の理由として「wlwmanifest.xml」というファイルは不正アクセスの要因にもなっているようです。レンタルサーバーの「Xserver」からも注意喚起のお知らせが出ていたので、セキュリティ対策の一貫としても削除しておくと良さそうです。
 
参考:WordPressの「wlwmanifest.xml」ファイルに対するアクセス制限と設定機能追加のお知らせ

1-3. 絵文字用のCSSとJavaScript

<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/xxx.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.9.3"}};
/*! This file is auto-generated */
!function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([10084,65039,8205,55357,56613],[10084,65039,8203,55357,56613])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings);
</script>
<style type="text/css">
img.wp-smiley,
img.emoji {
	display: inline !important;
	border: none !important;
	box-shadow: none !important;
	height: 1em !important;
	width: 1em !important;
	margin: 0 0.07em !important;
	vertical-align: -0.1em !important;
	background: none !important;
	padding: 0 !important;
}
</style>

<head>タグ内に長々と記述されているこのタグを初めて見た時、ビックリしますよね。これはWordPressで絵文字を表示するためのタグです。企業サイトの投稿記事で絵文字が使われることはほぼないかと思いますが、運用方針を確認した上で不要そうなら削除してしまいましょう。
 
下記の2行を追加するだけで削除することができます。

// 絵文字設定の削除
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

1-4. フィード配信

<link rel="alternate" type="application/rss+xml" title="example.com &raquo; フィード" href="https://example.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="example.com &raquo; コメントフィード" href="https://example.com/comments/feed/" />

このタグはRSSリーダーで記事の最新情報を取得する際に必要なフィード配信のリンクを表しています。サイトの運用がオウンドメディアとして集客を目的としたものであれば必要ですが、そうでない場合は不要なタグになります。下記の2行を追加して削除しておきましょう。

// フィード配信の削除
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);

1-5. RSD

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://example.com/xmlrpc.php?rsd" />

このタグは「RSD(Really Simple Discovery)」へのリンクを表しています。WordPressの記事を外部のサービスから編集する際に必要なタグですが、WordPress管理画面からのみ編集をする場合はこのタグは不要になります。下記の1行を追加して削除しておきましょう。

// RSDの削除
remove_action( 'wp_head', 'rsd_link' );

おわりに

今回はWordPressで自動追加されたタグを「functions.php」で削除する方法について紹介しました。自動追加されたタグはブログサイトとして運用するのであれば役立つものですが、それ以外での運用を目的とした場合、必ずしも必要というわけではありません。案件に応じて不要なものは削除しておきましょう。
 
ソースコードが見やすくなるだけでなくサイトの軽量化にも繋がるので、まだ何も試したことがないよという方は、ぜひ今回の記事を参考に試していただければと思います。

WordPressプラグイン「WP Mail SMTP」で最適なメール設定をしよう

Web制作の際、お問合せフォームを作成することがあると思います。
作成したお問合せフォームでお客さまが入力したメールアドレスに自動送信メールを送る際、
メールが迷惑メールに入ることはないでしょうか?

今回はその場合の対処方法についてご紹介したいと思います。

1. なぜ迷惑メールに入ってしまうのか

いろいろな理由があると思いますがそのうちの一つとして考えられる理由は、サイトで使用しているサーバーとメールサーバーが違うとメールを受信するときに偽装メールだと思われてしまい、迷惑メール扱いとなってしまうことです。

今回紹介するプラグインを使用すれば、サイトのサーバーからメールを送信するのではなく登録したメールサーバーを経由して送信する設定ができるため迷惑メールにならずに送信することができます。

2. プラグインの使い方

2-1. プラグインのインストール

公式サイト:WP Mail SMTP

 

プラグイン「新規追加」から「WP Mail SMTP」を検索します。
「今すぐインストール」をクリックします。

 

 

次に「有効化」をクリックします。

 

 

2-2. 設定方法

プラグインを「有効化」するとWordPress管理画面のサイドバーに「WP Mail SMTP」が表示されます。
そこの「設定」をクリック、下記画像の赤枠部分を入力します。

入力が完了したら「設定を保存」をクリックします。

 

2-3. メールのテスト送信

管理画面サイドバー「WP Mail SMTP」の「メール」をクリック、「メールテスト」タブを開きます。
テスト送信先のメールアドレスを入力し、「メールを送信」クリックしてテストメール送信完了です。

入力したメールアドレスに届いているかどうか確認します。迷惑メールボックスではなく受信ボックスに入っていれば設定は完了です。

 

2-4. メールのテスト確認

2-3で送信したメールを確認します。
メールに下記画像が届いていれば成功です。

 

 

おわりに

いかがでしたでしょうか。
サイトからのメールが迷惑メールとして配信されてしまうことは、会社の信用を落とすことになりかねません。お客さまにとって迷惑となりますし、ましてや気づいてもらえない可能性があるのではメールを配信する意味がありませんので、メールの設定はしっかりとするように心がけていきましょう。今回の記事が日々のWeb制作においてお役に立てれば幸いです。

Internet Explorerのサポート終了後に使えるオススメのCSS

2022年6月16日をもってMicrosoft社によるInternet Explorer(以下IE)のサポートが終了となります。2021年10月にリリースされたWindowsの最新OS「Windows 11」では、すでにIE11は無効化されておりEdgeが既定のブラウザとなっています。
 
これまでIEに対応するため使用を断念してきたCSSプロパティも、今後は利用する機会が増えてくると思います。そこで今回はIEが推奨環境から外れたら使える、オススメのCSSプロパティを紹介したいと思います。

1. オススメのCSSプロパティ

1-1. mix-blend-mode

Adobe PhotoshopやIllustratorなどのレイヤーを重ねる時に設定できる合成モード(乗算やオーバーレイ)を指定できるプロパティです。
 
コーディング案件で提供されたデザインデータを確認している時、ただの透過かと思ったら「乗算」が使われていたという経験はありませんか?「mix-blend-mode」が使えない時は複数のレイヤーを一枚画像にまとめて書き出すなど工夫が必要でしたが、今後はCSSで設定できるようになります。
 

 
メインビジュアルなどの写真の上にテキストを配置するデザインも、合成モードで一工夫をするとインパクトのある表現ができます。また、白背景付きのロゴ画像も「mix-blend-mode: darken(比較(暗)」を指定すると、切り抜いたようにロゴだけを表示させることも可能です。
 
CSSで画像加工ができるプロパティなので積極的に活用していきましょう。
 

1-2. object-fit, object-position

htmlに配置したimgやvideoタグをどのようにトリミングするか指定できるプロパティです。
 
これまで画像をトリミングしたい時は、背景画像として読み込んで background-size: cover や contain で代用することが多かったと思いますが、今後はimgタグでも指定できるようになります。また、object-positionプロパティを併用することで、トリミングする要素の表示位置を調整することも可能です。合わせて活用していきましょう。
 

 

1-3. gap

gapはflexやgridでレイアウトする際の要素間の空きを一括指定するプロパティです。これまでflexで配置した子要素の余白はnth-child()やmarginを使用して調整することが多かったと思いますが、今後はgap一つで行間・縦間を指定することができます。記述するコードが減り手間も大きく省けるのでオススメです。
 
行間・列間を個別に指定したい場合は「row-gap」「column-gap」を使用しましょう。
 

 

1-4. position: sticky;

指定した要素をスクロールに応じて固定することができるプロパティです。セクションの見出しやサイドバーなど、常に固定させると邪魔だが、一定の区間では固定表示にすると便利な要素に使用すると効果的です。
 
今まではJavaScriptでの実装が必要だった挙動を、CSSだけで完結できるようになったので、面白い活用方法を思いついたらぜひ試してみましょう。

1-5. clip-path

要素を設定した領域でクリッピング(切り抜く)することができるプロパティです。
 
今まではPhotoshopで加工した画像を用意したり、CSSで疑似要素を活用して切り抜いたりしていましたが、今後は四角形、円形、楕円形、多角形といった形状の切り取りはCSSだけで完結できるようになりました。
 
ジェネレータを活用すると、さらに複雑な形状への切り抜きが簡単に作成できるので活用してみましょう。
Clippy – CSS clip-path maker

おわりに

今回はIEのサポートが終了したら使える、便利なCSSプロパティについて紹介しました。今まで使えなかったCSSプロパティが業務で使えるようになると、これからのコーディング作業も楽しみな気持ちになってきます。今回紹介したもの以外にも使えるCSSプロパティはたくさんあるので、また次の機会にでも紹介したいと思います。

独学で色彩検定1級に合格した受験体験談

みなさんは色彩検定をご存じでしょうか?
名前の通り、色についての知識が問われる試験です。
私自身、3級の勉強からはじめて現在は1級を取得しているので今回は受験体験談を書いていこうと思います。

1. 受験のきっかけ

以前は、色の配色に迷った時は検索して調べていました。いい感じの配色があったとしてもどうしてこの色がいいのか等、しっかり言語化することができていませんでした。
そこで色について学ぼうと思い色彩検定にたどり着き、どうせなら勉強して1級まで全部取ろう!と最初から意気込み受験に至りました。

 

公式サイト:色彩検定

2. デザインワークにおいて役立つかもしれない級は2級

デザインをする上で「一番役に立つかも」と感じたのは2級です。下記に試験範囲をまとめてみましたのでご覧ください。
色の基礎知識からインテリア、ファッションまでさまざまな分野の色彩についてを学ぶので興味のない分野だと必要ないなと思うかもしれないですが、色の組み合わせや配色はどの分野においても共通するものがあります。

 

色彩検定2級の試験範囲

・色のユニバーサルデザイン

・光と色

・色の表示(マンセル表色系)

・色彩心理

・色彩調和

・配色イメージ

・ビジュアルデザイン(映像、イラスト、写真、文字などで視覚的に情報を伝達するデザイン)

・ファッション

・インテリア

・景観色彩

・慣用色名

3. 2級試験範囲の中で面白いと思った項目

色彩心理

色彩心理とは、自然の色を軸に人が色をどう見ているかや錯視による見え方の違いを学びます。
代表的な例は下記の記事にもあります「ナチュラルハーモニー(ベゾルト-ブリュッケ現象)」です。

 

Webデザインに使える配色技法 -自然に見える配色と自然に見えない配色-

 

色彩調和

色彩調和とは、配色する上での理論が学べます。
ジャッドの「色彩調和論」がありますが、類似性の原理に当てはまるのが下記の記事で紹介している「ドミナントトーン」や「カマイユ配色」です。

 

配色技法 -4パターン紹介-

 

配色イメージ

他サイトですが、こちらの記事がわかりやすくまとめてあります。
1級2次対策とありますが2級の範囲と同じです。

 

参考サイト:色彩検定1級2次の基礎知識(15) ~配色イメージ~

4. なぜ2級がおすすめ?

3級は基礎中の基礎なので、2級を勉強する前に3級を学習することは前提ですが2級では「3. 2級試験範囲の中で面白いと思った項目」にもある通り、デザイン制作をする際に使えるテクニックが学べるからです。

また、色彩検定には公式のテキストがあるので基本的にはそのテキストで勉強をしますが2級は圧倒的に写真や図が多くカラフルで見やすいので勉強が捗ります。

 

さらに、ユニバーサルデザインも学べるので色弱の方に配慮した配色が理解できるようになります。
色彩検定にはUC級(ユニバーサルデザイン級)もあり、そちらではより詳しく学習ができます。
私のおすすめは2級とUC級の併願で一気に勉強することです。実際に私は併願で受験しました!

 

各級のレベルについて詳しく知りたい方は色彩検定とは | 検定レベル(各級の目安)をご覧ください。

5. 模擬問題

「色彩検定協会」公式サイトで練習問題が見れます。
興味のある人は解いてみましょう!

おわりに

今回は色彩検定受験体験談について書きましたが、いかがでしたでしょうか。
感覚的に配色するのではなく理論的に理解ができるようになり、デザインワークにおいてとても有益な勉強になったと個人的には思います。
この記事が色彩に興味を持つきっかけとなれば幸いです。

@importから@use、@forwardへの移行で気を付けるポイント

私はSCSSでコーディングをする時はFLOCSSをベースに、リセットはreset.scss、変数やmixinはvariable.scss、基本設定はbase.scssにするなど、ファイルを分割して記述しています。分割して記述したファイルは最後にまとめる必要がありますが、それらのファイルを統合する際に使用するのが
「@import」です。
 
「@import」で分割したファイルを読み込むと、各ファイルで定義された変数やmixinはどのSCSSファイルからでも参照することができるので、一見するとお手軽で便利と思っていたのですが、この「@import」が2022年10月に廃止となるようです。
 
「@import」廃止後は「@use」「@forward」を使用することになるので、あとで慌てることがないように事前に触ってみた所、いくつか詰まるポイントがあったので、備忘録も兼ねて紹介したいと思います。

1. はじめに

1-1. @importについて

「@import」は外部のSCSSファイルを読み込むことができます。下記のFLOCSSをベースにした構成の場合、最後に一つのファイルに統合するため、style.scssに@importですべてのSCSSファイルを記述することになります。

■ foundation
├ _base.scss
├ _reset.scss
└ _variable.scss
■ layout
├ _l-container.scss
├ _l-header.scss
└ _l-footer.scss
■ object
├ component
│ └ _c-button.scss
├ project
│ └ _p-profile.scss
└ utility
@import "Foundation/reset";
@import "Foundation/variable";
@import "Foundation/base";
@import "Layout/l-header";
@import "Layout/l-footer";
…

「@import」で読み込むとvariable.scssに書いた変数を、どのファイルからでも参照できるようになるので(グローバル変数になる)、お手軽だなと思っていたのですがこれが廃止の一因でもあるそうです。
 
参考サイト:「The Module System is Launched

1つのスタイルシートで定義されたものはすべて、その後にインポートされたすべてのスタイルシートで使用できるため、特定の変数、ミックスイン、または関数(総称して「メンバー」と呼ばれる)が最初に定義された場所を特定することはほぼ不可能でした。

1-2. @useについて

@importに代わって使用することになるのが「@use」です。外部のSCSSファイルを読む込むという挙動は同じですが、読み込んだファイルの中身(変数やmixin)は、読み込み元のファイル内でしか参照することができません。@importのようにグローバル変数扱いとはならないので、variable.scssの中身を参照したい場合は、下記のように都度@useで読み込ませる必要があります。

@use "../../foundation/variable";

また、SCSSのコンパイル環境によっては、すぐに使うことができないので要注意です。特にgulpでコンパイルをしている場合は「node-sass(LibSass)」から「Dart Sass」への移行が必要になるので確認しておきましょう。GUIコンパイラの「Prepros」を使用している場合は、最初から「Dart Sass」でのコンパイルとなっているので、すぐに「@use」を使うことができます。

1-3. @forwardについて

@forwardは、@useで他ファイルから参照される際に一緒に読み込んで欲しいSCSSファイルを指定することができます。

@forward "../../foundation/reset";
@forward "../../foundation/variable";
@forward "../../foundation/base";

@useだけだと単に記述する量が増えただけで面倒そうに見えますが、@forwardを併用することで、これまで通り複数ファイルをまとめて読み込むことが可能になります。

2. 気を付けるポイント

2-1. @forwardの役割は転送

@forwardで読み込んだファイルの中身(変数やmixin)は、読み込み元のファイル内で使用することはできません。@forwardの指定はあくまで、SCSSファイルが@useで読み込まれる時に一緒に読み込む(転送してくれる)ファイルを指定したものです。
 
説明を読んで理解したつもりでも、実際に使用するとコンパイルエラーになることが多いので、@useの役割は「読み込み」、@forwardの役割は「転送」ということを意識しておきましょう。

2-2. 変数の記述

@importで読み込んだ変数を使用する時は以下のように記述していましたが、@useで読み込んだ変数を同じように記述するとエラーになってしまいます。

$color_theme_red: #ff0000;
@import "../../foundation/variable";

.c-button {
	color: $color_theme_red;
}

@importの廃止は、どこから参照しているのかをしっかり記述しましょう、という仕様変更なので、変数を扱う際にもしっかり記載元のファイルを記述する必要があります。

@use "../../foundation/variable";

.c-button {
	color: variable.$color_theme_red;
}

メディアクエリの記述をmixinで設定している場合もファイル名の記述が必要です。記述箇所を迷いやすいので、反映されない場合はしっかり確認してみましょう。

@use "../../foundation/variable";

@include variable.media(md) {
	……
} 

おわりに

今回は@importから@useへの移行で気を付けるポイントについて紹介しました。FLOCSSでコーディングをしている場合、結構大掛かりな記述の変更になるので、日頃の業務で使用されている方は早めに触れておくことをオススメします。また、Web界隈ではこのような仕様変更が度々起きるので、日頃からアンテナを張っておき、戸惑わないように対処していきましょう。

CSSでレイアウト〜Gridを使ってみよう〜

Web制作の場面において、みなさんは写真のレイアウトをする際Gridを使っていますか?
Flexでは難しいレイアウトもGridなら簡単にレイアウトをすることができます。

今回は知っておくと便利なCSS Grid Generatorを紹介しようと思います。

 

 

1. CSS Grid Generatorの使い方

1-1. 3 × 3のレイアウトの場合

1.下記URLにアクセスする。

 

 https://cssgrid-generator.netlify.app/

 

2.Columns(列)、Rows(行)にそれぞれ数値を入力する。

 

 

3.マスをドラッグアンドドロップして画像を入れるマスを決める。
 div1と表示が出てきたところに画像が入り、点線のマスに1枚ずつ画像が入る想定です。

 

 

4.Please may I have some codeボタンを押す。

 

 

5.htmlとcssに4で取得したコードを使用する。今回は.parentのコードだけを使用します。
<div class="parent">
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
</div>
.parent {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 grid-template-rows: repeat(3, 1fr);
 grid-column-gap:0px;
 grid-row-gap:0px;
}
完成サンプル

 

 

1-2. 3 × 3のレイアウト 上下左右の間隔10pxの場合

1-1の3までは同じ

4.Column Gap(左右の余白)、Row Gap(上下の余白)を入力する。

 

 

5.Please may I have some codeボタンを押す。

 

 

6.htmlとcssに5で取得したコードを使用する。今回も.parentのコードだけを使用します。
<div class="parent">
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
 <div><img src="xxx"></div>
</div>
.parent {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 grid-template-rows: repeat(3, 1fr);
 grid-column-gap:10px;
 grid-row-gap:10px;
}
完成サンプル

 

 

1-3. 複雑なレイアウトの場合

1.Columns(列)、Rows(行)にそれぞれ数値を入力し、マスをドラッグアンドドロップして画像を入れるマスを決める。

 

 

2.Please may I have some codeボタンを押す。

 

 

3.htmlとcssに2で取得したコードを使用する。
<div class="parent">
 <div class="div1"><img src="xxx"></div>
 <div class="div2"><img src="xxx"></div>
 <div class="div3"><img src="xxx"></div>
 <div class="div4"><img src="xxx"></div>
 <div class="div5"><img src="xxx"></div>
 <div class="div6"><img src="xxx"></div>
 <div class="div7"><img src="xxx"></div>
</div>
.parent {
 display: grid;

grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(4, 1fr);
grid-column-gap: 0px;
grid-row-gap: 0px; } .div1 { grid-area1 / 1 / 2 / 2; }
.div2 { grid-area1 / 2 / 2 / 3; }
.div3 { grid-area1 / 3 / 3 / 5; }
.div4 { grid-area2 / 1 / 3 / 2; }
.div5 { grid-area2 / 2 / 3 / 3; }
.div6 { grid-area3 / 1 / 5 / 3; }
.div7 { grid-area3 / 3 / 5 / 5; }
完成サンプル

 

 

おわりに

 
今回はグリッドレイアウトのコーディングに役立つCSS Grid Generatorを紹介しました。
複雑で面倒なレイアウトでも、とても簡単かつ正確にコーディングをすることができるので活用してみて下さい。 その他コーディングの際に役立つジェネレーターはこちらの記事でも紹介していますので是非参考にしてみましょう。

面倒なコーディングを手軽に実装!便利なジェネレータ4選!

Web制作の場面において、みなさんはジェネレータを使用していますか?

今回は知っておくと便利なコーディング作業を楽にするジェネレータをいくつか紹介しようと思います。

 

 

1. CSS三角形作成ツール

 

 
CSS三角形作成ツール
 

CSS三角形作成ツールはその名の通り、CSSだけで三角形を作成してくれるジェネレータです。
「方向」「タイプ」「サイズ」「色」を任意で設定し、作成されたCSSをそのままコピペするだけで三角形を表現することができます。
画像で用意するとサイズや色の修正にも一手間かかりますが、CSSならコードを書き換えるだけなので、クライアントからの微妙な修正依頼やレスポンシブデザインにも柔軟に対応することができます。
<div class="triangle"></div>
.triangle{
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 100px 100px 100px;
	border-color: transparent transparent #007bff transparent;
}

 
 

2. CSS Gradient

 

 
CSS Gradient
 
グラデーションの細かな設定を助けてくれるのが「CSS Gradient」です。
色の変化のポイントとなる点を設定し、あとは「色」「角度」などを設定すれば自動でCSSを作成してくれます。
 

<div class="gradient"></div>
.gradient{
	width: 100%;
	height: 100px;
	background: rgb(2,0,36);
	background: linear-gradient(90deg, rgba(2,0,36,1) 0%, rgba(9,9,121,1) 35%, rgba(0,212,255,1) 100%);
}

 
 

3. Table Tag Generator

 

 
Table Tag Generator
 
「Table Tag Generator」は面倒なTableレイアウトを自動で作成してくれる便利なジェネレータです。

単純なTableであればジェネレータの必要はありませんが、セルの結合(colspanやrowspan)を使用している場合は、コードが少し複雑になってきます。

意外と使用頻度がなく、理解していないと少し時間のかかってしまうTableレイアウトも「Table Tag Generator」を使えば簡単にコーディングすることができます。
 
 

4. CSS Shapes and Icons Generator

 

 
CSS Shapes and Icons Generator
 
「CSS Shapes and Icons Generator」はWeb制作においてよく使用されるアイコンをHTML、CSSのみで表示できる便利なジェネレータです。

アイコン自体を変形することは出来ないので使える場面は限られてくるかもしれませんが、アイコンに特段のこだわりがない場合には非常に便利です。

<i class='shape167'></i>
.shape167{
	display:inline-block!important;
	position:relative;
	width:30px;
	height:30px;
	background-color:#666666;
	border-radius:10%;
	border:calc(30px/8) solid #666666;
	box-sizing:content-box;
}

.shape167:before{
	position:absolute;
	content:'';
	margin:auto;
	top:0;
	bottom:calc(30px*-1);
	left:0;
	right:0;
	width:calc(30px/1.1);
	height:calc(30px/1.1);
	background:rgba(0,0,0,0);
	border-radius:30%;
	border:calc(30px/6) solid transparent;
	border-top:calc(30px/3) solid #fff;
	box-sizing:border-box;
}

.shape167:after{
	position:absolute;
	content:'';
	margin:auto;
	top:0;
	bottom:calc(30px/2.5);
	left:0;
	right:0;
	width:calc(30px/2.5);
	height:calc(30px/2.5);
	background-color:#fff;
	border-radius:100%;
	box-sizing:border-box;
}


 
 

おわりに

 

今回はコーディングの際に便利なジェネレータ4選を紹介してみました。
作業効率を上げることは単純に時間の節約だけでなく、スキルアップにも繋がりますので、作業の効率化は日頃から念頭においておきましょう。