Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring variable, function, mixin layer. #75

Closed
inc2734 opened this issue Apr 13, 2016 · 9 comments
Closed

Refactoring variable, function, mixin layer. #75

inc2734 opened this issue Apr 13, 2016 · 9 comments
Milestone

Comments

@inc2734
Copy link
Member

inc2734 commented Apr 13, 2016

サイト全体で管理するべきグローバル変数・関数と、その場だけで良いローカルな変数・関数を整理したい。ミックスインもファイル構成を整理する(できれば #48 も可能なように)

@inc2734 inc2734 added this to the v4 milestone Apr 13, 2016
@inc2734
Copy link
Member Author

inc2734 commented Apr 13, 2016

ミックスインはそれぞれ独立して使えるように、変数は !default でもっておき、Basis で中で使うときはデザインのバランスが崩れないように Basis のグローバル変数で上書きする形が良いかも。

@torounit
Copy link
Contributor

+1

@inc2734
Copy link
Member Author

inc2734 commented Apr 13, 2016

とりあえずのアーキテクチャ案。

  • /basis-setting [各コンポーネントの変数を上書きする変数]
    • _basis-setting.scss
    • _typography.scss
    • etc...
  • /require [Basis の各コンポーネントに必須の関数・ミックスイン]
    • /function
    • /mixin
  • /mixin [各コンポーネントの実体。ミックスインライブラリとして利用できる用]
    • /object
      • /component
      • /utility
  • /foundation [HTML 要素のデフォルトスタイル]
  • /class [CSS フレームワークとして動作させるための各クラス]
    • /object
      • /component
      • /utility
  • basis.scss

@inc2734
Copy link
Member Author

inc2734 commented Apr 13, 2016

/require とか作っちゃったら結局そこまでモジュラブルじゃなくない…。変数も /require に入れちゃいたくなるし。それならいっそ /require 無くして /basis-setting に /function、/mixin を入れて各コンポーネントで変数とかミックスイン使ってる部分全てローカル変数かしたほうが良さそう。変数の二重定義がくそめんどくさいのが問題。

@torounit
Copy link
Contributor

そもそもこれ大まじめにやるなら、sassのmixin集は別に切り出してCSSの設計とは別のレイヤーとして考えた方が良いかも。

@inc2734
Copy link
Member Author

inc2734 commented Apr 13, 2016

CSS フレームワーク、Sass ミックスインライブラリ、各モジュールの単体利用、どのパターンでも使えるようにしようとすると必ずどこかで重複がでてくるので管理が大変ですね。Bourbon の設計とかも参考にしてみたいと思います。考えているうちによくわからなくなってきました…。

@torounit
Copy link
Contributor

http://refills.bourbon.io/ に至るまでのアプローチは綺麗ですねぇ。
Mixin自体はセレクターに依存しないはず。ということはCSSのアーキテクチャーとは別物!って開き直るとわかりやすいのかなーどうなのかなー

@inc2734
Copy link
Member Author

inc2734 commented Apr 13, 2016

僕的には便利ミックスインを提供する気は全然なくて、各コンポーネントのスタイルをオリジナルのクラス名で使いたいとか、単独のコンポーネントだけ取り出して使いたい、とかを想定しているので、そのへんて設計に違いが出てくるかなとは思います。(その想定の需要あるの?な気はしてきる…)

@inc2734
Copy link
Member Author

inc2734 commented Apr 15, 2016

Basis には「タブ」とか「ドロワー」とか、最小のコンポーネントよりちょっと大きめのコンポーネントは入ってなくて(グリッドシステムはあるけど…)、それ単体を抜き出して使いたいという需要は無いだろうから、その需要は無視した構成にしたほうがシンプルで良さそうな気がしてきた。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants