1
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?

More than 3 years have passed since last update.

【アップデート】ui-componentsに18個のコンポーネントを追加した

Last updated at Posted at 2021-06-06

こんにちは、Yuiです。

引き続き週イチ発信をしていきます。
過去の週イチ発信は以下

今回は、新しいアプリのリリースではないのですが、前回作ったui-componentsをより強くするべく、新しいコンポーネントを20個追加と少しバグ修正を行ったのでその報告です。

行ったことは以下です。

  • バグ修正
  • 4つのボタンを追加
  • 2つのインプットを追加
  • 新しくテキストアニメーションの項目を追加
  • 新しく矢印の項目を追加
  • 新しく吹き出しの項目を追加

中身のコードに関してはこの記事では扱いませんが、サイト上から各コンポーネントをクリックすればコードが見れるので、興味のある人はそこからクリックしてみて下さい。(宣伝)

バグ修正

行ったバグ修正は以下です

  • モーダルが開いているときにどこをクリックしてもモーダルが閉じてしまう

以下の部分です。
Image from Gyazo

今回コードを表示するという性質上、モーダルを開いた状態で一部分だけコピーしたりすることがあるとは思うのですが、今のままではモーダルを開いてどこをクリックしても閉じてしまいます。

それを今回の修正で以下のようにしました。

Image from Gyazo

モーダル内部をクリックしても閉じないように。
ただし、モーダル外部をクリックしたら閉じるというのは個人的に欲しかったので残したままにしてます。

実装方法としては子要素から親要素のクリックを伝播させないようにすれば良いので、内部の子要素に以下の関数をonClick要素で追加しただけの簡単実装です。

  const stopPropagation = (e: { stopPropagation: () => void }) => {
    e.stopPropagation();
  };

参考→https://ja.reactjs.org/docs/events.html

ボタンの追加

以下の4つを追加しました
Image from Gyazo

インプットの追加

以下の2つを追加しました
Image from Gyazo

もっと追加しようと思ったんですが、input要素のレイアウトってそんなにないですね笑
たまに凝ったデザインが来るときがあって、そのときは結構悩んだりしますが、いざ書くとなるとあんまり思いつきませんでした。

テキストアニメーションの追加

新しくTextページを用意して、以下の4つを追加しました
個人的に最後のウネウネしてるやつは気に入っています(どこで使うんだ感もありますが笑)

Image from Gyazo

ちなみに今回spanタグで一文字ずつ区切ってるんですが、一文字ずつ等間隔でアニメーションをずらすために毎回&:nth-child(1)&:nth-child(2)とかでそれぞれ書くのが嫌だったので、なにかいい方法ないかなと調べたら@forを使えるというのを今更ながら知りました。

  @for $i from 1 through 5 {
    &:nth-child(#{$i + 1}) {
      $delay: $i * 0.1 + s;
      animation-delay: $delay;
    }
  }

参考→SCSS 内でのループ処理 (@for, @while)

ただ、さすがにspanで区切ってるとhtml部分が長くなってしまったので、そろそろhtml自体もscssみたいにシンタックスハイライトで見やすくできるようにして、モーダル内でタブ切り分けをできるようにしたほうが良いかもしれないなとは思いました。(イメージはcodepenみたいな感じ)
そのうちやると思います。

矢印の追加

以下の4つを追加しました。

image.png

アニメーションはないので一気にしょぼくなったように感じます。笑

簡単だけど微妙に実装がめんどいと感じるので入れてみました。

吹き出しの追加

吹き出し実装微妙にめんどいですよね
ということで以下の4つを追加しました。

image.png

まとめ

というわけで、週イチ発信3週目は先週作ったサービスの中身を充実させるという感じになりました。
できれば20個追加とかにしてキリの良い数字で締めたかった感はありますが、もう力尽きたので次回にまわします。

今後も色々追加していこうと思うので、なにかリクエストなどあればお待ちしております!

1
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
1
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?