{"action":"opened","number":4,"pull_request":{"url":"https://api.github.com/repos/yetanalytics/re-mdl/pulls/4","id":55351269,"html_url":"https://github.com/yetanalytics/re-mdl/pull/4","diff_url":"https://github.com/yetanalytics/re-mdl/pull/4.diff","patch_url":"https://github.com/yetanalytics/re-mdl/pull/4.patch","issue_url":"https://api.github.com/repos/yetanalytics/re-mdl/issues/4","number":4,"state":"open","locked":false,"title":"Discussion","user":{"login":"vincentjames501","id":396866,"avatar_url":"https://avatars.githubusercontent.com/u/396866?v=3","gravatar_id":"","url":"https://api.github.com/users/vincentjames501","html_url":"https://github.com/vincentjames501","followers_url":"https://api.github.com/users/vincentjames501/followers","following_url":"https://api.github.com/users/vincentjames501/following{/other_user}","gists_url":"https://api.github.com/users/vincentjames501/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentjames501/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentjames501/subscriptions","organizations_url":"https://api.github.com/users/vincentjames501/orgs","repos_url":"https://api.github.com/users/vincentjames501/repos","events_url":"https://api.github.com/users/vincentjames501/events{/privacy}","received_events_url":"https://api.github.com/users/vincentjames501/received_events","type":"User","site_admin":false},"body":"First I'd like to say thanks for this project. It is exactly what I was looking for and I was just about to write this myself!\r\n\r\nThis is in no way intended to be an official merge request. I just wanted to start a discussion. \r\n\r\n1) Since it is such a lightweight wrapper around mdl, I don't see any real reason why this couldn't be production ready with just some additional documentation. One of my commits includes the beginning of codox.\r\n\r\n2) After using `material-ui`, re-mdl seems pretty clunk to create seemingly normal components. For example, most of my buttons tend to be something like:\r\n\r\n```clojure\r\n[mdl/button\r\n  :raised? true\r\n  :primary? true\r\n  :ripple-effect? true\r\n  :label \"Next\"\r\n  :on-click #(common/swap-tabs! :security)]\r\n```\r\n\r\nI think it would be nice to add utility methods that provide variations of certain components. For example, see the `icon-badge`, `flat-button`, `raised-button`, and `floating-action-button`. I also think it makes it easier to read the intentions of your code:\r\n\r\n```clojure\r\n[mdl/raised-button\r\n  :primary? true\r\n  :label \"Next\"\r\n  :on-click #(common/swap-tabs! :security)]\r\n```\r\n\r\n3) This may also clean things up a bit... For example, it may be nice to change the signature of `badge` to:\r\n\r\n```clojure\r\n(defn badge\r\n  [badge-label & {:keys [el id class attr\r\n             no-background? overlap? icon?\r\n             child]\r\n      :or   {el :span}}])\r\n```\r\n\r\nThe normal use case would be if you want to use a badge, you probably want something in the label. I'd rather people have to explicitly pass nil rather than that be the default. Likewise with text based buttons, icon buttons, etc (you should have to provide the button text or the icon). For example, this could clean up the `raised-button` even further:\r\n\r\n```clojure\r\n[mdl/raised-button \"Next\"\r\n  :primary? true\r\n  :on-click #(common/swap-tabs! :security)]\r\n```\r\n\r\nI would argue the above is clean and clear to the reader what it's doing.\r\n\r\n4) I also realize this project is to provide just a lightweight wrapper around MDL, but it _may_ be nice to think about adding an `extras`/`experimental` namespace of some kind to provide useful features not yet available in MDL. For example, two things I need are Dialogs and better validation of input fields. I realize this is likely out of the scope of this project, but it would definitely help people make more production ready apps. For dialogs I'm basically using [this](http://www.jqueryscript.net/demo/jQuery-Modal-Dialog-Plugin-For-Material-Design-Lite/).\r\n","created_at":"2016-01-07T15:36:16Z","updated_at":"2016-01-07T15:36:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/yetanalytics/re-mdl/pulls/4/commits","review_comments_url":"https://api.github.com/repos/yetanalytics/re-mdl/pulls/4/comments","review_comment_url":"https://api.github.com/repos/yetanalytics/re-mdl/pulls/comments{/number}","comments_url":"https://api.github.com/repos/yetanalytics/re-mdl/issues/4/comments","statuses_url":"https://api.github.com/repos/yetanalytics/re-mdl/statuses/05744df1af87828f3a01dced97a28984ae132088","head":{"label":"vincentjames501:master","ref":"master","sha":"05744df1af87828f3a01dced97a28984ae132088","user":{"login":"vincentjames501","id":396866,"avatar_url":"https://avatars.githubusercontent.com/u/396866?v=3","gravatar_id":"","url":"https://api.github.com/users/vincentjames501","html_url":"https://github.com/vincentjames501","followers_url":"https://api.github.com/users/vincentjames501/followers","following_url":"https://api.github.com/users/vincentjames501/following{/other_user}","gists_url":"https://api.github.com/users/vincentjames501/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentjames501/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentjames501/subscriptions","organizations_url":"https://api.github.com/users/vincentjames501/orgs","repos_url":"https://api.github.com/users/vincentjames501/repos","events_url":"https://api.github.com/users/vincentjames501/events{/privacy}","received_events_url":"https://api.github.com/users/vincentjames501/received_events","type":"User","site_admin":false},"repo":{"id":48864489,"name":"re-mdl","full_name":"vincentjames501/re-mdl","owner":{"login":"vincentjames501","id":396866,"avatar_url":"https://avatars.githubusercontent.com/u/396866?v=3","gravatar_id":"","url":"https://api.github.com/users/vincentjames501","html_url":"https://github.com/vincentjames501","followers_url":"https://api.github.com/users/vincentjames501/followers","following_url":"https://api.github.com/users/vincentjames501/following{/other_user}","gists_url":"https://api.github.com/users/vincentjames501/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentjames501/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentjames501/subscriptions","organizations_url":"https://api.github.com/users/vincentjames501/orgs","repos_url":"https://api.github.com/users/vincentjames501/repos","events_url":"https://api.github.com/users/vincentjames501/events{/privacy}","received_events_url":"https://api.github.com/users/vincentjames501/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/vincentjames501/re-mdl","description":"Yet another library of reusable UI components for Reagent","fork":true,"url":"https://api.github.com/repos/vincentjames501/re-mdl","forks_url":"https://api.github.com/repos/vincentjames501/re-mdl/forks","keys_url":"https://api.github.com/repos/vincentjames501/re-mdl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vincentjames501/re-mdl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vincentjames501/re-mdl/teams","hooks_url":"https://api.github.com/repos/vincentjames501/re-mdl/hooks","issue_events_url":"https://api.github.com/repos/vincentjames501/re-mdl/issues/events{/number}","events_url":"https://api.github.com/repos/vincentjames501/re-mdl/events","assignees_url":"https://api.github.com/repos/vincentjames501/re-mdl/assignees{/user}","branches_url":"https://api.github.com/repos/vincentjames501/re-mdl/branches{/branch}","tags_url":"https://api.github.com/repos/vincentjames501/re-mdl/tags","blobs_url":"https://api.github.com/repos/vincentjames501/re-mdl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vincentjames501/re-mdl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vincentjames501/re-mdl/git/refs{/sha}","trees_url":"https://api.github.com/repos/vincentjames501/re-mdl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vincentjames501/re-mdl/statuses/{sha}","languages_url":"https://api.github.com/repos/vincentjames501/re-mdl/languages","stargazers_url":"https://api.github.com/repos/vincentjames501/re-mdl/stargazers","contributors_url":"https://api.github.com/repos/vincentjames501/re-mdl/contributors","subscribers_url":"https://api.github.com/repos/vincentjames501/re-mdl/subscribers","subscription_url":"https://api.github.com/repos/vincentjames501/re-mdl/subscription","commits_url":"https://api.github.com/repos/vincentjames501/re-mdl/commits{/sha}","git_commits_url":"https://api.github.com/repos/vincentjames501/re-mdl/git/commits{/sha}","comments_url":"https://api.github.com/repos/vincentjames501/re-mdl/comments{/number}","issue_comment_url":"https://api.github.com/repos/vincentjames501/re-mdl/issues/comments{/number}","contents_url":"https://api.github.com/repos/vincentjames501/re-mdl/contents/{+path}","compare_url":"https://api.github.com/repos/vincentjames501/re-mdl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vincentjames501/re-mdl/merges","archive_url":"https://api.github.com/repos/vincentjames501/re-mdl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vincentjames501/re-mdl/downloads","issues_url":"https://api.github.com/repos/vincentjames501/re-mdl/issues{/number}","pulls_url":"https://api.github.com/repos/vincentjames501/re-mdl/pulls{/number}","milestones_url":"https://api.github.com/repos/vincentjames501/re-mdl/milestones{/number}","notifications_url":"https://api.github.com/repos/vincentjames501/re-mdl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vincentjames501/re-mdl/labels{/name}","releases_url":"https://api.github.com/repos/vincentjames501/re-mdl/releases{/id}","created_at":"2015-12-31T23:01:11Z","updated_at":"2015-12-31T23:01:12Z","pushed_at":"2016-01-07T15:11:38Z","git_url":"git://github.com/vincentjames501/re-mdl.git","ssh_url":"git@github.com:vincentjames501/re-mdl.git","clone_url":"https://github.com/vincentjames501/re-mdl.git","svn_url":"https://github.com/vincentjames501/re-mdl","homepage":null,"size":306,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"yetanalytics:master","ref":"master","sha":"90940674d85587b8828733ac85515fcddeaf5b34","user":{"login":"yetanalytics","id":4292759,"avatar_url":"https://avatars.githubusercontent.com/u/4292759?v=3","gravatar_id":"","url":"https://api.github.com/users/yetanalytics","html_url":"https://github.com/yetanalytics","followers_url":"https://api.github.com/users/yetanalytics/followers","following_url":"https://api.github.com/users/yetanalytics/following{/other_user}","gists_url":"https://api.github.com/users/yetanalytics/gists{/gist_id}","starred_url":"https://api.github.com/users/yetanalytics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yetanalytics/subscriptions","organizations_url":"https://api.github.com/users/yetanalytics/orgs","repos_url":"https://api.github.com/users/yetanalytics/repos","events_url":"https://api.github.com/users/yetanalytics/events{/privacy}","received_events_url":"https://api.github.com/users/yetanalytics/received_events","type":"Organization","site_admin":false},"repo":{"id":45628190,"name":"re-mdl","full_name":"yetanalytics/re-mdl","owner":{"login":"yetanalytics","id":4292759,"avatar_url":"https://avatars.githubusercontent.com/u/4292759?v=3","gravatar_id":"","url":"https://api.github.com/users/yetanalytics","html_url":"https://github.com/yetanalytics","followers_url":"https://api.github.com/users/yetanalytics/followers","following_url":"https://api.github.com/users/yetanalytics/following{/other_user}","gists_url":"https://api.github.com/users/yetanalytics/gists{/gist_id}","starred_url":"https://api.github.com/users/yetanalytics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yetanalytics/subscriptions","organizations_url":"https://api.github.com/users/yetanalytics/orgs","repos_url":"https://api.github.com/users/yetanalytics/repos","events_url":"https://api.github.com/users/yetanalytics/events{/privacy}","received_events_url":"https://api.github.com/users/yetanalytics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/yetanalytics/re-mdl","description":"Yet another library of reusable UI components for Reagent","fork":false,"url":"https://api.github.com/repos/yetanalytics/re-mdl","forks_url":"https://api.github.com/repos/yetanalytics/re-mdl/forks","keys_url":"https://api.github.com/repos/yetanalytics/re-mdl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yetanalytics/re-mdl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yetanalytics/re-mdl/teams","hooks_url":"https://api.github.com/repos/yetanalytics/re-mdl/hooks","issue_events_url":"https://api.github.com/repos/yetanalytics/re-mdl/issues/events{/number}","events_url":"https://api.github.com/repos/yetanalytics/re-mdl/events","assignees_url":"https://api.github.com/repos/yetanalytics/re-mdl/assignees{/user}","branches_url":"https://api.github.com/repos/yetanalytics/re-mdl/branches{/branch}","tags_url":"https://api.github.com/repos/yetanalytics/re-mdl/tags","blobs_url":"https://api.github.com/repos/yetanalytics/re-mdl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yetanalytics/re-mdl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yetanalytics/re-mdl/git/refs{/sha}","trees_url":"https://api.github.com/repos/yetanalytics/re-mdl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yetanalytics/re-mdl/statuses/{sha}","languages_url":"https://api.github.com/repos/yetanalytics/re-mdl/languages","stargazers_url":"https://api.github.com/repos/yetanalytics/re-mdl/stargazers","contributors_url":"https://api.github.com/repos/yetanalytics/re-mdl/contributors","subscribers_url":"https://api.github.com/repos/yetanalytics/re-mdl/subscribers","subscription_url":"https://api.github.com/repos/yetanalytics/re-mdl/subscription","commits_url":"https://api.github.com/repos/yetanalytics/re-mdl/commits{/sha}","git_commits_url":"https://api.github.com/repos/yetanalytics/re-mdl/git/commits{/sha}","comments_url":"https://api.github.com/repos/yetanalytics/re-mdl/comments{/number}","issue_comment_url":"https://api.github.com/repos/yetanalytics/re-mdl/issues/comments{/number}","contents_url":"https://api.github.com/repos/yetanalytics/re-mdl/contents/{+path}","compare_url":"https://api.github.com/repos/yetanalytics/re-mdl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yetanalytics/re-mdl/merges","archive_url":"https://api.github.com/repos/yetanalytics/re-mdl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yetanalytics/re-mdl/downloads","issues_url":"https://api.github.com/repos/yetanalytics/re-mdl/issues{/number}","pulls_url":"https://api.github.com/repos/yetanalytics/re-mdl/pulls{/number}","milestones_url":"https://api.github.com/repos/yetanalytics/re-mdl/milestones{/number}","notifications_url":"https://api.github.com/repos/yetanalytics/re-mdl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yetanalytics/re-mdl/labels{/name}","releases_url":"https://api.github.com/repos/yetanalytics/re-mdl/releases{/id}","created_at":"2015-11-05T17:37:11Z","updated_at":"2015-12-31T22:52:35Z","pushed_at":"2015-12-16T20:25:23Z","git_url":"git://github.com/yetanalytics/re-mdl.git","ssh_url":"git@github.com:yetanalytics/re-mdl.git","clone_url":"https://github.com/yetanalytics/re-mdl.git","svn_url":"https://github.com/yetanalytics/re-mdl","homepage":null,"size":308,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":3,"forks":1,"open_issues":3,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/yetanalytics/re-mdl/pulls/4"},"html":{"href":"https://github.com/yetanalytics/re-mdl/pull/4"},"issue":{"href":"https://api.github.com/repos/yetanalytics/re-mdl/issues/4"},"comments":{"href":"https://api.github.com/repos/yetanalytics/re-mdl/issues/4/comments"},"review_comments":{"href":"https://api.github.com/repos/yetanalytics/re-mdl/pulls/4/comments"},"review_comment":{"href":"https://api.github.com/repos/yetanalytics/re-mdl/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/yetanalytics/re-mdl/pulls/4/commits"},"statuses":{"href":"https://api.github.com/repos/yetanalytics/re-mdl/statuses/05744df1af87828f3a01dced97a28984ae132088"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":3,"additions":72,"deletions":18,"changed_files":5}}