0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CSSと向き合う25日間。基礎からモダン技術までを体系的に学ぶ「特訓アドベントカレンダー」。

0
Posted at

はじめに

CSSについて、なんとなくプロパティを当ててレイアウトは組めるけれど、なぜその挙動になるのか深く理解できていなかったり、最新のモダンな記法をキャッチアップしきれていない、と感じることはないでしょうか。

今回、自身のスキルセットを棚卸しし、確実な実力を身につけるための「25日間CSS特訓アドベントカレンダー」を企画しました。

コンセプトは、 「インプット(学習)」と「アウトプット(実装)」をセットにすること
ただ読むだけではなく、毎日小さなコードを書くことで、知識を技術へと昇華させることを目的としています。


全体構成:CSSを体系的に学び直す旅

25日間の工程を、大きく4つのフェーズに分けました。
基礎的なレイアウト構造から始まり、視覚的な表現、動き、そして最新のモダンCSSまでを段階的に網羅します。

Phase 1: レイアウトの構造理解 (Day 1 - 7)

まずは、要素を意図した通りに配置するための「土台」を固めます。

  • Day 1: ボックスモデルの再確認
    • box-sizing の挙動の違いや、marginの相殺など、つまずきやすい基本仕様を検証します。
  • Day 2: Flexbox (基礎)
    • ナビゲーションバーを題材に、justify-contentalign-items の挙動を体に馴染ませます。
  • Day 3: Flexbox (応用)
    • 聖杯レイアウト(ヘッダー・フッター・3カラム)をFlexboxのみで構築し、伸縮のプロパティを理解します。
  • Day 4: CSS Grid (基礎)
    • 2次元レイアウトの基礎、Gridを使った均等配置を学びます。
  • Day 5: CSS Grid (応用)
    • grid-template-areas を用い、直感的かつ複雑な雑誌風レイアウトを実装します。
  • Day 6: レスポンシブデザイン
    • デバイス幅に応じて列数が変化するカードレイアウトを通じ、Media Queriesを復習します。
  • Day 7: Position
    • absolute から sticky まで、配置プロパティの違いを明確にします。

Phase 2: 表現力の向上 (Day 8 - 14)

CSSだけでどこまでリッチな表現が可能か、デザインの引き出しを増やします。

  • Day 8: 背景とグラデーション
    • 複数のグラデーションを重ね、複雑な模様や空の表現に挑戦します。
  • Day 9: シャドウ
    • ニューモーフィズムやマテリアルデザインなど、影による奥行き表現を学びます。
  • Day 10: ボーダーと角丸
    • 有機的な形状(Blob)などを border-radius だけで生成します。
  • Day 11: テキスト装飾とWebフォント
    • Webフォントの導入や、文字に対する装飾(縁取り・グラデーション)を行います。
  • Day 12: 疑似要素 (::before / ::after)
    • HTMLを汚さずに装飾を行う、疑似要素の活用法を習得します。
  • Day 13: 画像加工 (object-fit / filter)
    • CSSフィルターを用いた画像編集や、トリミングの挙動を確認します。
  • Day 14: クリップパス
    • 画像を多角形や星型など、自由な形状に切り抜く手法を学びます。

Phase 3: インタラクションと動き (Day 15 - 21)

静的なページに「時間」の概念を取り入れ、ユーザー体験を向上させます。

  • Day 15: Transition
    • ボタンのホバーエフェクトなどを通じ、心地よいイージングを探求します。
  • Day 16: Animation
    • ローディングスピナーなど、ループするアニメーションを作成します。
  • Day 17: Transform (2D/3D)
    • カードが裏返るフリップアニメーションなどで、3次元的な変形を扱います。
  • Day 18: 変数 (Custom Properties)
    • CSS変数を用いたダークモード実装など、保守性の高い設計を学びます。
  • Day 19: スクロールスナップ
    • JSを使わずに、スワイプで吸着するスライダーUIを実装します。
  • Day 20: モダンCSS (:has / :is / :where)
    • 親要素セレクタ :has() など、ロジカルな最新セレクタを試します。
  • Day 21: コンテナクエリ
    • 画面幅ではなく「親要素の幅」に応じる、次世代のレスポンシブ対応を学びます。

Phase 4: 総合演習 (Day 22 - 25)

これまで学んだ技術を組み合わせ、一つの作品として仕上げていきます。

  • Day 22: CSSアート
    • div 1つでアイコンなどを描画し、スタイルの限界に挑戦します。
  • Day 23: 実践UIトレース
    • よくあるWebサイトのパーツを模写し、実装力を確認します。
  • Day 24: インタラクティブな仕掛け
    • JSを使わないアコーディオンメニューなど、CSSのみでロジックを組みます。
  • Day 25: クリスマスカード制作
    • 最終課題。アニメーション、レイアウト、装飾の全てを動員し、動くクリスマスカードを作成します。

完走するための3つの指針

25日間という長丁場を走り切るために、以下のポイントを意識することをお勧めします。

  1. 環境構築に時間をかけない
    CodePenやJSFiddleなどのオンラインエディタを活用しましょう。ブラウザを開いてすぐに書き始められる環境が、継続の鍵となります。

  2. 記録を残す
    作成したコードやプレビュー画面を、X(旧Twitter)や技術ブログなどで発信しましょう。誰かの目に触れることは、適度な緊張感とモチベーション維持に繋がります。

  3. 完璧を目指さない
    平日の忙しい時間の中で行う場合もあるでしょう。「1日30分だけ」と決め、その時間内でできる範囲のアウトプットを目指してください。大切なのは完璧さよりも、コードに触れ続けることです。


おわりに

この25日間のプログラムを終える頃には、CSSに対する苦手意識が払拭され、デザインを見た瞬間に「どのプロパティを使えば実装できるか」が自然とイメージできるようになっているはずです。

焦らず、一日一歩ずつ。
確かな技術を積み上げる1年にしましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?