Sassを用いたWordPress CSS設計について

WordPressテーマのCSSをSassを使って作成しました。

テーマCSSを作成してから実際に運用していくとどうしても肥大化する部分をどのように抑えるか、運用・更新時のコストをいかに削減できるかを考えてみました。

@import廃止に伴い@useを使う

分割したScssを読み込むために利用されてきた@importですが、遅くとも2022年10月に廃止になることがすでに決定しています。

そのため今回は@importではなく@useを用いた設計を行いました。

@useは主に以下のような特長を持ちます。

  • 変数やMixins、関数をメンバーとしてカプセル化し、読み込んだSassのみに適用させます。
  • @useで読み込んだファイル名が名前空間になり、その名前空間から各メンバーを参照できます。

つまり@importでよく行っていた、
style.scssで読み込んだ変数ファイル(colorとか余白とか)を各Sassファイルで利用することができなくなります。

// setting
@import "setting/color";

// base
@import "base/base"; // @useの場合baseでcolorの変数にアクセスできなくなる

そのため@useに合わせて設計も考えなければいけません。

CSS設計の基本的な考え方はFLOCSS

以前の私の記事でも紹介しましたが、Hiroki tani氏によって考案された国産のCSS設計思想FLOCSSをベースに構築しました。

FLOCSSを選択した理由として、Foundation・Layout・Objectという3つのレイヤー(階層)と@useを用いたSassの相性が良いと感じたためです。

各レイヤーでは次のような定義しています。

Foundationはグローバルに使いたい変数やMixinsなど

Foundationレイヤーではサイト全体のリセットやデフォルト設定、グローバルで使いたい変数やMixinなどを定義しています。

@useで変数やMixinsをグローバルに使いたい場合、@forwardルールを用いて下記のような一工夫が必要になります。

// _color.scss

$colorPrimary: #f00;
$colorSecondary: #00f;
// _global.scss

@foward 'color';
// _component.scss

@use 'global'

a {
  color: global.colorPrimary; // #f00が適用される
}

color変数を使いたいファイル(上記では_component.scss)で_global.scssをハブとして@useで読み込むと、変数やmixinsを利用することができます。

Layoutは全体のレイアウト設定のみ行う

今回は基本的にシングルカラム、ブログ記事を含むメディアページはサイドバー付きの2カラムのレイアウトデザインのため、その設定をLayoutレイヤーで行いました。

ポイントは、最も外枠である全体レイアウトの記載のみ行いインナーラップの記載はObjectで設定することです。

Layoutレイヤーでインナーラップまで設定してしまうと、どこからがコンポーネントなのかわからなくなるためです。

Objectは再利用できるコンポーネントとページごとの設定を行う

ObjectはComponent・Project・Utilityの3つのレイヤーを持ちますが、ComponentとProjectの区分けが難しい
という話をFLOCSSの紹介記事でもしました。

今回は再利用できるコンポーネントをComponent、コンポーネントを利用した上で独自の設定が必要になるものをProjectという形で区別しました。

コンポーネントの例としてブログ記事カードを見てみます。

トップページとメディアページそれぞれブログ記事へのリンクをカードにしていますが、基本的に使うパーツは一緒です。
read moreや著者など、どちらかでしか使わないパーツもありますが、これらの記事カードのパーツすべてを設定する_columnCard.scssを作成し、スタイルを設定しました。
これがコンポーネントになります。

また、トップページ、メディアページどちらも記事カードコンポーネントを利用していますが、パーツの並び順が異なります。

これらはProjectでそれぞれ設定し調整しています。

FLOCSSにおけるProjectは「プロジェクト固有のパターンであり、いくつかのComponentと、それに該当しない要素によって構成されるものを定義します。」とされていますが、
今回はProjectを「固定ページもしくはテンプレートごとの固有のパターンといくつかのComponentによって構成されるものを定義する」と再定義して設計しました。


