Compare commits

..

553 Commits

Author SHA1 Message Date
Ricky
b252e807be Update CNAME (#32413)
Fixes https://github.com/reactjs/react.dev/issues/7250
Fixes https://github.com/reactjs/react.dev/issues/7476
2025-02-17 23:38:08 -05:00
Jan Kassens
3b7b50f51f Update CNAME in gh-pages (#28983)
Fixes #28968
2024-05-03 10:05:51 -04:00
Brian Vaughn
d027eca037 Re-added CNAME 2017-09-29 08:37:03 -07:00
Brian Vaughn
c96fbd43c4 Removing CNAME file 2017-09-29 08:36:36 -07:00
Brian Vaughn
2f696fb289 Reprocess CNAME 2017-09-29 08:32:55 -07:00
Brian Vaughn
887ccf2534 Redirect users from the old gh-pages (Jekyll website) to reactjs.org (#10941)
* Deleted old Jekyll website
* Added CNAME that points to reactjs.org
2017-09-29 08:26:47 -07:00
facts-tracker
a34c28aaf9 Rebuild website 2017-09-27 11:44:51 -07:00
facts-tracker
f428b39aa1 Rebuild website 2017-09-27 09:24:15 -07:00
facts-tracker
32b3646202 Rebuild website 2017-09-27 09:14:32 -07:00
facts-tracker
cee6c8d54b Rebuild website 2017-09-27 05:39:53 -07:00
facts-tracker
a359efcd68 Rebuild website 2017-09-27 03:27:42 -07:00
facts-tracker
84506e9473 Rebuild website 2017-09-27 03:26:03 -07:00
facts-tracker
44485824f7 Rebuild website 2017-09-27 03:03:00 -07:00
facts-tracker
2586adb41c Rebuild website 2017-09-27 02:40:32 -07:00
facts-tracker
cff02339dd Rebuild website 2017-09-26 14:52:39 -07:00
Dan Abramov
a7ba8745cb Rebuild website 2017-09-26 22:13:51 +01:00
facts-tracker
4b8c8bfa7e Rebuild website 2017-09-26 14:02:13 -07:00
facts-tracker
e3dbfcd19d Rebuild website 2017-09-26 12:10:32 -07:00
facts-tracker
2cb3e9060f Rebuild website 2017-09-26 12:09:23 -07:00
facts-tracker
1daac009b3 Rebuild website 2017-09-26 11:55:58 -07:00
facts-tracker
546b9f6d59 Rebuild website 2017-09-26 11:18:35 -07:00
facts-tracker
37639a7c87 Rebuild website 2017-09-26 10:53:58 -07:00
Dan Abramov
eb0967749c Rebuild 2017-09-26 18:18:22 +01:00
Andrew Clark
9d80600b63 React 16 blog post and docs 2017-09-26 09:12:41 -07:00
Circle CI
021abead6f Rebuild website 2017-09-26 03:49:42 -07:00
Circle CI
383128d3d0 Rebuild website 2017-09-26 03:43:32 -07:00
Circle CI
f1ae286b15 Rebuild website 2017-09-25 17:26:53 -07:00
Dan Abramov
62b34d3573 Update error codes 2017-09-14 13:43:40 +01:00
Circle CI
56b0878f8c Rebuild website 2017-09-10 14:59:03 -07:00
Circle CI
eb38eace01 Rebuild website 2017-09-10 12:50:20 -07:00
Dan Abramov
af98484233 Rebuild website 2017-09-08 20:33:36 +01:00
Flarnie Marchan
cbf4858b39 Update error codes (#10622)
**what is the change?:**
This just updated the error codes on the docs.

For my future self, recording the steps it took to get here:
- On master, run `npm run build -- --extract-errors`
- Create a commit with those changes, and open a PR
  (https://github.com/facebook/react/pull/10619)
- Cherry-pick that commit onto 15-stable, and open a PR
  (https://github.com/facebook/react/pull/10621)
- Update the error codes on the `gh-pages branch` by doing the
  following based on docs
  (https://github.com/facebook/react/tree/master/docs#updating-facebookgithubioreact):
  - Set up a sister directory to `react` with `gh-pages` checked out,
    and call it `react-gh-pages`
  - In your `react` repo, with `15-stable` checked out and the
    error-codes update cherry-picked, run:
    `cd docs && bundle rake exec && bundle exec rake fetch_remotes && bundle exec rake release`
  - `cd ../react-gh-pages` and check in those changes, create a
    commit/PR
  - Manually test running the docs

**why make this change?:**
Even though this is just an RC, and not a final major release, we still
want the docs to be as up-to-date as possible.

**test plan:**
Run the docs locally and make sure things work.
(Flarnie will insert screenshots.)

**issue:**
https://github.com/facebook/react/issues/8854
2017-09-06 11:14:17 -07:00
Brian Vaughn
4221082c8e Cache-bust 404 for cross-origin-errors page 2017-08-14 14:21:57 -07:00
Brian Vaughn
2f89ee4cd5 Adding new page for cross-origin errors 2017-08-14 14:00:10 -07:00
Circle CI
c26241e8a1 Rebuild website 2017-08-05 05:25:59 -07:00
Circle CI
d62013bfe1 Rebuild website 2017-08-04 06:54:12 -07:00
Dan Abramov
c4efcecd98 Update error map 2017-08-04 00:38:15 +01:00
Dan Abramov
d6d0a17359 Rebuild 2017-08-03 16:15:30 +01:00
Circle CI
b26ebafdef Rebuild website 2017-07-27 16:00:49 -07:00
Circle CI
ea72bd2f92 Rebuild website 2017-07-27 15:52:00 -07:00
Dan Abramov
e2317870f1 Rebuild 2017-07-27 23:45:59 +01:00
Dan Abramov
7dc3b723cd Rebuild 2017-07-27 23:27:28 +01:00
Circle CI
dfa0f402d4 Rebuild website 2017-07-27 07:25:37 -07:00
Dan Abramov
c4aaff43f6 Rebuild 2017-07-27 10:50:56 +01:00
Dan Abramov
ae2fa05da5 Rebuild 2017-07-27 10:25:17 +01:00
Dan Abramov
5f47b8370c Rebuild website 2017-07-26 21:22:38 +01:00
Flarnie Marchan
8faba4cb2f Update error codes (#10292)
* Update error codes

A result of https://github.com/facebook/react/pull/10288

* Update the codes again
2017-07-26 12:50:19 -07:00
Circle CI
0be0c9ca72 Rebuild website 2017-07-26 12:43:31 -07:00
Dan Abramov
5f0258bc04 Rebuild 2017-07-11 14:09:11 +01:00
Circle CI
6941c84de2 Rebuild website 2017-06-29 08:13:33 -07:00
Dan Abramov
7bc32d9148 Rebuild 2017-06-26 18:29:28 +01:00
Circle CI
b1e6227e67 Rebuild website 2017-06-15 07:55:51 -07:00
Circle CI
f3f308ffaf Rebuild website 2017-06-14 16:18:51 -07:00
Circle CI
e7020c6106 Rebuild website 2017-06-13 16:05:17 -07:00
Circle CI
dc204718f0 Rebuild website 2017-06-13 10:18:57 -07:00
Circle CI
e4a9af594f Rebuild website 2017-06-13 07:42:06 -07:00
Dan Abramov
c22c398cec Rebuild 2017-06-10 00:06:12 +01:00
Dan Abramov
8862cb0e35 rebuild 2017-05-19 05:45:28 +01:00
Dan Abramov
4f3eb847b3 Rebuild manually 2017-05-10 08:25:57 +01:00
Dan Abramov
f11140a0a6 Rebuild website 2017-05-05 18:06:15 +01:00
Dan Abramov
c653f07ca8 Rebuild manually 2017-05-04 00:30:57 +01:00
Dan Abramov
7ceb3fdff9 Rebuild manually 2017-05-03 15:43:35 +01:00
Dan Abramov
3e9af29f7f Fix mobile layout 2017-05-03 15:39:38 +01:00
Dan Abramov
4eccc7696e Typo 2017-05-03 15:05:54 +01:00
Dan Abramov
788d9c8678 Rebuild manually 2017-05-03 11:06:23 +01:00
Dan Abramov
900ce3cc5f Rebuild manually 2017-05-01 17:25:07 +01:00
Dan Abramov
4b6a66900f Rebuild website 2017-04-26 17:34:36 +01:00
Dan Abramov
651edfe54d Rebuild website 2017-04-20 11:55:14 +01:00
Dan Abramov
636d515e62 Rebuild website 2017-04-19 12:34:25 +01:00
Dan Abramov
a3b3125c5c Rebuild website 2017-04-18 18:20:18 +01:00
Dan Abramov
d6ab9fde20 Rebuild website 2017-04-18 18:07:51 +01:00
Dan Abramov
99f82d7243 Rebuild website 2017-04-18 18:00:18 +01:00
Dan Abramov
3f2c6bebc0 Rebuild website 2017-04-18 17:54:28 +01:00
Dan Abramov
002af59ea3 Rebuild website 2017-04-18 17:45:07 +01:00
Dan Abramov
3ec1319427 Rebuild website 2017-04-18 17:42:29 +01:00
Dan Abramov
2fefe1edce Add CDN section back 2017-04-14 00:59:17 +01:00
Dan Abramov
784e29fd65 Temporarily remove CDN section
See https://twitter.com/amorgner/status/852660573364002816, there are issues with unpkg right now.
2017-04-14 00:51:22 +01:00
Dan Abramov
74d10acb03 Rebuild manually 2017-04-13 21:52:17 +01:00
Dan Abramov
0a7d248cc5 Rebuild website 2017-04-13 20:57:29 +01:00
Dan Abramov
0a095d55f4 Rebuild 2017-04-13 15:28:37 +01:00
Dan Abramov
08f6e2f603 Rebuild manually 2017-04-12 00:06:02 +01:00
Dan Abramov
a1457be82f Rebuild manually 2017-04-11 22:10:02 +01:00
Dan Abramov
724d87ea40 Update manually 2017-04-08 04:11:46 +01:00
Andrew Clark
87384331e8 Rebuild the website for 15.5.0 2017-04-07 14:48:05 -07:00
Circle CI
0db185e5d7 Rebuild website 2017-03-12 08:49:40 -07:00
Circle CI
9774f127f8 Rebuild website 2017-03-09 19:08:17 -08:00
Dan Abramov
53970c95be Rebuild 2017-02-19 12:12:06 +00:00
Dan Abramov
3842de7f5f Rebuild 2017-02-19 11:14:33 +00:00
Dan Abramov
a941c9928e Rebuild 2017-02-06 17:16:37 +00:00
Circle CI
a0924bb67a Rebuild website 2017-02-02 05:33:01 -08:00
Circle CI
ac6c3d3eae Rebuild website 2017-01-23 15:58:27 -08:00
Circle CI
9c7bb68d01 Rebuild website 2017-01-23 10:35:15 -08:00
Circle CI
451cb4c623 Rebuild website 2017-01-23 09:27:21 -08:00
Dan Abramov
e8ea302025 Rebuild the website manually 2017-01-12 16:06:32 +00:00
Dan Abramov
6bb7a6c60e Rebuild docs 2017-01-06 20:28:00 +00:00
Dan Abramov
1a60ccde97 Rebuild docs 2017-01-04 18:21:44 +00:00
Ben Alpert
ed3c401c9e Rebuild docs with 17f8e94 2016-12-07 15:46:53 -08:00
Dan Abramov
be1d6848f0 Rebuild the website manually 2016-11-19 18:29:23 +00:00
Dan Abramov
5934242b7e Rebuild website 2016-11-16 14:53:46 +00:00
Travis CI
e19372d5f4 Rebuild website 2016-11-09 02:58:31 +00:00
Travis CI
58c129dff9 Rebuild website 2016-11-09 01:00:46 +00:00
Travis CI
f5b5d9a5f3 Rebuild website 2016-10-27 12:18:24 +00:00
Dan Abramov
cd443ca3da Rebuild website manually 2016-10-27 02:14:19 +01:00
Travis CI
5b7af23023 Rebuild website 2016-10-24 14:55:58 +00:00
Travis CI
2039cf87ee Rebuild website 2016-10-23 14:51:57 +00:00
Travis CI
7149218fa4 Rebuild website 2016-10-23 13:40:12 +00:00
Travis CI
cb8283877a Rebuild website 2016-10-23 12:54:32 +00:00
Travis CI
107c74cd7a Rebuild website 2016-10-22 21:11:05 +00:00
Ben Alpert
5cef4e9780 Revert "Rebuild website"
This reverts commit 4aaf555d80.
2016-10-21 14:29:03 -07:00
Travis CI
4aaf555d80 Rebuild website 2016-10-21 21:17:00 +00:00
Dan Abramov
dc84614b0c Rebuild website manually 2016-10-21 22:01:35 +01:00
Dan Abramov
625fc71ebb Rebuild website manually 2016-10-21 21:51:45 +01:00
Dan Abramov
659cef8a98 Rebuild website manually 2016-10-21 21:37:29 +01:00
Travis CI
6cc07e595a Rebuild website 2016-10-11 18:14:29 +00:00
Travis CI
fec4df7150 Rebuild website 2016-10-10 16:32:22 +00:00
Travis CI
88fbe7cc58 Rebuild website 2016-10-05 02:09:02 +00:00
Travis CI
7eb00d77e9 Rebuild website 2016-10-04 21:03:41 +00:00
Dan Abramov
6784bf841e Rebuild the website by hand 2016-10-04 19:44:42 +01:00
Travis CI
7268e9423f Rebuild website 2016-10-04 11:54:07 +00:00
Travis CI
309de75dc5 Rebuild website 2016-10-04 11:25:53 +00:00
Travis CI
3dc13b49b9 Rebuild website 2016-10-04 11:23:12 +00:00
Travis CI
96540f5afd Rebuild website 2016-10-03 22:58:27 +00:00
Travis CI
6b504aa08b Rebuild website 2016-10-03 21:35:05 +00:00
Travis CI
e0d718e49c Rebuild website 2016-10-03 21:07:11 +00:00
Travis CI
01651c2f14 Rebuild website 2016-10-03 20:56:41 +00:00
Travis CI
f647c99f0a Rebuild website 2016-10-03 20:28:46 +00:00
Travis CI
1e4e30f9a2 Rebuild website 2016-10-03 18:25:57 +00:00
Travis CI
139a6d9f9c Rebuild website 2016-09-29 10:36:55 +00:00
Travis CI
742ad40cec Rebuild website 2016-09-28 20:47:00 +00:00
Dan Abramov
d161c0a805 Rebuild website manually 2016-09-28 10:24:22 +01:00
Travis CI
9b6bedc109 Rebuild website 2016-09-28 02:50:29 +00:00
Dan Abramov
887c2a7386 Rebuild website manually 2016-09-27 23:19:47 +01:00
Travis CI
86561ea4e6 Rebuild website 2016-09-26 23:11:46 +00:00
Travis CI
760706b92b Rebuild website 2016-09-19 22:47:11 +00:00
Travis CI
92ffaf51d5 Rebuild website 2016-09-19 18:01:08 +00:00
Travis CI
57e56e8175 Rebuild website 2016-09-06 22:51:52 +00:00
Travis CI
8a6f8eddde Rebuild website 2016-09-03 17:17:43 +00:00
Paul O’Shannessy
2d90a5ba61 Rebuild website 2016-08-19 11:57:12 -07:00
Travis CI
7c78a4d0d4 Rebuild website 2016-08-19 17:44:40 +00:00
Travis CI
d3fe28ccd0 Rebuild website 2016-08-05 22:03:32 +00:00
Paul O’Shannessy
aac960738a Rebuild website 2016-08-05 11:08:49 -07:00
Travis CI
d3e0241469 Rebuild website 2016-08-02 20:54:26 +00:00
Travis CI
22e6d6a6d2 Rebuild website 2016-07-29 23:33:35 +00:00
Travis CI
1a1d339466 Rebuild website 2016-07-29 23:25:43 +00:00
Paul O’Shannessy
3ac0f9fc9a Rebuild website 2016-07-29 14:49:58 -07:00
Travis CI
e71c772d12 Rebuild website 2016-07-29 18:42:31 +00:00
Travis CI
00b883302c Rebuild website 2016-07-28 18:44:47 +00:00
Travis CI
e33d5e7bb1 Rebuild website 2016-07-22 20:26:56 +00:00
Travis CI
7217ae2671 Rebuild website 2016-07-22 16:01:45 +00:00
Travis CI
994651f5f9 Rebuild website 2016-07-20 18:55:19 +00:00
Travis CI
f23fd9c145 Rebuild website 2016-07-16 14:04:32 +00:00
Dan Abramov
b12a61d7c6 Rebuild website 2016-07-14 21:31:55 +01:00
Travis CI
f40e975f3f Rebuild website 2016-07-14 20:09:03 +00:00
Dan Abramov
017cc60cf3 Rebuild website 2016-07-14 20:43:11 +01:00
Travis CI
b0e883b4dc Rebuild website 2016-07-14 13:28:45 +00:00
Travis CI
9cbc399916 Rebuild website 2016-07-14 02:10:06 +00:00
Travis CI
ecf1fa5827 Rebuild website 2016-07-14 02:06:29 +00:00
Travis CI
cf707bc9f7 Rebuild website 2016-07-14 01:32:51 +00:00
Dan Abramov
b9cae83735 Rebuild website 2016-07-13 18:48:38 +01:00
Dan Abramov
a622002aed Rebuild website 2016-07-13 18:01:36 +01:00
Dan Abramov
f5b00d332a Rebuild website 2016-07-13 17:48:17 +01:00
Travis CI
188230ed62 Rebuild website 2016-07-12 01:57:29 +00:00
Travis CI
a5c102546b Rebuild website 2016-07-08 22:46:54 +00:00
Travis CI
ee785cea3a Rebuild website 2016-07-05 21:42:54 +00:00
Travis CI
e6b4020059 Rebuild website 2016-07-01 19:00:57 +00:00
Travis CI
aa50560d83 Rebuild website 2016-06-30 07:18:49 +00:00
Travis CI
1f48f2a157 Rebuild website 2016-06-21 03:24:52 +00:00
Travis CI
4c213db337 Rebuild website 2016-06-14 22:07:50 +00:00
Travis CI
7327d9fc5f Rebuild website 2016-06-13 19:42:24 +00:00
Travis CI
c636a24ab6 Rebuild website 2016-06-11 02:49:21 +00:00
Travis CI
064d1cf34a Rebuild website 2016-06-09 02:33:04 +00:00
Paul O’Shannessy
35ebcd3c55 Rebuild website 2016-06-07 16:35:54 -07:00
Travis CI
1c8c0bb99e Rebuild website 2016-06-03 21:48:37 +00:00
Travis CI
d6d06c6ecc Rebuild website 2016-06-03 21:43:52 +00:00
Travis CI
bd8054ef05 Rebuild website 2016-06-01 18:44:10 +00:00
Travis CI
725a0679b2 Rebuild website 2016-05-31 19:17:40 +00:00
Travis CI
c7e6ff57f6 Rebuild website 2016-05-24 19:07:03 +00:00
Travis CI
ea4f9ef2c6 Rebuild website 2016-05-20 23:10:59 +00:00
Travis CI
bbc2a37ab8 Rebuild website 2016-05-16 20:06:23 +00:00
Travis CI
d23d35d15a Rebuild website 2016-05-10 01:29:04 +00:00
Travis CI
eef19d1a04 Rebuild website 2016-05-09 23:47:37 +00:00
Travis CI
92ec06b65c Rebuild website 2016-04-30 00:43:29 +00:00
Travis CI
e2d954d1e7 Rebuild website 2016-04-22 20:15:55 +00:00
Travis CI
1d9e1aaf2d Rebuild website 2016-04-22 17:42:50 +00:00
Travis CI
a92c60c8cc Rebuild website 2016-04-14 22:59:44 +00:00
Travis CI
1ecf70469d Rebuild website 2016-04-09 01:26:52 +00:00
Travis CI
73ee739d02 Rebuild website 2016-04-08 19:19:28 +00:00
Travis CI
fadd204d35 Rebuild website 2016-04-08 19:02:14 +00:00
Paul O’Shannessy
dd653e305d Update website for 15.0.1 2016-04-08 11:30:23 -07:00
Travis CI
13a7fc0d07 Rebuild website 2016-04-08 01:17:20 +00:00
Travis CI
4f9905e4d3 Rebuild website 2016-04-07 23:56:47 +00:00
Travis CI
42979fa4ff Rebuild website 2016-04-07 23:40:07 +00:00
Paul O’Shannessy
db8498e15c rebuild website 2016-04-07 15:29:14 -07:00
Paul O’Shannessy
1b94dd8f40 Update site for v15 2016-04-07 14:33:54 -07:00
Travis CI
181b8454b1 Rebuild website 2016-03-29 22:26:28 +00:00
Travis CI
01ac4e13d3 Rebuild website 2016-03-29 21:26:34 +00:00
Travis CI
bf916998f2 Rebuild website 2016-03-29 20:05:41 +00:00
Travis CI
7ccf5eebc0 Rebuild website 2016-03-29 17:36:50 +00:00
Paul O’Shannessy
fec4d82416 Add 0.14.8 download 2016-03-29 10:27:07 -07:00
Travis CI
6d2cc9121a Rebuild website 2016-03-29 17:02:28 +00:00
Paul O’Shannessy
853784bc3f revert js 2016-03-21 18:05:21 -07:00
Travis CI
612ab8f7bd Rebuild website 2016-03-22 00:54:32 +00:00
Paul O’Shannessy
29d9a13ffb revert JS again
I donn't have insight into the queue and don't want to leave the site
broken forever.
2016-03-21 16:27:40 -07:00
Travis CI
4c2ff9ca34 Rebuild website 2016-03-21 19:38:37 +00:00
Paul O’Shannessy
63dff641cf Update website 2016-03-21 11:28:34 -07:00
Dan Abramov
f918eaa38c Restore JS yet again 2016-03-17 00:02:43 +00:00
Travis CI
49f47947c5 Rebuild website 2016-03-16 23:30:40 +00:00
Paul O’Shannessy
bde2c2905b restore js again 2016-03-09 12:09:30 -08:00
Travis CI
781cb6db90 Rebuild website 2016-03-09 19:43:03 +00:00
Paul O’Shannessy
c4c17f4f4f re-add removed JS again 2016-03-08 18:55:09 -08:00
Travis CI
6aa47d0ebf Rebuild website 2016-03-08 02:16:50 +00:00
Travis CI
81c8a0732d Rebuild website 2016-03-08 01:55:35 +00:00
Paul O’Shannessy
dfbee7f109 Update website 2016-03-07 17:17:10 -08:00
Paul O’Shannessy
2714c5d6f2 Restore deleted JS files 2016-03-07 13:37:08 -08:00
Travis CI
2402eb5a99 Rebuild website 2016-03-07 20:28:40 +00:00
Travis CI
d957c00dca Rebuild website 2016-02-25 07:41:47 +00:00
Travis CI
0845e3efae Rebuild website 2016-02-19 20:54:06 +00:00
Travis CI
3806959a6d Rebuild website 2016-02-19 19:41:35 +00:00
Travis CI
0b18dbc001 Rebuild website 2016-02-13 02:51:01 +00:00
Travis CI
f788099ab7 Rebuild website 2016-02-08 22:24:32 +00:00
Travis CI
e52a41c7be Rebuild website 2016-02-08 21:59:07 +00:00
Paul O’Shannessy
45efe53fd2 Rebuild website 2016-01-28 12:24:39 -08:00
Travis CI
7610b39759 Rebuild website 2016-01-28 18:43:23 +00:00
Travis CI
94a04746c2 Rebuild website 2016-01-12 17:49:07 +00:00
Travis CI
b6a74e8abe Rebuild website 2016-01-12 17:34:35 +00:00
Travis CI
58ccca7f75 Rebuild website 2016-01-08 18:33:53 +00:00
Travis CI
e97536deb5 Rebuild website 2016-01-06 23:57:13 +00:00
Travis CI
6851ef63b7 Rebuild website 2015-12-29 22:43:14 +00:00
Travis CI
e559120849 Rebuild website 2015-12-29 22:20:21 +00:00
Travis CI
c9cf3bb0c5 Rebuild website 2015-12-29 22:03:15 +00:00
Travis CI
b1a1e1440b Rebuild website 2015-12-29 22:01:57 +00:00
Travis CI
89789f974b Rebuild website 2015-12-23 20:55:57 +00:00
Travis CI
e4e3cb9125 Rebuild website 2015-12-21 20:22:57 +00:00
Travis CI
d94efdaa96 Rebuild website 2015-12-18 20:46:52 +00:00
Travis CI
507c52b220 Rebuild website 2015-12-16 17:59:48 +00:00
Travis CI
330a594d4b Rebuild website 2015-12-04 22:53:51 +00:00
Travis CI
13b86c3220 Rebuild website 2015-12-04 21:04:39 +00:00
Paul O’Shannessy
ce88118f88 Rebuild website 2015-12-04 12:05:14 -08:00
Travis CI
e6e5795dab Rebuild website 2015-12-01 20:05:27 +00:00
Travis CI
b12825dee9 Rebuild website 2015-11-19 02:21:12 +00:00
Travis CI
9bd86524e2 Rebuild website 2015-11-18 18:42:37 +00:00
Travis CI
609ba0776b Rebuild website 2015-11-13 00:15:47 +00:00
Travis CI
31f223fc9e Rebuild website 2015-11-12 23:05:29 +00:00
Travis CI
8b569f5573 Rebuild website 2015-11-10 18:56:55 +00:00
Travis CI
0ea0bd7d2d Rebuild website 2015-11-03 01:24:38 +00:00
Travis CI
83ba002377 Rebuild website 2015-11-02 19:57:29 +00:00
Travis CI
99a02b92d7 Rebuild website 2015-10-31 19:23:04 +00:00
Travis CI
8fd061c819 Rebuild website 2015-10-28 21:34:43 +00:00
Travis CI
9bc9c80617 Rebuild website 2015-10-27 22:48:54 +00:00
Travis CI
3c2848d785 Rebuild website 2015-10-20 23:23:15 +00:00
Travis CI
c022e0f61b Rebuild website 2015-10-19 19:56:43 +00:00
Travis CI
49711c27aa Rebuild website 2015-10-19 18:19:13 +00:00
Travis CI
47d9b441d4 Rebuild website 2015-10-19 14:46:15 +00:00
Travis CI
d9b99c2d6f Rebuild website 2015-10-13 17:58:19 +00:00
Travis CI
b06a057dd4 Rebuild website 2015-10-12 22:16:53 +00:00
Travis CI
a5ea866492 Rebuild website 2015-10-11 02:27:59 +00:00
Travis CI
2eb3bdb7a3 Rebuild website 2015-10-09 23:03:30 +00:00
Travis CI
19c9ec1544 Rebuild website 2015-10-09 22:56:16 +00:00
Travis CI
3ead8e3d11 Rebuild website 2015-10-09 19:35:31 +00:00
Travis CI
6d6208a7fa Rebuild website 2015-10-08 20:26:17 +00:00
Travis CI
15707df9bc Rebuild website 2015-10-08 00:18:24 +00:00
Travis CI
a0b2f21987 Rebuild website 2015-10-07 20:06:38 +00:00
Travis CI
ea47c6c9f3 Rebuild website 2015-10-07 19:28:51 +00:00
Travis CI
76c780f3a9 Rebuild website 2015-10-07 17:31:12 +00:00
Travis CI
556dfa96c5 Rebuild website 2015-10-02 19:13:37 +00:00
Travis CI
ea6b0b9e56 Rebuild website 2015-09-26 03:34:40 +00:00
Travis CI
547c811365 Rebuild website 2015-09-22 18:15:43 +00:00
Travis CI
d26a0ceb1a Rebuild website 2015-09-15 03:44:46 +00:00
Travis CI
9ce9d5913b Rebuild website 2015-09-15 02:47:29 +00:00
Travis CI
83e53e59de Rebuild website 2015-09-14 15:38:09 +00:00
Travis CI
30dec0b6a0 Rebuild website 2015-09-10 20:30:20 +00:00
Travis CI
fa87fc1234 Rebuild website 2015-09-10 17:07:37 +00:00
Travis CI
3f52012b40 Rebuild website 2015-09-10 16:52:05 +00:00
Travis CI
b0091b516c Rebuild website 2015-09-02 22:20:42 +00:00
Travis CI
1f0e950538 Rebuild website 2015-08-31 18:29:13 +00:00
Travis CI
a42b28ff58 Rebuild website 2015-08-25 16:57:28 +00:00
Travis CI
fbeace0f81 Rebuild website 2015-08-25 16:48:55 +00:00
Travis CI
7a99d421c9 Rebuild website 2015-08-20 20:35:14 +00:00
Travis CI
5724abb1ed Rebuild website 2015-08-20 20:17:23 +00:00
Travis CI
0898f44329 Rebuild website 2015-08-19 23:37:02 +00:00
Travis CI
24a6ed9201 Rebuild website 2015-08-14 00:17:16 +00:00
Travis CI
3ee0f9c321 Rebuild website 2015-08-12 19:11:47 +00:00
Jim
f9b2f3f53e Merge pull request #4617 from marcuswhybrow/patch-1
Fix grammar in "Why Relay"
2015-08-12 07:51:22 -07:00
Marcus Whybrow
ed7f3299fd Fix grammar in "Why Relay" 2015-08-12 15:29:26 +01:00
Travis CI
562937ce28 Rebuild website 2015-08-11 19:33:03 +00:00
Travis CI
abb04d53f4 Rebuild website 2015-08-08 02:33:17 +00:00
Travis CI
083c2fa33f Rebuild website 2015-08-03 22:19:54 +00:00
Travis CI
eae015d0ee Rebuild website 2015-07-25 00:42:17 +00:00
Travis CI
e46589f784 Rebuild website 2015-07-20 15:34:11 +00:00
Travis CI
0b5cb01d2f Rebuild website 2015-07-17 21:25:35 +00:00
Travis CI
0c788b272f Rebuild website 2015-07-15 14:37:34 +00:00
Travis CI
9aa593096e Rebuild website 2015-07-08 17:26:34 +00:00
Travis CI
cef5a9d791 Rebuild website 2015-07-04 15:27:40 +00:00
Travis CI
480d599895 Rebuild website 2015-07-03 08:56:34 +00:00
Travis CI
813a536d0f Rebuild website 2015-06-30 13:59:44 +00:00
Travis CI
33ac4ccc76 Rebuild website 2015-06-27 10:03:17 +00:00
Travis CI
f409f18c0f Rebuild website 2015-06-25 03:26:43 +00:00
Travis CI
658bd6a67d Rebuild website 2015-06-23 05:42:46 +00:00
Travis CI
d284e50900 Rebuild website 2015-06-20 23:52:34 +00:00
Ben Alpert
459e68f93b Merge pull request #4183 from jstoja/patch-1
Update graphql-introduction.html
2015-06-20 16:47:58 -07:00
Julien Bordellier
5bdd8f8640 Update graphql-introduction.html
There was a tiny mistake line 170 s/and/an/ :)
2015-06-20 16:50:01 +02:00
Travis CI
23c85e45b7 Rebuild website 2015-06-16 17:59:43 +00:00
Travis CI
e3aea2ee0c Rebuild website 2015-06-13 04:53:37 +00:00
Travis CI
33c1227063 Rebuild website 2015-06-12 23:49:59 +00:00
Travis CI
0fdb244c6d Rebuild website 2015-06-10 23:02:35 +00:00
Travis CI
fed91d4a82 Rebuild website 2015-06-09 03:18:41 +00:00
Travis CI
7f80adf253 Rebuild website 2015-06-01 21:34:08 +00:00
Travis CI
c24c9e602c Rebuild website 2015-05-22 20:22:20 +00:00
Travis CI
d8cfaf830f Rebuild website 2015-05-21 18:51:57 +00:00
Travis CI
a7c4734802 Rebuild website 2015-05-13 22:21:23 +00:00
Travis CI
8e14fbdc0e Rebuild website 2015-05-11 05:17:12 +00:00
Travis CI
5b5b7d100d Rebuild website 2015-05-08 23:40:41 +00:00
Travis CI
431525248b Rebuild website 2015-05-02 00:02:59 +00:00
Travis CI
248d304421 Rebuild website 2015-05-01 19:37:36 +00:00
Travis CI
4ff6c8ad51 Rebuild website 2015-05-01 18:25:24 +00:00
Travis CI
e3075c6cbc Rebuild website 2015-05-01 18:11:09 +00:00
Travis CI
be7d5de803 Rebuild website 2015-04-23 00:09:10 +00:00
Travis CI
bf961b2c2a Rebuild website 2015-04-20 18:14:12 +00:00
Travis CI
c002957436 Rebuild website 2015-04-18 23:10:25 +00:00
Travis CI
fddf68752e Rebuild website 2015-04-18 22:40:10 +00:00
Travis CI
55c84b449e Rebuild website 2015-04-18 01:15:06 +00:00
Christopher Chedeau
bcf765dcf3 React Native v0.4 2015-04-17 09:15:26 -07:00
Travis CI
9424d2be52 Rebuild website 2015-04-14 21:49:45 +00:00
Travis CI
c9767eaae4 Rebuild website 2015-04-14 00:11:27 +00:00
Travis CI
52f253cfc8 Rebuild website 2015-04-13 23:17:59 +00:00
Travis CI
f9acc6517a Rebuild website 2015-04-08 18:16:02 +00:00
Travis CI
75bb7f7355 Rebuild website 2015-04-03 17:54:56 +00:00
Travis CI
0e591c19ca Rebuild website 2015-04-03 16:17:27 +00:00
Travis CI
c9d8f02c8e Rebuild website 2015-04-01 00:11:10 +00:00
Travis CI
0640447cb3 Rebuild website 2015-03-30 18:27:44 +00:00
Christopher Chedeau
d4eed6320c Round-up 26 2015-03-30 08:05:58 -07:00
Ben Alpert
237cdbb2fc Rebuild docs 2015-03-26 12:31:15 -07:00
Ben Alpert
75bdef3e45 Rebuild docs 2015-03-26 10:11:35 -07:00
Ben Alpert
4eee8efbae Rebuild docs 2015-03-26 10:09:34 -07:00
Paul O’Shannessy
043584fc6c Update for relay blog post 2015-03-19 13:07:03 -07:00
Paul O’Shannessy
8e5f7ea1d1 v0.13.1 2015-03-16 16:53:07 -07:00
Paul O’Shannessy
0a779234d2 Includes #3419, #3422, #3394 2015-03-16 16:26:40 -07:00
Paul O’Shannessy
de204315c6 v0.13.0 2015-03-10 14:54:21 -07:00
Jim
37d795f9bc Merge pull request #3319 from rynclark/patch-2
Fix typo (Clark not Clarke)
2015-03-05 03:04:21 -08:00
Ryan Clark
e3ff7dfab3 Update index.html
Fixed my name again - didn't realise it was on this page too.
2015-03-05 10:04:55 +00:00
Paul O’Shannessy
18b46dbb62 Merge pull request #3311 from rynclark/patch-1
Update community-roundup-25.html
2015-03-04 12:28:04 -08:00
Ryan Clark
88b3ce1e7d Update community-roundup-25.html
Fixed my name!
2015-03-04 19:11:55 +00:00
Christopher Chedeau
fd857723bd update of round-up 25 2015-03-04 09:26:09 -08:00
Christopher Chedeau
4c96ea3517 roundup 25 2015-03-04 09:11:05 -08:00
Paul O’Shannessy
e3d9944ed0 Facebook, not FaceBook 2015-03-03 12:48:43 -08:00
Paul O’Shannessy
d3d258ba5b v0.13 rc2 blog post 2015-03-03 12:44:50 -08:00
Paul O’Shannessy
e1fd23515a v0.13 RC blog post 2015-02-24 14:11:54 -08:00
Paul O’Shannessy
33f553da2c 4d90b9bdf3 and #3255 2015-02-24 12:48:57 -08:00
Paul O’Shannessy
331320b80b Streamlining React Elements blog post (#3250) 2015-02-24 11:29:56 -08:00
Paul O’Shannessy
2e578d1f64 Relay blog post (#3174) 2015-02-20 09:48:30 -08:00
Paul O’Shannessy
cfb998a906 Add #3190 2015-02-18 21:42:56 -08:00
Paul O’Shannessy
2af1bffce1 Update to latest
Includes #3168, #3167, #3134, #3089, #3082, #3078, #3074, #3073, #3046, #3166
2015-02-18 13:44:53 -08:00
Christopher Chedeau
738e33cd7f update image perf 2015-02-11 12:46:43 -08:00
Christopher Chedeau
0febbe14de Tweaks on advanced performance 2015-02-11 11:15:31 -08:00
Christopher Chedeau
3b45fd540f advanced performance 2015-02-11 10:57:48 -08:00
Paul O’Shannessy
4c758f484e Update to latest
Includes #3036, #3032, #3016, #3013, #3011, #3007, #3001, #2999, #2997, #2987, #2969, #2965, #2962, #2961
2015-02-04 15:36:53 -08:00
Paul O’Shannessy
0a207cc1f1 Merge pull request #2971 from koistya/patch-1
Fix a typo in 2015/01/27 blog post
2015-01-29 16:11:10 -08:00
Konstantin Tarkus
6102e015c3 Fix a typo in 2015/01/27 blog post 2015-01-28 15:50:23 +03:00
Paul O’Shannessy
20700b9e67 A couple small updates to the 0.13 beta blog post 2015-01-28 00:01:32 -08:00
Paul O’Shannessy
780f01a993 0.13 beta blog post 2015-01-27 23:08:27 -08:00
Paul O’Shannessy
3d4afaaa5d Update to latest
Includes 92e361709c (not #2874), #2875, #2881, #2890, #2902, #2903
2015-01-22 13:20:10 -08:00
Paul O’Shannessy
870def7781 Update to latest
Includes #2859, #2824, #2801, #2795, #2791, #2788, #2773, #2760, #2759, #2734, #2733, #2707, #2675, #2360, #2297
2015-01-16 16:40:06 -08:00
Paul O’Shannessy
5ab16ba05d Fix typo in blog post - #2752 2014-12-19 14:31:54 -08:00
Paul O’Shannessy
f1b8acc7b5 Diversity Scholarship blog post 2014-12-19 13:24:03 -08:00
Paul O’Shannessy
dd499fdee2 v0.12.2 2014-12-18 12:33:48 -08:00
Paul O’Shannessy
2fb27e9598 Update to latest
Includes #2718, #2705, #2694, #2689, #2679, #2672, #2671
2014-12-16 12:41:09 -08:00
Paul O’Shannessy
1dcaad3f8e Update to latest
Includes: #2630, #2633, #2616, #2623, #2622, #2636, #2615, #2649, #2639, #2635
2014-12-03 15:01:13 -08:00
Steven Luscher
6fe2c0c425 Community #24: Regenerated for the correct spelling of prism, a better Carousel link, and less whale-talk. 2014-11-24 18:31:27 -08:00
Steven Luscher
58d3bf0352 Generated Community Roundup #24 2014-11-24 18:04:00 -08:00
Christopher Chedeau
f271ce3b03 add recorded 2014-11-24 11:29:58 +00:00
Christopher Chedeau
0a9b79096b react conf updates 2014-11-24 10:35:33 +00:00
Paul O’Shannessy
12b8de2861 Update to latest
Includes #2473, #2475, #2498, #2514, #2544, #2554, #2555
2014-11-19 15:37:29 +00:00
Paul O’Shannessy
de16bd5883 0.12.1 2014-11-18 09:11:02 +01:00
Christopher Chedeau
93572503dd JSXTransformer build with stripping type annotations 2014-11-15 17:32:36 -08:00
Paul O’Shannessy
23d90ff554 Update to latest
Includes #2463, #2434
2014-11-05 16:22:36 -08:00
Paul O’Shannessy
ffa032b146 Update to latest
Includes #2419, #2428, #2418, #2443, #2433
2014-10-31 11:24:54 -07:00
Paul O’Shannessy
654b347d58 v0.12.0 2014-10-28 11:36:52 -07:00
Paul O’Shannessy
868c19523d React.js conf blog post 2014-10-27 10:16:01 -07:00
Paul O’Shannessy
252b153e86 Update to latest
* 90d1aeb
* be468c2
2014-10-20 16:23:06 -07:00
Christopher Chedeau
9220805ebf rename roundup 2014-10-17 08:18:00 -07:00
Christopher Chedeau
324d956969 round-up 23 2014-10-17 08:10:32 -07:00
Paul O’Shannessy
32525e5797 Update docs
* move React Elements post to right place
* 0.12 rc1
2014-10-16 15:37:25 -07:00
Paul O’Shannessy
76c5058590 React Elements blog post 2014-10-14 11:04:27 -07:00
Paul O’Shannessy
c149e9594d Update to latest.
* c8d5106
* 8c7cf04
* ce03543
* 995d0e5
2014-09-29 13:47:15 -07:00
Paul O’Shannessy
023e79f085 Update to latest
99a45a59cc...e179f7b19e
2014-09-24 16:59:54 -07:00
fisherwebdev
5eca790f0a publishing Testing Flux Applications blog post
GitHub154
[react] fisherwebdev closed pull request #2234: [blog] testing flux applications (master...master) https://github.com/facebook/react/pull/2234
GitHub183
[react] fisherwebdev pushed 2 new commits to master: 67eeed601b...6f54ed71da
GitHub183
react/master 9952a54 fisherwebdev: [blog] testing flux applications
GitHub183
react/master 6f54ed7 Bill Fisher: Merge pull request #2234 from fisherwebdev/master...
ChanServ has changed mode: +o yungsters
GitHub16
[react] fisherwebdev pushed 1 new commit to 0.11-stable: 99a45a59cc
GitHub16
react/0.11-stable 99a45a5 fisherwebdev: [blog] testing flux applications
2014-09-24 13:39:13 -07:00
Paul O’Shannessy
7fa746f7c8 v0.11.2 2014-09-16 11:12:31 -07:00
Christopher Chedeau
37843c4706 roundup 22 2014-09-12 11:37:40 -07:00
Paul O’Shannessy
f60002cd14 pull in #2147 2014-09-04 16:28:27 -07:00
Paul O’Shannessy
c031dd3b10 JSX blog post 2014-09-03 16:04:15 -07:00
Paul O’Shannessy
4bb397d6e5 Latest sync of docs 2014-09-03 15:58:17 -07:00
Paul O’Shannessy
118e64c400 Update Jekyll (#2035) 2014-08-13 13:15:29 -07:00
Paul O’Shannessy
62c4231389 Sync latest changes
Use `bundle exec rake release` to make sure the right gem versions are
used, which reverts some of the trivial markdown related changes from last time.
2014-08-13 13:10:08 -07:00
Paul O’Shannessy
741eea6c73 Sync latest changes to docs
Also removes stray es5-shim/sham files (and perhaps a slightly different
redcarpet version resulting in different markdown parsing...)
2014-08-12 15:26:53 -07:00
Christopher Chedeau
4ca56fea73 typo "refere"->"ence" 2014-08-03 18:52:46 +02:00
Christopher Chedeau
b63c215ac9 community round-up #21 2014-08-03 18:31:51 +02:00
Vjeux
a99bc749cb backgorund image + typo 2014-07-30 21:08:04 +02:00
Vjeux
63a6f74321 link issue 2014-07-30 19:50:01 +02:00
Vjeux
b18fb3b74d flux blog post 2014-07-30 19:33:27 +02:00
Vjeux
b394c5a833 oops, remove copy of #20 2014-07-28 12:04:30 +02:00
Vjeux
910464838a wording roundup #20 2014-07-28 11:56:44 +02:00
Ben Alpert
f39ed9ee25 Rebuild docs 2014-07-27 16:05:56 -07:00
Ben Alpert
14bac3b37a Rebuild docs 2014-07-27 13:30:48 -07:00
Ben Alpert
e9de762c45 Rebuild docs 2014-07-27 13:08:15 -07:00
Vjeux
4ea5b1d20b Community Roundup #20 2014-07-27 14:29:26 +02:00
Paul O’Shannessy
2aa83f71cc v0.11.1 2014-07-25 11:25:07 -07:00
Ben Alpert
4bc42dfe73 Rebuild docs 2014-07-17 15:59:24 -07:00
Ben Alpert
ddf7a5b5f6 Rebuild docs 2014-07-17 15:23:39 -07:00
Paul O’Shannessy
f6b0e9d59b v0.11.0 2014-07-17 13:53:28 -07:00
Paul O’Shannessy
fbc70acf2d 0.11 RC blog post 2014-07-13 13:12:54 -07:00
Ben Alpert
5720d80e67 Rebuild docs to fix link 2014-06-30 10:49:37 -07:00
Ben Alpert
08656fec3f Rebuild docs 2014-06-30 01:08:56 -07:00
Cheng Lou
0751a8f0a1 Add --harmony option and update tutorial 2014-06-29 22:09:26 -07:00
Cheng Lou
b189a7a9c0 [Blog] Update round-up 19 to include more credit 2014-06-27 10:19:18 -07:00
Ben Alpert
88348f8c85 Fix typo in blog post 2014-06-26 15:20:01 -07:00
Paul O’Shannessy
d4aced0b21 Update author of react-bootstrap (#1748) 2014-06-26 15:16:31 -07:00
Cheng Lou
2b7ef84999 Community round-up #19 2014-06-26 14:06:35 -07:00
Paul O’Shannessy
0d18bee5f3 Sync to latest 2014-06-24 15:18:05 -07:00
Paul O’Shannessy
6bcf1e5790 Sync latest changes out
2d66fc4518
d8a2f12498
7172b1d5da
f1a5a4c58e
2f61996ec3
cfdc884582
00037b3ec2
121b290899
c91f95a092
2496757364
2014-06-24 14:26:05 -07:00
Ben Alpert
02d18739d6 Fix ClojureScript typo 2014-05-29 13:22:20 -07:00
Ben Alpert
a30ccf5583 Actually add post 2014-05-29 11:45:32 -07:00
Ben Alpert
7c08596f40 Rebuild docs for one-year post 2014-05-29 11:44:34 -07:00
Ben Alpert
02ea1c044c Rebuild docs for test utils docs change 2014-05-14 21:40:02 -07:00
Ben Alpert
ced25b13a4 Rebuild docs to fix code sample 2014-05-10 18:01:57 -03:00
Ben Alpert
597c4bca44 Rebuild docs to fix link 2014-05-09 15:43:26 -03:00
Paul O’Shannessy
07ea77092d fix flux link typo 2014-05-08 20:05:09 -07:00
Vjeux
5613670284 flux blog post and tutorial 2014-05-09 01:39:33 +02:00
Paul O’Shannessy
59fe162fe5 Update to latest docs. Biggest change: no more fb comments
Commits synced:
009be62906
af79caf1aa
5167b7a5b2
f728846712
af7ea7c999
287db7017e
14580fb012
f27175d166
663dd6f5b3
df72bd76be
05cc7b635c
fbbace6b69
6323db7c18
cdac160439
dea228e4ae
b360ed80dd
67c68612c0
c4ed2c1c90
2014-05-08 11:57:43 -07:00
Paul O’Shannessy
eecc70cf96 Sync latest changes 2014-04-07 17:59:48 -07:00
Ben Alpert
431706a330 React.NET blog post 2014-04-04 13:25:30 -07:00
Ben Alpert
cf7532a1d6 Update acknowledgements page 2014-04-03 07:35:52 -07:00
Paul O’Shannessy
eaa87d8b5b fix pit of success 2014-03-28 14:43:57 -07:00
Paul O’Shannessy
9c4fea0d1c https://github.com/facebook/react/pull/1319 2014-03-28 14:33:46 -07:00
Paul O’Shannessy
69f231639d road to 1.0 blog post 2014-03-28 14:00:35 -07:00
Paul O’Shannessy
8a98319d58 0.10 blog post 2014-03-21 14:55:09 -07:00
Paul O’Shannessy
7e16bb70b1 v0.10.0 2014-03-21 13:37:35 -07:00
Paul O’Shannessy
774d877518 0.10rc1 2014-03-19 11:32:48 -07:00
Paul O’Shannessy
029dd9bb77 Community Round-up #18 2014-03-14 20:17:58 -07:00
Ben Alpert
645a32032a Add file I forgot
Fixes #1238.
2014-03-10 11:45:55 -07:00
Ben Alpert
6cfdfa8636 Rebuild docs 2014-03-09 13:46:26 -07:00
Paul O’Shannessy
4c37b3f818 Bring in recent docs changes
* 25cafec4a9
* ba78edbed8
2014-02-26 15:15:08 -08:00
Ben Alpert
c2e3735ffb Rebuild docs for clearer propTypes 2014-02-26 15:04:30 -08:00
Ben Alpert
24c909502d Actually add acknowledgements page 2014-02-24 17:25:13 -08:00
Ben Alpert
77f045ccdc Rebuild with acknowledgements 2014-02-24 17:19:49 -08:00
Ben Alpert
36aeb76e5f Rebuild docs for typo fix 2014-02-24 15:28:49 -08:00
Paul O’Shannessy
300374d9a8 Update to latest 2014-02-24 14:41:42 -08:00
Ben Alpert
b6d4923fb0 Rebuild docs 2014-02-21 12:17:45 -08:00
Paul O’Shannessy
4658413aea Context in breaking changes too. see #1141 2014-02-20 10:35:02 -08:00
Paul O’Shannessy
2221fe1132 v0.9.0 2014-02-20 09:42:59 -08:00
Paul O’Shannessy
07ac1ea11f 0.9.0-rc1 2014-02-16 19:39:16 -08:00
Ben Alpert
f1d5e0421b Fix typo in latest round-up 2014-02-15 22:57:42 -08:00
Paul O’Shannessy
8ac8f35db4 Community Roundup 16 2014-02-15 15:59:02 -08:00
Paul O’Shannessy
2d42e44128 update css 2014-02-05 16:24:55 -08:00
Paul O’Shannessy
f414b96c03 Community roundup 15 2014-02-05 16:09:46 -08:00
Ben Alpert
5af1ac1836 Rebuild docs
Somehow ee5805d included an unintended update to JSXTransformer.js and react.min.js.
2014-02-04 00:37:11 -08:00
Vjeux
9afcad69d1 Pete Hunt petehunt Add link to meteor talk c06ca23
Pete Hunt	petehunt	Update videos.md	7467b1f
Pete Hunt	petehunt	Add a complementary tools page	3c19f62
Pete Hunt	petehunt	add example apps page	9209207
Pete Hunt	petehunt	Update example-apps.md	 7f22f43
2014-02-02 04:03:21 +01:00
Vjeux
ee5805da65 Christopher Chedeau vjeux Document isMounted … 30e16e4
Nick Thompson	nick-thompson	Clarify componentWillMount behavior	542f20b
Cheng Lou	chenglou	docs fix back link in Examples	6b15ad5
Cheng Lou	chenglou	docs add jsx->js tab to live editors	7ac5f3c
Paul O’Shannessy	zpao	Normalize line endings	6b1c6be
Ben Alpert	spicyj	Update homepage for new JSX/JS editor	761e1c8
Ben Alpert	spicyj	Properly clear live editor on JSX compile failure	d3fc5ad
Ben Alpert	spicyj	Simplify live editor execution logic	c7f0663
Cheng Lou	chenglou	[docs] Tweak frontpage first example and jsx-compiler example	8c8841c
Christoph Pojer	cpojer	Update propTypes documentation.	b66fbde
Jean Lauliac	jeanlauliac	Update broken link in 'why react' article	341d292
Jean Lauliac	jeanlauliac	Normalize internal links in 'why react' article	0681d13
aymanosman	aymanosman	Fix typo	09650e1
Bob Eagan	bobeagan	fix incorrect link	2edb76f
Bob Eagan	bobeagan	add hash link for lifecycle section of working with the browser page	3db3460
Pete Hunt	petehunt	remove references to react-page	3120192
Ben Alpert	spicyj	Fix docs typo	6e4ddfd
Paul O’Shannessy	zpao	Fix animation example code …	dd66223
Eric Schoffstall	Contra	fix grammar mistake	64ac427
Kunal Mehta	kmeht	Add documentation about React.renderComponent …	f970453
Christopher Chedeau	vjeux	s/Mock DOM/Virtual DOM/ …	22772c9
Ben Alpert	spicyj	Disable CodeMirror smart indentation …	571d173
Ben Alpert	spicyj	[docs] Fix comma splice	3810c83
2014-02-02 03:58:18 +01:00
Paul O’Shannessy
e82227b698 Updated to latest changes
7c4c0cd [docs] Remove commented out ghbtns
92102ac Add info about dev vs. prod builds
277cbf0 [docs] Add timezone to _config
b0b7717 Remove stray "117", combine lines in polyfill docs
8d63dad Rewrite Older Browsers polyfill section for clarity.
edd61ed Fix "Uncontrolled Components" documentation
d99cafa Fix typo in docs.
190f373 Update docs to mention that you need both es5-shim.js and
es5-sham.js to use React with IE8.
1873e1d Add dataType to all $.ajax calls for consistency
27ac8a3 Fix #845, Trivial year change
97f2441 Fix #874: Edit thinking-in-react
ce72e84 Document return value of unmountComponentAtNode
52ad24f Remove two more react.min.js references
7efdb43 Don't use the min build in getting started guide
51e7a6b Fix URL in displayName description
f44e8cc Add charCode/keyCode/which to key event docs
2014-01-15 11:42:32 -08:00
Christoph Pojer
bf82413930 Merge pull request #874 from chantastic/patch-1
Edit thinking-in-react, remove repeated word
2014-01-13 08:43:41 -08:00
Michael Chan
58deb56ca1 Edit thinking-in-react, remove repeated word
- removed repeated word 'building'
2014-01-13 08:27:42 -08:00
Christopher Chedeau
4b90c16c15 Merge pull request #845 from hariharan-uno/patch-1
Trivial year change
2014-01-08 10:07:53 -08:00
Hari haran
4bd2bfef69 Trivial year change 2014-01-08 23:31:55 +05:30
Vjeux
c4a2717796 fabiomcosta adding warning about the lack of support for onScroll on IE8 … 8615ade
philix	Add jsx-requirejs-plugin to the tooling-integration page	978a8f5
philix	Remove the require-jsx plugin from the tooling-integration page …	e23e627
spicyj	Mention react-art where we talk about SVG	13c211a
spicyj	Fix typo	3afe6de
passy	Add gulp-react to Helpful OSS Projects …	8ef2cec
xixixao	Document displayName	ee90857
Daniel15	Add link to HTML to JSX converter to “JSX In Depth” page	5cbc727
Daniel15	Change “not allowed” back to “discouraged” since you technically *can… …	ea41991
vjeux	Community Round-up #14	658aa45
2014-01-06 18:17:14 +01:00
Vjeux
ea32d3659c chenglou docs tips fix small typo and code 8dc36e3
chenglou	docs better error display for live editor and JSX compiler	8d37f7d
vjeux	React Chrome Developer Tools	dbae31d
2014-01-02 21:07:09 +01:00
Vjeux
d786436367 spicyj Upgrade codemirror and enable line wrapping … 32753c5
chenglou	docs remove link to wiki page …	 c5a2ca9
2013-12-31 06:02:08 +01:00
Vjeux
1b7b3bd006 Making 'native DOM' nodes more explicit in documentation 2013-12-31 01:39:46 +01:00
Vjeux
84a9d1821b IE8 style fixes 2013-12-31 01:27:34 +01:00
Vjeux
f8c5781102 chenglou docs tips small refactorings 1671efb 2013-12-31 00:14:10 +01:00
Vjeux
777f999db5 chenglou docs tips expose component function cdb328b
wincent	Fix a typo in the working-with-the-browser docs	0e95e8e
spicyj	Make React website work in IE8	30178d4baf
2013-12-30 23:50:58 +01:00
Vjeux
a276e32f51 jhiswin live_editor.js using deprecated function
petehunt Update parent/child communication tip
2013-12-30 19:58:39 +01:00
Vjeux
80dc66474d chenglou docs add warning to add jsx pragma c68b972
ivan	Use explicit $.ajax dataType and add error callback	0ae26fe
ivan	Add a warning about the @jsx declaration	838589c
ivan	console.log -> console.error	880951f
spicyj	Move initial $.ajax out of getInitialState …	12b94b0
vjeux	Community Round-up #13	3a370b8
2013-12-30 18:33:01 +01:00
Vjeux
0e32f3669e navigation wasn't properly pushed for videos 2013-12-24 17:50:36 +01:00
Vjeux
4cb8bc68ba Remove video from home 2013-12-24 07:50:46 +01:00
petehunt
65d56feeeb Add a talks section to the docs
91780d1c58 Browse code
vjeux authored 35 minutes ago
2013-12-24 01:33:59 -05:00
petehunt
a4a466dd26 trying it again 2013-12-24 01:07:14 -05:00
petehunt
3323ba8f0d Revert "language update as suggested by @petehunt"
This reverts commit fb3bd7f583.
2013-12-24 00:56:52 -05:00
petehunt
fb3bd7f583 language update as suggested by @petehunt
c211767d47 Browse code
fabiomcosta authored 5 hours ago

updating text as suggested by @petehunt
34660eccf9 Browse code
fabiomcosta authored 5 hours ago

Adding note about onScroll on IE8
874122bad4 Browse code
fabiomcosta authored 6 hours ago

Note about react's version on the talk, since somethings have already… …
d22874d039 Browse code
fabiomcosta authored 6 hours ago
2013-12-24 00:51:02 -05:00
Vjeux
1235527398 typo 2013-12-23 18:56:06 +01:00
Vjeux
15e8c64633 html-jsx compiler with the fix 2013-12-23 18:34:41 +01:00
Vjeux
b4d07a679a vjeux Community Round-up #12 d1e955c 2013-12-23 18:06:13 +01:00
Vjeux
72296a4385 revert html-jsx 2013-12-23 07:03:04 +01:00
Vjeux
8c153e6427 fix up javascript for jsx-compiler 2013-12-23 06:43:38 +01:00
Vjeux
97ec6b66d0 chenglou docs section for non-dom attributes … 94c100c
vjeux	Document the Diff algorithm …	8f24fca

vjeux	Add video at the bottom of the front page	0993b61

bricooke	Update highlighted lines in tutorial …	38d68fd

jaredly	rename this tip to be less confusing …	9686487

jaredly	fixing capitalization	1a9b213

nicholasbs	Fix typo (ot -> to)	18410bf

jaredly	adding note about initializing state w/ props	4f71ddf

jaredly	changes as requested	cb0cbcc

jaredly	one liner	cd2fd80

squidsoup	Tutorial template markup needs a reference to jquery for the ajax calls …	37e544d

chenglou	docs add input attrs for Dom Differences	7eae8d3

chenglou	docs make all link start with /react/docs	dbc8563

Daniel15	Simple HTML to JSX converter, built during Hackathon 40 at Facebook. …	 2308f95
2013-12-23 06:37:00 +01:00
Paul O’Shannessy
ef762b50a7 v0.8.0 2013-12-19 10:44:05 -08:00
Paul O’Shannessy
4b46fb97a8 Add 0.4.2 starter kit 2013-12-19 10:30:52 -08:00
Paul O’Shannessy
e7c875bda8 Reformat post 2013-12-18 16:03:50 -08:00
Paul O’Shannessy
b0305f8b7e Blog post for 0.5.2, 0.4.2 2013-12-18 15:42:48 -08:00
Paul O’Shannessy
404810aba8 v0.5.2 2013-12-18 12:04:10 -08:00
Paul O’Shannessy
fd93cfb229 Merge in latest docs changes 2013-12-02 15:51:23 -08:00
Vjeux
6d37c780ed merging a lot of stuff
- splitting addons into 3 pages
- add docs for classSet
- classSet semicolon missing
- className htmlFor
- anchors for links
2013-11-19 23:30:01 +01:00
Vjeux
3ce19cdfb3 Community Round-up #11 2013-11-19 23:10:49 +01:00
Paul O’Shannessy
c4ed771b1f Tips! See #362 for details 2013-11-14 15:19:53 -08:00
Paul O’Shannessy
7ec2988c71 Latest docs changes
* fb1a072 - fix doc & example transition opacity from .99 to 1
* c1c7a60 - Added clearfix to blog content holder
* adad0d7 - Fixes the name of the component on documentation
* e7f48a6 - Prevents header anchors from interfering with clickable content.
2013-11-13 17:56:22 -08:00
Paul O’Shannessy
499a3324b1 move docs tooling, immutable state
* d47d509637
* d3cee1ee2e
2013-11-08 13:32:38 -08:00
Paul O’Shannessy
cf1a728e21 Community Roundup #10 and ridealongs 2013-11-06 12:45:43 -08:00
Paul O’Shannessy
a07e3ad0b5 Fix blog post formatting 2013-11-05 16:17:16 -08:00
Paul O’Shannessy
faada22274 fix header link styling (1553bad) 2013-11-05 15:07:24 -08:00
Paul O’Shannessy
4c00e8f69a Thinking in React blog post, jQuery cleanup in tutorial 2013-11-05 14:43:49 -08:00
Paul O’Shannessy
0ac7832631 Updated with latest changes, mostly to fix tutorial 2013-11-04 17:23:48 -08:00
Paul O’Shannessy
7a8977d175 0.5.1 blog post 2013-10-29 12:52:15 -07:00
Paul O’Shannessy
7dd0009c60 v0.5.1 2013-10-29 11:51:20 -07:00
Paul O’Shannessy
c7b896be20 Updated API docs 2013-10-26 17:49:23 -07:00
Paul O’Shannessy
97654abcaa Latest changes
* 2c35ed8068
* c994cc24c3
2013-10-25 18:27:03 -07:00
Paul O’Shannessy
7e99f8eec3 remove OUTLINE, make header links clickable 2013-10-21 15:22:09 -07:00
Paul O’Shannessy
7938338441 Update live editor 2013-10-16 18:12:14 -07:00
Paul O’Shannessy
fdb12c2ea3 v0.5.0 2013-10-16 11:53:27 -07:00
Paul O’Shannessy
4686b1361a Update polyfill phrasing 2013-10-08 16:34:26 -07:00
Paul O’Shannessy
d424c06a99 Remove 0.5-alpha download - shouldn't have been added 2013-10-08 11:14:12 -07:00
Paul O’Shannessy
079a983672 fixed broken link on Community Round-up #9 blog post 2013-10-08 11:13:31 -07:00
Paul O’Shannessy
ffa4af3be0 use fb app id for comments, community roundup #9 2013-10-03 15:22:29 -07:00
Paul O’Shannessy
caf773d5a6 NEW API DOCS! 2013-09-24 16:07:14 -07:00
Paul O’Shannessy
b80668577d Updates (header ids, blog post, typos) 2013-09-24 14:34:40 -07:00
Paul O’Shannessy
0495462ad5 Update wording 2013-09-14 13:53:33 +02:00
Paul O’Shannessy
30d40aa15f Various updates, primarily pagination on the blog 2013-09-04 15:35:39 -07:00
Paul O’Shannessy
bacf855ed8 Community Roundup 7, Tooling Integration fixes 2013-08-26 14:58:42 -07:00
Paul O’Shannessy
33669c1390 Fix 404s, link to CDNJS 2013-08-22 11:15:42 -07:00
Paul O’Shannessy
3a3aa47d32 Typo fix and PyReact blog post 2013-08-19 14:56:01 -07:00
Paul O’Shannessy
b6526e70d6 Community Roundup #6 2013-08-05 16:59:01 -07:00
Paul O’Shannessy
8af4fbb0f0 Updated 0.4.1 zip
* README changes (point to 0.4.1)
* Python server corrected
* links to github repo corrected
2013-08-05 09:44:33 -07:00
Paul O’Shannessy
84d945f7da Fix typo in get started page 2013-08-05 09:38:58 -07:00
Paul O’Shannessy
171d3e64a0 some docs updates, react-rails blog post 2013-07-30 15:27:56 -07:00
Paul O’Shannessy
e1d7e0bece Blog post for v0.4.1 2013-07-26 15:53:45 -07:00
Paul O’Shannessy
59ce7e4a8f v0.4.1 2013-07-26 15:32:59 -07:00
Paul O’Shannessy
9f6e8e466a Pick up all of recent docs fixes, latest blog post 2013-07-23 09:31:02 -07:00
Paul O’Shannessy
9bc285b67e Fix errors and example code for the homepage, small blog typo 2013-07-17 13:36:13 -07:00
Paul O’Shannessy
6ec7c79cf7 Small update to v0.4 blog post 2013-07-17 11:55:12 -07:00
Paul O’Shannessy
3dd6235041 v0.4.0 2013-07-17 11:35:48 -07:00
Paul O’Shannessy
3ce6c88952 A couple docs updates, new blog post 2013-07-11 15:59:51 -07:00
Paul O’Shannessy
688c56d79c Community Roundup #4 2013-07-03 18:41:25 -07:00
Paul O’Shannessy
aa7ea0637e New blog post 2013-07-02 13:08:24 -07:00
Paul O’Shannessy
b3aa6ba924 Sync to latest 2013-06-28 09:50:26 -07:00
Paul O’Shannessy
be61bebd92 Community Roundup 3 2013-06-27 13:49:58 -07:00
Paul O’Shannessy
6c74abe0ed Blogpost & changelog for v0.3.3 2013-06-21 11:02:33 -07:00
Paul O’Shannessy
83fe3ddaee v0.3.3 2013-06-20 15:12:41 -07:00
Paul O’Shannessy
a7b717162f New blog post, fix bug in JSX docs 2013-06-19 12:37:34 -07:00
Paul O’Shannessy
7332a0fe8a Use absolute URLs for FB comments box 2013-06-18 10:22:22 -07:00
Paul O’Shannessy
4f23af6a15 Update site to latest 2013-06-18 09:23:45 -07:00
Paul O’Shannessy
30e65b2ba7 Update to latest, including communnity roundup blog post 2013-06-12 14:12:30 -07:00
Paul O’Shannessy
edaa7881bd Updated Todo example on the home page 2013-06-07 15:54:21 -07:00
Paul O’Shannessy
ff542ff7d7 Fix a typo 2013-06-05 11:53:14 -07:00
Paul O’Shannessy
7203dcb145 Fix broken link in blog post 2013-06-05 10:02:52 -07:00
Paul O’Shannessy
4346b10363 Update to latest master, including blog posts 2013-06-05 09:08:04 -07:00
Paul O’Shannessy
d06a7ef606 v0.3.2 2013-05-31 17:02:37 -07:00
Paul O’Shannessy
8571e6814b Updated tutorial 2013-05-31 16:25:53 -07:00
Paul O’Shannessy
1d628ef207 v0.3.1 2013-05-30 15:02:20 -07:00
Paul O’Shannessy
cff20b7a4c Roll up latest changes to master 2013-05-30 11:49:38 -07:00
Paul O’Shannessy
7a92c4bf95 Update docs to latest master 2013-05-29 18:43:04 -07:00
Paul O’Shannessy
8e76af2192 Cleanup pages branch. 2013-05-29 15:18:56 -07:00
Paul O’Shannessy
ddb56ac56a Analytics 2013-05-29 14:10:20 -07:00
Paul O’Shannessy
6c61658bba Updated to latest master build 2013-05-29 17:07:32 -04:00
Paul O’Shannessy
757022d229 Updated to lastest master build 2013-05-29 17:07:32 -04:00
Paul O’Shannessy
b0e208a155 v0.3.0 2013-05-29 17:07:32 -04:00
Paul O’Shannessy
6de0ab3293 v0.3.0 2013-05-29 17:07:32 -04:00
702 changed files with 1 additions and 79098 deletions

View File

@@ -1,17 +0,0 @@
# http://editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
max_line_length = 80
trim_trailing_whitespace = true
[*.md]
max_line_length = 0
trim_trailing_whitespace = false
[COMMIT_EDITMSG]
max_line_length = 0

1
.gitattributes vendored
View File

@@ -1 +0,0 @@
* text=auto

20
.gitignore vendored
View File

@@ -1,20 +0,0 @@
.DS_STORE
node_modules
*~
*.pyc
static
.grunt
_SpecRunner.html
__benchmarks__
build/
.module-cache
*.gem
docs/code
docs/_site
docs/.sass-cache
docs/js/*
docs/downloads
examples/shared/*.js
test/the-files-to-test.generated.js
*.log*
chrome-user-data

View File

@@ -1,21 +0,0 @@
{
"node": true,
"boss": true,
"curly": true,
"devel": true,
"eqnull": true,
"expr": true,
"funcscope": true,
"globalstrict": true,
"loopfunc": true,
"newcap": false,
"noempty": true,
"nonstandard": true,
"onecase": true,
"sub": true,
"regexdash": true,
"trailing": true,
"undef": true,
"unused": "vars"
}

View File

@@ -1,62 +0,0 @@
Ben Newman <bn@cs.stanford.edu> <benjamn@fb.com>
Bill Fisher <fisherwebdev@gmail.com>
Cheng Lou <chenglou92@gmail.com> <chenglou@fb.com>
Christoph Pojer <christoph.pojer@gmail.com>
Christoph Pojer <christoph.pojer@gmail.com> <cpojer@fb.com>
Connor McSheffrey <c@conr.me> <connor.mcsheffrey@gmail.com>
Dan Schafer <dschafer@fb.com>
Daniel Gasienica <daniel@gasienica.ch> <daniel@fiftythree.com>
Daniel Gasienica <daniel@gasienica.ch> <dgasienica@zynga.com>
Daniel Lo Nigro <daniel@dan.cx> <danlo@fb.com>
Evan Coonrod <evan@paloalto.com>
Fabio M. Costa <fabiomcosta@gmail.com> <fabs@fb.com>
Felix Kling <felix.kling@gmx.net> <fkling@fb.com>
François-Xavier Bois <fxbois@gmail.com>
Geert Pasteels <geert.pasteels@gmail.com>
George A Sisco III <george.sisco@gmail.com>
Harry Hull <harry.hull1@gmail.com>
Hendrik Swanepoel <hendrik.swanepoel@gmail.com>
Ingvar Stepanyan <me@rreverser.com> <rreverser@ubuntu.rreverser.a4.internal.cloudapp.net>
Irae Carvalho <irae@irae.pro.br>
Jaime Mingo <j.mingov@3boll.com>
James Brantly <james@jbrantly.com>
Jan Kassens <jan@kassens.net> <jkassens@fb.com>
Jason Bonta <jbonta@gmail.com> <jasonbonta@fb.com>
Jason Trill <jason@jasontrill.com>
Jeff Morrison <jeff@anafx.com> <Jeff@anafx.com>
Jeff Morrison <jeff@anafx.com> <jeffmo@fb.com>
Jeffrey Lin <lin.jeffrey@gmail.com> <jeffreylin@fb.com>
Jonathan Hsu <jhiswin@gmail.com>
Jordan Walke <jordojw@gmail.com>
Jordan Walke <jordojw@gmail.com> <jordanjcw@fb.com>
Josh Duck <josh@fb.com> <github@joshduck.com>
Jun Wu <quark@lihdd.net>
Keito Uchiyama <projects@keito.me> <keito@fb.com>
Kunal Mehta <k.mehta@berkeley.edu> <kunalm@fb.com>
Laurence Rowe <l@lrowe.co.uk> <laurence@lrowe.co.uk>
Martin Andert <mandert@gmail.com>
Mathieu M-Gosselin <mathieumg@gmail.com> <mathieumg@atx33.com>
Michal Srb <xixixao@seznam.cz> xixixao <xixixao@seznam.cz>
Nick Gavalas <njg57@cornell.edu>
Nick Thompson <ncthom91@gmail.com> <nickt@instagram.com>
Paul OShannessy <paul@oshannessy.com> <poshannessy@fb.com>
Paul Shen <paul@mnml0.com> <paulshen@fb.com>
Pete Hunt <floydophone@gmail.com>
Pete Hunt <floydophone@gmail.com> <pete.hunt@fb.com>
Pete Hunt <floydophone@gmail.com> <pete@instagram.com>
Pete Hunt <floydophone@gmail.com> <phunt@instagram.com>
Petri Lievonen <plievone@cc.hut.fi>
Petri Lievonen <plievone@cc.hut.fi> <petri.lievonen@tkk.fi>
Pieter Vanderwerff <me@pieter.io> <pieter@heyday.co.nz>
Ray <ray@tomo.im>
Richard Feldman <richard.t.feldman@gmail.com> <richard@noredink.com>
Richard Livesey <Livesey7@hotmail.co.uk>
Sander Spies <sandermail@gmail.com>
Sebastian Markbåge <sebastian@calyptus.eu> <sema@fb.com>
Stoyan Stefanov <ssttoo@ymail.com>
Thomas Aylott <oblivious@subtlegradient.com> <aylott@fb.com>
Timothy Yung <yungsters@gmail.com> <yungsters@fb.com>
Vjeux <vjeuxx@gmail.com>
Vjeux <vjeuxx@gmail.com> <vjeux@fb.com>
Volkan Unsal <spocksplanet@gmail.com>
Zach Bruggeman <mail@bruggie.com> <zbruggeman@me.com>

View File

@@ -1,60 +0,0 @@
---
language: node_js
node_js:
- '0.10'
cache:
directories:
- node_modules
script:
- |
grunt $TEST_TYPE
after_script:
- |
if [ "$TEST_TYPE" = test ] && [ "$SERVER" ]; then
grunt build
curl \
-F "react=@build/react.js" \
-F "react.min=@build/react.min.js" \
-F "transformer=@build/JSXTransformer.js" \
-F "react-with-addons=@build/react-with-addons.js" \
-F "react-with-addons.min=@build/react-with-addons.min.js" \
-F "npm-react=@build/react.tgz" \
-F "npm-react-tools=@build/react-tools.tgz" \
-F "commit=$TRAVIS_COMMIT" \
-F "date=`git log --format='%ct' -1`" \
-F "pull_request=$TRAVIS_PULL_REQUEST" \
-F "token=$SECRET_TOKEN" \
-F "branch=$TRAVIS_BRANCH" \
$SERVER
fi
env:
matrix:
- TEST_TYPE=test
- TEST_TYPE=lint
- TEST_TYPE=test:webdriver:saucelabs:modern
global:
# SERVER
- secure: qPvsJ46XzGrdIuPA70b55xQNGF8jcK7N1LN5CCQYYocXLa+fBrl+fTE77QvehOPhqwJXcj6kOxI+sY0KrVwV7gmq2XY2HZGWUSCxTN0SZlNIzqPA80Y7G/yOjA4PUt8LKgP+8tptyhTAY56qf+hgW8BoLiKOdztYF2p+3zXOLuA=
# SECRET_TOKEN
- secure: dkpPW+VnoqC/okhRdV90m36NcyBFhcwEKL3bNFExAwi0dXnFao8RoFlvnwiPlA23h2faROkMIetXlti6Aju08BgUFV+f9aL6vLyU7gUent4Nd3413zf2fwDtXIWIETg6uLnOpSykGKgCAT/hY3Q2oPLqOoY0OxfgnbqwxkxljrE=
matrix:
fast_finish: true
allow_failures:
- env: TEST_TYPE=lint
- env: TEST_TYPE=test:coverage
- env: TEST_TYPE=perf:full
- env: TEST_TYPE=test:webdriver:saucelabs:modern
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie11
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie10
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie9
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie8
- env: TEST_TYPE=test:webdriver:saucelabs:ios
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=safari
notifications:
irc:
use_notice: true
skip_join: true
on_success: change
on_failure: change
channels:
- chat.freenode.net#reactjs

178
AUTHORS
View File

@@ -1,178 +0,0 @@
Adam Krebs <amk528@cs.nyu.edu>
Adam Solove <asolove@gmail.com>
Alan deLevie <adelevie@gmail.com>
Alex Zelenskiy <azelenskiy@fb.com>
Alexander Solovyov <alexander@solovyov.net>
Andreas Svensson <andreas@syranide.com>
Andrew Davey <andrew@equin.co.uk>
Andrew Zich <azich@fb.com>
Andrey Popp <8mayday@gmail.com>
Anthony van der Hoorn <anthony.vanderhoorn@gmail.com>
Ayman Osman <aymano.osman@gmail.com>
Ben Alpert <spicyjalapeno@gmail.com>
Ben Newman <bn@cs.stanford.edu>
Ben Ripkens <bripkens.dev@gmail.com>
Bill Fisher <fisherwebdev@gmail.com>
Bob Eagan <bob@synapsestudios.com>
Bojan Mihelac <bmihelac@mihelac.org>
Brandon Bloom <brandon@brandonbloom.name>
Brian Cooke <bri@bricooke.com>
Brian Kim <briankimpossible@gmail.com>
Brian Reavis <brian@thirdroute.com>
Brian Rue <brian@rollbar.com>
Cam Spiers <camspiers@gmail.com>
Cassus Adam Banko <banko.adam@gmail.com>
Cat Chen <catchen@fb.com>
Cheng Lou <chenglou92@gmail.com>
Christian Roman <chroman16@gmail.com>
Christoph Pojer <christoph.pojer@gmail.com>
Christopher Monsanto <chris@monsan.to>
Clay Allsopp <clay.allsopp@gmail.com>
Connor McSheffrey <c@conr.me>
Dan Schafer <dschafer@fb.com>
Daniel Gasienica <daniel@gasienica.ch>
Daniel Lo Nigro <daniel@dan.cx>
Daniel Miladinov <dmiladinov@wingspan.com>
Daniel Schonfeld <daniel@schonfeld.org>
Danny Ben-David <dannybd@fb.com>
Daryl Lau <daryl@weak.io>
David Hellsing <david@aino.se>
David Hu <davidhu91@gmail.com>
Devon Blandin <dblandin@gmail.com>
Dmitry Mazuro <dmitry.mazuro@icloud.com>
Dustin Getz <dgetz@wingspan.com>
Enguerran <engcolson@gmail.com>
Eric Clemmons <eric@smarterspam.com>
Eric Florenzano <floguy@gmail.com>
Eric Schoffstall <contra@wearefractal.com>
Evan Coonrod <evan@paloalto.com>
Fabio M. Costa <fabiomcosta@gmail.com>
Felipe Oliveira Carvalho <felipekde@gmail.com>
Felix Kling <felix.kling@gmx.net>
Fernando Correia <fernando@servicero.com>
François-Xavier Bois <fxbois@gmail.com>
Fred Zhao <fredz@fb.com>
G Scott Olson <gscottolson@gmail.com>
Geert Pasteels <geert.pasteels@gmail.com>
Geert-Jan Brits <gbrits@gmail.com>
George A Sisco III <george.sisco@gmail.com>
Gilbert <gilbertbgarza@gmail.com>
Greg Hurrell <glh@fb.com>
Greg Roodt <groodt@gmail.com>
Guangqiang Dong <gqdong@fb.com>
Guido Bouman <m@guido.vc>
Harry Hull <harry.hull1@gmail.com>
Harshad Sabne <harshadsabne@users.noreply.github.com>
Hendrik Swanepoel <hendrik.swanepoel@gmail.com>
Hugo Jobling <me@thisishugo.com>
Ian Obermiller <iano@fb.com>
Ingvar Stepanyan <me@rreverser.com>
Irae Carvalho <irae@irae.pro.br>
Isaac Salier-Hellendag <isaac@fb.com>
Ivan Kozik <ivan@ludios.org>
Jaime Mingo <j.mingov@3boll.com>
Jakub Malinowski <jakubmal@gmail.com>
James Brantly <james@jbrantly.com>
James Ide <ide@fb.com>
Jamie Wong <jamie.lf.wong@gmail.com>
Jamison Dance <jergason@gmail.com>
Jan Kassens <jan@kassens.net>
Jared Forsyth <jared@jaredforsyth.com>
Jason Bonta <jbonta@gmail.com>
Jason Trill <jason@jasontrill.com>
Jean Lauliac <lauliacj@gmail.com>
Jeff Barczewski <jeff.barczewski@gmail.com>
Jeff Carpenter <gcarpenterv@gmail.com>
Jeff Morrison <jeff@anafx.com>
Jeff Welch <whatthejeff@gmail.com>
Jeffrey Lin <lin.jeffrey@gmail.com>
Jignesh Kakadiya <jigneshhk1992@gmail.com>
Jing Chen <jingc@fb.com>
Johannes Baiter <johannes.baiter@gmail.com>
John Watson <jwatson@fb.com>
Jon Beebe <jon.beebe@daveramsey.com>
Jonas Enlund <jonas.enlund@gmail.com>
Jonas Gebhardt <jonas@instagram.com>
Jonathan Hsu <jhiswin@gmail.com>
Jordan Walke <jordojw@gmail.com>
Josh Bassett <josh.bassett@gmail.com>
Josh Duck <josh@fb.com>
Josh Yudaken <yud@instagram.com>
Joshua Ma <me@joshma.com>
Julen Ruiz Aizpuru <julenx@gmail.com>
Jun Wu <quark@lihdd.net>
Juraj Dudak <jdudak@fb.com>
Justin Jaffray <justinjaffray@khanacademy.org>
Karl Mikkelsen <karl@kingkarl.com>
Keito Uchiyama <projects@keito.me>
Kit Randel <kit@nocturne.net.nz>
Kunal Mehta <k.mehta@berkeley.edu>
Kyle Mathews <mathews.kyle@gmail.com>
Laurence Rowe <l@lrowe.co.uk>
Levi McCallum <levi@levimccallum.com>
Lily <qvang.j@gmail.com>
Logan Allen <loganfynne@gmail.com>
Luigy Leon <luichi.19@gmail.com>
Marcin Kwiatkowski <marcin.kwiatkowski@hotmail.com>
Marcin Szczepanski <marcins@gmail.com>
Mariano Desanze <protronm@gmail.com>
Mark Richardson <echo@fb.com>
Marshall Roch <mroch@fb.com>
Martin Andert <mandert@gmail.com>
Martin Konicek <mkonicek@fb.com>
Mathieu M-Gosselin <mathieumg@gmail.com>
Matt Harrison <mt.harrison86@gmail.com>
Matthew Dapena-Tretter <m@tthewwithanm.com>
Matti Nelimarkka <matti.nelimarkka@hiit.fi>
Michal Srb <xixixao@seznam.cz>
Mouad Debbar <mdebbar@fb.com>
Nadeesha Cabral <nadeesha.cabral@gmail.com>
Nate Hunzaker <nate.hunzaker@gmail.com>
Nicholas Bergson-Shilcock <me@nicholasbs.net>
Nick Gavalas <njg57@cornell.edu>
Nick Thompson <ncthom91@gmail.com>
Niklas Boström <nbostrom@gmail.com>
Owen Coutts <owenc@fb.com>
Pascal Hartig <passy@twitter.com>
Paul OShannessy <paul@oshannessy.com>
Paul Seiffert <paul.seiffert@gmail.com>
Paul Shen <paul@mnml0.com>
Pete Hunt <floydophone@gmail.com>
Peter Cottle <pcottle@fb.com>
Petri Lievonen <plievone@cc.hut.fi>
Pieter Vanderwerff <me@pieter.io>
Rajiv Tirumalareddy <rajivtreddy@gmail.com>
Randall Randall <randall@randallsquared.com>
Ray <ray@tomo.im>
Richard D. Worth <rdworth@gmail.com>
Richard Feldman <richard.t.feldman@gmail.com>
Richard Livesey <Livesey7@hotmail.co.uk>
Ryan Seddon <seddon.ryan@gmail.com>
Sahat Yalkabov <sakhat@gmail.com>
Sander Spies <sandermail@gmail.com>
Sean Kinsey <oyvind@fb.com>
Sebastian Markbåge <sebastian@calyptus.eu>
Shaun Trennery <shaun.trennery@gmail.com>
Simon Højberg <r.hackr@gmail.com>
Stefan Dombrowski <sdo451@gmail.com>
Stephen Murphy <smurphy3@apple.com>
Stoyan Stefanov <ssttoo@ymail.com>
Sundeep Malladi <sundeep.malladi@gmail.com>
Sven Helmberger <fforw@gmx.de>
Thomas Aylott <oblivious@subtlegradient.com>
Thomas Boyt <thomas.boyt@venmo.com>
Thomas Shaddox <thomas@heyzap.com>
Thomas Shafer <thomasjshafer@gmail.com>
Timothy Yung <yungsters@gmail.com>
Tom Haggie <thaggie@gmail.com>
Tom Occhino <tomocchino@gmail.com>
Ville Immonen <ville.immonen@iki.fi>
Vjeux <vjeuxx@gmail.com>
Volkan Unsal <spocksplanet@gmail.com>
Wayne Larsen <wayne@larsen.st>
Wincent Colaiuta <win@wincent.com>
Yuriy Dybskiy <yuriy@dybskiy.com>
Yuval Dekel <thedekel@fb.com>
Zach Bruggeman <mail@bruggie.com>
davidxi <davidgraycn@gmail.com>
imagentleman <imagentlemail@gmail.com>

View File

@@ -1,362 +0,0 @@
## 0.11.2 (September 16, 2014)
### React Core
#### New Features
* Added support for `<dialog>` element and associated `open` attribute
* Added support for `<picture>` element and associated `media` and `sizes` attributes
* Added `React.createElement` API in preparation for React v0.12
* `React.createDescriptor` has been deprecated as a result
### JSX
* `<picture>` is now parsed into `React.DOM.picture`
### React Tools
* Update `esprima` and `jstransform` for correctness fixes
* The `jsx` executable now exposes a `--strip-types` flag which can be used to remove TypeScript-like type annotations
* This option is also exposed to `require('react-tools').transform` as `stripTypes`
## 0.11.1 (July 24, 2014)
### React Core
#### Bug Fixes
* `setState` can be called inside `componentWillMount` in non-DOM environments
* `SyntheticMouseEvent.getEventModifierState` correctly renamed to `getModifierState`
* `getModifierState` correctly returns a `boolean`
* `getModifierState` is now correctly case sensitive
* Empty Text node used in IE8 `innerHTML` workaround is now removed, fixing rerendering in certain cases
### JSX
* Fix duplicate variable declaration in JSXTransformer (caused issues in some browsers)
## 0.11.0 (July 17, 2014)
### React Core
#### Breaking Changes
* `getDefaultProps()` is now called once per class and shared across all instances
* `MyComponent()` now returns a descriptor, not an instance
* `React.isValidComponent` and `React.PropTypes.component` validate *descriptors*, not component instances
* Custom `propType` validators should return an `Error` instead of logging directly
#### New Features
* Rendering to `null`
* Keyboard events include normalized `e.key` and `e.getModifierState()` properties
* New normalized `onBeforeInput` event
* `React.Children.count` has been added as a helper for counting the number of children
#### Bug Fixes
* Re-renders are batched in more cases
* Events: `e.view` properly normalized
* Added Support for more HTML attributes (`coords`, `crossOrigin`, `download`, `hrefLang`, `mediaGroup`, `muted`, `scrolling`, `shape`, `srcSet`, `start`, `useMap`)
* Improved SVG support
* Changing `className` on a mounted SVG component now works correctly
* Added support for elements `mask` and `tspan`
* Added support for attributes `dx`, `dy`, `fillOpacity`, `fontFamily`, `fontSize`, `markerEnd`, `markerMid`, `markerStart`, `opacity`, `patternContentUnits`, `patternUnits`, `preserveAspectRatio`, `strokeDasharray`, `strokeOpacity`
* CSS property names with vendor prefixes (`Webkit`, `ms`, `Moz`, `O`) are now handled properly
* Duplicate keys no longer cause a hard error; now a warning is logged (and only one of the children with the same key is shown)
* `img` event listeners are now unbound properly, preventing the error "Two valid but unequal nodes with the same `data-reactid`"
* Added explicit warning when missing polyfills
### React With Addons
* PureRenderMixin: a mixin which helps optimize "pure" components
* Perf: a new set of tools to help with performance analysis
* Update: New `$apply` command to transform values
* TransitionGroup bug fixes with null elements, Android
### React NPM Module
* Now includes the pre-built packages under `dist/`.
* `envify` is properly listed as a dependency instead of a peer dependency
### JSX
* Added support for namespaces, eg `<Components.Checkbox />`
* JSXTransformer
* Enable the same `harmony` features available in the command line with `<script type="text/jsx;harmony=true">`
* Scripts are downloaded in parallel for more speed. They are still executed in order (as you would expect with normal script tags)
* Fixed a bug preventing sourcemaps from working in Firefox
### React Tools Module
* Improved readme with usage and API information
* Improved ES6 transforms available with `--harmony` option
* Added `--source-map-inline` option to the `jsx` executable
* New `transformWithDetails` API which gives access to the raw sourcemap data
## 0.10.0 (March 21, 2014)
### React Core
#### New Features
* Added warnings to help migrate towards descriptors
* Made it possible to server render without React-related markup (`data-reactid`, `data-react-checksum`). This DOM will not be mountable by React. [Read the docs for `React.renderComponentToStaticMarkup`](http://facebook.github.io/react/docs/top-level-api.html#react.rendercomponenttostaticmarkup)
* Added support for more attributes:
* `srcSet` for `<img>` to specify images at different pixel ratios
* `textAnchor` for SVG
#### Bug Fixes
* Ensure all void elements dont insert a closing tag into the markup.
* Ensure `className={false}` behaves consistently
* Ensure `this.refs` is defined, even if no refs are specified.
### Addons
* `update` function to deal with immutable data. [Read the docs](http://facebook.github.io/react/docs/update.html)
### react-tools
* Added an option argument to `transform` function. The only option supported is `harmony`, which behaves the same as `jsx --harmony` on the command line. This uses the ES6 transforms from [jstransform](https://github.com/facebook/jstransform).
## 0.9.0 (February 20, 2014)
### React Core
#### Breaking Changes
- The lifecycle methods `componentDidMount` and `componentDidUpdate` no longer receive the root node as a parameter; use `this.getDOMNode()` instead
- Whenever a prop is equal to `undefined`, the default value returned by `getDefaultProps` will now be used instead
- `React.unmountAndReleaseReactRootNode` was previously deprecated and has now been removed
- `React.renderComponentToString` is now synchronous and returns the generated HTML string
- Full-page rendering (that is, rendering the `<html>` tag using React) is now supported only when starting with server-rendered markup
- On mouse wheel events, `deltaY` is no longer negated
- When prop types validation fails, a warning is logged instead of an error thrown (with the production build of React, type checks are now skipped for performance)
- On `input`, `select`, and `textarea` elements, `.getValue()` is no longer supported; use `.getDOMNode().value` instead
- `this.context` on components is now reserved for internal use by React
#### New Features
- React now never rethrows errors, so stack traces are more accurate and Chrome's purple break-on-error stop sign now works properly
- Added support for SVG tags `defs`, `linearGradient`, `polygon`, `radialGradient`, `stop`
- Added support for more attributes:
- `crossOrigin` for CORS requests
- `download` and `hrefLang` for `<a>` tags
- `mediaGroup` and `muted` for `<audio>` and `<video>` tags
- `noValidate` and `formNoValidate` for forms
- `property` for Open Graph `<meta>` tags
- `sandbox`, `seamless`, and `srcDoc` for `<iframe>` tags
- `scope` for screen readers
- `span` for `<colgroup>` tags
- Added support for defining `propTypes` in mixins
- Added `any`, `arrayOf`, `component`, `oneOfType`, `renderable`, `shape` to `React.PropTypes`
- Added support for `statics` on component spec for static component methods
- On all events, `.currentTarget` is now properly set
- On keyboard events, `.key` is now polyfilled in all browsers for special (non-printable) keys
- On clipboard events, `.clipboardData` is now polyfilled in IE
- On drag events, `.dragTransfer` is now present
- Added support for `onMouseOver` and `onMouseOut` in addition to the existing `onMouseEnter` and `onMouseLeave` events
- Added support for `onLoad` and `onError` on `<img>` elements
- Added support for `onReset` on `<form>` elements
- The `autoFocus` attribute is now polyfilled consistently on `input`, `select`, and `textarea`
#### Bug Fixes
- React no longer adds an `__owner__` property to each component's `props` object; passed-in props are now never mutated
- When nesting top-level components (e.g., calling `React.renderComponent` within `componentDidMount`), events now properly bubble to the parent component
- Fixed a case where nesting top-level components would throw an error when updating
- Passing an invalid or misspelled propTypes type now throws an error
- On mouse enter/leave events, `.target`, `.relatedTarget`, and `.type` are now set properly
- On composition events, `.data` is now properly normalized in IE9 and IE10
- CSS property values no longer have `px` appended for the unitless properties `columnCount`, `flex`, `flexGrow`, `flexShrink`, `lineClamp`, `order`, `widows`
- Fixed a memory leak when unmounting children with a `componentWillUnmount` handler
- Fixed a memory leak when `renderComponentToString` would store event handlers
- Fixed an error that could be thrown when removing form elements during a click handler
- Boolean attributes such as `disabled` are rendered without a value (previously `disabled="true"`, now simply `disabled`)
- `key` values containing `.` are now supported
- Shortened `data-reactid` values for performance
- Components now always remount when the `key` property changes
- Event handlers are attached to `document` only when necessary, improving performance in some cases
- Events no longer use `.returnValue` in modern browsers, eliminating a warning in Chrome
- `scrollLeft` and `scrollTop` are no longer accessed on document.body, eliminating a warning in Chrome
- General performance fixes, memory optimizations, improvements to warnings and error messages
### React with Addons
- `React.addons.TestUtils` was added to help write unit tests
- `React.addons.TransitionGroup` was renamed to `React.addons.CSSTransitionGroup`
- `React.addons.TransitionGroup` was added as a more general animation wrapper
- `React.addons.cloneWithProps` was added for cloning components and modifying their props
- Bug fix for adding back nodes during an exit transition for CSSTransitionGroup
- Bug fix for changing `transitionLeave` in CSSTransitionGroup
- Performance optimizations for CSSTransitionGroup
- On checkbox `<input>` elements, `checkedLink` is now supported for two-way binding
### JSX Compiler and react-tools Package
- Whitespace normalization has changed; now space between two tags on the same line will be preserved, while newlines between two tags will be removed
- The `react-tools` npm package no longer includes the React core libraries; use the `react` package instead.
- `displayName` is now added in more cases, improving error messages and names in the React Dev Tools
- Fixed an issue where an invalid token error was thrown after a JSX closing tag
- `JSXTransformer` now uses source maps automatically in modern browsers
- `JSXTransformer` error messages now include the filename and problematic line contents when a file fails to parse
## 0.8.0 (December 19, 2013)
### React
* Added support for more attributes:
* `rows` & `cols` for `<textarea>`
* `defer` & `async` for `<script>`
* `loop` for `<audio>` & `<video>`
* `autoCorrect` for form fields (a non-standard attribute only supported by mobile WebKit)
* Improved error messages
* Fixed Selection events in IE11
* Added `onContextMenu` events
### React with Addons
* Fixed bugs with TransitionGroup when children were undefined
* Added support for `onTransition`
### react-tools
* Upgraded `jstransform` and `esprima-fb`
### JSXTransformer
* Added support for use in IE8
* Upgraded browserify, which reduced file size by ~65KB (16KB gzipped)
## 0.5.2, 0.4.2 (December 18, 2013)
### React
* Fixed a potential XSS vulnerability when using user content as a `key`: [CVE-2013-7035](https://groups.google.com/forum/#!topic/reactjs/OIqxlB2aGfU)
## 0.5.1 (October 29, 2013)
### React
* Fixed bug with `<input type="range">` and selection events.
* Fixed bug with selection and focus.
* Made it possible to unmount components from the document root.
* Fixed bug for `disabled` attribute handling on non-`<input>` elements.
### React with Addons
* Fixed bug with transition and animation event detection.
## 0.5.0 (October 16, 2013)
### React
* Memory usage improvements - reduced allocations in core which will help with GC pauses
* Performance improvements - in addition to speeding things up, we made some tweaks to stay out of slow path code in V8 and Nitro.
* Standardized prop -> DOM attribute process. This previously resulting in additional type checking and overhead as well as confusing cases for users. Now we will always convert your value to a string before inserting it into the DOM.
* Support for Selection events.
* Support for [Composition events](https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent).
* Support for additional DOM properties (`charSet`, `content`, `form`, `httpEquiv`, `rowSpan`, `autoCapitalize`).
* Support for additional SVG properties (`rx`, `ry`).
* Support for using `getInitialState` and `getDefaultProps` in mixins.
* Support mounting into iframes.
* Bug fixes for controlled form components.
* Bug fixes for SVG element creation.
* Added `React.version`.
* Added `React.isValidClass` - Used to determine if a value is a valid component constructor.
* Removed `React.autoBind` - This was deprecated in v0.4 and now properly removed.
* Renamed `React.unmountAndReleaseReactRootNode` to `React.unmountComponentAtNode`.
* Began laying down work for refined performance analysis.
* Better support for server-side rendering - [react-page](https://github.com/facebook/react-page) has helped improve the stability for server-side rendering.
* Made it possible to use React in environments enforcing a strict [Content Security Policy](https://developer.mozilla.org/en-US/docs/Security/CSP/Introducing_Content_Security_Policy). This also makes it possible to use React to build Chrome extensions.
### React with Addons (New!)
* Introduced a separate build with several "addons" which we think can help improve the React experience. We plan to deprecate this in the long-term, instead shipping each as standalone pieces. [Read more in the docs](http://facebook.github.io/react/docs/addons.html).
### JSX
* No longer transform `class` to `className` as part of the transform! This is a breaking change - if you were using `class`, you *must* change this to `className` or your components will be visually broken.
* Added warnings to the in-browser transformer to make it clear it is not intended for production use.
* Improved compatibility for Windows
* Improved support for maintaining line numbers when transforming.
## 0.4.1 (July 26, 2013)
### React
* `setState` callbacks are now executed in the scope of your component.
* `click` events now work on Mobile Safari.
* Prevent a potential error in event handling if `Object.prototype` is extended.
* Don't set DOM attributes to the string `"undefined"` on update when previously defined.
* Improved support for `<iframe>` attributes.
* Added checksums to detect and correct cases where server-side rendering markup mismatches what React expects client-side.
### JSXTransformer
* Improved environment detection so it can be run in a non-browser environment.
## 0.4.0 (July 17, 2013)
### React
* Switch from using `id` attribute to `data-reactid` to track DOM nodes. This allows you to integrate with other JS and CSS libraries more easily.
* Support for more DOM elements and attributes (e.g., `<canvas>`)
* Improved server-side rendering APIs. `React.renderComponentToString(<component>, callback)` allows you to use React on the server and generate markup which can be sent down to the browser.
* `prop` improvements: validation and default values. [Read our blog post for details...](http://facebook.github.io/react/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html)
* Support for the `key` prop, which allows for finer control over reconciliation. [Read the docs for details...](http://facebook.github.io/react/docs/multiple-components.html)
* Removed `React.autoBind`. [Read our blog post for details...](http://facebook.github.io/react/blog/2013/07/02/react-v0-4-autobind-by-default.html)
* Improvements to forms. We've written wrappers around `<input>`, `<textarea>`, `<option>`, and `<select>` in order to standardize many inconsistencies in browser implementations. This includes support for `defaultValue`, and improved implementation of the `onChange` event, and circuit completion. [Read the docs for details...](http://facebook.github.io/react/docs/forms.html)
* We've implemented an improved synthetic event system that conforms to the W3C spec.
* Updates to your component are batched now, which may result in a significantly faster re-render of components. `this.setState` now takes an optional callback as it's second parameter. If you were using `onClick={this.setState.bind(this, state)}` previously, you'll want to make sure you add a third parameter so that the event is not treated as the callback.
### JSX
* Support for comment nodes `<div>{/* this is a comment and won't be rendered */}</div>`
* Children are now transformed directly into arguments instead of being wrapped in an array
E.g. `<div><Component1/><Component2/></div>` is transformed into `React.DOM.div(null, Component1(null), Component2(null))`.
Previously this would be transformed into `React.DOM.div(null, [Component1(null), Component2(null)])`.
If you were using React without JSX previously, your code should still work.
### react-tools
* Fixed a number of bugs when transforming directories
* No longer re-write `require()`s to be relative unless specified
## 0.3.3 (June 20, 2013)
### React
* Allow reusing the same DOM node to render different components. e.g. `React.renderComponent(<div/>, domNode); React.renderComponent(<span/>, domNode);` will work now.
### JSX
* Improved the in-browser transformer so that transformed scripts will execute in the expected scope. The allows components to be defined and used from separate files.
### react-tools
* Upgrade Commoner so `require` statements are no longer relativized when passing through the transformer. This was a feature needed when building React, but doesn't translate well for other consumers of `bin/jsx`.
* Upgraded our dependencies on Commoner and Recast so they use a different directory for their cache.
* Freeze our esprima dependency.
## 0.3.2 (May 31, 2013)
### JSX
* Improved compatability with other coding styles (specifically, multiple assignments with a single `var`).
### react-tools
* Switch from using the browserified build to shipping individual modules. This allows react-tools to be used with [browserify](https://github.com/substack/node-browserify).
## 0.3.1 (May 30, 2013)
### react-tools
* Fix bug in packaging resulting in broken module.
## 0.3.0 (May 29, 2013)
* Initial public release

1
CNAME Normal file
View File

@@ -0,0 +1 @@
legacy.reactjs.org

View File

@@ -1,64 +0,0 @@
# Contributing to React
React is one of Facebook's first open source projects that is both under very active development and is also being used to ship code to everybody on facebook.com. We're still working out the kinks to make contributing to this project as easy and transparent as possible, but we're not quite there yet. Hopefully this document makes the process for contributing clear and preempts some questions you may have.
## Our Development Process
Some of the core team will be working directly on GitHub. These changes will be public from the beginning. Other changesets will come via a bridge with Facebook's internal source control. This is a necessity as it allows engineers at Facebook outside of the core team to move fast and contribute from an environment they are comfortable in.
### `master` is unsafe
We will do our best to keep `master` in good shape, with tests passing at all times. But in order to move fast, we will make API changes that your application might not be compatible with. We will do our best to communicate these changes and always version appropriately so you can lock into a specific version if need be.
### Pull Requests
The core team will be monitoring for pull requests. When we get one, we'll run some Facebook-specific integration tests on it first. From here, we'll need to get another person to sign off on the changes and then merge the pull request. For API changes we may need to fix internal uses, which could cause some delay. We'll do our best to provide updates and feedback throughout the process.
*Before* submitting a pull request, please make sure the following is done…
1. Fork the repo and create your branch from `master`.
2. If you've added code that should be tested, add tests!
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes (`grunt test`).
5. Make sure your code lints (`grunt lint`) - we've done our best to make sure these rules match our internal linting guidelines.
6. If you haven't already, complete the CLA.
### Contributor License Agreement ("CLA")
In order to accept your pull request, we need you to submit a CLA. You only need to do this once, so if you've done this for another Facebook open source project, you're good to go. If you are submitting a pull request for the first time, just let us know that you have completed the CLA and we can cross-check with your GitHub username.
Complete your CLA here: <https://code.facebook.com/cla>
## Bugs
### Where to Find Known Issues
We will be using GitHub Issues for our public bugs. We will keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn't already exist.
### Reporting New Issues
The best way to get your bug fixed is to provide a reduced test case. jsFiddle, jsBin, and other sites provide a way to give live examples. Those are especially helpful though may not work for `JSX`-based code.
### Security Bugs
Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe disclosure of security bugs. With that in mind, please do not file public issues and go through the process outlined on that page.
## How to Get in Touch
* IRC - [#reactjs on freenode](http://webchat.freenode.net/?channels=reactjs)
* Mailing list - [reactjs on Google Groups](http://groups.google.com/group/reactjs)
## Coding Style
* Use semicolons;
* Commas last,
* 2 spaces for indentation (no tabs)
* Prefer `'` over `"`
* `"use strict";`
* 80 character line length
* "Attractive"
* Do not use the optional parameters of `setTimeout` and `setInterval`
## License
By contributing to React, you agree that your contributions will be licensed under the [Apache License Version 2.0 (APLv2)](LICENSE).

View File

@@ -1,259 +0,0 @@
'use strict';
var exec = require('child_process').exec;
var jsxTask = require('./grunt/tasks/jsx');
var browserifyTask = require('./grunt/tasks/browserify');
var populistTask = require('./grunt/tasks/populist');
var webdriverPhantomJSTask = require('./grunt/tasks/webdriver-phantomjs');
var webdriverJasmineTasks = require('./grunt/tasks/webdriver-jasmine');
var sauceTunnelTask = require('./grunt/tasks/sauce-tunnel');
var npmTask = require('./grunt/tasks/npm');
var releaseTasks = require('./grunt/tasks/release');
var npmReactTasks = require('./grunt/tasks/npm-react');
var npmReactToolsTasks = require('./grunt/tasks/npm-react-tools');
var versionCheckTask = require('./grunt/tasks/version-check');
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
copy: require('./grunt/config/copy'),
jsx: require('./grunt/config/jsx'),
browserify: require('./grunt/config/browserify'),
populist: require('./grunt/config/populist')(grunt),
connect: require('./grunt/config/server')(grunt),
"webdriver-jasmine": require('./grunt/config/webdriver-jasmine'),
"webdriver-perf": require('./grunt/config/webdriver-perf'),
npm: require('./grunt/config/npm'),
clean: ['./build', './*.gem', './docs/_site', './examples/shared/*.js', '.module-cache'],
jshint: require('./grunt/config/jshint'),
compare_size: require('./grunt/config/compare_size')
});
grunt.config.set('compress', require('./grunt/config/compress'));
Object.keys(grunt.file.readJSON('package.json').devDependencies)
.filter(function(npmTaskName) { return npmTaskName.indexOf('grunt-') === 0; })
.filter(function(npmTaskName) { return npmTaskName != 'grunt-cli'; })
.forEach(function(npmTaskName) { grunt.loadNpmTasks(npmTaskName); });
// Alias 'jshint' to 'lint' to better match the workflow we know
grunt.registerTask('lint', ['jshint']);
grunt.registerTask('download-previous-version', require('./grunt/tasks/download-previous-version.js'));
grunt.registerTask('delete-build-modules', function() {
if (grunt.file.exists('build/modules')) {
grunt.file.delete('build/modules');
}
});
// Register jsx:normal and :release tasks.
grunt.registerMultiTask('jsx', jsxTask);
// Our own browserify-based tasks to build a single JS file build
grunt.registerMultiTask('browserify', browserifyTask);
grunt.registerMultiTask('populist', populistTask);
grunt.registerTask('sauce-tunnel', sauceTunnelTask);
grunt.registerMultiTask('webdriver-jasmine', webdriverJasmineTasks);
grunt.registerMultiTask('webdriver-perf', require('./grunt/tasks/webdriver-perf'));
grunt.registerMultiTask('npm', npmTask);
grunt.registerTask('npm-react:release', npmReactTasks.buildRelease);
grunt.registerTask('npm-react:pack', npmReactTasks.packRelease);
grunt.registerTask('npm-react-tools:release', npmReactToolsTasks.buildRelease);
grunt.registerTask('npm-react-tools:pack', npmReactToolsTasks.packRelease);
grunt.registerTask('version-check', versionCheckTask);
grunt.registerTask('build:basic', ['jsx:normal', 'version-check', 'browserify:basic']);
grunt.registerTask('build:addons', ['jsx:normal', 'browserify:addons']);
grunt.registerTask('build:transformer', ['jsx:normal', 'browserify:transformer']);
grunt.registerTask('build:min', ['jsx:normal', 'version-check', 'browserify:min']);
grunt.registerTask('build:addons-min', ['jsx:normal', 'browserify:addonsMin']);
grunt.registerTask('build:withCodeCoverageLogging', [
'jsx:normal',
'version-check',
'browserify:withCodeCoverageLogging'
]);
grunt.registerTask('build:perf', [
'jsx:normal',
'version-check',
'browserify:transformer',
'browserify:basic',
'browserify:min',
'download-previous-version'
]);
grunt.registerTask('build:test', [
'delete-build-modules',
'jsx:test',
'version-check',
'populist:test'
]);
grunt.registerTask('build:npm-react', ['version-check', 'jsx:normal', 'npm-react:release']);
grunt.registerTask('webdriver-phantomjs', webdriverPhantomJSTask);
grunt.registerTask('coverage:parse', require('./grunt/tasks/coverage-parse'));
grunt.registerTask('test:webdriver:phantomjs', [
'connect',
'webdriver-phantomjs',
'webdriver-jasmine:local'
]);
grunt.registerTask('perf:webdriver:phantomjs', [
'connect',
'webdriver-phantomjs',
'webdriver-perf:local'
]);
grunt.registerTask('test:full', [
'build:test',
'build:basic',
'connect',
'webdriver-phantomjs',
'webdriver-jasmine:local',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_android',
'webdriver-jasmine:saucelabs_firefox',
'webdriver-jasmine:saucelabs_chrome'
]);
grunt.registerTask('perf:full', [
'build:perf',
'connect',
'webdriver-phantomjs',
'webdriver-perf:local',
'sauce-tunnel',
'webdriver-perf:saucelabs_firefox',
'webdriver-perf:saucelabs_chrome',
'webdriver-perf:saucelabs_ie11',
'webdriver-perf:saucelabs_ie8',
]);
grunt.registerTask('test:webdriver:saucelabs', [
'build:test',
'build:basic',
'connect',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_' + (process.env.BROWSER_NAME || 'ie8')
]);
grunt.registerTask('test:webdriver:saucelabs:modern', [
'build:test',
'build:basic',
'connect',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_android',
'webdriver-jasmine:saucelabs_firefox',
'webdriver-jasmine:saucelabs_chrome',
'webdriver-jasmine:saucelabs_ie11'
]);
grunt.registerTask('test:webdriver:saucelabs:ie', [
'build:test',
'build:basic',
'connect',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_ie8',
'webdriver-jasmine:saucelabs_ie9',
'webdriver-jasmine:saucelabs_ie10',
'webdriver-jasmine:saucelabs_ie11'
]);
grunt.registerTask('test:webdriver:saucelabs:ios', [
'build:test',
'build:basic',
'connect',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_ios6_1',
'webdriver-jasmine:saucelabs_ios5_1',
'webdriver-jasmine:saucelabs_ios4'
]);
grunt.registerTask('test:coverage', [
'build:test',
'build:withCodeCoverageLogging',
'test:webdriver:phantomjs',
'coverage:parse'
]);
grunt.registerTask('fasttest', function() {
if (grunt.option('debug')) {
grunt.task.run('build:test', 'connect:server:keepalive');
} else {
grunt.task.run('build:test', 'test:webdriver:phantomjs');
}
});
grunt.registerTask('test', function() {
if (grunt.option('debug')) {
grunt.task.run('build:test', 'build:basic', 'connect:server:keepalive');
} else {
grunt.task.run('build:test', 'build:basic', 'test:webdriver:phantomjs');
}
});
grunt.registerTask('perf', ['build:perf', 'perf:webdriver:phantomjs']);
grunt.registerTask('npm:test', ['build', 'npm:pack']);
// Optimized build task that does all of our builds. The subtasks will be run
// in order so we can take advantage of that and only run jsx:normal once.
grunt.registerTask('build', [
'delete-build-modules',
'jsx:normal',
'version-check',
'browserify:basic',
'browserify:transformer',
'browserify:addons',
'browserify:min',
'browserify:addonsMin',
'npm-react:release',
'npm-react:pack',
'npm-react-tools:release',
'npm-react-tools:pack',
'copy:react_docs',
'compare_size'
]);
// Automate the release!
grunt.registerTask('release:setup', releaseTasks.setup);
grunt.registerTask('release:bower', releaseTasks.bower);
grunt.registerTask('release:docs', releaseTasks.docs);
grunt.registerTask('release:msg', releaseTasks.msg);
grunt.registerTask('release:starter', releaseTasks.starter);
grunt.registerTask('release', [
'release:setup',
'clean',
'build',
'gem:only',
'release:bower',
'release:starter',
'compress',
'release:docs',
'release:msg'
]);
// `gem` task to build the react-source gem
grunt.registerTask('gem', ['build', 'gem:only']);
grunt.registerTask('gem:only', function() {
var done = this.async();
exec('gem build react-source.gemspec', done);
});
// The default task - build - to keep setup easy
grunt.registerTask('default', ['build']);
};

201
LICENSE
View File

@@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,98 +0,0 @@
# [React](http://facebook.github.io/react) [![Build Status](https://travis-ci.org/facebook/react.svg?branch=0.11-stable)](https://travis-ci.org/facebook/react)
React is a JavaScript library for building user interfaces.
* **Just the UI:** Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
* **Virtual DOM:** React uses a *virtual DOM* diff implementation for ultra-high performance. It can also render on the server using Node.js — no heavy browser DOM required.
* **Data flow:** React implements one-way reactive data flow which reduces boilerplate and is easier to reason about than traditional data binding.
[Learn how to use React in your own project.](http://facebook.github.io/react/docs/getting-started.html)
## Examples
We have several examples [on the website](http://facebook.github.io/react/). Here is the first one to get you started:
```js
/** @jsx React.DOM */
var HelloMessage = React.createClass({
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
React.renderComponent(
<HelloMessage name="John" />,
document.getElementById('container')
);
```
This example will render "Hello John" into a container on the page.
You'll notice that we used an HTML-like syntax; [we call it JSX](http://facebook.github.io/react/docs/jsx-in-depth.html). JSX is not required to use React, but it makes code more readable, and writing it feels like writing HTML. A simple transform is included with React that allows converting JSX into native JavaScript for browsers to digest.
## Installation
The fastest way to get started is to serve JavaScript from the CDN (also available on [CDNJS](http://cdnjs.com/#react)):
```html
<!-- The core React library -->
<script src="http://fb.me/react-0.11.2.js"></script>
<!-- In-browser JSX transformer, remove when pre-compiling JSX. -->
<script src="http://fb.me/JSXTransformer-0.11.2.js"></script>
```
We've also built a [starter kit](http://facebook.github.io/react/downloads/react-0.11.2.zip) which might be useful if this is your first time using React. It includes a webpage with an example of using React with live code.
If you'd like to use [bower](http://bower.io), it's as easy as:
```sh
bower install --save react
```
## Contribute
The main purpose of this repository is to continue to evolve React core, making it faster and easier to use. If you're interested in helping with that, then keep reading. If you're not interested in helping right now that's ok too. :) Any feedback you have about using React would be greatly appreciated.
### Building Your Copy of React
The process to build `react.js` is built entirely on top of node.js, using many libraries you may already be familiar with.
#### Prerequisites
* You have `node` installed at v0.10.0+ (it might work at lower versions, we just haven't tested).
* You are familiar with `npm` and know whether or not you need to use `sudo` when installing packages globally.
* You are familiar with `git`.
#### Build
Once you have the repository cloned, building a copy of `react.js` is really easy.
```sh
# grunt-cli is needed by grunt; you might have this installed already
npm install -g grunt-cli
npm install
grunt build
```
At this point, you should now have a `build/` directory populated with everything you need to use React. The examples should all work.
### Grunt
We use grunt to automate many tasks. Run `grunt -h` to see a mostly complete listing. The important ones to know:
```sh
# Build and run tests with PhantomJS
grunt test
# Build and run tests in your browser
grunt test --debug
# For speed, you can use fasttest and add --filter to only run one test
grunt fasttest --filter=ReactIdentity
# Lint the code with JSHint
grunt lint
# Wipe out build directory
grunt clean
```
### More…
There's only so much we can cram in here. To read more about the community and guidelines for submitting pull requests, please read the [Contributing document](CONTRIBUTING.md).

28
bin/jsx
View File

@@ -1,28 +0,0 @@
#!/usr/bin/env node
// -*- mode: js -*-
"use strict";
var transform = require('../main').transform;
require('commoner').version(
require('../package.json').version
).resolve(function(id) {
return this.readModuleP(id);
}).option(
'--harmony',
'Turns on JS transformations such as ES6 Classes etc.'
).option(
'--strip-types',
'Strips out type annotations.'
).option(
'--source-map-inline',
'Embed inline sourcemap in transformed source'
).process(function(id, source) {
// This is where JSX, ES6, etc. desugaring happens.
var options = {
harmony: this.options.harmony,
sourceMap: this.options.sourceMapInline,
stripTypes: this.options.stripTypes
};
return transform(source, options);
});

View File

@@ -1,58 +0,0 @@
#!/usr/bin/env node
// -*- mode: js -*-
"use strict";
var getAllVisitors = require('../vendor/fbtransform/visitors').getAllVisitors;
var transform = require('jstransform').transform;
var propagate = require("../vendor/constants").propagate;
require("commoner").version(
require("../package.json").version
).resolve(function(id) {
var context = this;
// Note that the result of context.getProvidedP() is cached for the
// duration of the build, so it is both consistent and cheap to
// evaluate multiple times.
return context.getProvidedP().then(function(idToPath) {
// If a module declares its own identifier using @providesModule
// then that identifier will be a key in the idToPath object.
if (idToPath.hasOwnProperty(id)) {
return context.readFileP(idToPath[id]);
}
// Otherwise assume the identifier maps directly to a path in the
// filesystem.
return context.readModuleP(id);
});
}).process(function(id, source) {
var context = this;
var constants = context.config.constants || {};
// This is where JSX, ES6, etc. desugaring happens.
source = transform(getAllVisitors(), source).code;
// Constant propagation means removing any obviously dead code after
// replacing constant expressions with literal (boolean) values.
source = propagate(constants, source);
if (context.config.mocking) {
// Make sure there is exactly one newline at the end of the module.
source = source.replace(/\s+$/m, "\n");
return context.getProvidedP().then(function(idToPath) {
if (id !== "mock-modules" &&
id !== "mocks" &&
id !== "test/all" &&
idToPath.hasOwnProperty("mock-modules")) {
return source + '\nrequire("mock-modules").register(' +
JSON.stringify(id) + ', module);\n';
}
return source;
});
}
return source;
});

View File

@@ -1,8 +0,0 @@
---
layout: single
title: Page Not Found
---
We couldn't find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

View File

@@ -1,19 +0,0 @@
source 'https://rubygems.org'
gem 'rake'
# jekyll, which builds it all
# 2.0 includes sass processing
gem 'jekyll', '~>2.0'
# Auto redirect pages
gem 'jekyll-redirect-from'
# JSON
gem 'json'
# For `rake watch`
gem 'rb-fsevent'
# For markdown header cleanup
gem 'sanitize', '~>2.0'

View File

@@ -1,82 +0,0 @@
GEM
remote: https://rubygems.org/
specs:
blankslate (2.1.2.4)
celluloid (0.15.2)
timers (~> 1.1.0)
classifier (1.3.4)
fast-stemmer (>= 1.0.0)
coffee-script (2.3.0)
coffee-script-source
execjs
coffee-script-source (1.7.1)
colorator (0.1)
execjs (2.2.1)
fast-stemmer (1.0.2)
ffi (1.9.3)
jekyll (2.2.0)
classifier (~> 1.3)
colorator (~> 0.1)
jekyll-coffeescript (~> 1.0)
jekyll-gist (~> 1.0)
jekyll-paginate (~> 1.0)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.0)
kramdown (~> 1.3)
liquid (~> 2.6.1)
mercenary (~> 0.3.3)
pygments.rb (~> 0.6.0)
redcarpet (~> 3.1)
safe_yaml (~> 1.0)
toml (~> 0.1.0)
jekyll-coffeescript (1.0.0)
coffee-script (~> 2.2)
jekyll-gist (1.1.0)
jekyll-paginate (1.0.0)
jekyll-redirect-from (0.5.0)
jekyll (~> 2.0)
jekyll-sass-converter (1.2.0)
sass (~> 3.2)
jekyll-watch (1.1.0)
listen (~> 2.7)
json (1.8.1)
kramdown (1.4.1)
liquid (2.6.1)
listen (2.7.9)
celluloid (>= 0.15.2)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
mercenary (0.3.4)
mini_portile (0.6.0)
nokogiri (1.6.3.1)
mini_portile (= 0.6.0)
parslet (1.5.0)
blankslate (~> 2.0)
posix-spawn (0.3.9)
pygments.rb (0.6.0)
posix-spawn (~> 0.3.6)
yajl-ruby (~> 1.1.0)
rake (10.3.2)
rb-fsevent (0.9.4)
rb-inotify (0.9.5)
ffi (>= 0.5.0)
redcarpet (3.1.2)
safe_yaml (1.0.3)
sanitize (2.0.6)
nokogiri (>= 1.4.4)
sass (3.3.14)
timers (1.1.0)
toml (0.1.1)
parslet (~> 1.5.0)
yajl-ruby (1.1.0)
PLATFORMS
ruby
DEPENDENCIES
jekyll (~> 2.0)
jekyll-redirect-from
json
rake
rb-fsevent
sanitize (~> 2.0)

View File

@@ -1,67 +0,0 @@
# React Documentation & Website
We use [Jekyll](http://jekyllrb.com/) to build the site using ([mostly](http://zpao.com/posts/adding-line-highlights-to-markdown-code-fences/)) Markdown, and we host it by pushing HTML to [GitHub Pages](http://pages.github.com/).
## Installation
If you are working on the site, you will want to install and run a local copy of it.
### Dependencies
In order to use Jekyll, you will need to have Ruby installed.
- [Ruby](http://www.ruby-lang.org/) (version >= 1.8.7)
- [RubyGems](http://rubygems.org/) (version >= 1.3.7)
- [Bundler](http://gembundler.com/)
Mac OS X comes pre-installed with Ruby, but you may need to update RubyGems (via `gem update --system`).
Otherwise, [RVM](https://rvm.io/) and [rbenv](https://github.com/sstephenson/rbenv) are popular ways to install Ruby.
Once you have RubyGems and installed Bundler (via `gem install bundler`), use it to install the dependencies:
```sh
$ cd react/docs
$ bundle install # Might need sudo.
$ npm install # Might need sudo.
```
### Instructions
The site requires React, so first make sure you've built the project (via `grunt`).
Use Jekyll to serve the website locally (by default, at `http://localhost:4000`):
```sh
$ cd react/docs
$ bundle exec rake
$ bundle exec jekyll serve -w
$ open http://localhost:4000/react/
```
We use [SASS](http://sass-lang.com/) (with [Bourbon](http://bourbon.io/)) for our CSS, and we use JSX to transform some of our JS.
If you only want to modify the HTML or Markdown, you do not have to do anything because we package pre-compiled copies of the CSS and JS.
If you want to modify the CSS or JS, use [Rake](http://rake.rubyforge.org/) to compile them:
```sh
$ cd react/docs
$ bundle exec rake watch # Automatically compiles as needed.
# bundle exec rake Manually compile CSS and JS.
# bundle exec rake js Manually compile JS, only.
```
## Afterthoughts
### Updating `facebook.github.io/react`
The easiest way to do this is to have a separate clone of this repository, checked out to the `gh-pages` branch. We have a build step that expects this to be in a directory named `react-gh-pages` at the same depth as `react`. Then it's just a matter of running `grunt docs`, which will compile the site and copy it out to this repository. From there you can check it in.
**Note:** This should only be done for new releases. You should create a tag corresponding to the release tag in the main repository.
We also have a rake task that does the same thing (without creating commits). It expects the directory structure mentioned above.
```sh
$ bundle exec rake release
```
### Removing the Jekyll / Ruby Dependency
In an ideal world, we would not be adding a Ruby dependency on part of our project. We would like to move towards a point where we are using React to render the website.

View File

@@ -1,41 +0,0 @@
require('rubygems')
require('json')
require('yaml')
desc "generate js from jsx"
task :js do
system "../bin/jsx _js js"
end
desc "watch js"
task :watch do
Process.spawn "../bin/jsx --watch _js js"
Process.waitall
end
desc "update version to match ../package.json"
task :update_version do
react_version = JSON.parse(File.read('../package.json'))['version']
site_config = YAML.load_file('_config.yml')
if site_config['react_version'] != react_version
site_config['react_version'] = react_version
File.open('_config.yml', 'w+') { |f| f.write(site_config.to_yaml) }
end
end
desc "update acknowledgements list"
task :update_acknowledgements do
authors = File.readlines('../AUTHORS').map {|author| author.gsub(/ <.*\n/,'')}
# split into cols here because nobody knows how to use liquid
# need to to_f because ruby will keep slice_size as int and round on its own
slice_size = (authors.size / 3.to_f).ceil
cols = authors.each_slice(slice_size).to_a
File.open('_data/acknowledgements.yml', 'w+') { |f| f.write(cols.to_yaml) }
end
desc "build into ../../react-gh-pages"
task :release => [:update_version, :default] do
system "jekyll build -d ../../react-gh-pages"
end
task :default => [:js]

View File

@@ -1,37 +0,0 @@
---
name: React
description: A JavaScript library for building user interfaces
url: http://facebook.github.io
baseurl: "/react"
permalink: "/blog/:year/:month/:day/:title.html"
paginate_path: "/blog/page:num/"
relative_permalinks: true
paginate: 5
timezone: America/Los_Angeles
highlighter: pygments
defaults:
- scope:
path: ''
type: post
values:
layout: post
- scope:
path: docs
type: page
values:
layout: docs
exclude:
- Gemfile
- Gemfile.lock
- README.md
- Rakefile
markdown: redcarpet
redcarpet:
extensions:
- fenced_code_blocks
sass:
style: :compressed
sass_dir: _css
gems:
- jekyll-redirect-from
react_version: 0.11.2

View File

@@ -1,173 +0,0 @@
html * {
color-profile: sRGB;
rendering-intent: auto;
}
.cm-s-solarized-light {
background-color: #f8f5ec;
color: #637c84;
}
.cm-s-solarized-light .emphasis {
font-weight: bold;
}
.cm-s-solarized-light .dotted {
border-bottom: 1px dotted #cb4b16;
}
.cm-s-solarized-light .CodeMirror-gutter {
background-color: #eee8d5;
border-right: 3px solid #eee8d5;
}
.cm-s-solarized-light .CodeMirror-gutter .CodeMirror-gutter-text {
color: #93a1a1;
}
.cm-s-solarized-light .CodeMirror-cursor {
border-left-color: #002b36 !important;
}
.cm-s-solarized-light .CodeMirror-matchingbracket {
color: #002b36;
background-color: #eee8d5;
box-shadow: 0 0 10px #eee8d5;
font-weight: bold;
}
.cm-s-solarized-light .CodeMirror-nonmatchingbracket {
color: #002b36;
background-color: #eee8d5;
box-shadow: 0 0 10px #eee8d5;
font-weight: bold;
color: #dc322f;
border-bottom: 1px dotted #cb4b16;
}
.cm-s-solarized-light span.cm-keyword {
color: #268bd2;
}
.cm-s-solarized-light span.cm-atom {
color: #2aa198;
}
.cm-s-solarized-light span.cm-number {
color: #586e75;
}
.cm-s-solarized-light span.cm-def {
color: #637c84;
}
.cm-s-solarized-light span.cm-variable {
color: #637c84;
}
.cm-s-solarized-light span.cm-variable-2 {
color: #b58900;
}
.cm-s-solarized-light span.cm-variable-3 {
color: #cb4b16;
}
.cm-s-solarized-light span.cm-comment {
color: #93a1a1;
}
.cm-s-solarized-light span.cm-property {
color: #637c84;
}
.cm-s-solarized-light span.cm-operator {
color: #657b83;
}
.cm-s-solarized-light span.cm-string {
color: #36958e;
}
.cm-s-solarized-light span.cm-error {
font-weight: bold;
border-bottom: 1px dotted #cb4b16;
}
.cm-s-solarized-light span.cm-bracket {
color: #cb4b16;
}
.cm-s-solarized-light span.cm-tag {
color: #657b83;
}
.cm-s-solarized-light span.cm-attribute {
color: #586e75;
font-weight: bold;
}
.cm-s-solarized-light span.cm-meta {
color: #268bd2;
}
.cm-s-solarized-dark {
background-color: #002b36;
color: #839496;
}
.cm-s-solarized-dark .emphasis {
font-weight: bold;
}
.cm-s-solarized-dark .dotted {
border-bottom: 1px dotted #cb4b16;
}
.cm-s-solarized-dark .CodeMirror-gutter {
background-color: #073642;
border-right: 3px solid #073642;
}
.cm-s-solarized-dark .CodeMirror-gutter .CodeMirror-gutter-text {
color: #586e75;
}
.cm-s-solarized-dark .CodeMirror-cursor {
border-left-color: #fdf6e3 !important;
}
.cm-s-solarized-dark .CodeMirror-matchingbracket {
color: #fdf6e3;
background-color: #073642;
box-shadow: 0 0 10px #073642;
font-weight: bold;
}
.cm-s-solarized-dark .CodeMirror-nonmatchingbracket {
color: #fdf6e3;
background-color: #073642;
box-shadow: 0 0 10px #073642;
font-weight: bold;
color: #dc322f;
border-bottom: 1px dotted #cb4b16;
}
.cm-s-solarized-dark span.cm-keyword {
color: #839496;
font-weight: bold;
}
.cm-s-solarized-dark span.cm-atom {
color: #2aa198;
}
.cm-s-solarized-dark span.cm-number {
color: #93a1a1;
}
.cm-s-solarized-dark span.cm-def {
color: #268bd2;
}
.cm-s-solarized-dark span.cm-variable {
color: #cb4b16;
}
.cm-s-solarized-dark span.cm-variable-2 {
color: #cb4b16;
}
.cm-s-solarized-dark span.cm-variable-3 {
color: #cb4b16;
}
.cm-s-solarized-dark span.cm-comment {
color: #586e75;
}
.cm-s-solarized-dark span.cm-property {
color: #b58900;
}
.cm-s-solarized-dark span.cm-operator {
color: #839496;
}
.cm-s-solarized-dark span.cm-string {
color: #6c71c4;
}
.cm-s-solarized-dark span.cm-error {
font-weight: bold;
border-bottom: 1px dotted #cb4b16;
}
.cm-s-solarized-dark span.cm-bracket {
color: #cb4b16;
}
.cm-s-solarized-dark span.cm-tag {
color: #839496;
}
.cm-s-solarized-dark span.cm-attribute {
color: #93a1a1;
font-weight: bold;
}
.cm-s-solarized-dark span.cm-meta {
color: #268bd2;
}

View File

@@ -1,133 +0,0 @@
@import 'variables.scss';
$textColor: $mediumColor;
$textColorLight: lighten($textColor, 20%);
html {
font-family: $helvetica;
font-family: proxima-nova, $helvetica;
color: $textColor;
line-height: 1.28;
}
p {
margin: 0 0 10px;
}
.subHeader {
font-size: 21px;
font-weight: 200;
line-height: 30px;
margin-bottom: 10px;
}
em {
font-style: italic;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 10px 0;
font-family: inherit;
font-weight: bold;
line-height: 20px;
color: inherit;
text-rendering: optimizelegibility;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
font-weight: normal;
color: $textColorLight
}
h1,
h2,
h3 {
line-height: 40px;
}
h1 {
font-size: 39px;
}
h2 {
font-size: 31px;
}
h3 {
font-size: 23px;
}
h4 {
font-size: 17px;
}
h5 {
font-size: 14px;
}
h6 {
font-size: 11px;
}
h1 small {
font-size: 24px;
}
h2 small {
font-size: 18px;
}
h3 small {
font-size: 16px;
}
h4 small {
font-size: 14px;
}
ul,
ol {
margin: 0 0 10px 25px;
padding: 0;
}
ul ul,
ul ol,
ol ol,
ol ul {
margin-bottom: 0;
}
li {
line-height: 20px;
}
a {
color: $linkColor;
text-decoration: none;
&:hover,
&:focus {
color: $linkInteract;
text-decoration: underline;
}
&:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
}
.center {
text-align: center;
}

View File

@@ -1,22 +0,0 @@
$primary: #cc7a6f;
$linkColor: darken($primary, 9%);
$linkInteract: darken($linkColor, 9%);
$pageBg: #f9f9f9;
$lightColor: #e9e9e9;
$mediumestColor: #666;
$mediumColor: #484848;
$darkColor: #2d2d2d;
$darkestColor: #222222;
$blueColor: #61dafb;
$orangeColor: complement($blueColor);
$lightTextColor: #fafafa;
$mediumTextColor: #aaa;
$darkTextColor: $mediumColor;
$buttonBlueTop: #77a3d2;
$buttonBlueBottom: #4783c2;
$buttonGreyTop: #9a9a9a;
$buttonGreyBottom: #646464;

View File

@@ -1,8 +0,0 @@
//************************************************************************//
// These mixins/functions are deprecated
// They will be removed in the next MAJOR version release
//************************************************************************//
@mixin inline-block {
display: inline-block;
@warn "inline-block mixin is deprecated and will be removed in the next major version release";
}

View File

@@ -1,79 +0,0 @@
// Settings
@import "settings/prefixer";
@import "settings/px-to-em";
@import "settings/asset-pipeline";
// Custom Helpers
@import "helpers/convert-units";
@import "helpers/gradient-positions-parser";
@import "helpers/is-num";
@import "helpers/linear-angle-parser";
@import "helpers/linear-gradient-parser";
@import "helpers/linear-positions-parser";
@import "helpers/linear-side-corner-parser";
@import "helpers/radial-arg-parser";
@import "helpers/radial-positions-parser";
@import "helpers/radial-gradient-parser";
@import "helpers/render-gradients";
@import "helpers/shape-size-stripper";
@import "helpers/str-to-num";
// Custom Functions
@import "functions/assign";
@import "functions/color-lightness";
@import "functions/flex-grid";
@import "functions/golden-ratio";
@import "functions/grid-width";
@import "functions/modular-scale";
@import "functions/px-to-em";
@import "functions/px-to-rem";
@import "functions/strip-units";
@import "functions/tint-shade";
@import "functions/transition-property-name";
@import "functions/unpack";
// CSS3 Mixins
@import "css3/animation";
@import "css3/appearance";
@import "css3/backface-visibility";
@import "css3/background";
@import "css3/background-image";
@import "css3/border-image";
@import "css3/border-radius";
@import "css3/box-sizing";
@import "css3/calc";
@import "css3/columns";
@import "css3/filter";
@import "css3/flex-box";
@import "css3/font-face";
@import "css3/font-feature-settings";
@import "css3/hyphens";
@import "css3/hidpi-media-query";
@import "css3/image-rendering";
@import "css3/keyframes";
@import "css3/linear-gradient";
@import "css3/perspective";
@import "css3/radial-gradient";
@import "css3/transform";
@import "css3/transition";
@import "css3/user-select";
@import "css3/placeholder";
// Addons & other mixins
@import "addons/button";
@import "addons/clearfix";
@import "addons/directional-values";
@import "addons/ellipsis";
@import "addons/font-family";
@import "addons/hide-text";
@import "addons/html5-input-types";
@import "addons/position";
@import "addons/prefixer";
@import "addons/retina-image";
@import "addons/size";
@import "addons/timing-functions";
@import "addons/triangle";
@import "addons/word-wrap";
// Soon to be deprecated Mixins
@import "bourbon-deprecated-upcoming";

View File

@@ -1,374 +0,0 @@
@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) {
@if type-of($style) == string and type-of($base-color) == color {
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == string and type-of($base-color) == number {
$padding: $text-size;
$text-size: $base-color;
$base-color: #4294f0;
@if $padding == inherit {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == color and type-of($base-color) == color {
$base-color: $style;
$style: simple;
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == color and type-of($base-color) == number {
$padding: $text-size;
$text-size: $base-color;
$base-color: $style;
$style: simple;
@if $padding == inherit {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == number {
$padding: $base-color;
$text-size: $style;
$base-color: #4294f0;
$style: simple;
@if $padding == #4294f0 {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
&:disabled {
opacity: 0.5;
cursor: not-allowed;
}
}
// Selector Style Button
//************************************************************************//
@mixin buttonstyle($type, $b-color, $t-size, $pad) {
// Grayscale button
@if $type == simple and $b-color == grayscale($b-color) {
@include simple($b-color, true, $t-size, $pad);
}
@if $type == shiny and $b-color == grayscale($b-color) {
@include shiny($b-color, true, $t-size, $pad);
}
@if $type == pill and $b-color == grayscale($b-color) {
@include pill($b-color, true, $t-size, $pad);
}
@if $type == flat and $b-color == grayscale($b-color) {
@include flat($b-color, true, $t-size, $pad);
}
// Colored button
@if $type == simple {
@include simple($b-color, false, $t-size, $pad);
}
@else if $type == shiny {
@include shiny($b-color, false, $t-size, $pad);
}
@else if $type == pill {
@include pill($b-color, false, $t-size, $pad);
}
@else if $type == flat {
@include flat($b-color, false, $t-size, $pad);
}
}
// Simple Button
//************************************************************************//
@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
$inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
$stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
$text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border: grayscale($border);
$inset-shadow: grayscale($inset-shadow);
$stop-gradient: grayscale($stop-gradient);
$text-shadow: grayscale($text-shadow);
}
border: 1px solid $border;
border-radius: 3px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: bold;
@include linear-gradient ($base-color, $stop-gradient);
padding: $padding;
text-decoration: none;
text-shadow: 0 1px 0 $text-shadow;
background-clip: padding-box;
&:hover:not(:disabled) {
$base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
$inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
$stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
$inset-shadow-hover: grayscale($inset-shadow-hover);
$stop-gradient-hover: grayscale($stop-gradient-hover);
}
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
cursor: pointer;
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
$inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
@if $grayscale == true {
$border-active: grayscale($border-active);
$inset-shadow-active: grayscale($inset-shadow-active);
}
border: 1px solid $border-active;
box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active;
}
}
// Shiny Button
//************************************************************************//
@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
$border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
$fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
$inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
$second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
$text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
$third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border: grayscale($border);
$border-bottom: grayscale($border-bottom);
$fourth-stop: grayscale($fourth-stop);
$inset-shadow: grayscale($inset-shadow);
$second-stop: grayscale($second-stop);
$text-shadow: grayscale($text-shadow);
$third-stop: grayscale($third-stop);
}
border: 1px solid $border;
border-bottom: 1px solid $border-bottom;
border-radius: 5px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: bold;
@include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
padding: $padding;
text-align: center;
text-decoration: none;
text-shadow: 0 -1px 1px $text-shadow;
&:hover:not(:disabled) {
$first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
$second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
$third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
$fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
@if $grayscale == true {
$first-stop-hover: grayscale($first-stop-hover);
$second-stop-hover: grayscale($second-stop-hover);
$third-stop-hover: grayscale($third-stop-hover);
$fourth-stop-hover: grayscale($fourth-stop-hover);
}
cursor: pointer;
@include linear-gradient(top, $first-stop-hover 0%,
$second-stop-hover 50%,
$third-stop-hover 50%,
$fourth-stop-hover 100%);
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
@if $grayscale == true {
$inset-shadow-active: grayscale($inset-shadow-active);
}
box-shadow: inset 0 0 20px 0 $inset-shadow-active;
}
}
// Pill Button
//************************************************************************//
@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
$border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
$inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
$stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
$text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border-bottom: grayscale($border-bottom);
$border-sides: grayscale($border-sides);
$border-top: grayscale($border-top);
$inset-shadow: grayscale($inset-shadow);
$stop-gradient: grayscale($stop-gradient);
$text-shadow: grayscale($text-shadow);
}
border: 1px solid $border-top;
border-color: $border-top $border-sides $border-bottom;
border-radius: 16px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: normal;
line-height: 1;
@include linear-gradient ($base-color, $stop-gradient);
padding: $padding;
text-align: center;
text-decoration: none;
text-shadow: 0 -1px 1px $text-shadow;
background-clip: padding-box;
&:hover:not(:disabled) {
$base-color-hover: adjust-color($base-color, $lightness: -4.5%);
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
$border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
$inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
$stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
$text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
$border-bottom: grayscale($border-bottom);
$border-sides: grayscale($border-sides);
$border-top: grayscale($border-top);
$inset-shadow-hover: grayscale($inset-shadow-hover);
$stop-gradient-hover: grayscale($stop-gradient-hover);
$text-shadow-hover: grayscale($text-shadow-hover);
}
border: 1px solid $border-top;
border-color: $border-top $border-sides $border-bottom;
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
cursor: pointer;
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
text-shadow: 0 -1px 1px $text-shadow-hover;
background-clip: padding-box;
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
$border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
$border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
$inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
$text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
@if $grayscale == true {
$active-color: grayscale($active-color);
$border-active: grayscale($border-active);
$border-bottom-active: grayscale($border-bottom-active);
$inset-shadow-active: grayscale($inset-shadow-active);
$text-shadow-active: grayscale($text-shadow-active);
}
background: $active-color;
border: 1px solid $border-active;
border-bottom: 1px solid $border-bottom-active;
box-shadow: inset 0 0 6px 3px $inset-shadow-active;
text-shadow: 0 -1px 1px $text-shadow-active;
}
}
// Flat Button
//************************************************************************//
@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
}
background-color: $base-color;
border-radius: 3px;
border: none;
color: $color;
display: inline-block;
font-size: inherit;
font-weight: bold;
padding: 7px 18px;
text-decoration: none;
background-clip: padding-box;
&:hover:not(:disabled){
$base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
}
background-color: $base-color-hover;
cursor: pointer;
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
@if $grayscale == true {
$base-color-active: grayscale($base-color-active);
}
background-color: $base-color-active;
cursor: pointer;
}
}

View File

@@ -1,23 +0,0 @@
// Modern micro clearfix provides an easy way to contain floats without adding additional markup.
//
// Example usage:
//
// // Contain all floats within .wrapper
// .wrapper {
// @include clearfix;
// .content,
// .sidebar {
// float : left;
// }
// }
@mixin clearfix {
&:after {
content:"";
display:table;
clear:both;
}
}
// Acknowledgements
// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)

View File

@@ -1,111 +0,0 @@
// directional-property mixins are shorthands
// for writing properties like the following
//
// @include margin(null 0 10px);
// ------
// margin-right: 0;
// margin-bottom: 10px;
// margin-left: 0;
//
// - or -
//
// @include border-style(dotted null);
// ------
// border-top-style: dotted;
// border-bottom-style: dotted;
//
// ------
//
// Note: You can also use false instead of null
@function collapse-directionals($vals) {
$output: null;
$A: nth( $vals, 1 );
$B: if( length($vals) < 2, $A, nth($vals, 2));
$C: if( length($vals) < 3, $A, nth($vals, 3));
$D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) ));
@if $A == 0 { $A: 0 }
@if $B == 0 { $B: 0 }
@if $C == 0 { $C: 0 }
@if $D == 0 { $D: 0 }
@if $A == $B and $A == $C and $A == $D { $output: $A }
@else if $A == $C and $B == $D { $output: $A $B }
@else if $B == $D { $output: $A $B $C }
@else { $output: $A $B $C $D }
@return $output;
}
@function contains-falsy($list) {
@each $item in $list {
@if not $item {
@return true;
}
}
@return false;
}
@mixin directional-property($pre, $suf, $vals) {
// Property Names
$top: $pre + "-top" + if($suf, "-#{$suf}", "");
$bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
$left: $pre + "-left" + if($suf, "-#{$suf}", "");
$right: $pre + "-right" + if($suf, "-#{$suf}", "");
$all: $pre + if($suf, "-#{$suf}", "");
$vals: collapse-directionals($vals);
@if contains-falsy($vals) {
@if nth($vals, 1) { #{$top}: nth($vals, 1); }
@if length($vals) == 1 {
@if nth($vals, 1) { #{$right}: nth($vals, 1); }
} @else {
@if nth($vals, 2) { #{$right}: nth($vals, 2); }
}
// prop: top/bottom right/left
@if length($vals) == 2 {
@if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
// prop: top right/left bottom
} @else if length($vals) == 3 {
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
// prop: top right bottom left
} @else if length($vals) == 4 {
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
@if nth($vals, 4) { #{$left}: nth($vals, 4); }
}
// prop: top/right/bottom/left
} @else {
#{$all}: $vals;
}
}
@mixin margin($vals...) {
@include directional-property(margin, false, $vals...);
}
@mixin padding($vals...) {
@include directional-property(padding, false, $vals...);
}
@mixin border-style($vals...) {
@include directional-property(border, style, $vals...);
}
@mixin border-color($vals...) {
@include directional-property(border, color, $vals...);
}
@mixin border-width($vals...) {
@include directional-property(border, width, $vals...);
}

View File

@@ -1,7 +0,0 @@
@mixin ellipsis($width: 100%) {
display: inline-block;
max-width: $width;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View File

@@ -1,5 +0,0 @@
$georgia: Georgia, Cambria, "Times New Roman", Times, serif;
$helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
$lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif;
$monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
$verdana: Verdana, Geneva, sans-serif;

View File

@@ -1,10 +0,0 @@
@mixin hide-text {
overflow: hidden;
&:before {
content: "";
display: block;
width: 0;
height: 100%;
}
}

View File

@@ -1,86 +0,0 @@
//************************************************************************//
// Generate a variable ($all-text-inputs) with a list of all html5
// input types that have a text-based input, excluding textarea.
// http://diveintohtml5.org/forms.html
//************************************************************************//
$inputs-list: 'input[type="email"]',
'input[type="number"]',
'input[type="password"]',
'input[type="search"]',
'input[type="tel"]',
'input[type="text"]',
'input[type="url"]',
// Webkit & Gecko may change the display of these in the future
'input[type="color"]',
'input[type="date"]',
'input[type="datetime"]',
'input[type="datetime-local"]',
'input[type="month"]',
'input[type="time"]',
'input[type="week"]';
// Bare inputs
//************************************************************************//
$all-text-inputs: assign-inputs($inputs-list);
// Hover Pseudo-class
//************************************************************************//
$all-text-inputs-hover: assign-inputs($inputs-list, hover);
// Focus Pseudo-class
//************************************************************************//
$all-text-inputs-focus: assign-inputs($inputs-list, focus);
// You must use interpolation on the variable:
// #{$all-text-inputs}
// #{$all-text-inputs-hover}
// #{$all-text-inputs-focus}
// Example
//************************************************************************//
// #{$all-text-inputs}, textarea {
// border: 1px solid red;
// }
//************************************************************************//
// Generate a variable ($all-button-inputs) with a list of all html5
// input types that have a button-based input, excluding button.
//************************************************************************//
$inputs-button-list: 'input[type="button"]',
'input[type="reset"]',
'input[type="submit"]';
// Bare inputs
//************************************************************************//
$all-button-inputs: assign-inputs($inputs-button-list);
// Hover Pseudo-class
//************************************************************************//
$all-button-inputs-hover: assign-inputs($inputs-button-list, hover);
// Focus Pseudo-class
//************************************************************************//
$all-button-inputs-focus: assign-inputs($inputs-button-list, focus);
// Active Pseudo-class
//************************************************************************//
$all-button-inputs-active: assign-inputs($inputs-button-list, active);
// You must use interpolation on the variable:
// #{$all-button-inputs}
// #{$all-button-inputs-hover}
// #{$all-button-inputs-focus}
// #{$all-button-inputs-active}
// Example
//************************************************************************//
// #{$all-button-inputs}, button {
// border: 1px solid red;
// }

View File

@@ -1,32 +0,0 @@
@mixin position ($position: relative, $coordinates: null null null null) {
@if type-of($position) == list {
$coordinates: $position;
$position: relative;
}
$coordinates: unpack($coordinates);
$top: nth($coordinates, 1);
$right: nth($coordinates, 2);
$bottom: nth($coordinates, 3);
$left: nth($coordinates, 4);
position: $position;
@if ($top and $top == auto) or (type-of($top) == number) {
top: $top;
}
@if ($right and $right == auto) or (type-of($right) == number) {
right: $right;
}
@if ($bottom and $bottom == auto) or (type-of($bottom) == number) {
bottom: $bottom;
}
@if ($left and $left == auto) or (type-of($left) == number) {
left: $left;
}
}

View File

@@ -1,45 +0,0 @@
//************************************************************************//
// Example: @include prefixer(border-radius, $radii, webkit ms spec);
//************************************************************************//
// Variables located in /settings/_prefixer.scss
@mixin prefixer ($property, $value, $prefixes) {
@each $prefix in $prefixes {
@if $prefix == webkit {
@if $prefix-for-webkit {
-webkit-#{$property}: $value;
}
}
@else if $prefix == moz {
@if $prefix-for-mozilla {
-moz-#{$property}: $value;
}
}
@else if $prefix == ms {
@if $prefix-for-microsoft {
-ms-#{$property}: $value;
}
}
@else if $prefix == o {
@if $prefix-for-opera {
-o-#{$property}: $value;
}
}
@else if $prefix == spec {
@if $prefix-for-spec {
#{$property}: $value;
}
}
@else {
@warn "Unrecognized prefix: #{$prefix}";
}
}
}
@mixin disable-prefix-for-all() {
$prefix-for-webkit: false !global;
$prefix-for-mozilla: false !global;
$prefix-for-microsoft: false !global;
$prefix-for-opera: false !global;
$prefix-for-spec: false !global;
}

View File

@@ -1,31 +0,0 @@
@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) {
@if $asset-pipeline {
background-image: image-url("#{$filename}.#{$extension}");
}
@else {
background-image: url("#{$filename}.#{$extension}");
}
@include hidpi {
@if $asset-pipeline {
@if $retina-filename {
background-image: image-url("#{$retina-filename}.#{$extension}");
}
@else {
background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
}
}
@else {
@if $retina-filename {
background-image: url("#{$retina-filename}.#{$extension}");
}
@else {
background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
}
}
background-size: $background-size;
}
}

View File

@@ -1,16 +0,0 @@
@mixin size($size) {
$height: nth($size, 1);
$width: $height;
@if length($size) > 1 {
$height: nth($size, 2);
}
@if $height == auto or (type-of($height) == number and not unitless($height)) {
height: $height;
}
@if $width == auto or (type-of($width) == number and not unitless($width)) {
width: $width;
}
}

View File

@@ -1,32 +0,0 @@
// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
// Timing functions are the same as demo'ed here: http://jqueryui.com/resources/demos/effect/easing.html
// EASE IN
$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
// EASE OUT
$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
// EASE IN OUT
$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);

View File

@@ -1,83 +0,0 @@
@mixin triangle ($size, $color, $direction) {
height: 0;
width: 0;
$width: nth($size, 1);
$height: nth($size, length($size));
$foreground-color: nth($color, 1);
$background-color: if(length($color) == 2, nth($color, 2), transparent);
@if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
$width: $width / 2;
$height: if(length($size) > 1, $height, $height/2);
@if $direction == up {
border-left: $width solid $background-color;
border-right: $width solid $background-color;
border-bottom: $height solid $foreground-color;
} @else if $direction == right {
border-top: $width solid $background-color;
border-bottom: $width solid $background-color;
border-left: $height solid $foreground-color;
} @else if $direction == down {
border-left: $width solid $background-color;
border-right: $width solid $background-color;
border-top: $height solid $foreground-color;
} @else if $direction == left {
border-top: $width solid $background-color;
border-bottom: $width solid $background-color;
border-right: $height solid $foreground-color;
}
}
@else if ($direction == up-right) or ($direction == up-left) {
border-top: $height solid $foreground-color;
@if $direction == up-right {
border-left: $width solid $background-color;
} @else if $direction == up-left {
border-right: $width solid $background-color;
}
}
@else if ($direction == down-right) or ($direction == down-left) {
border-bottom: $height solid $foreground-color;
@if $direction == down-right {
border-left: $width solid $background-color;
} @else if $direction == down-left {
border-right: $width solid $background-color;
}
}
@else if ($direction == inset-up) {
border-width: $height $width;
border-style: solid;
border-color: $background-color $background-color $foreground-color;
}
@else if ($direction == inset-down) {
border-width: $height $width;
border-style: solid;
border-color: $foreground-color $background-color $background-color;
}
@else if ($direction == inset-right) {
border-width: $width $height;
border-style: solid;
border-color: $background-color $background-color $background-color $foreground-color;
}
@else if ($direction == inset-left) {
border-width: $width $height;
border-style: solid;
border-color: $background-color $foreground-color $background-color $background-color;
}
}

View File

@@ -1,8 +0,0 @@
@mixin word-wrap($wrap: break-word) {
word-wrap: $wrap;
@if $wrap == break-word {
overflow-wrap: break-word;
word-break: break-all;
}
}

View File

@@ -1,52 +0,0 @@
// http://www.w3.org/TR/css3-animations/#the-animation-name-property-
// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
// Official animation shorthand property.
@mixin animation ($animations...) {
@include prefixer(animation, $animations, webkit moz spec);
}
// Individual Animation Properties
@mixin animation-name ($names...) {
@include prefixer(animation-name, $names, webkit moz spec);
}
@mixin animation-duration ($times...) {
@include prefixer(animation-duration, $times, webkit moz spec);
}
@mixin animation-timing-function ($motions...) {
// ease | linear | ease-in | ease-out | ease-in-out
@include prefixer(animation-timing-function, $motions, webkit moz spec);
}
@mixin animation-iteration-count ($values...) {
// infinite | <number>
@include prefixer(animation-iteration-count, $values, webkit moz spec);
}
@mixin animation-direction ($directions...) {
// normal | alternate
@include prefixer(animation-direction, $directions, webkit moz spec);
}
@mixin animation-play-state ($states...) {
// running | paused
@include prefixer(animation-play-state, $states, webkit moz spec);
}
@mixin animation-delay ($times...) {
@include prefixer(animation-delay, $times, webkit moz spec);
}
@mixin animation-fill-mode ($modes...) {
// none | forwards | backwards | both
@include prefixer(animation-fill-mode, $modes, webkit moz spec);
}

View File

@@ -1,3 +0,0 @@
@mixin appearance ($value) {
@include prefixer(appearance, $value, webkit moz ms o spec);
}

View File

@@ -1,6 +0,0 @@
//************************************************************************//
// Backface-visibility mixin
//************************************************************************//
@mixin backface-visibility($visibility) {
@include prefixer(backface-visibility, $visibility, webkit spec);
}

View File

@@ -1,42 +0,0 @@
//************************************************************************//
// Background-image property for adding multiple background images with
// gradients, or for stringing multiple gradients together.
//************************************************************************//
@mixin background-image($images...) {
$webkit-images: ();
$spec-images: ();
@each $image in $images {
$webkit-image: ();
$spec-image: ();
@if (type-of($image) == string) {
$url-str: str-slice($image, 0, 3);
$gradient-type: str-slice($image, 0, 6);
@if $url-str == "url" {
$webkit-image: $image;
$spec-image: $image;
}
@else if $gradient-type == "linear" {
$gradients: _linear-gradient-parser($image);
$webkit-image: map-get($gradients, webkit-image);
$spec-image: map-get($gradients, spec-image);
}
@else if $gradient-type == "radial" {
$gradients: _radial-gradient-parser($image);
$webkit-image: map-get($gradients, webkit-image);
$spec-image: map-get($gradients, spec-image);
}
}
$webkit-images: append($webkit-images, $webkit-image, comma);
$spec-images: append($spec-images, $spec-image, comma);
}
background-image: $webkit-images;
background-image: $spec-images;
}

View File

@@ -1,55 +0,0 @@
//************************************************************************//
// Background property for adding multiple backgrounds using shorthand
// notation.
//************************************************************************//
@mixin background($backgrounds...) {
$webkit-backgrounds: ();
$spec-backgrounds: ();
@each $background in $backgrounds {
$webkit-background: ();
$spec-background: ();
$background-type: type-of($background);
@if $background-type == string or list {
$background-str: if($background-type == list, nth($background, 1), $background);
$url-str: str-slice($background-str, 0, 3);
$gradient-type: str-slice($background-str, 0, 6);
@if $url-str == "url" {
$webkit-background: $background;
$spec-background: $background;
}
@else if $gradient-type == "linear" {
$gradients: _linear-gradient-parser("#{$background}");
$webkit-background: map-get($gradients, webkit-image);
$spec-background: map-get($gradients, spec-image);
}
@else if $gradient-type == "radial" {
$gradients: _radial-gradient-parser("#{$background}");
$webkit-background: map-get($gradients, webkit-image);
$spec-background: map-get($gradients, spec-image);
}
@else {
$webkit-background: $background;
$spec-background: $background;
}
}
@else {
$webkit-background: $background;
$spec-background: $background;
}
$webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma);
$spec-backgrounds: append($spec-backgrounds, $spec-background, comma);
}
background: $webkit-backgrounds;
background: $spec-backgrounds;
}

View File

@@ -1,59 +0,0 @@
@mixin border-image($borders...) {
$webkit-borders: ();
$spec-borders: ();
@each $border in $borders {
$webkit-border: ();
$spec-border: ();
$border-type: type-of($border);
@if $border-type == string or list {
$border-str: if($border-type == list, nth($border, 1), $border);
$url-str: str-slice($border-str, 0, 3);
$gradient-type: str-slice($border-str, 0, 6);
@if $url-str == "url" {
$webkit-border: $border;
$spec-border: $border;
}
@else if $gradient-type == "linear" {
$gradients: _linear-gradient-parser("#{$border}");
$webkit-border: map-get($gradients, webkit-image);
$spec-border: map-get($gradients, spec-image);
}
@else if $gradient-type == "radial" {
$gradients: _radial-gradient-parser("#{$border}");
$webkit-border: map-get($gradients, webkit-image);
$spec-border: map-get($gradients, spec-image);
}
@else {
$webkit-border: $border;
$spec-border: $border;
}
}
@else {
$webkit-border: $border;
$spec-border: $border;
}
$webkit-borders: append($webkit-borders, $webkit-border, comma);
$spec-borders: append($spec-borders, $spec-border, comma);
}
-webkit-border-image: $webkit-borders;
border-image: $spec-borders;
border-style: solid;
}
//Examples:
// @include border-image(url("image.png"));
// @include border-image(url("image.png") 20 stretch);
// @include border-image(linear-gradient(45deg, orange, yellow));
// @include border-image(linear-gradient(45deg, orange, yellow) stretch);
// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round);
// @include border-image(radial-gradient(top, cover, orange, yellow, orange));

View File

@@ -1,22 +0,0 @@
//************************************************************************//
// Shorthand Border-radius mixins
//************************************************************************//
@mixin border-top-radius($radii) {
@include prefixer(border-top-left-radius, $radii, spec);
@include prefixer(border-top-right-radius, $radii, spec);
}
@mixin border-bottom-radius($radii) {
@include prefixer(border-bottom-left-radius, $radii, spec);
@include prefixer(border-bottom-right-radius, $radii, spec);
}
@mixin border-left-radius($radii) {
@include prefixer(border-top-left-radius, $radii, spec);
@include prefixer(border-bottom-left-radius, $radii, spec);
}
@mixin border-right-radius($radii) {
@include prefixer(border-top-right-radius, $radii, spec);
@include prefixer(border-bottom-right-radius, $radii, spec);
}

View File

@@ -1,4 +0,0 @@
@mixin box-sizing ($box) {
// content-box | border-box | inherit
@include prefixer(box-sizing, $box, webkit moz spec);
}

View File

@@ -1,4 +0,0 @@
@mixin calc($property, $value) {
#{$property}: -webkit-calc(#{$value});
#{$property}: calc(#{$value});
}

View File

@@ -1,47 +0,0 @@
@mixin columns($arg: auto) {
// <column-count> || <column-width>
@include prefixer(columns, $arg, webkit moz spec);
}
@mixin column-count($int: auto) {
// auto || integer
@include prefixer(column-count, $int, webkit moz spec);
}
@mixin column-gap($length: normal) {
// normal || length
@include prefixer(column-gap, $length, webkit moz spec);
}
@mixin column-fill($arg: auto) {
// auto || length
@include prefixer(column-fill, $arg, webkit moz spec);
}
@mixin column-rule($arg) {
// <border-width> || <border-style> || <color>
@include prefixer(column-rule, $arg, webkit moz spec);
}
@mixin column-rule-color($color) {
@include prefixer(column-rule-color, $color, webkit moz spec);
}
@mixin column-rule-style($style: none) {
// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
@include prefixer(column-rule-style, $style, webkit moz spec);
}
@mixin column-rule-width ($width: none) {
@include prefixer(column-rule-width, $width, webkit moz spec);
}
@mixin column-span($arg: none) {
// none || all
@include prefixer(column-span, $arg, webkit moz spec);
}
@mixin column-width($length: auto) {
// auto || length
@include prefixer(column-width, $length, webkit moz spec);
}

View File

@@ -1,5 +0,0 @@
@mixin filter($function: none) {
// <filter-function> [<filter-function]* | none
@include prefixer(filter, $function, webkit spec);
}

View File

@@ -1,321 +0,0 @@
// CSS3 Flexible Box Model and property defaults
// Custom shorthand notation for flexbox
@mixin box($orient: inline-axis, $pack: start, $align: stretch) {
@include display-box;
@include box-orient($orient);
@include box-pack($pack);
@include box-align($align);
}
@mixin display-box {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox; // IE 10
display: box;
}
@mixin box-orient($orient: inline-axis) {
// horizontal|vertical|inline-axis|block-axis|inherit
@include prefixer(box-orient, $orient, webkit moz spec);
}
@mixin box-pack($pack: start) {
// start|end|center|justify
@include prefixer(box-pack, $pack, webkit moz spec);
-ms-flex-pack: $pack; // IE 10
}
@mixin box-align($align: stretch) {
// start|end|center|baseline|stretch
@include prefixer(box-align, $align, webkit moz spec);
-ms-flex-align: $align; // IE 10
}
@mixin box-direction($direction: normal) {
// normal|reverse|inherit
@include prefixer(box-direction, $direction, webkit moz spec);
-ms-flex-direction: $direction; // IE 10
}
@mixin box-lines($lines: single) {
// single|multiple
@include prefixer(box-lines, $lines, webkit moz spec);
}
@mixin box-ordinal-group($int: 1) {
@include prefixer(box-ordinal-group, $int, webkit moz spec);
-ms-flex-order: $int; // IE 10
}
@mixin box-flex($value: 0.0) {
@include prefixer(box-flex, $value, webkit moz spec);
-ms-flex: $value; // IE 10
}
@mixin box-flex-group($int: 1) {
@include prefixer(box-flex-group, $int, webkit moz spec);
}
// CSS3 Flexible Box Model and property defaults
// Unified attributes for 2009, 2011, and 2012 flavours.
// 2009 - display (box | inline-box)
// 2011 - display (flexbox | inline-flexbox)
// 2012 - display (flex | inline-flex)
@mixin display($value) {
// flex | inline-flex
@if $value == "flex" {
// 2009
display: -webkit-box;
display: -moz-box;
display: box;
// 2012
display: -webkit-flex;
display: -moz-flex;
display: -ms-flexbox; // 2011 (IE 10)
display: flex;
}
@elseif $value == "inline-flex" {
display: -webkit-inline-box;
display: -moz-inline-box;
display: inline-box;
display: -webkit-inline-flex;
display: -moz-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
}
@else {
display: $value;
}
}
// 2009 - box-flex (integer)
// 2011 - flex (decimal | width decimal)
// 2012 - flex (integer integer width)
@mixin flex($value) {
// Grab flex-grow for older browsers.
$flex-grow: nth($value, 1);
// 2009
@include prefixer(box-flex, $flex-grow, webkit moz spec);
// 2011 (IE 10), 2012
@include prefixer(flex, $value, webkit moz ms spec);
}
// 2009 - box-orient ( horizontal | vertical | inline-axis | block-axis)
// - box-direction (normal | reverse)
// 2011 - flex-direction (row | row-reverse | column | column-reverse)
// 2012 - flex-direction (row | row-reverse | column | column-reverse)
@mixin flex-direction($value: row) {
// Alt values.
$value-2009: $value;
$value-2011: $value;
$direction: "normal";
@if $value == row {
$value-2009: horizontal;
}
@elseif $value == "row-reverse" {
$value-2009: horizontal;
$direction: reverse;
}
@elseif $value == column {
$value-2009: vertical;
}
@elseif $value == "column-reverse" {
$value-2009: vertical;
$direction: reverse;
}
// 2009
@include prefixer(box-orient, $value-2009, webkit moz spec);
@if $direction == "reverse" {
@include prefixer(box-direction, $direction, webkit moz spec);
}
// 2012
@include prefixer(flex-direction, $value, webkit moz spec);
// 2011 (IE 10)
-ms-flex-direction: $value;
}
// 2009 - box-lines (single | multiple)
// 2011 - flex-wrap (nowrap | wrap | wrap-reverse)
// 2012 - flex-wrap (nowrap | wrap | wrap-reverse)
@mixin flex-wrap($value: nowrap) {
// Alt values.
$alt-value: $value;
@if $value == nowrap {
$alt-value: single;
}
@elseif $value == wrap {
$alt-value: multiple;
}
@elseif $value == "wrap-reverse" {
$alt-value: multiple;
}
@include prefixer(box-lines, $alt-value, webkit moz spec);
@include prefixer(flex-wrap, $value, webkit moz ms spec);
}
// 2009 - TODO: parse values into flex-direction/flex-wrap
// 2011 - TODO: parse values into flex-direction/flex-wrap
// 2012 - flex-flow (flex-direction || flex-wrap)
@mixin flex-flow($value) {
@include prefixer(flex-flow, $value, webkit moz spec);
}
// 2009 - box-ordinal-group (integer)
// 2011 - flex-order (integer)
// 2012 - order (integer)
@mixin order($int: 0) {
// 2009
@include prefixer(box-ordinal-group, $int, webkit moz spec);
// 2012
@include prefixer(order, $int, webkit moz spec);
// 2011 (IE 10)
-ms-flex-order: $int;
}
// 2012 - flex-grow (number)
@mixin flex-grow($number: 0) {
@include prefixer(flex-grow, $number, webkit moz spec);
-ms-flex-positive: $number;
}
// 2012 - flex-shrink (number)
@mixin flex-shrink($number: 1) {
@include prefixer(flex-shrink, $number, webkit moz spec);
-ms-flex-negative: $number;
}
// 2012 - flex-basis (number)
@mixin flex-basis($width: auto) {
@include prefixer(flex-basis, $width, webkit moz spec);
-ms-flex-preferred-size: $width;
}
// 2009 - box-pack (start | end | center | justify)
// 2011 - flex-pack (start | end | center | justify)
// 2012 - justify-content (flex-start | flex-end | center | space-between | space-around)
@mixin justify-content ($value: flex-start) {
// Alt values.
$alt-value: $value;
@if $value == "flex-start" {
$alt-value: start;
}
@elseif $value == "flex-end" {
$alt-value: end;
}
@elseif $value == "space-between" {
$alt-value: justify;
}
@elseif $value == "space-around" {
$alt-value: center;
}
// 2009
@include prefixer(box-pack, $alt-value, webkit moz spec);
// 2012
@include prefixer(justify-content, $value, webkit moz ms o spec);
// 2011 (IE 10)
-ms-flex-pack: $alt-value;
}
// 2009 - box-align (start | end | center | baseline | stretch)
// 2011 - flex-align (start | end | center | baseline | stretch)
// 2012 - align-items (flex-start | flex-end | center | baseline | stretch)
@mixin align-items($value: stretch) {
$alt-value: $value;
@if $value == "flex-start" {
$alt-value: start;
}
@elseif $value == "flex-end" {
$alt-value: end;
}
// 2009
@include prefixer(box-align, $alt-value, webkit moz spec);
// 2012
@include prefixer(align-items, $value, webkit moz ms o spec);
// 2011 (IE 10)
-ms-flex-align: $alt-value;
}
// 2011 - flex-item-align (auto | start | end | center | baseline | stretch)
// 2012 - align-self (auto | flex-start | flex-end | center | baseline | stretch)
@mixin align-self($value: auto) {
$value-2011: $value;
@if $value == "flex-start" {
$value-2011: start;
}
@elseif $value == "flex-end" {
$value-2011: end;
}
// 2012
@include prefixer(align-self, $value, webkit moz spec);
// 2011 (IE 10)
-ms-flex-item-align: $value-2011;
}
// 2011 - flex-line-pack (start | end | center | justify | distribute | stretch)
// 2012 - align-content (flex-start | flex-end | center | space-between | space-around | stretch)
@mixin align-content($value: stretch) {
$value-2011: $value;
@if $value == "flex-start" {
$value-2011: start;
}
@elseif $value == "flex-end" {
$value-2011: end;
}
@elseif $value == "space-between" {
$value-2011: justify;
}
@elseif $value == "space-around" {
$value-2011: distribute;
}
// 2012
@include prefixer(align-content, $value, webkit moz spec);
// 2011 (IE 10)
-ms-flex-line-pack: $value-2011;
}

View File

@@ -1,23 +0,0 @@
// Order of the includes matters, and it is: normal, bold, italic, bold+italic.
@mixin font-face($font-family, $file-path, $weight: normal, $style: normal, $asset-pipeline: $asset-pipeline) {
@font-face {
font-family: $font-family;
font-weight: $weight;
font-style: $style;
@if $asset-pipeline == true {
src: font-url('#{$file-path}.eot');
src: font-url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
font-url('#{$file-path}.woff') format('woff'),
font-url('#{$file-path}.ttf') format('truetype'),
font-url('#{$file-path}.svg##{$font-family}') format('svg');
} @else {
src: url('#{$file-path}.eot');
src: url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
url('#{$file-path}.woff') format('woff'),
url('#{$file-path}.ttf') format('truetype'),
url('#{$file-path}.svg##{$font-family}') format('svg');
}
}
}

View File

@@ -1,10 +0,0 @@
// Font feature settings mixin and property default.
// Examples: @include font-feature-settings("liga");
// @include font-feature-settings("lnum" false);
// @include font-feature-settings("pnum" 1, "kern" 0);
// @include font-feature-settings("ss01", "ss02");
@mixin font-feature-settings($settings...) {
@if length($settings) == 0 { $settings: none; }
@include prefixer(font-feature-settings, $settings, webkit moz ms spec);
}

View File

@@ -1,10 +0,0 @@
// HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
@mixin hidpi($ratio: 1.3) {
@media only screen and (-webkit-min-device-pixel-ratio: $ratio),
only screen and (min--moz-device-pixel-ratio: $ratio),
only screen and (-o-min-device-pixel-ratio: #{$ratio}/1),
only screen and (min-resolution: #{round($ratio*96)}dpi),
only screen and (min-resolution: #{$ratio}dppx) {
@content;
}
}

View File

@@ -1,4 +0,0 @@
@mixin hyphens($hyphenation: none) {
// none | manual | auto
@include prefixer(hyphens, $hyphenation, webkit moz ms spec);
}

View File

@@ -1,14 +0,0 @@
@mixin image-rendering ($mode:auto) {
@if ($mode == crisp-edges) {
-ms-interpolation-mode: nearest-neighbor; // IE8+
image-rendering: -moz-crisp-edges;
image-rendering: -o-crisp-edges;
image-rendering: -webkit-optimize-contrast;
image-rendering: crisp-edges;
}
@else {
image-rendering: $mode;
}
}

View File

@@ -1,35 +0,0 @@
// Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content
@mixin keyframes($name) {
$original-prefix-for-webkit: $prefix-for-webkit;
$original-prefix-for-mozilla: $prefix-for-mozilla;
$original-prefix-for-microsoft: $prefix-for-microsoft;
$original-prefix-for-opera: $prefix-for-opera;
$original-prefix-for-spec: $prefix-for-spec;
@if $original-prefix-for-webkit {
@include disable-prefix-for-all();
$prefix-for-webkit: true !global;
@-webkit-keyframes #{$name} {
@content;
}
}
@if $original-prefix-for-mozilla {
@include disable-prefix-for-all();
$prefix-for-mozilla: true !global;
@-moz-keyframes #{$name} {
@content;
}
}
$prefix-for-webkit: $original-prefix-for-webkit !global;
$prefix-for-mozilla: $original-prefix-for-mozilla !global;
$prefix-for-microsoft: $original-prefix-for-microsoft !global;
$prefix-for-opera: $original-prefix-for-opera !global;
$prefix-for-spec: $original-prefix-for-spec !global;
@if $original-prefix-for-spec {
@keyframes #{$name} {
@content;
}
}
}

View File

@@ -1,38 +0,0 @@
@mixin linear-gradient($pos, $G1, $G2: null,
$G3: null, $G4: null,
$G5: null, $G6: null,
$G7: null, $G8: null,
$G9: null, $G10: null,
$fallback: null) {
// Detect what type of value exists in $pos
$pos-type: type-of(nth($pos, 1));
$pos-spec: null;
$pos-degree: null;
// If $pos is missing from mixin, reassign vars and add default position
@if ($pos-type == color) or (nth($pos, 1) == "transparent") {
$G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
$G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
$pos: null;
}
@if $pos {
$positions: _linear-positions-parser($pos);
$pos-degree: nth($positions, 1);
$pos-spec: nth($positions, 2);
}
$full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
// Set $G1 as the default fallback color
$fallback-color: nth($G1, 1);
// If $fallback is a color use that color as the fallback color
@if (type-of($fallback) == color) or ($fallback == "transparent") {
$fallback-color: $fallback;
}
background-color: $fallback-color;
background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
}

View File

@@ -1,8 +0,0 @@
@mixin perspective($depth: none) {
// none | <length>
@include prefixer(perspective, $depth, webkit moz spec);
}
@mixin perspective-origin($value: 50% 50%) {
@include prefixer(perspective-origin, $value, webkit moz spec);
}

View File

@@ -1,8 +0,0 @@
@mixin placeholder {
$placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
@each $placeholder in $placeholders {
&:#{$placeholder}-placeholder {
@content;
}
}
}

View File

@@ -1,39 +0,0 @@
// Requires Sass 3.1+
@mixin radial-gradient($G1, $G2,
$G3: null, $G4: null,
$G5: null, $G6: null,
$G7: null, $G8: null,
$G9: null, $G10: null,
$pos: null,
$shape-size: null,
$fallback: null) {
$data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
$G1: nth($data, 1);
$G2: nth($data, 2);
$pos: nth($data, 3);
$shape-size: nth($data, 4);
$full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
// Strip deprecated cover/contain for spec
$shape-size-spec: _shape-size-stripper($shape-size);
// Set $G1 as the default fallback color
$first-color: nth($full, 1);
$fallback-color: nth($first-color, 1);
@if (type-of($fallback) == color) or ($fallback == "transparent") {
$fallback-color: $fallback;
}
// Add Commas and spaces
$shape-size: if($shape-size, '#{$shape-size}, ', null);
$pos: if($pos, '#{$pos}, ', null);
$pos-spec: if($pos, 'at #{$pos}', null);
$shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} ');
background-color: $fallback-color;
background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full}));
background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})");
}

View File

@@ -1,15 +0,0 @@
@mixin transform($property: none) {
// none | <transform-function>
@include prefixer(transform, $property, webkit moz ms o spec);
}
@mixin transform-origin($axes: 50%) {
// x-axis - left | center | right | length | %
// y-axis - top | center | bottom | length | %
// z-axis - length
@include prefixer(transform-origin, $axes, webkit moz ms o spec);
}
@mixin transform-style ($style: flat) {
@include prefixer(transform-style, $style, webkit moz ms o spec);
}

View File

@@ -1,77 +0,0 @@
// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
// Example: @include transition (all 2s ease-in-out);
// @include transition (opacity 1s ease-in 2s, width 2s ease-out);
// @include transition-property (transform, opacity);
@mixin transition ($properties...) {
// Fix for vendor-prefix transform property
$needs-prefixes: false;
$webkit: ();
$moz: ();
$spec: ();
// Create lists for vendor-prefixed transform
@each $list in $properties {
@if nth($list, 1) == "transform" {
$needs-prefixes: true;
$list1: -webkit-transform;
$list2: -moz-transform;
$list3: ();
@each $var in $list {
$list3: join($list3, $var);
@if $var != "transform" {
$list1: join($list1, $var);
$list2: join($list2, $var);
}
}
$webkit: append($webkit, $list1);
$moz: append($moz, $list2);
$spec: append($spec, $list3);
}
// Create lists for non-prefixed transition properties
@else {
$webkit: append($webkit, $list, comma);
$moz: append($moz, $list, comma);
$spec: append($spec, $list, comma);
}
}
@if $needs-prefixes {
-webkit-transition: $webkit;
-moz-transition: $moz;
transition: $spec;
}
@else {
@if length($properties) >= 1 {
@include prefixer(transition, $properties, webkit moz spec);
}
@else {
$properties: all 0.15s ease-out 0s;
@include prefixer(transition, $properties, webkit moz spec);
}
}
}
@mixin transition-property ($properties...) {
-webkit-transition-property: transition-property-names($properties, 'webkit');
-moz-transition-property: transition-property-names($properties, 'moz');
transition-property: transition-property-names($properties, false);
}
@mixin transition-duration ($times...) {
@include prefixer(transition-duration, $times, webkit moz spec);
}
@mixin transition-timing-function ($motions...) {
// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
@include prefixer(transition-timing-function, $motions, webkit moz spec);
}
@mixin transition-delay ($times...) {
@include prefixer(transition-delay, $times, webkit moz spec);
}

View File

@@ -1,3 +0,0 @@
@mixin user-select($arg: none) {
@include prefixer(user-select, $arg, webkit moz ms spec);
}

View File

@@ -1,11 +0,0 @@
@function assign-inputs($inputs, $pseudo: null) {
$list : ();
@each $input in $inputs {
$input: unquote($input);
$input: if($pseudo, $input + ":" + $pseudo, $input);
$list: append($list, $input, comma);
}
@return $list;
}

View File

@@ -1,13 +0,0 @@
// Programatically determines whether a color is light or dark
// Returns a boolean
// More details here http://robots.thoughtbot.com/closer-look-color-lightness
@function is-light($hex-color) {
$-local-red: red(rgba($hex-color, 1.0));
$-local-green: green(rgba($hex-color, 1.0));
$-local-blue: blue(rgba($hex-color, 1.0));
$-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255;
@return $-local-lightness > .6;
}

View File

@@ -1,39 +0,0 @@
// Flexible grid
@function flex-grid($columns, $container-columns: $fg-max-columns) {
$width: $columns * $fg-column + ($columns - 1) * $fg-gutter;
$container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
@return percentage($width / $container-width);
}
// Flexible gutter
@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) {
$container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
@return percentage($gutter / $container-width);
}
// The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function.
// This function takes the fluid grid equation (target / context = result) and uses columns to help define each.
//
// The calculation presumes that your column structure will be missing the last gutter:
//
// -- column -- gutter -- column -- gutter -- column
//
// $fg-column: 60px; // Column Width
// $fg-gutter: 25px; // Gutter Width
// $fg-max-columns: 12; // Total Columns For Main Container
//
// div {
// width: flex-grid(4); // returns (315px / 995px) = 31.65829%;
// margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%;
//
// p {
// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%;
// float: left;
// margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%;
// }
//
// blockquote {
// float: left;
// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%;
// }
// }

View File

@@ -1,3 +0,0 @@
@function golden-ratio($value, $increment) {
@return modular-scale($value, $increment, $golden)
}

View File

@@ -1,13 +0,0 @@
@function grid-width($n) {
@return $n * $gw-column + ($n - 1) * $gw-gutter;
}
// The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function.
//
// $gw-column: 100px; // Column Width
// $gw-gutter: 40px; // Gutter Width
//
// div {
// width: grid-width(4); // returns 520px;
// margin-left: $gw-gutter; // returns 40px;
// }

View File

@@ -1,66 +0,0 @@
// Scaling Variables
$golden: 1.618;
$minor-second: 1.067;
$major-second: 1.125;
$minor-third: 1.2;
$major-third: 1.25;
$perfect-fourth: 1.333;
$augmented-fourth: 1.414;
$perfect-fifth: 1.5;
$minor-sixth: 1.6;
$major-sixth: 1.667;
$minor-seventh: 1.778;
$major-seventh: 1.875;
$octave: 2;
$major-tenth: 2.5;
$major-eleventh: 2.667;
$major-twelfth: 3;
$double-octave: 4;
@function modular-scale($value, $increment, $ratio) {
$v1: nth($value, 1);
$v2: nth($value, length($value));
$value: $v1;
// scale $v2 to just above $v1
@while $v2 > $v1 {
$v2: ($v2 / $ratio); // will be off-by-1
}
@while $v2 < $v1 {
$v2: ($v2 * $ratio); // will fix off-by-1
}
// check AFTER scaling $v2 to prevent double-counting corner-case
$double-stranded: $v2 > $v1;
@if $increment > 0 {
@for $i from 1 through $increment {
@if $double-stranded and ($v1 * $ratio) > $v2 {
$value: $v2;
$v2: ($v2 * $ratio);
} @else {
$v1: ($v1 * $ratio);
$value: $v1;
}
}
}
@if $increment < 0 {
// adjust $v2 to just below $v1
@if $double-stranded {
$v2: ($v2 / $ratio);
}
@for $i from $increment through -1 {
@if $double-stranded and ($v1 / $ratio) < $v2 {
$value: $v2;
$v2: ($v2 / $ratio);
} @else {
$v1: ($v1 / $ratio);
$value: $v1;
}
}
}
@return $value;
}

View File

@@ -1,13 +0,0 @@
// Convert pixels to ems
// eg. for a relational value of 12px write em(12) when the parent is 16px
// if the parent is another value say 24px write em(12, 24)
@function em($pxval, $base: $em-base) {
@if not unitless($pxval) {
$pxval: strip-units($pxval);
}
@if not unitless($base) {
$base: strip-units($base);
}
@return ($pxval / $base) * 1em;
}

View File

@@ -1,15 +0,0 @@
// Convert pixels to rems
// eg. for a relational value of 12px write rem(12)
// Assumes $em-base is the font-size of <html>
@function rem($pxval) {
@if not unitless($pxval) {
$pxval: strip-units($pxval);
}
$base: $em-base;
@if not unitless($base) {
$base: strip-units($base);
}
@return ($pxval / $base) * 1rem;
}

View File

@@ -1,5 +0,0 @@
// Srtips the units from a value. e.g. 12px -> 12
@function strip-units($val) {
@return ($val / ($val * 0 + 1));
}

View File

@@ -1,9 +0,0 @@
// Add percentage of white to a color
@function tint($color, $percent){
@return mix(white, $color, $percent);
}
// Add percentage of black to a color
@function shade($color, $percent){
@return mix(black, $color, $percent);
}

View File

@@ -1,22 +0,0 @@
// Return vendor-prefixed property names if appropriate
// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background
//************************************************************************//
@function transition-property-names($props, $vendor: false) {
$new-props: ();
@each $prop in $props {
$new-props: append($new-props, transition-property-name($prop, $vendor), comma);
}
@return $new-props;
}
@function transition-property-name($prop, $vendor: false) {
// put other properties that need to be prefixed here aswell
@if $vendor and $prop == transform {
@return unquote('-'+$vendor+'-'+$prop);
}
@else {
@return $prop;
}
}

View File

@@ -1,17 +0,0 @@
// Convert shorthand to the 4-value syntax
@function unpack($shorthand) {
@if length($shorthand) == 1 {
@return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1);
}
@else if length($shorthand) == 2 {
@return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2);
}
@else if length($shorthand) == 3 {
@return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2);
}
@else {
@return $shorthand;
}
}

