沿革
このポートフォリオサイトのデザインについて
- 「ビジュアル」は例の如くリソースが枯渇している為、5年以上擦り倒しているの細いリソース
- フォントについては普段あまり使用経験のない「明朝体(セルフ体)」を利用
- 最近よく見かける「mix-blend-mode: difference;」を利用したデザイン
- 最近知った「@container scroll-state()」クエリーを使用
以上を目的として作成
ver1.1
ヘッダー
- CSS
なぜか子要素レベルで「mix-blend-mode: difference;」が効かず、親要素で全適用する形となった。「position: sticky」によるものだと解釈しているが、原因の特定には至っていない。
ホバーすると蛇腹(じゃばら)式に動作し、メニューを表示するアニメーションにしたが、多少チラつきが見えた為、以下を適用。
グローバルナビの「Works」について
-
- iosのSafariにはホバーの概念がない
- iosのSafariでホバーアニメーションが効かなかった。iosのSafariにはホバーの概念が存在しないとの事。ホバー時と同じ挙動を行うように「input」を設置したが、チェックアウト時に収納しなかった。
- 結果、スタイルを分けた
@media (hover:hover) {
"ホバーの概念がある場合に適用されるcss"
}
@media (hover:none) {
"ホバーの概念がない場合に適用されるcss"
}
-
- 「label」に高さが指定できない
- ついでにタッチポイント領域の修正しようと思ったが、「label」はデフォルトでは「height」が指定できないらしく、「label」が入っている要素と入っていない要素で高さが揃わなかった。一度別要素を入れ子にして「display: block;」で高さを揃える必要があった。
実績一覧ページ
- Javascript
当初は単純にグリッドで並べるだけの構成だったが、見出しとメインコンテンツの境界が曖昧で、視覚的ヒエラルキーも弱いと判断。そのため、現在のようにメインコンテンツ部分とテーブルコンテンツ部分を明確に分け、テーブルコンテンツは追従する形式に変更。
要素位置を検知して目次に同期
“Intersection Observer API”なる便利なものがあったので、スクロールで要素の位置を検知して、追従設定した目次に同期させた
root: null,
rootMargin: "-50% 0px",
threshold: 0
};
const observer =
new IntersectionObserver(doWhenIntersect,options);
const target = document.querySelector('.target'); observer.observe(target);
※12/22に見栄えが良くない為、元に戻した。上記APIは「沿革」ページのみで運用。
ロゴについて
- illustrator
ゴシック体を利用したものしか案がなく少し不本意ではあったが、時間がなかったためひとまずこの形で
ver1.2
"パンくず"の追加
- HTML
今更追加。丁度良いスペースがあったと言いたいが、3階層以上が厳しそうなので、「HOME」はアイコンにした
FIrefoxで見出しが滲む
- CSS
FIrefoxで見出しが滲む
-
- Firefoxにて見出しが潰れている事象
- Firefox用に以下を設定
-moz-osx-font-smoothing: grayscale;
ヘッダー
「沿革ページ」の追加に伴い、グローバルナビの項目が増えたため、ビューポート幅 428px 以下ではドロワーメニュー表示に切り替える必要が出てきた。しかし、ヘッダーに全体に「mix-blend-mode: difference;」が適用されている影響で、ドロワーメニューまで差分で反転してしまう問題が発生した。ヘッダーの外にメニューを配置する案も検討したが、その場合はドロワーを開いた際にハンバーガーメニューが隠れてしまい、クローズ操作ができなくなる。
JavaScriptで制御する方法もあるが、そこまでの対応を行うべきか判断が難しく、反転前提でスタイルを組むか、ハンバーガーが隠れない対策を施すかで悩んだ。
結果として、現状のスタイルを維持しつつ、グローバルナビの整理として「Works」配下に「Achieves」を移動し、新たに「History」を追加する形に落ち着いた。
ver1.3
実績詳細ページ
- HTML
const url = window.location.hash;
実績一覧ページのHTMLにリンクのハッシュによって、分岐させて該当する画像を差し込む仕様とした。