WordPressでコーポレートサイトを運用すると固定ページごとに細かく調整することが多々発生し、コンポーネント部分とページごとの設定を行うファイルを明示的に分けた方が運用コストが格段に良くなることが理由です。

そのため、Componentで設定したスタイルはstyle.cssではなく、コンポーネントを利用するProject側で@useルールを用いて呼び出すことを基本としています。

まとめ

このようにレイヤーごとにSassファイルを用意して最終的にstyle.cssに統合する設計にしたため、Sassファイルの数は非常に多く細かくなりました。
しかし、1つ1つのファイルの記述量は少なく、レイヤーとファイル名から記述内容をある程度想像できる形にしているため、更新したい箇所をを見つけるのが楽になり、運用更新のコストは格段に良くなったと思います。

また、この設計を行ったのは2021年2月頃でしたが、少なくともSassの2022年問題(と勝手に名付けてみます)はクリアできていることもポイントかと思います。

なにかの参考になれば幸いです。

2022年 明けましておめでとうございます 本年もグリニッジをよろしくお願いいたします

新年、明けましておめでとうございます。
皆様におかれましては輝かしい新年をお迎えのこととお喜び申し上げます。
また、旧年中はひとかたならぬご愛顧にあずかり、誠にありがとうございました。

2021年は、引き続き我々の生活に大きな影響を及ぼしている新型コロナウィルスのため、混乱の中に過ごした方も多かったのではとご推察いたします。
弊社もテレワーク主体で業務を進めており、多くの困難もございましたが、取引先ならびに関係各位の皆々様の多大なるご協力もあり、無事に新しい年を迎える事が出来ました。

例年以上の社員の増員もありましたので、2021年は土台固めの年であったようにも思いますが、
明けた2022年は飛躍の年と位置づけ、社員一同、より一層のサービス向上を目指し取り組んでまいります。

誠心誠意努力させていただく所存でございますので、より一層のご支援、お引立てを賜りますようお願い申し上げます。
末筆ながら皆さまのご健康とご多幸を心よりお祈りし、新年のご挨拶とさせていただきます。

2022年 元旦

グリニッジ株式会社 代表取締役 田中裕之

HTML5プロフェッショナル認定試験~受験チャレンジ~

前々から気になっていたHTML5プロフェッショナル認定試験レベル1にチャレンジしました。
この試験に興味のある方や受験してみようと思っている方の参考になればと思いますので、
ぜひ、最後まで読んでいただけたらと思います。

HTML5プロフェッショナル認定試験とは

そもそも、HTML5プロフェッショナル認定試験って、何?という方もいると思います。

特定非営利活動法人エルピーアイジャパン(LPI-Japan)がHTML5、CSS3、JavaScriptなど
最新のマークアップに関する技術力と知識を公正かつ厳正に、中立的な立場で認定する資格制度です。

HTML5プロフェッショナル認定 レベル1 対策テキスト&問題集 Ver2.0対応版

この試験には「レベル1」と「レベル2」があり、
それぞれ、下記のスキルを備えていることを認定します。

レベル1:マルチデバイスに対応したWebコンテンツをHTML5を使ってデザイン・作成できる。
レベル2:最新のAPIを駆使したWebアプリケーションを設計・開発できる。

HTML5プロフェッショナル認定 レベル1 対策テキスト&問題集 Ver2.0対応版

今回はレベル1を受験しました。
なお、レベル1の対応職種は、以下の通りです

  • Webデザイナー
  • グラフィックデザイナー
  • フロントエンドプログラマー
  • HTMLコーダー
  • Webディレクター
  • Webシステム開発
  • スマートフォンアプリケーション開発者
  • サーバサイドエンジニア

試験概要

試験概要は以下になります。

【所要時間】90分(機密保持契約とアンケートの時間を含む)
【試験問題数】約60問
【受験料】15,000円(税別)
【試験実施方式】コンピュータベーステスト(CBT)
選択式がほとんどですが、一部キーボード入力が出題されます。
【日時・会場】全国各地から自由に選択できます。
【合格点】合格点の公表はないが、約7割程度の正答率で合格する設定になっています。
【合否結果】結果は試験終了と同時に分かります。