View File

@@ -1,15 +0,0 @@
//************************************************************************//
// Helper function for str-to-num fn.
// Source: http://sassmeister.com/gist/9647408
//************************************************************************//
@function _convert-units($number, $unit) {
$strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax', 'deg', 'rad', 'grad', 'turn';
$units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax, 1deg, 1rad, 1grad, 1turn;
$index: index($strings, $unit);
@if not $index {
@warn "Unknown unit `#{$unit}`.";
@return false;
}
@return $number * nth($units, $index);
}

View File

@@ -1,13 +0,0 @@
@function _gradient-positions-parser($gradient-type, $gradient-positions) {
@if $gradient-positions
and ($gradient-type == linear)
and (type-of($gradient-positions) != color) {
$gradient-positions: _linear-positions-parser($gradient-positions);
}
@else if $gradient-positions
and ($gradient-type == radial)
and (type-of($gradient-positions) != color) {
$gradient-positions: _radial-positions-parser($gradient-positions);
}
@return $gradient-positions;
}

View File

@@ -1,8 +0,0 @@
//************************************************************************//
// Helper for linear-gradient-parser
//************************************************************************//
@function _is-num($char) {
$values: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 0 1 2 3 4 5 6 7 8 9;
$index: index($values, $char);
@return if($index, true, false);
}

View File

@@ -1,25 +0,0 @@
// Private function for linear-gradient-parser
@function _linear-angle-parser($image, $first-val, $prefix, $suffix) {
$offset: null;
$unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val));
$unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val));
@if ($unit-long == "grad") or
($unit-long == "turn") {
$offset: if($unit-long == "grad", -100grad * 3, -0.75turn);
}
@else if ($unit-short == "deg") or
($unit-short == "rad") {
$offset: if($unit-short == "deg", -90 * 3, 1.6rad);
}
@if $offset {
$num: _str-to-num($first-val);
@return (
webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix,
spec-image: $image
);
}
}

View File

@@ -1,41 +0,0 @@
@function _linear-gradient-parser($image) {
$image: unquote($image);
$gradients: ();
$start: str-index($image, "(");
$end: str-index($image, ",");
$first-val: str-slice($image, $start + 1, $end - 1);
$prefix: str-slice($image, 0, $start);
$suffix: str-slice($image, $end, str-length($image));
$has-multiple-vals: str-index($first-val, " ");
$has-single-position: unquote(_position-flipper($first-val) + "");
$has-angle: _is-num(str-slice($first-val, 0, 0));
@if $has-multiple-vals {
$gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals);
}
@else if $has-single-position != "" {
$pos: unquote($has-single-position + "");
$gradients: (
webkit-image: -webkit- + $image,
spec-image: $prefix + "to " + $pos + $suffix
);
}
@else if $has-angle {
// Rotate degree for webkit
$gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix);
}
@else {
$gradients: (
webkit-image: -webkit- + $image,
spec-image: $image
);
}
@return $gradients;
}

View File

@@ -1,61 +0,0 @@
@function _linear-positions-parser($pos) {
$type: type-of(nth($pos, 1));
$spec: null;
$degree: null;
$side: null;
$corner: null;
$length: length($pos);
// Parse Side and corner positions
@if ($length > 1) {
@if nth($pos, 1) == "to" { // Newer syntax
$side: nth($pos, 2);
@if $length == 2 { // eg. to top
// Swap for backwards compatability
$degree: _position-flipper(nth($pos, 2));
}
@else if $length == 3 { // eg. to top left
$corner: nth($pos, 3);
}
}
@else if $length == 2 { // Older syntax ("top left")
$side: _position-flipper(nth($pos, 1));
$corner: _position-flipper(nth($pos, 2));
}
@if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
}
@else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
}
@else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
}
@else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
}
$spec: to $side $corner;
}
@else if $length == 1 {
// Swap for backwards compatability
@if $type == string {
$degree: $pos;
$spec: to _position-flipper($pos);
}
@else {
$degree: -270 - $pos; //rotate the gradient opposite from spec
$spec: $pos;
}
}
$degree: unquote($degree + ",");
$spec: unquote($spec + ",");
@return $degree $spec;
}
@function _position-flipper($pos) {
@return if($pos == left, right, null)
if($pos == right, left, null)
if($pos == top, bottom, null)
if($pos == bottom, top, null);
}

