nlog

とめどなく流れるよだれ

Semaitic UI でサイトヘッダーをつくる

Semantic UI の Container、Menu 、Image 、Search 、Icon 、Button などを使ってサイトヘッダーをつくった。

f:id:namikuguri:20180529234531p:plain

本当はフィードみたいなものまでつくり切りたかったけど全然進まなかった。思いの外大変だ。

HTML はつぎのようになっている。Container と Menu でほとんどのレイアウトを決めて、あとはデザインに合わせて Button などのコンポーネントを使った。

<div class="ui fixed secondary menu pointing siteHeader">
  <div class="ui container">
    <div class="left menu">
      <a href="#" class="active item">
        <i class="icon home"></i>
        Home
      </a>
      ...
    </div>
    <a href="#" class="item">
      <img class="ui avatar image centered circular" src="logo.png" alt="">
    </a>
    <div class="right menu">
      <div class="item">
        <div class="ui search">
          <div class="ui icon input">
            <input class="prompt" type="text" placeholder="Search">
            <i class="search icon"></i>
          </div>
          <div class="results"></div>
        </div>
      </div>
      <a href="#" class="item">
        <img class="ui avatar image centered circular" src="avatar.png" alt=""><!-- no image -->
      </a>
      <a class="ui item">
        <button class="ui primary button circular">Follow</button>
      </a>
    </div>
  </div>
</div>

サイトヘッダー内の配置を整えるために上書き用のスタイルは少しだけ書いた。

.siteHeader {
  $itemSize: 54px;

  .item {
    height: $itemSize; // ロゴやアバター画像とサイズを合わせる
  }
}

感想。

  • Semantic UI のスタイルは継承やセレクタが頻繁に使われていて詳細度が高く、スタイルを上書きするのがつらい
  • .ui.xxx という Semantic UI の書式とは別にして、上書き用の命名ルールがあるとスタイルが管理しやすくなりそう( .siteXxxx みたいな)
  • Semantic UI のドキュメント見ながらスタイル書くのがしんどいけど、こういうもんか