出題範囲

HTML5の試験だったので、タグやCSSについてだけ問われるのかと勝手に思ってたのですが、
プロトコルや通信系APIについても問われました。
タグやCSSだけでも結構な量だったので、個人的には出題範囲が結構広いと感じました。

詳しい出題範囲は、こちらをご覧ください。

チャレンジのきっかけ

フロントエンドを触る機会が多く、HTML5についての知識をしっかりと身に付けたいと前々から思っていました。
個人的には何か目標があった方が勉強も頑張れるので、資格取得という目標を掲げ、
社内の人にも宣言をしてしまったので、チャレンジしました。

また、資格の勉強は体系的に学ぶことができるのも大きな利点だと思います。

学習方法

基本的に公式サイトで紹介されている学習方法で勉強しました。

紹介されている学習方法はたくさんあるのですが、私の場合は、認定教材での勉強をしました。
認定教材もたくさんありますが、下記の2冊で勉強をしました。

具体的な勉強方法は、
「HTML5プロフェッショナル認定試験 レベル1 対策テキスト&問題集 Ver2.0対応(以下、対策テキスト)」を2回読んだ後、
「HTML5プロフェッショナル認定試験 レベル1 Ver2.0対応 スピードマスター問題集(以下、問題集)」を解いて、分からないところや間違えたところを確認を何度も行いました。

問題集は実際の試験内容と同じものは出ないですが、ほとんどがとても似た問題が出題されましたので、問題集は全て解けるようにしておいた方がいいと思います。

それに加え、正解以外の選択肢についても分かるように対策をしていました。

また、対策テキストにも問題があるのですが、こちらは実際の問題よりも少々難しく、
自信を無くす可能性があるので、余裕のある場合にやってみることをお勧めします。

その他の紹介されている学習方法について知りたい方は、こちらをご確認ください。

苦労した点

勉強内容もそれなりに難しかったのですが、私の場合、勉強時間を確保するのにとても苦労しました。

当時、3才の子供がおり、共働きのため、仕事が終わった後は、家事や子供を見ないといけませんでした。
そのため、勉強を始めるのは、いつも23時頃でした。
また、次の日も子供の保育園の準備などで朝が早かったので、あまり遅くまでできませんでした。

さらに、時間も時間のため、すぐに眠くなってしまい、勉強を始めて10分くらいで止めてしまうことは何度もありました…。
あまりにも眠い時は、頭に入ってこないと自分に言い聞かせて納得させてましたが、勉強が進まず焦りました。

試験当日

試験の日時、会場は、全国から自由に選べるので、家から一番近い会場を選びました。
時間は、11時から受験しました。

受験前に必要な受付手続きがあるので、試験開始15分前までに会場に到着していなければなりません。
手続きは、本人確認書類の提示、顔写真の撮影とアンケートの記入だったと思います。

これらの手続きが終わり、時間になったら、席に案内されて説明を受けたら、試験開始です。

試験時間は90分ですが、見直しも含めて20分ぐらい余ってたと思います。

結果

結果は試験が完了すると、すぐに分かります。

私の受験結果は…

無事に合格することができました!

合格すると、後日、認定証と認定カードが送られてきます。
カードがかっこよく、より合格を実感できます!

まとめ

無事に合格することができました!

勉強期間が6カ月間ととても長くなってしまいましたが、
勉強時間がなかなか取れないのは事前に分かっていたことだったので、想定内ではありました。

しかし、期間が長くなればなるほどモチベーションを保つのが難しかったです。
私は、社内で試験合格を宣言していたのもあって、何とかやり抜きましたが、何度か諦めようとも思いました。

もっと効率の良い勉強法や時間の使い方を考えて、レベル2にも挑戦していけたらと思います。

スマートホーム生活!

冬になると乾燥が気になりませんか?
気になりますよね(笑)