View File

@@ -1,31 +0,0 @@
// Private function for linear-gradient-parser
@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) {
$val-1: str-slice($first-val, 0, $has-multiple-vals - 1 );
$val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val));
$val-3: null;
$has-val-3: str-index($val-2, " ");
@if $has-val-3 {
$val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2));
$val-2: str-slice($val-2, 0, $has-val-3 - 1);
}
$pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3);
$pos: unquote($pos + "");
// Use old spec for webkit
@if $val-1 == "to" {
@return (
webkit-image: -webkit- + $prefix + $pos + $suffix,
spec-image: $image
);
}
// Bring the code up to spec
@else {
@return (
webkit-image: -webkit- + $image,
spec-image: $prefix + "to " + $pos + $suffix
);
}
}

View File

@@ -1,69 +0,0 @@
@function _radial-arg-parser($G1, $G2, $pos, $shape-size) {
@each $value in $G1, $G2 {
$first-val: nth($value, 1);
$pos-type: type-of($first-val);
$spec-at-index: null;
// Determine if spec was passed to mixin
@if type-of($value) == list {
$spec-at-index: if(index($value, at), index($value, at), false);
}
@if $spec-at-index {
@if $spec-at-index > 1 {
@for $i from 1 through ($spec-at-index - 1) {
$shape-size: $shape-size nth($value, $i);
}
@for $i from ($spec-at-index + 1) through length($value) {
$pos: $pos nth($value, $i);
}
}
@else if $spec-at-index == 1 {
@for $i from ($spec-at-index + 1) through length($value) {
$pos: $pos nth($value, $i);
}
}
$G1: null;
}
// If not spec calculate correct values
@else {
@if ($pos-type != color) or ($first-val != "transparent") {
@if ($pos-type == number)
or ($first-val == "center")
or ($first-val == "top")
or ($first-val == "right")
or ($first-val == "bottom")
or ($first-val == "left") {
$pos: $value;
@if $pos == $G1 {
$G1: null;
}
}
@else if
($first-val == "ellipse")
or ($first-val == "circle")
or ($first-val == "closest-side")
or ($first-val == "closest-corner")
or ($first-val == "farthest-side")
or ($first-val == "farthest-corner")
or ($first-val == "contain")
or ($first-val == "cover") {
$shape-size: $value;
@if $value == $G1 {
$G1: null;
}
@else if $value == $G2 {
$G2: null;
}
}
}
}
}
@return $G1, $G2, $pos, $shape-size;
}

