本文へスキップ

週カレンダー

8〜19 時の時間帯グリッドに色分けした予定ブロックを置く週表示。現在時刻の赤線が引かれ、空いている枠をクリックすると 1 時間の仮予定が置かれる(もう一度クリックで取り消し)。

プレビュー

クリック

操作クリック/タップで動きます。

デザインの要点

  • 予定の色はカレンダー(仕事/私用/チーム)ごとに 3 色まで。色が増えるほど凡例が要る
  • 現在時刻の赤線は「今」を探す手間を消す。今日の列だけ背景をわずかに変えて重ねる
  • 空き枠のクリックで仮予定を置き、確定は別ダイアログに任せる。置く操作と書く操作を分ける
  • スマホは 7 列を縮めず横スクロール+スナップにする。時間軸は左に sticky で固定する
実装メモ

現在時刻の赤線はデモのため 10:40 固定です。実装では new Date() から (時 + 分/60 − 開始時) × 行の高さ で top を求め、1 分ごとに更新してください。

コード(コピーして使えます)

<div class="cw-app">
  <header class="cw-head">
    <div class="cw-nav">
      <button type="button" class="cw-icon-btn" id="cw-prev" aria-label="前の週"><svg viewBox="0 0 20 20" width="16" height="16" aria-hidden="true"><path d="M12.5 4 6.5 10l6 6" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg></button>
      <button type="button" class="cw-icon-btn" id="cw-next" aria-label="次の週"><svg viewBox="0 0 20 20" width="16" height="16" aria-hidden="true"><path d="m7.5 4 6 6-6 6" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg></button>
      <button type="button" class="cw-today-btn" id="cw-today">今日</button>
    </div>
    <h1 class="cw-h1" id="cw-title">2026年4月 20日 – 26日</h1>
    <div class="cw-legend" aria-label="凡例"><span class="cw-dot cw-dot-work"></span>仕事<span class="cw-dot cw-dot-team"></span>チーム<span class="cw-dot cw-dot-private"></span>私用</div>
  </header>
  <div class="cw-scroll" id="cw-scroll">
    <div class="cw-grid" id="cw-grid">
      <div class="cw-corner"></div>
      <div class="cw-days" id="cw-days"></div>
      <div class="cw-times" id="cw-times"></div>
      <div class="cw-cols" id="cw-cols"></div>
    </div>
  </div>
  <p class="cw-hint" id="cw-hint" role="status">空いている枠をクリックすると仮予定を置けます</p>
</div>

タグ

同じカテゴリ「実用サンプル: アプリ画面」のほかのパーツ

関連パーツ