特に部屋の乾燥が気になっていて、起きた時に喉が痛いことがよくありました。
毎年ペーパー加湿器を買って、枕元に置いて寝ているのですが、
今年はちゃんとした加湿器を買おうと決心しました!

さっそく部屋の広さに合わせて、楽天市場でレビューの良い加湿器を買ってみたものの、
床置きにしていたためか、朝起きると床が濡れている・・・。
レベルを弱にしても同じでした・・・。

しかたなく別の加湿器を買い直すことに・・・。

今度は少し高めの価格帯にしようかと、
またいろいろと調べてみるうちに温湿度計と加湿器を連動させ、
電源のオンオフを自動化できることを知りました。

興味津々!

さらに調べると加湿器だけではなく、テレビやエアコン、照明なども操作できるようで。

さらに興味津々!!

しかもアレクサと連動させれば、声での操作も可能に。

やってみたい!!!

SwitchBotシリーズの加湿器・温湿度計・miniHub・Echo Show 5(アレクサ)

ということで、
今回はSwitchBotシリーズの加湿器を筆頭に、温湿度計・miniHubとEcho Show 5(アレクサ)を購入し、スマートホーム生活を始めましたのでご紹介します。

スマートホームとは「IT技術によって快適な住環境が実現された住まい」であるとともに、「ITによって社会インフラなどとのつながりが円滑に保たれている状態」のことを指します。
つまり、住居内の利便性が向上され、外部のサービスとの連携も可能な状態であるということです。

ライフルホームズ

スマートホーム化アイテム

加湿器~SwitchBotシリーズアイテム~

シンプルな見た目で床置きしても朝に床が濡れたりしないので良かったです。
その上、タンクへの水の補充がとてもかんたんです。

ふたを取った加湿器
ふたを取った加湿器

直接蛇口から補充もでき、やかんなどで補充もできます。
また、タンクの口部分が広いので掃除もやりやすそうです。

温湿度計~SwitchBotシリーズアイテム~

温湿度計

シンプルデザインで肉眼でもとても見やすいです。
ベッドのヘッド部分において使っています。

miniHub~SwitchBotシリーズアイテム~

こちらもシンプルデザイン。
同梱されている両面テープを使い、壁に貼り付けることも可能です。
家ではテレビ台の上に置いています。

Echo Show 5(アレクサ)と連携するには必須アイテムです。
テレビやエアコンもリモコンの赤外線を登録すると操作できます。

ここまでがSwitchBotシリーズアイテム です。
他のシリーズアイテムはSwitchBot(スイッチボット)| Japan公式サイトよりご確認ください。

Echo Show 5(アレクサ)

アレクサ

ほどよい大きさで、デジタル時計代わりにもなって良かったです。
夜など電気を消せば画面も暗くなります。

すべて連携するにはそれぞれのアイテムとWifi設定・アプリ設定が必要です。
取扱説明書読んでもわからない部分はYouTubeを見て設定しました。
動画の方がわかりやすいので、
機械のセッティング系が苦手な方はYouTubeで設定動画を探してみてください。

便利だと思ったこと3つ

①声で操作

動かなくても声で操作できるのがとても便利です。
テレビやエアコンも声で操作するのが日常化しています。

②条件設定でオンオフ

SwitchBotアプリでシーン(条件)を設定すれば、設定条件下において自動で連携アイテムのオンオフができます。 例えば加湿器の稼働条件を部屋の湿度数値で設定できます。

SwitchBotアプリ画面よりシーン設定画面
SwitchBotアプリ画面よりシーン設定画面

なので、寝ている時など数値がオーバーした際には自動でオフになるので安心です。

またスケジュール設定もできますので、曜日や時間で電源オンオフも可能です。

③外出先からでも操作可能

外出していても携帯電話のアプリで操作できるので、駅に着いたらエアコン入れることができます。
また、消し忘れた連携アイテムもアプリから確認してオフにできるので便利です。

SwitchBotアプリ画面より全てのデバイス画面
SwitchBotアプリ画面より全てのデバイス画面