View File

@@ -1,50 +0,0 @@
@function _radial-gradient-parser($image) {
$image: unquote($image);
$gradients: ();
$start: str-index($image, "(");
$end: str-index($image, ",");
$first-val: str-slice($image, $start + 1, $end - 1);
$prefix: str-slice($image, 0, $start);
$suffix: str-slice($image, $end, str-length($image));
$is-spec-syntax: str-index($first-val, "at");
@if $is-spec-syntax and $is-spec-syntax > 1 {
$keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
$pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
$pos: append($pos, $keyword, comma);
$gradients: (
webkit-image: -webkit- + $prefix + $pos + $suffix,
spec-image: $image
)
}
@else if $is-spec-syntax == 1 {
$pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
$gradients: (
webkit-image: -webkit- + $prefix + $pos + $suffix,
spec-image: $image
)
}
@else if str-index($image, "cover") or str-index($image, "contain") {
@warn "Radial-gradient needs to be updated to conform to latest spec.";
$gradients: (
webkit-image: null,
spec-image: $image
)
}
@else {
$gradients: (
webkit-image: -webkit- + $image,
spec-image: $image
)
}
@return $gradients;
}

View File

@@ -1,18 +0,0 @@
@function _radial-positions-parser($gradient-pos) {
$shape-size: nth($gradient-pos, 1);
$pos: nth($gradient-pos, 2);
$shape-size-spec: _shape-size-stripper($shape-size);
$pre-spec: unquote(if($pos, "#{$pos}, ", null))
unquote(if($shape-size, "#{$shape-size},", null));
$pos-spec: if($pos, "at #{$pos}", null);
$spec: "#{$shape-size-spec} #{$pos-spec}";
// Add comma
@if ($spec != ' ') {
$spec: "#{$spec},"
}
@return $pre-spec $spec;
}

