{"action":"opened","issue":{"url":"https://api.github.com/repos/rofrischmann/react-look/issues/66","labels_url":"https://api.github.com/repos/rofrischmann/react-look/issues/66/labels{/name}","comments_url":"https://api.github.com/repos/rofrischmann/react-look/issues/66/comments","events_url":"https://api.github.com/repos/rofrischmann/react-look/issues/66/events","html_url":"https://github.com/rofrischmann/react-look/issues/66","id":104217200,"number":66,"title":"Split Look (core) and Look/Dom","user":{"login":"rofrischmann","id":10060928,"avatar_url":"https://avatars.githubusercontent.com/u/10060928?v=3","gravatar_id":"","url":"https://api.github.com/users/rofrischmann","html_url":"https://github.com/rofrischmann","followers_url":"https://api.github.com/users/rofrischmann/followers","following_url":"https://api.github.com/users/rofrischmann/following{/other_user}","gists_url":"https://api.github.com/users/rofrischmann/gists{/gist_id}","starred_url":"https://api.github.com/users/rofrischmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rofrischmann/subscriptions","organizations_url":"https://api.github.com/users/rofrischmann/orgs","repos_url":"https://api.github.com/users/rofrischmann/repos","events_url":"https://api.github.com/users/rofrischmann/events{/privacy}","received_events_url":"https://api.github.com/users/rofrischmann/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rofrischmann/react-look/labels/improvement","name":"improvement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/rofrischmann/react-look/milestones/4","html_url":"https://github.com/rofrischmann/react-look/milestones/0.4","labels_url":"https://api.github.com/repos/rofrischmann/react-look/milestones/4/labels","id":1253084,"number":4,"title":"0.4","description":"0.4 is all about rethinking the architecture:\r\nWe should split into 2 packages: Look and Look-dom and it should be plugin-based.\r\n\r\nWe should rethink and rebuild the architecture which Look builds on. Ight now its quite hard to get used to the code base.\r\nWe should clean it up so the core can be used for both react native and react. \r\nA plugin-based architecture could help a lot as a lot of the stuff e.g. prefixing, mixins and pseudo resolving are some kind of processor too.\r\n\r\nAdditional hooks should be implemented to catch earlier or later stages of the process.\r\nPlugins might have different types but by now I only come down with one which is `processor`.","creator":{"login":"rofrischmann","id":10060928,"avatar_url":"https://avatars.githubusercontent.com/u/10060928?v=3","gravatar_id":"","url":"https://api.github.com/users/rofrischmann","html_url":"https://github.com/rofrischmann","followers_url":"https://api.github.com/users/rofrischmann/followers","following_url":"https://api.github.com/users/rofrischmann/following{/other_user}","gists_url":"https://api.github.com/users/rofrischmann/gists{/gist_id}","starred_url":"https://api.github.com/users/rofrischmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rofrischmann/subscriptions","organizations_url":"https://api.github.com/users/rofrischmann/orgs","repos_url":"https://api.github.com/users/rofrischmann/repos","events_url":"https://api.github.com/users/rofrischmann/events{/privacy}","received_events_url":"https://api.github.com/users/rofrischmann/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":0,"state":"open","created_at":"2015-08-13T06:54:36Z","updated_at":"2015-09-01T08:47:11Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-09-01T08:47:11Z","updated_at":"2015-09-01T08:47:11Z","closed_at":null,"body":"Splitting Look into 2 main packages comes with some benefits:\r\n\r\n- It can be fully used with React Native without having all the code for pseudo classes, media queries, ... included which would be quite an overhead.\r\n- The core would remain as a simple and stable tool that just maps styles and provides some API's\r\n- Building on top of Look would be a lot easier e.g. using a plugin system that provides additional hooks.\r\n\r\nThe following is **just** a draft of how to split those:\r\n\r\n### Look (core)\r\n- [ ] Resolver\r\n- [ ] Enhancer\r\n- [ ] Stateful Conditions\r\n- [ ] Mixins\r\n- [ ] Config API\r\n- [ ] State API\r\n- [ ] childIndexMap\r\n\r\n### Look/Dom\r\n- [ ] Pseudo classes, Media queries\r\n- [ ] Listener\r\n- [ ] CSS API\r\n- [ ] Prefixer"}}