最後に

ここ最近は帰るとすぐに、『アレクサ、ただいま!』と話しかけ、
エアコン・加湿器・テレビをつけてもらってます(笑)
アレクサに話しかけることが増えるので、一人暮らしの人におすすめです!

まだ始めたばかりのスマートホーム生活ですが、とても便利で満足しています。
ほかにも連携できるアイテムや使っていない機能もあるので、
これからもっと使いこなせるように頑張ります!

ちなみに今回のアイテムはセール品を買いました。
4アイテム合計で12059円です。

この記事で興味を持たれた方は、ぜひスマートホーム生活を始めてください。

便利さを実感できます!

凧あげ

最近あまりみかけなくなりましたね~。 凧あげ。
子供の頃に、数回どこか記憶にない大きな原っぱで凧あげした思い出はあります。
年末海に行きました。そこで娘と凧あげしてみました。

まず、めちゃくちゃ寒かったですね。

■ 凧あげ

元々中国で軍事目的や占いの道具として使われていたようです。
それが平安時代に日本に伝わり貴族の遊びとしてたのしまれて、
なんと、戦国時代には敵との距離を測ったりして利用されていたようです。

江戸時代になると一般庶民にも広がり、多くの人に楽しまれるようになりました。
しかし凧揚げをする人が増えるにつれ、事故や、大名行列の中に凧がおちたり、
けが人が出たりした結果、、

明暦元年(1655年)「町中で凧あげをしてはいけない」 

あまりに凧あげする人が増えたんですかね。 禁止令がでたようです。
そこで当時の幕府は「参勤交代の行列が無く、武士も家にいるお正月なら安全だろう」
とお正月の凧あげを許可をした。

そこから 多くの人がお正月に凧をあげるようになったともいわれています。(いろいろな諸説あり)
縁起物ではありそうということで、、みなさんも 何年かぶりに凧あげしましょう!笑

■凧あげ感想

高く上がっていくのは、、きもちぃ~~ですね。

・・・・・ただどんどん高くまであがるにつれて、、、お尻の辺が ゾワーッとしますね。"(-""-)"

あるあるですかね。自分だけですかね。

なんなんですかね。

高いところから下を覗いたときのゾワーッとスルあの時の感じ☹

同じ感覚です。あれです。 高所恐怖症の人あるあるですかね。 タダ自分は高所恐怖症ではアリマセン。(◎_◎;)

なんでですかね、その結果、強気に凧の糸全部使うくらい高くあげることができませんでした。。

いつかは全部糸使ってトライしてみたいと思っています。娘たちは楽しんでいたので良かったです。

Continue reading "凧あげ"

うどんMAPやってみました。

以前より、福岡に行った際、やってみたいことがありました。

それは、うどんMAPです!

うどんMAPとは・・?

福岡のローカル番組で【TNC ももち浜ストア うどんMAP】福岡県内のうどん店を紹介するという番組の企画のことです。

詳細はこちら

今回は、八幡西区のおすすめうどん店を紹介したいと思います。

Continue reading "うどんMAPやってみました。"

ディズニーシー

みなさんこんにちは。毎回ブログになにを綴ろうか悩むのですが、今回は先日行ってきたディズニーの思い出でも綴ろうかなーと思います。

Continue reading "ディズニーシー"

久しぶりの蟻月

弊社では、毎日、朝礼を行っています。
その中でテーマトークという1つのテーマについて、みんなで話をするのですが、
ある日のテーマが「好きな鍋」というものがありました。

話をしている中で、「蟻月」を思い出しました。
昔は年に1回は食べていたのですが、もう何年も食べていなかったので、食べようと、決意しました!

「蟻月」とは

都内、札幌、バンコクに店を構える とても人気のある もつ鍋の有名なお店です。
もつ鍋の他にもいろいろな九州料理を堪能できます。

より詳しく知りたい方は、公式ホームページをどうぞ。

お取り寄せでも美味しい