View File

@@ -1,26 +0,0 @@
// User for linear and radial gradients within background-image or border-image properties
@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
$pre-spec: null;
$spec: null;
$vendor-gradients: null;
@if $gradient-type == linear {
@if $gradient-positions {
$pre-spec: nth($gradient-positions, 1);
$spec: nth($gradient-positions, 2);
}
}
@else if $gradient-type == radial {
$pre-spec: nth($gradient-positions, 1);
$spec: nth($gradient-positions, 2);
}
@if $vendor {
$vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
}
@else if $vendor == false {
$vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
$vendor-gradients: unquote($vendor-gradients);
}
@return $vendor-gradients;
}

View File

@@ -1,10 +0,0 @@
@function _shape-size-stripper($shape-size) {
$shape-size-spec: null;
@each $value in $shape-size {
@if ($value == "cover") or ($value == "contain") {
$value: null;
}
$shape-size-spec: "#{$shape-size-spec} #{$value}";
}
@return $shape-size-spec;
}

View File

@@ -1,50 +0,0 @@
//************************************************************************//
// Helper function for linear/radial-gradient-parsers.
// Source: http://sassmeister.com/gist/9647408
//************************************************************************//
@function _str-to-num($string) {
// Matrices
$strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9';
$numbers: 0 1 2 3 4 5 6 7 8 9;
// Result
$result: 0;
$divider: 0;
$minus: false;
// Looping through all characters
@for $i from 1 through str-length($string) {
$character: str-slice($string, $i, $i);
$index: index($strings, $character);
@if $character == '-' {
$minus: true;
}
@else if $character == '.' {
$divider: 1;
}
@else {
@if not $index {
$result: if($minus, $result * -1, $result);
@return _convert-units($result, str-slice($string, $i));
}
$number: nth($numbers, $index);
@if $divider == 0 {
$result: $result * 10;
}
@else {
// Move the decimal dot to the left
$divider: $divider * 10;
$number: $number / $divider;
}
$result: $result + $number;
}
}
@return if($minus, $result * -1, $result);
}

View File

@@ -1 +0,0 @@
$asset-pipeline: false !default;

View File

@@ -1,6 +0,0 @@
// Variable settings for /addons/prefixer.scss
$prefix-for-webkit: true !default;
$prefix-for-mozilla: true !default;
$prefix-for-microsoft: true !default;
$prefix-for-opera: true !default;
$prefix-for-spec: true !default; // required for keyframe mixin

View File

@@ -1 +0,0 @@
$em-base: 16px !default;

View File

@@ -1,179 +0,0 @@
---
- - Adam Krebs
- Adam Solove
- Alan deLevie
- Alex Zelenskiy
- Alexander Solovyov
- Andreas Svensson
- Andrew Davey
- Andrew Zich
- Andrey Popp
- Anthony van der Hoorn
- Ayman Osman
- Ben Alpert
- Ben Newman
- Ben Ripkens
- Bill Fisher
- Bob Eagan
- Bojan Mihelac
- Brandon Bloom
- Brian Cooke
- Brian Kim
- Brian Reavis
- Brian Rue
- Cam Spiers
- Cassus Adam Banko
- Cat Chen
- Cheng Lou
- Christian Roman
- Christoph Pojer
- Christopher Monsanto
- Clay Allsopp
- Connor McSheffrey
- Dan Schafer
- Daniel Gasienica
- Daniel Lo Nigro
- Daniel Miladinov
- Daniel Schonfeld
- Danny Ben-David
- Daryl Lau
- David Hellsing
- David Hu
- Devon Blandin
- Dmitry Mazuro
- Dustin Getz
- Enguerran
- Eric Clemmons
- Eric Florenzano
- Eric Schoffstall
- Evan Coonrod
- Fabio M. Costa
- Felipe Oliveira Carvalho
- Felix Kling
- Fernando Correia
- François-Xavier Bois
- Fred Zhao
- G Scott Olson
- Geert Pasteels
- Geert-Jan Brits
- George A Sisco III
- Gilbert
- Greg Hurrell
- - Greg Roodt
- Guangqiang Dong
- Guido Bouman
- Harry Hull
- Harshad Sabne
- Hendrik Swanepoel
- Hugo Jobling
- Ian Obermiller
- Ingvar Stepanyan
- Irae Carvalho
- Isaac Salier-Hellendag
- Ivan Kozik
- Jaime Mingo
- Jakub Malinowski
- James Brantly
- James Ide
- Jamie Wong
- Jamison Dance
- Jan Kassens
- Jared Forsyth
- Jason Bonta
- Jason Trill
- Jean Lauliac
- Jeff Barczewski
- Jeff Carpenter
- Jeff Morrison
- Jeff Welch
- Jeffrey Lin
- Jignesh Kakadiya
- Jing Chen
- Johannes Baiter
- John Watson
- Jon Beebe
- Jonas Enlund
- Jonas Gebhardt
- Jonathan Hsu
- Jordan Walke
- Josh Bassett
- Josh Duck
- Josh Yudaken
- Joshua Ma
- Julen Ruiz Aizpuru
- Jun Wu
- Juraj Dudak
- Justin Jaffray
- Karl Mikkelsen
- Keito Uchiyama
- Kit Randel
- Kunal Mehta
- Kyle Mathews
- Laurence Rowe
- Levi McCallum
- Lily
- Logan Allen
- Luigy Leon
- Marcin Kwiatkowski
- Marcin Szczepanski
- Mariano Desanze
- Mark Richardson
- Marshall Roch
- - Martin Andert
- Martin Konicek
- Mathieu M-Gosselin
- Matt Harrison
- Matthew Dapena-Tretter
- Matti Nelimarkka
- Michal Srb
- Mouad Debbar
- Nadeesha Cabral
- Nate Hunzaker
- Nicholas Bergson-Shilcock
- Nick Gavalas
- Nick Thompson
- Niklas Boström
- Owen Coutts
- Pascal Hartig
- Paul OShannessy
- Paul Seiffert
- Paul Shen
- Pete Hunt
- Peter Cottle
- Petri Lievonen
- Pieter Vanderwerff
- Rajiv Tirumalareddy
- Randall Randall
- Ray
- Richard D. Worth
- Richard Feldman
- Richard Livesey
- Ryan Seddon
- Sahat Yalkabov
- Sander Spies
- Sean Kinsey
- Sebastian Markbåge
- Shaun Trennery
- Simon Højberg
- Stefan Dombrowski
- Stephen Murphy
- Stoyan Stefanov
- Sundeep Malladi
- Sven Helmberger
- Thomas Aylott
- Thomas Boyt
- Thomas Shaddox
- Thomas Shafer
- Timothy Yung
- Tom Haggie
- Tom Occhino
- Ville Immonen
- Vjeux
- Volkan Unsal
- Wayne Larsen
- Wincent Colaiuta
- Yuriy Dybskiy
- Yuval Dekel
- Zach Bruggeman
- davidxi
- imagentleman

View File

@@ -1,87 +0,0 @@
- title: Quick Start
items:
- id: getting-started
title: Getting Started
- id: tutorial
title: Tutorial
- id: thinking-in-react
title: Thinking in React
- title: Community Resources
items:
- id: videos
title: Videos
- id: complementary-tools
title: Complementary Tools
- id: examples
title: Examples
- title: Guides
items:
- id: why-react
title: Why React?
- id: displaying-data
title: Displaying Data
subitems:
- id: jsx-in-depth
title: JSX in Depth
- id: jsx-gotchas
title: JSX Gotchas
- id: interactivity-and-dynamic-uis
title: Interactivity and Dynamic UIs
- id: multiple-components
title: Multiple Components
- id: reusable-components
title: Reusable Components
- id: forms
title: Forms
- id: working-with-the-browser
title: Working With the Browser
subitems:
- id: more-about-refs
title: More About Refs
- id: tooling-integration
title: Tooling Integration
- id: addons
title: Add-Ons
subitems:
- id: animation
title: Animation
- id: two-way-binding-helpers
title: Two-Way Binding Helpers
- id: class-name-manipulation
title: Class Name Manipulation
- id: test-utils
title: Test Utilities
- id: clone-with-props
title: Cloning Components
- id: update
title: Immutability Helpers
- id: pure-render-mixin
title: PureRenderMixin
- id: perf
title: Performance Tools
- title: Reference
items:
- id: top-level-api
title: Top-Level API
- id: component-api
title: Component API
- id: component-specs
title: Component Specs and Lifecycle
- id: tags-and-attributes
title: Supported Tags and Attributes
- id: events
title: Event System
- id: dom-differences
title: DOM Differences
- id: special-non-dom-attributes
title: Special Non-DOM Attributes
- id: reconciliation
title: Reconciliation
- title: Flux
items:
- id: flux-overview
title: Flux Overview
href: http://facebook.github.io/flux/docs/overview.html
- id: flux-todo-list
title: Flux TodoMVC Tutorial
href: http://facebook.github.io/flux/docs/todo-list.html

View File

@@ -1,36 +0,0 @@
- title: Tips
items:
- id: introduction
title: Introduction
- id: inline-styles
title: Inline Styles
- id: if-else-in-JSX
title: If-Else in JSX
- id: self-closing-tag
title: Self-Closing Tag
- id: maximum-number-of-jsx-root-nodes
title: Maximum Number of JSX Root Nodes
- id: style-props-value-px
title: Shorthand for Specifying Pixel Values in style props
- id: children-props-type
title: Type of the Children props
- id: controlled-input-null-value
title: Value of null for Controlled Input
- id: componentWillReceiveProps-not-triggered-after-mounting
title: componentWillReceiveProps Not Triggered After Mounting
- id: props-in-getInitialState-as-anti-pattern
title: Props in getInitialState Is an Anti-Pattern
- id: dom-event-listeners
title: DOM Event Listeners in a Component
- id: initial-ajax
title: Load Initial Data via AJAX
- id: false-in-jsx
title: False in JSX
- id: communicate-between-components
title: Communicate Between Components
- id: expose-component-functions
title: Expose Component Functions
- id: references-to-components
title: References to Components
- id: children-undefined
title: this.props.children undefined

View File

@@ -1,10 +0,0 @@
<h1><a href="/react{{ page.url }}">{{ page.title }}</a></h1>
<p class="meta">{{ page.date | date_to_string }} by {{ page.author }}</p>
<div id="post">
{% if content != '' %}
{{ page.excerpt }}
{% else %}
{{ page.content }}
{% endif %}
</div>

View File

@@ -1,11 +0,0 @@
<div class="nav-docs nav-blog">
<div class="nav-docs-section">
<h3>Recent posts</h3>
<ul>
{% for post in site.posts limit:10 %}
<li><a href="/react{{ post.url }}"{% if page.title == post.title %} class="active"{% endif %}>{{ post.title }}</a></li>
{% endfor %}
<li><a href="/react/blog/all.html">All posts ...</a></li>
</ul>
</div>
</div>

View File

@@ -1,38 +0,0 @@
<div class="nav-docs">
<!-- Docs Nav -->
{% for section in site.data.nav_docs %}
<div class="nav-docs-section">
<h3>{{ section.title }}</h3>
<ul>
{% for item in section.items %}
<li>
{{ item | sidebar_item_link}}
{% if item.subitems %}
<ul>
{% for subitem in item.subitems %}
<li>
{{ subitem | sidebar_item_link}}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
<!-- Tips Nav -->
{% for section in site.data.nav_tips %}
<div class="nav-docs-section">
<h3>{{ section.title }}</h3>
<ul>
{% for item in section.items %}
<li>
<a href="/react/tips/{{ item.id }}.html"{% if page.id == item.id %} class="active"{% endif %}>{{ item.title }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More