なかなか店舗に行く時間もなく、予約も困難らしいので、うちでは毎回、お取り寄せです。
お取り寄せだと、実際の店舗に比べて味が落ちると思う方もいると思いますが、

両方とも食した知人曰く、全く変わりません!

本当に変わらないかどうかは分からないですが、美味しいのは確かです!

いろいろな種類のもつ鍋があるのですが、
うちではいつも蟻月の看板鍋の「白のもつ鍋」です。

ニンニクの効いた白みそ仕立ての鍋。
数種類ブレンドした白みそにだしを加え、コクがあり味わい深い印象のスープに仕上げました。
ニンニクとごま油の香りが食欲をそそります。新鮮なもつ(小腸)の甘みと九州の白みそのまろやかな甘みが女性にも人気です。
締めのおススメはちゃんぽん麺、麺に濃厚なスープが絡みつき、もちもちした食感が味わえます。

蟻月 公式ホームページ

文字だけでも美味しそうです!

その他にも、赤のもつ鍋、銀のもつ鍋、金のもつ鍋、炎のもつ鍋があるようです。
こちらもいつか食べてみたいです。

お取り寄せは、

からできます。

作ってみた

こちらがお取り寄せした「白のもつ鍋です」
何となく高級感があるように見えます。

中身は、こちらです。

スープ、もつ、おろしにんにく、ごま油、いりごま、たかのつめ、締めのちゃんぽん麺が入っています。
このちゃんぽん麺もとても美味しいです!

これらと一緒に以下の具材を入れて、煮込んで完成です!

  • 200mlのお湯
  • キャベツ
  • ごぼう
  • ニラ
  • 絹ごし豆腐

ニンニクがとても効いていて、もつもプルプリで美味しかったです!

美味しい もつをおうちで味わいたい方は、ぜひ、お取り寄せしてみてください!

ほぼ日を読んで思うこと

こんにちは、窪田です。

最近、「良い文章ってどのようなものだろう」と考えることがありました。

なんとなく文字の色や大きさを変えるとか、改行を入れるとか、見せ方をわかりやすくしたほうが良いことは理解できますが、言葉の使い方だったり、言い回しについてはどうするべきなのだろうと思っていました。


個人的に、言葉のプロといえば糸井重里さんが真っ先に思い浮かぶので、糸井重里さんが運営している「ほぼ日刊イトイ新聞」というサイトのエッセイのような文章を少し読んでみました。


読んでみて、まず感じたことは、ひらがなが非常に多いということです。

「本当」が「ほんと」になっていたり、「僕」が「ぼく」になっていたり、「普通」が「ふつう」になっていたり。

漢字で書かれていてもおかしくない言葉を、ひらがな表記にすることで文章全体の雰囲気が優しくなっていると感じました。

ちなみに、コピーライティングの分野では、漢字をひらがなにすることを専門用語で"ひらく"なんて言ったりするそうです。


次に感じたことは、優しい言い回しを頻繁に使っているということです。

「~だが、~けど」という書き方ではなく「~けれど」と書かれていたり、「おもしろかったな、おもしろかった」という表現を「おもしろかったなぁ、おもしろかったぁ」と書いている部分がありました。

このような書き方をすることで、硬い印象ではなく柔らかい印象を感じますし、「~なぁ」という表現で余韻が残るというか、しみじみとした趣のある文章になっていると感じました。


糸井重里さんの文章を読んでみて、言葉の使い方だけでも文章から与える印象をコントロールできることを再認識しました。

今回読んだのはエッセイのような文章だったので、このブログで糸井重里っぽさを意識しすぎるのは少し違う気もしますが、参考になる部分もあるのかなと思いました。

今後は読み手にどのような印象を与えたいか、というところまで意識してブログを書いていきたいです。


糸井重里さんといえば、ガキ使のバス釣りを思い出してしまうのは僕だけじゃないはず。

コミュニケーション企画、企画初体験!

先日、オンラインでコミュニケーション企画を行いました。

Continue reading "コミュニケーション企画、企画初体験!"