diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000..6e5576ca7e
Binary files /dev/null and b/.DS_Store differ
diff --git a/templates/.gitignore b/templates/.gitignore
new file mode 100644
index 0000000000..83605d2b8b
--- /dev/null
+++ b/templates/.gitignore
@@ -0,0 +1,8 @@
+*.pyc
+*~
+*.scssc
+*.swp
+*.orig
+*.DS_Store
+#*
+.#*
\ No newline at end of file
diff --git a/templates/.hgignore b/templates/.hgignore
new file mode 100644
index 0000000000..e2ae8c91cb
--- /dev/null
+++ b/templates/.hgignore
@@ -0,0 +1,9 @@
+syntax: glob
+*.pyc
+*~
+*.scssc
+*.swp
+*.orig
+*.DS_Store
+#*
+.#*
\ No newline at end of file
diff --git a/templates/404.html b/templates/404.html
new file mode 100644
index 0000000000..65b4061b30
--- /dev/null
+++ b/templates/404.html
@@ -0,0 +1,7 @@
+
+<%inherit file="main.html" />
+
+ The page that you were looking for was not found. Go back to the homepage or let us know about any pages that may have been moved at technical@mitx.mit.edu.
+This set of questions and answers accompanies MIT’s February 13,
+2012, announcement regarding MITx’s prototype course —
+6.002x: Circuits and Electronics.
+ The system only allows each username to be used once. Probably,
+someone else already signed up with that username. Try a different,
+more unique username. For example, try adding a random number to the
+end. The log-in form will have a link to reset your password once the
+course opens. You should confirm your internet connection is fast enough to stream
+videos, and that Youtube is not blocked by your internet
+provider. Since the videos are hosted by YouTube, we have no control
+over most technical problems with video playback (aside from those
+related specifically to our player). You should also confirm you have a current version of Flash installed.
+While our player supports YouTube's HTML5 API (which allows playback without
+Flash), this support is experimental. 6.002x is the pilot course for MITx. While we plan to offer a
+range of courses in the future, at present, 6.002x is the only course
+available. Specific future offerings will be announced later. The course will start on March 5. Check the website
+mitx.mit.edu as the date approaches. A login button will appear on
+the course website 6.002x.mitx.mit.edu on or slightly before March 5
+so you can login, begin to get familiar with the site and start the
+course. You will not be able to log into the course until either the
+starting date, or shortly before. If you have problems logging in once
+the course has started, please verify that you are using the latest
+version of either Firefox or Google Chrome, and have JavaScript and
+cookies enabled. The lectures are on-line videos, and may be watched at your own
+pace and schedule. The course will have fixed deadlines for homework
+assignments and exams. You should receive a single activation e-mail. If you did not, the
+most common issues are:
+ If you run into issues, try recreating your account. There is no need
+to do anything about the old account, if any. If it is not activated
+through the link in the e-mail, it will disappear later.
+
+
+ You do not have to do anything. You can simply stop working on the
+course at any time you choose to do so. For the prototype course, learners achieving grades of "A," "B,"
+or "C" will receive an electronic Certificate of completion with the
+learner's name and grade on it. If you receive a grade below a "C" or
+do not complete the course, you will not receive a Certificate and no
+grade record attaching your name to your participation in the class
+will be disclosed outside of MITx. You can also choose to opt for a
+no record at any time. However, the posts you make while enrolled in
+the class will remain visible. MIT seeks through the development of MITx to improve
+education both on the MIT campus and around the world.
+
+ On campus, MITx will be coupled with an Institute-wide research
+initiative on online teaching and learning. The online learning tools
+that MITx develops will benefit the educational experience of
+residential students by supplementing and reinforcing the classroom
+and laboratory experiences.
+Beyond the MIT campus, MITx will endeavor to break down barriers to
+education in two ways. First, it will offer the online teaching of MIT
+courses to people around the world and the opportunity for able
+learners to gain certification of mastery of MIT material. Second, it
+will make freely available to educational institutions everywhere the
+open-source software infrastructure on which MITx courses are based.
+
+Since it launched OpenCourseWare 10 years ago, MIT has been committed
+to using technology to improve and greatly widen access to
+education. The launch of MITx represents a next step forward in that
+effort.
+
+At MIT, each course is assigned a number. All courses in the
+Department of Electrical Engineering and Computer Science (EECS) start
+with the number 6, and 6.002 (also known as Circuits and Electronics)
+is one of the introductory courses for EECS
+undergraduates. MITx’s 6.002x is modeled on the on-campus
+version of 6.002.
+
+ The course introduces engineering in the context of the lumped
+ circuit abstraction. Topics covered include: resistive elements and
+ networks; independent and dependent sources; switches and MOS
+ transistors; digital abstraction; amplifiers; energy storage
+ elements; dynamics of first- and second-order networks; design in
+ the time and frequency domains; and analog and digital circuits and
+ applications.
+
+6.002x is built on the content created collaboratively by MIT
+professors Anant Agarwal and Jeffrey H. Lang for 6.002.
+
+To enroll, visit http://mitx.mit.edu
+and sign up.
+
+6.002x will become available online on Monday, March 5.
+
+In this pilot course of MITx, learners seeking a certificate will have
+weekly deadlines for homework and labs. Similarly, the midterm and
+final exam will be given within a specific range of days. However,
+faster-paced learners can proceed multiple weeks ahead if they choose.
+
+Students should expect to spend approximately 10 hours per week on the
+course. However, the time taken by individual students might vary
+considerably depending on background and skill.
+
+There are four instructors for 6.002x: Anant Agarwal, Chris Terman,
+Gerald Sussman and Piotr Mitros. The team also includes several
+teaching assistants (TAs).
+
+Students taking 6.002x will have weekly video lectures, readings from
+the textbook, practice exercises and homework; design and laboratory
+exercises are also significant components of the course. The course
+will also provide additional tutorial material. There will be a
+midterm and a final exam. An interactive laboratory playground will
+also be made available for students to experiment creatively.
+
+In general, for any given week, learners are expected to work through
+a couple of lecture sequences containing a few videos (each 5 to 10
+minutes in length) and a few interactive practice exercises. Learners
+can also read appropriate parts of the textbook linked to the
+videos. Lab and homework exercises will round out the week. Tutorials
+are also provided as additional reference material.
+
+The course will include a discussion forum for learners to ask
+questions, to post answers, and for discussions. Several helpful
+documents, FAQs, tutorials and videos on using the various components
+of the course will also be provided.
+
+Yes. 6.002x will offer modest support for collaborative work through a
+prototype wiki and discussion forum.
+
+While MITx courses are open to all, there are some skills required to
+succeed in taking the course.
+
+In 6.002x, students are encouraged to have the knowledge obtained from
+a college-level physics course in electricity and
+magnetism (or from an advanced secondary-education course in electricity and magnetism, as with an Advanced Placement course in the United States). Students must know basic calculus and linear algebra, and
+have some basic background in differential equations.
+
+Since more advanced mathematics will not show up until the second half
+of the course, the first half of the course will include an optional
+remedial differential equations component for students with weaker
+math backgrounds.
+
+All of the courses on MITx will be free of charge. Those who have the
+ability and motivation to demonstrate mastery of content can receive a
+credential for a modest fee. For this prototype course, the fee for a
+credential will be waived.
+
+Any learner who successfully completes 6.002x will receive an
+electronic certificate indicating a grade. This certificate will
+indicate that you earned it from MITx’s pilot course. In
+this prototype version, MITx will not require that you be
+tested in a testing center or otherwise have your identity certified
+in order to receive this certificate. MITx certificates are not
+planned to count towards MIT course credit.
+
+MITx courses will use automated technologies to check student work
+including practice exercises, homework assignments, labs and exams.
+
+Grading schemes for each course will be announced with the
+course. 6.002x will be graded on an absolute scale. The components
+affecting a student’s grade and the grade thresholds will be
+posted on the course website when the course comes online.
+
+The course uses the textbook Foundations of Analog and Digital
+Electronic Circuits, by Anant Agarwal and Jeffrey H. Lang. Morgan
+Kaufmann Publishers, Elsevier, July 2005. Relevant sections will be
+provided electronically as part of the online course. While the
+textbook is recommended, it is not required. The electronic text is
+provided for personal use in connection with this course only. The
+copyright for the book is owned by Elsevier. The book can be purchased
+on Amazon.
+
+No, you do not need special software to access 6.002x, as you will
+access the online interactive course through your browser. The course
+website was developed and tested primarily with the current version of
+Google Chrome. We support current versions of Mozilla Firefox as
+well. The video player is based on Youtube, and is designed to work
+with Flash. We provide a partial non-Flash fallback for the video, but
+this uses Google's experimental HTML5 API, and hence we cannot
+guarantee those will continue to function for the duration of the
+semester. We provide partial support for Internet Explorer, as well as
+other browsers and tablets, but portions of the functionality will be
+unavailable.
+
+ Additional courses will be announced
+ on mitx.mit.edu as they become
+ available. We expect this will happen in fall 2012. We also have
+ accounts
+ on Twitter, Facebook,
+ and LinkedIn.
+ MIT News Office In December,
+MIT announced the
+launch of an online learning initiative called “MITx.”
+Starting this week, interested learners can now enroll for free in the
+initiative”s prototype course -- 6.002x: Circuits and
+Electronics. Students can sign up for the course
+at mitx.mit.edu. The course will
+officially begin on March 5 and run through June 8. Modeled after MIT’s 6.002 — an introductory course for
+undergraduate students in MIT’s Department of Electrical
+Engineering and Computer Science (EECS) — 6.002x will introduce
+engineering in the context of the lumped circuit abstraction, helping
+students make the transition from physics to the fields of electrical
+engineering and computer science. It will be taught by Anant Agarwal,
+EECS professor and director of MIT's Computer Science and
+Artificial Intelligence Laboratory (CSAIL); Chris Terman, CSAIL
+co-director; EECS Professor Gerald Sussman; and CSAIL Research
+Scientist Piotr Mitros.
+ “We are very excited to begin MITx with this prototype
+ class,” says MIT Provost L. Rafael Reif. “We will use
+ this prototype course to optimize the tools we have built by
+ soliciting and acting on feedback from learners.”
+
+To access the course, registered students will log in
+at mitx.mit.edu, where they will
+find a course schedule, an e-textbook for the course, and a discussion
+board. Each week, students will watch video lectures and
+demonstrations, work with practice exercises, complete homework
+assignments, and participate in an online interactive lab specifically
+designed to replicate its real-world counterpart. Students will also
+take exams and be able to check their grades as they progress in the
+course. Overall, students can expect to spend approximately 10 hours
+each week on the course.
+ A video introduction to 6.002x can
+be found here. A set of Frequently Asked Questions
+about 6.002x can be found here.
+
+FAQs about MITx as a whole can be found here.
+
+
+At the end of the prototype course, students who demonstrate their
+mastery will be able to receive a certificate of completion for
+free. In future MITx courses, students who complete the mastery
+requirement on MITx will be able to receive the credential for a
+modest fee.
+
+Further courses are expected to become
+available beginning in the fall.
+
+
+ 6.002x FAQ
+
+ Page not found
+
+More about 6.002x
+
+
+ Answering common questions about the first course on MITx, the
+Institute’s online-learning initiative.
+
+ I tried to register for the course, but it says the username
+is already taken.
+
+ I forgot my password
+
+ The videos stall out
+
+ I am interested in a different subject. What other courses do
+you offer?
+
+How will I know that the course has started?
+
+ I can't log in
+
+ Does the class have a schedule?
+
+ I just enrolled for the course. I have not received any form
+of acknowledgement that I have enrolled.
+
+
+
+
+ How do I drop the course?
+
+What happens if I drop the course?
+
+
+What is MITx?
+
+
+What is 6.002x, and how is it different from the on-campus version of
+6.002?
+
+
+
+How do I enroll in 6.002x?
+
+
+When will the course be available online?
+
+
+
+Do I need to follow a set timeline in completing 6.002x?
+
+
+
+How much time is required to complete the course?
+
+
+Who are the instructors for 6.002x?
+
+
+What is the work like in 6.002x?
+
+
+What if I have a question during the course?
+
+
+Will 6.002x offer any means for collaboration among online learners?
+
+
+Are there prerequisites to take the course?
+
+
+How much does the course cost?
+
+
+What is a credential?
+
+
+Who is grading the course?
+
+
+What is a passing grade?
+
+
+Do I need to buy a textbook?
+
+
+Do I need to have special software to access 6.002x?
+
+
+When will the next courses become available and what topics will they be on?
+
+ MITx prototype course opens for enrollment—Online-learning
+initiative’s first offering, ‘6.002x: Circuits and
+Electronics,’ accepting registrants now.
+
+
+
+
+
+“We invite you to join us for this pilot course of MITx,”
+Agarwal says. “The 6.002x team of professors and teaching
+assistants is excited to work with you on the discussion forum, and we
+look forward to your feedback to improve the learning
+experience.”
+
+
+
+RELATED:
+
+
+
+
+ARCHIVE: "MIT launches online learning initiative"
+
+
+http://web.mit.edu/newsoffice/2011/mitx-education-initiative-1219.html
+
+
+
+MITx website
+
+
+http://mitx.mit.edu
+
+
+
+
This law is also called Kirchhoff's first law, Kirchhoff's point rule, Kirchhoff's junction rule (or nodal rule), and Kirchhoff's first rule.
+The principle of conservation of electric charge implies that:
+Recalling that current is a signed (positive or negative) quantity reflecting direction towards or away from a node, this principle can be stated as:
+
n is the total number of branches with currents flowing towards or away from the node.
+This formula is valid for complex currents:
+
The law is based on the conservation of charge whereby the charge (measured in coulombs) is the product of the current (in amperes) and the time (in seconds).
+KCL is only valid if the charge density remains constant at the point to which it is applied. Consider the current entering a single plate of a capacitor. If one imagines a closed surface around that single plate, current enters through the surface, but does not exit, thus violating KCL. Certainly, the currents through a closed surface around the entire capacitor will meet KCL since the current entering one plate is balanced by the current exiting the other plate, and that is usually all that is important in circuit analysis, but there is a problem when considering just one plate. Another common example is the current in an antenna where current enters the antenna from the transmitter feeder but no current exits from the other end.(Johnson and Graham, pp.36-37)
+Maxwell introduced the concept of displacement currents to describe these situations. The current flowing into a capacitor plate is equal to the rate of accumulation of charge and hence is also equal to the rate of change of electric flux due to that charge (electric flux is measured in the same units, Coulombs, as electric charge in the SI system of units). This rate of change of flux,
, is what Maxwell called displacement current ID;

When the displacement currents are included, Kirchhoff's current law once again holds. Displacement currents are not real currents in that they do not consist of moving charges, they should be viewed more as a correction factor to make KCL true. In the case of the capacitor plate, the real current entering the plate is exactly cancelled by a displacement current leaving the plate and heading for the opposite plate.
+This can also be expressed in terms of vector field quantities by taking the divergence of Ampere's law with Maxwell's correction and combining with Gauss's law, yielding:
+
This is simply the charge conservation equation (in integral form, it says that the current flowing out of a closed surface is equal to the rate of loss of charge within the enclosed volume (Divergence theorem)). Kirchhoff's current law is equivalent to the statement that the divergence of the current is zero, true for time-invariant p, or always true if the displacement current is included with J.
+A matrix version of Kirchhoff's current law is the basis of most circuit simulation software, such as SPICE.
+This law is also called Kirchhoff's second law, Kirchhoff's loop (or mesh) rule, and Kirchhoff's second rule.
+The principle of conservation of energy implies that
+Similarly to KCL, it can be stated as:
+
Here, n is the total number of voltages measured. The voltages may also be complex:
+
This law is based on the conservation of "energy given/taken by potential field" (not including energy taken by dissipation). Given a voltage potential, a charge which has completed a closed loop doesn't gain or lose energy as it has gone back to initial potential level.
+This law holds true even when resistance (which causes dissipation of energy) is present in a circuit. The validity of this law in this case can be understood if one realizes that a charge in fact doesn't go back to its starting point, due to dissipation of energy. A charge will just terminate at the negative terminal, instead of positive terminal. This means all the energy given by the potential difference has been fully consumed by resistance which in turn loses the energy as heat dissipation.
+To summarize, Kirchhoff's voltage law has nothing to do with gain or loss of energy by electronic components (resistors, capacitors, etc.). It is a law referring to the potential field generated by voltage sources. In this potential field, regardless of what electronic components are present, the gain or loss in "energy given by the potential field" must be zero when a charge completes a closed loop.
+Kirchhoff's voltage law could be viewed as a consequence of the principle of conservation of energy. Otherwise, it would be possible to build a perpetual motion machine that passed a current in a circle around the circuit.
+Considering that electric potential is defined as a line integral over an electric field, Kirchhoff's voltage law can be expressed equivalently as
+
which states that the line integral of the electric field around closed loop C is zero.
+In order to return to the more special form, this integral can be "cut in pieces" in order to get the voltage at specific components.
+This is a simplification of Faraday's law of induction for the special case where there is no fluctuating magnetic field linking the closed loop. Therefore, it practically suffices for explaining circuits containing only resistors and capacitors.
+In the presence of a changing magnetic field the electric field is not conservative and it cannot therefore define a pure scalar potential-the line integral of the electric field around the circuit is not zero. This is because energy is being transferred from the magnetic field to the current (or vice versa). In order to "fix" Kirchhoff's voltage law for circuits containing inductors, an effective potential drop, or electromotive force (emf), is associated with each inductance of the circuit, exactly equal to the amount by which the line integral of the electric field is not zero by Faraday's law of induction.
diff --git a/templates/accordion.html b/templates/accordion.html new file mode 100644 index 0000000000..a94f738d29 --- /dev/null +++ b/templates/accordion.html @@ -0,0 +1,33 @@ +<%! + from django.core.urlresolvers import reverse +%> + +<%def name="make_chapter(chapter)"> +${section['name']}
+ ++ ${section['format']} + + % if 'due' in section and section['due']!="": + due ${section['due']} + % endif +
+ + % endfor +This account has already been activated. We will notify you as + soon as the course starts.
+For now you can go to the MITx homepage or the 6.002x course page.
+Thanks for activating your email. We will notify you as soon as the course starts.
+For now you can go to the MITx homepage or the 6.002x course page.
+Something went wrong. Check to make sure the URL you went to was + correct -- e-mail programs will sometimes split it into two + lines. If you still have issues, e-mail us to let us know what happened + at bugs@mitx.mit.edu.
+ +Or you can go back to the 6.002x course page.
+Copyright © 2012 MIT. All rights reserved. In order to + further MIT's goal of making education accessible and affordable + to the world, MIT is planning to make MITx course content + available under open source licenses. +
+Copyright © 2005 Elsevier Inc. All Rights + Reserved. Used with permission. While our goal is to build + courses with as much free and open content as possible, we + apologize that we do not have the ability to do so + entirely.
+MIT and MITx are trademarks of the Massachusetts Institute + of Technology, and may not be used without permission.
+
+ % if 'subscores' in c:
+ % for ss in c['subscores']:
+
${ss['summary']}
+ % endfor
+ % endif
+
If you can't solve your problems with self-help, we have several + e-mail addresses set up:
+ +Please bear in mind that while we read them, we do not + expect to have time to respond to all e-mails. For technical + questions, please make sure you are using the latest version + of Firefox + or Chrome, and + include browser and version in your e-mail, as well as + screenshots or other pertinent details.
+By enrolling in a course on MITx, you are joining a + special worldwide community of learners. The aspiration + of MITx is to provide anyone in the world who has the + motivation and ability to engage MIT coursework the opportunity + to attain the best MIT-based educational experience that + Internet technology enables. You are part of the community who + will help MITx achieve this goal. + +
MITx depends upon your motivation to learn the material + and to do so with honesty. In order to participate + in MITx, you must agree to the Honor Code below and any + additional terms specific to a class. This Honor Code, and any + additional terms, will be posted on each class website. + +
By enrolling in an MITx course, I agree that I will: + +
Unless otherwise indicated by the instructor of an MITx + course, learners on MITx are encouraged to: +
6.002x (Circuits and Electronics) is an experimental on-line adaptation of MIT’s first undergraduate analog design course: 6.002. This course will run, free of charge, for students worldwide from March 5, 2012 through June 8, 2012.
+6.002x (Circuits and Electronics) is designed to serve as a first course in an undergraduate electrical engineering (EE), or electrical engineering and computer science (EECS) curriculum. At MIT, 6.002 is in the core of department subjects required for all undergraduates in EECS.
+ +The course introduces engineering in the context of the lumped circuit abstraction. Topics covered include: resistive elements and networks; independent and dependent sources; switches and MOS transistors; digital abstraction; amplifiers; energy storage elements; dynamics of first- and second-order networks; design in the time and frequency domains; and analog and digital circuits and applications. Design and lab exercises are also significant components of the course. You should expect to spend approximately 10 hours per week on the course.
+ +If you successfully complete the course, you will receive an electronic certificate of accomplishment from MITx. This certificate will indicate that you earned it from MITx’s pilot course. In this prototype version, MITx will not require that you be tested in a testing center or otherwise have your identity certified in order to receive this certificate.
+ +The course uses the textbook Foundations of Analog and Digital Electronic Circuits, by Anant Agarwal and Jeffrey H. Lang. Morgan Kaufmann Publishers, Elsevier, July 2005. While recommended, the book is not required: relevant sections will be provided electronically as part of the online course for personal use in connection with this course only. The copyright for the book is owned by Elsevier. The book can be purchased on Amazon.
+In order to succeed in this course, you must have taken an AP level physics course in electricity and magnetism. You must know basic calculus and linear algebra and have some background in differential equations. Since more advanced mathematics will not show up until the second half of the course, the first half of the course will include an optional remedial differential equations component for those who need it.
+ +The course web site was developed and tested primarily with + Google Chrome. We support current versions of Mozilla Firefox as + well. The video player is designed to work with Flash. While we + provide a partial non-Flash fallback for the video, as well as + partial support for Internet Explorer, other browsers, and + tablets, portions of the functionality will be unavailable.
+
+ Director of MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) and a professor of the Electrical Engineering and Computer Science department at MIT. His research focus is in parallel computer architectures and cloud software systems, and he is a founder of several successful startups, including Tilera, a company that produces scalable multicore processors. Prof. Agarwal won MIT’s Smullin and Jamieson prizes for teaching and co-authored the course textbook “Foundations of Analog and Digital Electronic Circuits.”
+ Professor of Electrical Engineering at MIT. He is a well known educator in the computer science community, perhaps best known as the author of Structure and Interpretation of Computer Programs, which is universally acknowledged as one of the top ten textbooks in computer science, and as the creator of Scheme, a popular teaching language. His research spans a range of topics, from artificial intelligence, to physics and chaotic systems, to supercomputer design.
+ Research Scientist at MIT. His research focus is in finding ways to apply techniques from control systems to optimizing the learning process. Dr. Mitros has worked as an analog designer at Texas Instruments, Talking Lights, and most recently, designed the analog front end for a novel medical imaging modality for Rhythmia Medical.
If you don’t have an account yet, please enroll here
+Found a bug? Got an idea for improving our system? Let us know.
+ + + +Education has entered an era of rapid, exciting, +technology-enabled change. At MIT, we welcome the opportunity to +harness the power of on-line technology for our students and for the +world. On December 19, 2011, we announced MITx, an initiative to +offer exciting, challenging and enriching courses to anyone, +anywhere, who has the motivation and ability to engage MIT’s +educational content.
+ +Ten years ago, MIT +launched OpenCourseWare, +which places online the course materials for substantially the entire +MIT curriculum, and was the genesis of today’s worldwide +movement in free, open educational resources. MITx is the next step +in opening MIT’s educational doors to the world. Through OCW and +MITx, MIT invites the world to join it in the passion, hard work and +thrill of learning and discovery.
+ +MITx students who demonstrate their mastery of a subject can earn +a certificate of completion awarded by MITx.
+ +MITx courses will be available to the world through an Internet +platform that MIT will make freely available. MIT hopes that other +educational institutions, anywhere in the world, will adapt and use +the platform to publish their own educational content online for the +benefit of learners. Because the platform will be open-source and +scalable, adopters and users can continuously improve it, for the +benefit of everyone.
+ +Excellence in teaching and learning. MIT must always provide its +students the very best teaching and learning tools possible. MIT +began experimenting with online technologies in its educational +programs long before we launched OCW in 2001. We have only increased +our emphasis in recent years, as several MIT committees have studied +how MIT might enhance the learning experience of its students and +expand its impact worldwide through new online offerings.
+ +These efforts, combined with those of numerous individual MIT +faculty members, confirmed MIT’s conviction that digital +technologies enrich learning. Many other innovative institutions and +enterprises believe the same and are bringing creative online +offerings forward. Having brain-stormed, investigated and studied, +we were ready to act and eager to start. We announced our MITx +aspiration to capture and encourage the energy of our faculty in +creating new online teaching and learning tools.
+ +Once up and running, MITx will be a laboratory for online +learning. Whether MITx learners are MIT’s on-campus students, +university students elsewhere, or independent learners, MITx will help +us understand how online learning occurs and how virtual communities +of learners assemble -- information that in turn will allow us to +improve both MITx and our on-campus teaching.
+ +Access to higher education. MITx will help shatter barriers to +education. The constraints of MIT’s physical campus allow us to +admit less than 10 percent of our undergraduate applicants. We teach +on-campus only a tiny fraction of the people in the world with the +ability and motivation to learn MIT content. Online technology +provides a new and different portal into MIT-quality education. +Through MITx, MIT educational content can reach, augment, and enrich +the education and livelihood of many learners who cannot attend +MIT.
+ +MITx does not provide a full MIT education. Our residential +campus is the heart of MIT’s knowledge creation and +dissemination. MIT students enjoy a comprehensive curriculum and +distinct educational environment. Without MIT, there would be no +MITx.
+ +Advancing the public good. MITx is an opportunity to help +preserve and expand higher education as a public good. Historically, +the investment of public and private assets in enormous amounts has +produced the public benefits of knowledge creation and dissemination, +leading to capable citizens, innovation, job creation, economic +development, and broader welfare.
+ +Today, as computation and Internet technologies enable higher +education to migrate online, MIT sees the opportunity to democratize +education with unprecedented efficiency and scalability. We possess a +strong desire and feel a compelling obligation to offer a +not-for-profit, mission-driven, open-technology approach to online +learning. MITx is our contribution.
+ +MITx will offer a portfolio of MIT courses for free to a virtual community of learners around the world. It will also enhance the educational experience of its on-campus students, offering them online tools that supplement and enrich their classroom and laboratory experiences.
+The first MITx course, 6.002x (Circuits and Electronics), will be launched in an experimental prototype form. Watch this space for further upcoming courses, which will become available in Fall 2012.
+
Watch intro video
+ Press & links: 6.002x Press Release, 6.002x FAQ, MITx overview, Boston Globe, New York Times, MIT Press Release, MITx FAQ, OpenCourseWare
++ More information & Enroll ‣ +
+ +Taught by Anant Agarwal, with Gerald Sussman and Piotr Mitros, 6.002x (Circuits and Electronics) is an on-line adaption of 6.002, MIT’s first undergraduate analog design course. This prototype course will run, free of charge, for students worldwide from March 5, 2012 through June 8, 2012. Students will be given the opportunity to demonstrate their mastery of the material and earn a certificate from MITx.
+If run into problems signing up for the web site which you + cannot resolve on your own, please check + the Frequently + Asked Questions. If you find a bug or other issues, you can + reach us at:
+Please bear in mind that while we read them, we do not expect to + have time to respond to all e-mails.
+Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one.
+ + diff --git a/templates/privacy.html b/templates/privacy.html new file mode 100644 index 0000000000..715578b36a --- /dev/null +++ b/templates/privacy.html @@ -0,0 +1,198 @@ +<%inherit file="marketing.html" /> + +We care about the confidentiality and security of your personal +information. We will use commercially reasonable efforts to keep your +Personally Identifiable Information private and will not share it with third +parties, except as set forth in this Privacy Policy. However, no method of +transmitting or storing electronic data is ever completely secure, and we +cannot guarantee that such information will never be accessed, used, or +released in a manner that is inconsistent with this policy.
+ +This Privacy Policy only applies to information that we collect +through the Site and does not apply to information that we may collect +from you in other ways (for example, this policy does not apply to +information that you may provide to us over the phone, by fax or +through conventional mail). In addition, please note your educational +records are protected by the Family Educational Rights and Privacy Act +("FERPA") to the extent FERPA applies.
+ +Comments or other information posted by you to our forums, +wikis, or other areas of the Site designed for public communications may be +viewed and downloaded by others who visit the Site. For this reason, we +encourage you to use an anonymous username, and to not post any personally +identifiable information to those forums (or other public areas).
+ +Please understand that by submitting any Personally Identifiable +Information to us, you consent and agree that we may collect, use and +disclose such Personally Identifiable Information in accordance with +this Privacy Policy and our Terms of Service ("TOS"), and as +permitted or required by law. If you do not agree with these terms, +then please do not provide any Personally Identifiable Information to +us. As used herein, "Personally Identifiable Information" +means your full name, email address, your physical address (if you +provide it) and your student identification number, if applicable. If +you refuse, or if you choose not to provide us with any required +Personally Identifiable Information, we may not be able to provide you +with the services that can be offered on our Site.
+ +We collect information, including Personally Identifiable +Information, when you sign up for a User Account, participate in +online courses, send us email messages and/or participate in our +public forums. We collect information about student performance and +patterns of learning. We track information indicating, among other +things, which pages of our Site were visited, the order in which they +were visited, when they were visited, and which hyperlinks and other +user interface controls were used.
+ +We may log the IP address, operating system and browser software +used by each user of the Site, and we may be able to determine from an +IP address a user's Internet Service Provider and the geographic +location of his or her point of connectivity. Various web analysis +tools are used to collect this information. Some of the information is +collected through cookies (a small text file placed on your +computer). You should be able to control how and whether cookies will +be accepted by your web browser. Most browsers offer instructions on +how to reset the browser to reject cookies in the "Help" +section of the toolbar. If you reject our cookies, many functions and +conveniences of this Site may not work properly.
+ +Among other things, we may use the information that you provide +(including your Personally Identifiable Information) in connection +with the following:
+ +In addition to the above situations where your information may be +shared with others, there is also the possibility that MITx +will affiliate with other educational institutions and/or +that MITx will become a (or part of a) nonprofit entity +separate from MIT. In those events, the other educational +institutions and/or separate entity will have access to the +information you provide, to the extent permitted by FERPA. + +
We may share the information we collect with third parties +as follows:
+ +Our goal is to provide current and future visitors with the best +possible educational experience. To further this goal, we sometimes +present different users with different versions of course materials +and software. We do this to personalize the experience to the +individual learner (assess the learner's level of ability and learning +style, and present materials best suited to the learner), to evaluate +the effectiveness of our course materials, to improve our +understanding of the learning process, and to otherwise improve the +effectiveness of our offerings. We may publish or otherwise publicize +results from this process, but only as non-personally-identifiable +data.
+ +Please note that we review our privacy practices from time to time, +and that these practices are subject to change. We will publish notice +of any such modifications online on this page for a reasonable period +of time following such modifications, and by changing the effective +date of this Privacy Policy. By continuing to access the Site after +such changes have been posted, you signify your agreement to be bound +by them. Be sure to return to this page periodically to ensure +familiarity with the most current version of this Privacy Policy.
+ +If you have privacy concerns, or have disclosed data you would +prefer to keep private, please contact us +at privacy@mitx.mit.edu.
+ +Effective Date: February 6, 2012 + +
{% trans "Thanks for spending some quality time with the Web site today." %}
+ + + +{% endblock %} diff --git a/templates/registration/login.html b/templates/registration/login.html new file mode 100644 index 0000000000..70e58965a4 --- /dev/null +++ b/templates/registration/login.html @@ -0,0 +1,28 @@ +{% extends "registration/base.html" %} + +{% block title %}Log in{% endblock %} + +{% block content %} + +Please correct the errors below:
+{% endif %} + + +{% endblock %} + +{% block content-related %} +If you don't have an account, you can sign +up for one. +{% endblock %} diff --git a/templates/registration/login_error.html b/templates/registration/login_error.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/templates/registration/logout.html b/templates/registration/logout.html new file mode 100644 index 0000000000..3275d2e1b4 --- /dev/null +++ b/templates/registration/logout.html @@ -0,0 +1,8 @@ +{% extends "registration/base.html" %} + +{% block title %}Logged out{% endblock %} + +{% block content %} +
Thanks for stopping by; when you come back, don't forget to log in again.
+{% endblock %} \ No newline at end of file diff --git a/templates/registration/password_change_done.html b/templates/registration/password_change_done.html new file mode 100644 index 0000000000..0c0690d5e2 --- /dev/null +++ b/templates/registration/password_change_done.html @@ -0,0 +1,15 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} +{% load url from future %} +{% block userlinks %}{% url 'django-admindocs-docroot' as docsroot %}{% if docsroot %}{% trans 'Documentation' %} / {% endif %}{% trans 'Change password' %} / {% trans 'Log out' %}{% endblock %} +{% block breadcrumbs %}{% endblock %} + +{% block title %}{% trans 'Password change successful' %}{% endblock %} + +{% block content %} + +{% trans 'Your password was changed.' %}
+ +{% endblock %} diff --git a/templates/registration/password_change_form.html b/templates/registration/password_change_form.html new file mode 100644 index 0000000000..23d6c1d8af --- /dev/null +++ b/templates/registration/password_change_form.html @@ -0,0 +1,51 @@ +{% extends "admin/base_site.html" %} +{% load i18n adminmedia %} +{% load url from future %} +{% block extrastyle %}{{ block.super }}{% endblock %} +{% block userlinks %}{% url 'django-admindocs-docroot' as docsroot %}{% if docsroot %}{% trans 'Documentation' %} / {% endif %} {% trans 'Change password' %} / {% trans 'Log out' %}{% endblock %} +{% block breadcrumbs %}{% endblock %} + +{% block title %}{% trans 'Password change' %}{% endblock %} + +{% block content %}Please enter your new password twice so we can verify you typed it in correctly.
+ + + +{% else %} + +The password reset link was invalid, possibly because the link has already been used. Please request a new password reset.
+ +{% endif %} + +We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly.
diff --git a/templates/registration/password_reset_email.html b/templates/registration/password_reset_email.html new file mode 100644 index 0000000000..d5c4da23c1 --- /dev/null +++ b/templates/registration/password_reset_email.html @@ -0,0 +1,14 @@ +{% load i18n %}{% load url from future %}{% autoescape off %} +{% blocktrans %}You're receiving this e-mail because you requested a password reset for your user account at {{ site_name }}.{% endblocktrans %} + +{% trans "Please go to the following page and choose a new password:" %} +{% block reset_link %} +{{ protocol }}://{{ site_name }}{% url 'django.contrib.auth.views.password_reset_confirm' uidb36=uid token=token %} +{% endblock %} +{% trans "Your username, in case you've forgotten:" %} {{ user.username }} + +{% trans "Thanks for using our site!" %} + +{% blocktrans %}The MITx team{% endblocktrans %} + +{% endautoescape %} diff --git a/templates/registration/reg_complete.html b/templates/registration/reg_complete.html new file mode 100644 index 0000000000..256146f3b4 --- /dev/null +++ b/templates/registration/reg_complete.html @@ -0,0 +1,3 @@ +An activation link has been sent to ${ email }, along with +instructions for activating your account.
diff --git a/templates/registration/registration_complete.html b/templates/registration/registration_complete.html new file mode 100644 index 0000000000..9f0cea41db --- /dev/null +++ b/templates/registration/registration_complete.html @@ -0,0 +1,8 @@ +{% extends "registration/base.html" %} + +{% block title %}Registration complete{% endblock %} + +{% block content %} +An activation link has been sent to the email address you supplied, along with instructions for activating your account.
+{% endblock %} \ No newline at end of file diff --git a/templates/registration/registration_form.html b/templates/registration/registration_form.html new file mode 100644 index 0000000000..1e9d630639 --- /dev/null +++ b/templates/registration/registration_form.html @@ -0,0 +1,58 @@ +{% extends "registration/base.html" %} + +{% block title %}Sign up{% endblock %} + +{% block content %} + + {% if form.errors %} +Please correct the errors below: {{ form.non_field_errors }}
+ {% endif %} + +Fill out the form to the left (all fields are required), and your +account will be created; you'll be sent an email with instructions on how +to finish your registration.
+ +We'll only use your email to send you signup instructions. We hate spam +as much as you do.
+ +This account will let you log into the ticket tracker, claim tickets, +and be exempt from spam filtering.
+{% endblock %} diff --git a/templates/sass/.DS_Store b/templates/sass/.DS_Store new file mode 100644 index 0000000000..5b92100c38 Binary files /dev/null and b/templates/sass/.DS_Store differ diff --git a/templates/sass/README b/templates/sass/README new file mode 100644 index 0000000000..fcd2d290a5 --- /dev/null +++ b/templates/sass/README @@ -0,0 +1,17 @@ +This project is using Sass to generate it's CSS. Sass is a CSS preprocessor that allows for faster development of CSS. For more information about sass: http://sass-lang.com + +To use sass all you need to do is enter: +$ gem install sass + +We are also using Bourbon with sass. They are a generic set of mixins, and functions that allow for more rapid development of CSS3. Find out more about bourbon here: https://github.com/thoughtbot/bourbon + +To use bourbon you need to install it with: +$ gem install bourbon + +Then to generate Sass files cd to templates directory and watch the sass files for developement: +$ sass --watch sass:../static/css/ -r ./sass/bourbon/lib/bourbon.rb + +To generate a compressed css file for production: +$ sass --watch sass:../static/css/ -r ./sass/bourbon/lib/bourbon.rb --style :compressed + +These will automatically generate the CSS files on save. diff --git a/templates/sass/_gradebook.scss b/templates/sass/_gradebook.scss new file mode 100644 index 0000000000..3282d4141b --- /dev/null +++ b/templates/sass/_gradebook.scss @@ -0,0 +1,11 @@ +div.gradebook-wrapper { + @extend .table-wrapper; + + section.gradebook-content { + @extend .content; + + h1 { + @extend .top-header; + } + } +} diff --git a/templates/sass/_help.scss b/templates/sass/_help.scss new file mode 100644 index 0000000000..2784b41c82 --- /dev/null +++ b/templates/sass/_help.scss @@ -0,0 +1,54 @@ +section.help.main-content { + padding: lh(); + + h1 { + margin-top: 0; + margin-bottom: lh(); + padding-bottom: lh(); + border-bottom: 1px solid #ddd; + } + + p { + max-width: 700px; + } + + h2 { + margin-top: 0; + } + + section.self-help { + margin-bottom: lh(); + margin-right: flex-gutter(); + float: left; + width: flex-grid(6); + + ul { + margin-left: flex-gutter(6); + + li { + margin-bottom: lh(.5); + } + } + } + + section.help-email { + float: left; + width: flex-grid(6); + + dl { + margin-bottom: lh(); + display: block; + + dd { + margin-bottom: lh(); + } + + dt { + font-weight: bold; + float: left; + clear: left; + width: flex-grid(2, 6); + } + } + } +} diff --git a/templates/sass/_info.scss b/templates/sass/_info.scss new file mode 100644 index 0000000000..910036b093 --- /dev/null +++ b/templates/sass/_info.scss @@ -0,0 +1,109 @@ +div.info-wrapper { + @extend .table-wrapper; + + section.updates { + @extend .content; + + > h1 { + @extend .top-header; + } + + > p { + margin-bottom: lh(); + } + + > ol { + list-style: none; + + > li { + padding-bottom: lh(.5); + margin-bottom: lh(.5); + @extend .clearfix; + border-bottom: 1px solid #e3e3e3; + + &:first-child { + padding: lh(.5); + margin-left: (-(lh(.5))); + background: $cream; + border-bottom: 1px solid darken($cream, 10%); + } + + h2 { + float: left; + width: flex-grid(2, 9); + margin: 0 flex-gutter() 0 0; + } + + section.update-description { + float: left; + width: flex-grid(7, 9); + margin-bottom: 0; + + p { + &:last-child { + margin-bottom: 0; + } + } + } + } + } + } + + section.handouts { + @extend .sidebar; + @include border-radius(0 4px 4px 0); + border-right: 0; + border-left: 1px solid #d3d3d3; + + h1 { + padding: lh(.5) lh(); + font-size: 18px; + margin: 0 ; + @extend .bottom-border; + } + + ol { + list-style: none; + + li { + @include box-shadow(0 1px 0 #eee); + border-bottom: 1px solid #d3d3d3; + @extend .clearfix; + + p { + padding: 7px lh(); + margin: 0; + text-transform: none; + letter-spacing: 0; + font-size: $body-font-size; + + &:hover { + background: #efefef; + } + + a { + display: inline; + padding: 0; + + &:hover { + text-decoration: underline; + background: none; + } + } + } + + a { + @include transition(); + color: lighten($text-color, 10%); + display: block; + padding: 7px lh(); + text-decoration: none; + + &:hover { + background: #efefef; + } + } + } + } + } +} diff --git a/templates/sass/_profile.scss b/templates/sass/_profile.scss new file mode 100644 index 0000000000..3182d61b36 --- /dev/null +++ b/templates/sass/_profile.scss @@ -0,0 +1,153 @@ +div.profile-wrapper { + @extend .table-wrapper; + color: #000; + + section.user-info { + @extend .sidebar; + @include border-radius(0px 4px 4px 0); + border-left: 1px solid #d3d3d3; + border-right: 0; + + h1 { + padding: lh(.5) lh(); + font-size: 18px; + margin: 0 ; + @extend .bottom-border; + } + + ul { + list-style: none; + + li { + @include transition(); + color: lighten($text-color, 10%); + display: block; + text-decoration: none; + @include box-shadow(0 1px 0 #eee); + padding: 7px lh(); + border-bottom: 1px solid #d3d3d3; + position: relative; + + div#location_sub, div#language_sub { + font-weight: bold; + @include inline-block(); + + form { + width: 100%; + } + + input { + + &[type="text"] { + margin: lh(.5) 0; + width: 100%; + @include box-sizing(border-box); + } + + &[type="input"]{ + } + } + + &:empty { + padding: 0; + } + } + + div#description { + font-size: 12px; + } + + a#change_language, a#change_location { + position: absolute; + top: 9px; + right: lh(.5); + text-transform: uppercase; + font-size: 12px; + color: #999; + + &:hover { + color: #555; + } + } + } + } + + div#change_password_pop { + padding: 7px lh(); + color: #4D4D4D; + } + } + + section.course-info { + @extend .content; + + > h1 { + @extend .top-header; + } + + div#grade-detail-graph { + width: 100%; + min-height: 300px; + } + + > ol { + border-top: 1px solid #e3e3e3; + list-style: none; + margin-top: lh(); + + > li { + @extend .clearfix; + border-bottom: 1px solid #e3e3e3; + display: table; + padding: lh() 0; + width: 100%; + + &:last-child { + border-bottom: 0px; + } + + h2 { + border-right: 1px dashed #ddd; + @include box-sizing(border-box); + display: table-cell; + margin: 0; + padding: 0; + padding-right: flex-gutter(9); + width: flex-grid(2, 9); + } + + ol.sections { + display: table-cell; + list-style: none; + padding-left: flex-gutter(9); + width: flex-grid(7, 9); + + > li { + padding:0 0 lh() 0; + + &:first-child { + padding-top: 0; + } + + &:last-child { + border-bottom: 0; + } + + h3 { + color: #666; + } + + ol { + list-style: none; + + li { + display: inline-block; + padding-right: 1em; + } + } + } + } + } + } + } +} diff --git a/templates/sass/_textbook.scss b/templates/sass/_textbook.scss new file mode 100644 index 0000000000..d1747e9e3b --- /dev/null +++ b/templates/sass/_textbook.scss @@ -0,0 +1,132 @@ +div.book-wrapper { + @extend .table-wrapper; + + section.book-sidebar { + @extend .sidebar; + @include box-sizing(border-box); + @extend .tran; + + ul#booknav { + font-size: 12px; + + a { + color: #000; + + &:hover { + color: #666; + } + } + + li { + background: none; + padding-left: 30px; + + div.hitarea { + margin-left: -22px; + background-image: url('/static/images/treeview-default.gif'); + position: relative; + top: 4px; + + &:hover { + opacity: 0.6; + filter: alpha(opacity=60); + } + } + + ul { + background: none; + } + } + + > li { + border-bottom: 1px solid #d3d3d3; + @include box-shadow(0 1px 0 #eee); + padding: 7px 7px 7px 30px; + } + } + } + + section.book { + @extend .content; + + nav { + @extend .topbar; + @extend .clearfix; + + a { + @extend .block-link; + padding: 0 lh(); + } + + ul { + @extend .clearfix; + + li { + &.last { + float: left; + display: block; + + a { + @include box-shadow(inset -1px 0 0 lighten(#f6efd4, 5%)); + border-right: 1px solid darken(#f6efd4, 20%); + border-left: 0; + } + } + + &.next { + display: block; + float: right; + } + } + } + + &.bottom-nav { + margin-top: lh(); + margin-bottom: -(lh()); + border-bottom: 0; + border-top: 1px solid #EDDFAA; + } + } + + section.page { + text-align: center; + + img { + border: 1px solid $border-color; + max-width: 100%; + } + } + } + + &.closed { + section.book-sidebar { + width: flex-grid(.6); + + header#open_close_accordion { + padding: 0; + + a { + background-image: url('/static/images/slide-right-icon.png'); + } + + h2 { + visibility: hidden; + width: 10px; + padding: 0; + } + } + + ul#booknav { + visibility: hidden; + width: 10px; + padding: 0; + overflow: hidden; + max-height: 100px; + } + } + + section.course-content { + width: flex-grid(11.5) + flex-gutter(); + } + } +} diff --git a/templates/sass/application.scss b/templates/sass/application.scss new file mode 100644 index 0000000000..b949b2fac7 --- /dev/null +++ b/templates/sass/application.scss @@ -0,0 +1,18 @@ +@import "bourbon/bourbon"; + +// Base layout +@import "base/reset", "base/font-face"; +@import "base/variables", "base/functions", "base/extends", "base/base"; +@import "layout/layout", "layout/header", "layout/footer", "layout/leanmodal"; +@import "plugins/jquery-ui-1.8.16.custom"; + +// pages +@import "courseware/courseware", "courseware/sidebar", "courseware/video", "courseware/sequence-nav", "courseware/amplifier"; +@import "textbook"; +@import "info"; +@import "profile"; +@import "gradebook"; +@import "wiki/basic-html", "wiki/sidebar", "wiki/create", "wiki/wiki", "wiki/table"; +@import "help"; + +@import "discussion/askbot-original", "discussion/discussion","discussion/sidebar", "discussion/questions", "discussion/tags", "discussion/question-view" , "discussion/answers", "discussion/forms", "discussion/form-wmd-toolbar", "discussion/modals", "discussion/profile", "discussion/badges"; diff --git a/templates/sass/base/_base.scss b/templates/sass/base/_base.scss new file mode 100644 index 0000000000..3f985ea666 --- /dev/null +++ b/templates/sass/base/_base.scss @@ -0,0 +1,77 @@ +:focus { + outline-color: #ccc; +} + +h1, h2, h3, h4, h5, h6 { + a { + color: #000; + } +} + +h1 { + font-size:1.6em; + margin:20px 0 10px 0; +} + +h2 { + font-size: $body-font-size; + font-weight: bold; + letter-spacing: 1px; + margin:20px 0 10px 0; + text-transform: uppercase; +} + +p { + margin-bottom: $body-line-height; +} + +em { + font-style: italic; +} + +img { + max-width: 100%; + height: auto; +} + +#{$all-text-inputs}, textarea { + @include box-shadow(0 -1px 0 #fff); + @include linear-gradient(#eee, #fff); + border: 1px solid #999; + font: $body-font-size $body-font-family; + padding: 4px; + + &:focus { + border-color: $mit-red; + } +} + +a { + color: $mit-red; + + &:link { + color: $mit-red; + } + + &:visited { + color: darken($mit-red, 10%); + } + + &:link, &:visited { + text-decoration:none; + } + + p &, li > &, span > &, .inline { + border-bottom: 1px solid #bbb; + font-style: italic; + } + + &:hover, &:focus { + color: #000; + } +} + +input[type="submit"], input[type="button"], button { + @extend .button; +} + diff --git a/templates/sass/base/_extends.scss b/templates/sass/base/_extends.scss new file mode 100644 index 0000000000..aa9e4e65dc --- /dev/null +++ b/templates/sass/base/_extends.scss @@ -0,0 +1,221 @@ +.clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.wrapper { + margin: 0 auto; + max-width: $fg-max-width; + min-width: $fg-min-width; + text-align: left; + width: flex-grid(12); + + div.table-wrapper { + display: table; + width: flex-grid(12); + } +} + +h1.top-header { + background: #f3f3f3; + border-bottom: 1px solid #e3e3e3; + margin: (-(lh())) (-(lh())) lh(); + padding: lh(); +} + +.button { + border: 1px solid darken(#888, 10%); + @include border-radius(3px); + @include box-shadow(inset 0 1px 0 lighten(#888, 10%), 0 0 3px #ccc); + color: #fff; + cursor: pointer; + font: bold $body-font-size $body-font-family; + @include linear-gradient(lighten(#888, 5%), darken(#888, 5%)); + padding: 4px 8px; + text-decoration: none; + text-shadow: none; + -webkit-font-smoothing: antialiased; + + &:hover, &:focus { + @include box-shadow(inset 0 1px 0 lighten(#888, 20%), 0 0 3px #ccc); + @include linear-gradient(lighten(#888, 10%), darken(#888, 5%)); + border: 1px solid darken(#888, 20%); + } +} + +.content { + @include box-shadow(inset 0 0 2px 3px #f3f3f3); + @include box-sizing(border-box); + display: table-cell; + padding: lh(); + vertical-align: top; + width: flex-grid(9) + flex-gutter(); + + @media print { + @include box-shadow(none); + } +} + +.sidebar { + background: #e3e3e3; + @include border-radius(4px 0 0 4px); + border-right: 1px solid #d3d3d3; + @include box-shadow( inset 0 0 0 1px #f6f6f6); + @include box-sizing(border-box); + display: table-cell; + font-family: $body-font-family; + position: relative; + text-shadow: 0 1px 0 #f1f1f1; + vertical-align: top; + width: flex-grid(3); + + h1, h2 { + font-size: 18px; + font-weight: bold; + letter-spacing: 0; + text-transform: none; + } + + a { + font-style: normal; + border: none; + } + + .bottom-border { + @include box-shadow(0 1px 0 #eee); + border-bottom: 1px solid #d3d3d3; + } + + @media print { + display: none; + } + + h3 { + border: none; + border-bottom: 1px solid #d3d3d3; + @extend .bottom-border; + background: none; + color: #000; + font-weight: normal; + margin: 0; + overflow: hidden; + + a { + color: lighten($text-color, 10%); + display: block; + font-size: $body-font-size; + padding: 7px 7px 7px 30px; + text-decoration: none; + @include transition(); + + &:hover { + background: #efefef; + @include box-shadow(0 1px 0 #fff); + } + } + + span.ui-icon { + background-image: url(images/ui-icons_454545_256x240.png); + } + + &.active { + background: none; + border: 0; + border-bottom: 1px solid #bbb; + @include box-shadow(none); + color: #000; + font-weight: bold; + + a { + color: #000; + } + } + } + + header#open_close_accordion { + border-bottom: 1px solid #d3d3d3; + @include box-shadow(0 1px 0 #eee); + padding: lh(.5) lh(); + position: relative; + + h2 { + padding-right: 20px; + margin: 0; + } + + a { + background: #eee url('/static/images/slide-left-icon.png') center center no-repeat; + border: 1px solid #D3D3D3; + @include border-radius(3px 0 0 3px); + height: 16px; + padding: 8px; + position: absolute; + right: -1px; + text-indent: -9999px; + top: 6px; + width: 16px; + + &:hover { + background-color: white; + } + } + } + + a.button { + text-decoration: none; + } +} + +.topbar { + @extend .clearfix; + background: $cream; + border-bottom: 1px solid darken($cream, 10%); + @include box-shadow(inset 0 1px 0 #fff, inset 1px 0 0 #fff); + font-size: 12px; + margin: (-$body-line-height) (-$body-line-height) $body-line-height; + text-shadow: 0 1px 0 #fff; + line-height: 46px; + height:46px; + + @media print { + display: none; + } + + a { + border-bottom: 0; + color: darken($cream, 80%); + + &:hover { + color: darken($cream, 60%); + text-decoration: none; + } + + &.block-link { + background: darken($cream, 5%); + border-left: 1px solid darken($cream, 20%); + @include box-shadow(inset 1px 0 0 lighten($cream, 5%)); + display: block; + text-transform: uppercase; + + &:hover { + background: none; + } + } + } +} + +.tran { + @include transition( all, .2s, $ease-in-out-quad); +} + +p.ie-warning { + display: block !important; + line-height: 1.3em; + background: yellow; + padding: lh(); + text-align: left; + margin-bottom: 0; +} diff --git a/templates/sass/base/_font-face.scss b/templates/sass/base/_font-face.scss new file mode 100644 index 0000000000..33162954b8 --- /dev/null +++ b/templates/sass/base/_font-face.scss @@ -0,0 +1,125 @@ +/* Generated by Font Squirrel (http://www.fontsquirrel.com) on January 25, 2012 05:06:34 PM America/New_York */ + + +// Not used in UI +// @font-face { +// font-family: 'Open Sans'; +// src: url('/static/fonts/OpenSans-Light-webfont.eot'); +// src: url('/static/fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), +// url('/static/fonts/OpenSans-Light-webfont.woff') format('woff'), +// url('/static/fonts/OpenSans-Light-webfont.ttf') format('truetype'), +// url('/static/fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg'); +// font-weight: 300; +// font-style: normal; + +// } + +// @font-face { +// font-family: 'Open Sans'; +// src: url('/static/fonts/OpenSans-LightItalic-webfont.eot'); +// src: url('/static/fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'), +// url('/static/fonts/OpenSans-LightItalic-webfont.woff') format('woff'), +// url('/static/fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'), +// url('/static/fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg'); +// font-weight: 300; +// font-style: italic; + +// } + +@font-face { + font-family: 'Open Sans'; + src: url('/static/fonts/OpenSans-Regular-webfont.eot'); + src: url('/static/fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/OpenSans-Regular-webfont.woff') format('woff'), + url('/static/fonts/OpenSans-Regular-webfont.ttf') format('truetype'), + url('/static/fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg'); + font-weight: 600; + font-style: normal; + +} + +@font-face { + font-family: 'Open Sans'; + src: url('/static/fonts/OpenSans-Italic-webfont.eot'); + src: url('/static/fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/OpenSans-Italic-webfont.woff') format('woff'), + url('/static/fonts/OpenSans-Italic-webfont.ttf') format('truetype'), + url('/static/fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg'); + font-weight: 400; + font-style: italic; + +} + +// Not used in UI +// @font-face { +// font-family: 'Open Sans'; +// src: url('/static/fonts/OpenSans-Semibold-webfont.eot'); +// src: url('/static/fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), +// url('/static/fonts/OpenSans-Semibold-webfont.woff') format('woff'), +// url('/static/fonts/OpenSans-Semibold-webfont.ttf') format('truetype'), +// url('/static/fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg'); +// font-weight: 600; +// font-style: normal; + +// } + +// @font-face { +// font-family: 'Open Sans'; +// src: url('/static/fonts/OpenSans-SemiboldItalic-webfont.eot'); +// src: url('/static/fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'), +// url('/static/fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'), +// url('/static/fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'), +// url('/static/fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg'); +// font-weight: 600; +// font-style: italic; + +// } + +@font-face { + font-family: 'Open Sans'; + src: url('/static/fonts/OpenSans-Bold-webfont.eot'); + src: url('/static/fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/OpenSans-Bold-webfont.woff') format('woff'), + url('/static/fonts/OpenSans-Bold-webfont.ttf') format('truetype'), + url('/static/fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg'); + font-weight: 700; + font-style: normal; + +} + +@font-face { + font-family: 'Open Sans'; + src: url('/static/fonts/OpenSans-BoldItalic-webfont.eot'); + src: url('/static/fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/OpenSans-BoldItalic-webfont.woff') format('woff'), + url('/static/fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'), + url('/static/fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg'); + font-weight: 700; + font-style: italic; + +} + +@font-face { + font-family: 'Open Sans'; + src: url('/static/fonts/OpenSans-ExtraBold-webfont.eot'); + src: url('/static/fonts/OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/OpenSans-ExtraBold-webfont.woff') format('woff'), + url('/static/fonts/OpenSans-ExtraBold-webfont.ttf') format('truetype'), + url('/static/fonts/OpenSans-ExtraBold-webfont.svg#OpenSansExtrabold') format('svg'); + font-weight: 800; + font-style: normal; + +} + +@font-face { + font-family: 'Open Sans'; + src: url('/static/fonts/OpenSans-ExtraBoldItalic-webfont.eot'); + src: url('/static/fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/OpenSans-ExtraBoldItalic-webfont.woff') format('woff'), + url('/static/fonts/OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype'), + url('/static/fonts/OpenSans-ExtraBoldItalic-webfont.svg#OpenSansExtraboldItalic') format('svg'); + font-weight: 800; + font-style: italic; + +} + diff --git a/templates/sass/base/_functions.scss b/templates/sass/base/_functions.scss new file mode 100644 index 0000000000..2c4195d41b --- /dev/null +++ b/templates/sass/base/_functions.scss @@ -0,0 +1,22 @@ +// 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 grid 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); +} + +// Percentage of container calculator +@function perc($width, $container-width: $max-width) { + @return percentage($width / $container-width); +} + +// Line-height +@function lh($amount: 1) { + @return $body-line-height * $amount; +} diff --git a/templates/sass/base/_reset.scss b/templates/sass/base/_reset.scss new file mode 100644 index 0000000000..3cf4758c7b --- /dev/null +++ b/templates/sass/base/_reset.scss @@ -0,0 +1,102 @@ +/* +html5doctor.com Reset Stylesheet +v1.6.1 +Last Updated: 2010-09-17 +Author: Richard Clark - http://richclarkdesign.com +Twitter: @rich_clark +*/ + +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +abbr, address, cite, code, +del, dfn, em, img, ins, kbd, q, samp, +small, strong, var, +b, i, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, figcaption, figure, +footer, header, hgroup, menu, nav, section, summary, +time, mark, audio, video { + margin:0; + padding:0; + border:0; + outline:0; + font-size:100%; + vertical-align:baseline; + background:transparent; +} + +body { + line-height:1; +} + +article,aside,details,figcaption,figure, +footer,header,hgroup,menu,nav,section { + display:block; +} + +nav ul { + list-style:none; +} + +blockquote, q { + quotes:none; +} + +blockquote:before, blockquote:after, +q:before, q:after { + content:''; + content:none; +} + +a { + margin:0; + padding:0; + font-size:100%; + vertical-align:baseline; + background:transparent; +} + +/* change colours to suit your needs */ +ins { + background-color:#ff9; + color:#000; + text-decoration:none; +} + +/* change colours to suit your needs */ +mark { + background-color:#ff9; + color:#000; + font-style:italic; + font-weight:bold; +} + +del { + text-decoration: line-through; +} + +abbr[title], dfn[title] { + border-bottom:1px dotted; + cursor:help; +} + +table { + border-collapse:collapse; + border-spacing:0; +} + +/* change border colour to suit your needs */ +hr { + display:block; + height:1px; + border:0; + border-top:1px solid #cccccc; + margin:1em 0; + padding:0; +} + +input, select { + vertical-align:middle; +} diff --git a/templates/sass/base/_variables.scss b/templates/sass/base/_variables.scss new file mode 100644 index 0000000000..60dd764872 --- /dev/null +++ b/templates/sass/base/_variables.scss @@ -0,0 +1,32 @@ +// Variables +// ---------------------------------------- // + +// fonts +$body-font-family: "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;; +$body-font-size: 14px; + +// grid +$columns: 12; +$column-width: 80px; +$gutter-width: 25px; +$max-width: ($columns * $column-width) + (($columns - 1) * $gutter-width); + +$gw-column: perc($column-width); +$gw-gutter: perc($gutter-width); +$body-line-height: golden-ratio($body-font-size, 1); + +//Flexible grid +$fg-column: $column-width; +$fg-gutter: $gutter-width; +$fg-max-columns: $columns; +$fg-max-width: 1400px; +$fg-min-width: 810px; + +// color +$light-gray: #ddd; +$dark-gray: #333; +$mit-red: #993333; +$cream: #F6EFD4; + +$text-color: $dark-gray; +$border-color: $light-gray; diff --git a/templates/sass/bourbon/_bourbon.scss b/templates/sass/bourbon/_bourbon.scss new file mode 100644 index 0000000000..447167c5ab --- /dev/null +++ b/templates/sass/bourbon/_bourbon.scss @@ -0,0 +1,29 @@ +// Custom Functions +@import "functions/deprecated-webkit-gradient"; +@import "functions/grid-width"; +@import "functions/modular-scale"; +@import "functions/tint-shade"; + +// CSS3 Mixins +@import "css3/animation"; +@import "css3/appearance"; +@import "css3/background-image"; +@import "css3/background-size"; +@import "css3/border-image"; +@import "css3/border-radius"; +@import "css3/box-shadow"; +@import "css3/box-sizing"; +@import "css3/columns"; +@import "css3/flex-box"; +@import "css3/inline-block"; +@import "css3/linear-gradient"; +@import "css3/radial-gradient"; +@import "css3/transform"; +@import "css3/transition"; + +// Addons & other mixins +@import "addons/button"; +@import "addons/font-family"; +@import "addons/html5-input-types"; +@import "addons/position"; +@import "addons/timing-functions"; diff --git a/templates/sass/bourbon/addons/_button.scss b/templates/sass/bourbon/addons/_button.scss new file mode 100644 index 0000000000..1d32125140 --- /dev/null +++ b/templates/sass/bourbon/addons/_button.scss @@ -0,0 +1,267 @@ +@mixin button ($style: simple, $base-color: #4294f0) { + + @if type-of($style) == color { + $base-color: $style; + $style: simple; + } + + // Grayscale button + @if $base-color == grayscale($base-color) { + @if $style == simple { + @include simple($base-color, $grayscale: true); + } + + @else if $style == shiny { + @include shiny($base-color, $grayscale: true); + } + + @else if $style == pill { + @include pill($base-color, $grayscale: true); + } + } + + // Colored button + @else { + @if $style == simple { + @include simple($base-color); + } + + @else if $style == shiny { + @include shiny($base-color); + } + + @else if $style == pill { + @include pill($base-color); + } + } +} + + +// Simple Button +//************************************************************************// +@mixin simple($base-color, $grayscale: false) { + $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 lightness($base-color) > 70% { + $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; + @include border-radius (3px); + @include box-shadow (inset 0 1px 0 0 $inset-shadow); + color: $color; + display: inline; + font-size: 11px; + font-weight: bold; + @include linear-gradient ($base-color, $stop-gradient); + padding: 6px 18px 7px; + text-shadow: 0 1px 0 $text-shadow; + -webkit-background-clip: padding-box; + + &:hover { + $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); + } + + @include box-shadow (inset 0 1px 0 0 $inset-shadow-hover); + cursor: pointer; + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + } + + &:active { + $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; + @include box-shadow (inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active, 0 1px 1px 0 #eee); + } +} + + +// Shiny Button +//************************************************************************// +@mixin shiny($base-color, $grayscale: false) { + $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 lightness($base-color) > 70% { + $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; + @include border-radius(5px); + @include box-shadow(inset 0 1px 0 0 $inset-shadow); + color: $color; + display: inline; + font-size: 14px; + font-weight: bold; + @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%); + padding: 7px 20px 8px; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + + &:hover { + $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 { + $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122); + + @if $grayscale == true { + $inset-shadow-active: grayscale($inset-shadow-active); + } + + @include box-shadow(inset 0 0 20px 0 $inset-shadow-active, 0 1px 0 #fff); + } +} + + +// Pill Button +//************************************************************************// +@mixin pill($base-color, $grayscale: false) { + $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 lightness($base-color) > 70% { + $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; + @include border-radius(16px); + @include box-shadow(inset 0 1px 0 0 $inset-shadow, 0 1px 2px 0 #b3b3b3); + color: $color; + display: inline; + font-size: 11px; + font-weight: normal; + line-height: 1; + @include linear-gradient ($base-color, $stop-gradient); + padding: 3px 16px 5px; + text-align: center; + text-shadow: 0 -1px 1px $text-shadow; + -webkit-background-clip: padding-box; + + &:hover { + $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; + @include 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; + -webkit-background-clip: padding-box; + } + + &:active { + $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; + @include box-shadow(inset 0 0 6px 3px $inset-shadow-active, 0 1px 0 0 #fff); + text-shadow: 0 -1px 1px $text-shadow-active; + } +} + diff --git a/templates/sass/bourbon/addons/_font-family.scss b/templates/sass/bourbon/addons/_font-family.scss new file mode 100644 index 0000000000..df8a80ddfc --- /dev/null +++ b/templates/sass/bourbon/addons/_font-family.scss @@ -0,0 +1,5 @@ +$georgia: Georgia, Cambria, "Times New Roman", Times, serif; +$helvetica: "Helvetica Neue", Helvetica, 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; diff --git a/templates/sass/bourbon/addons/_html5-input-types.scss b/templates/sass/bourbon/addons/_html5-input-types.scss new file mode 100644 index 0000000000..9d86fbb4d4 --- /dev/null +++ b/templates/sass/bourbon/addons/_html5-input-types.scss @@ -0,0 +1,36 @@ +//************************************************************************// +// 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"]'; + +$unquoted-inputs-list: (); + +@each $input-type in $inputs-list { + $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma); +} + +$all-text-inputs: $unquoted-inputs-list; + +// You must use interpolation on the variable: +// #{$all-text-inputs} +//************************************************************************// +// #{$all-text-inputs}, textarea { +// border: 1px solid red; +// } diff --git a/templates/sass/bourbon/addons/_position.scss b/templates/sass/bourbon/addons/_position.scss new file mode 100644 index 0000000000..6ad330f1df --- /dev/null +++ b/templates/sass/bourbon/addons/_position.scss @@ -0,0 +1,30 @@ +@mixin position ($position: relative, $coordinates: 0 0 0 0) { + + @if type-of($position) == list { + $coordinates: $position; + $position: relative; + } + + $top: nth($coordinates, 1); + $right: nth($coordinates, 2); + $bottom: nth($coordinates, 3); + $left: nth($coordinates, 4); + + position: $position; + + @if not(unitless($top)) { + top: $top; + } + + @if not(unitless($right)) { + right: $right; + } + + @if not(unitless($bottom)) { + bottom: $bottom; + } + + @if not(unitless($left)) { + left: $left; + } +} diff --git a/templates/sass/bourbon/addons/_timing-functions.scss b/templates/sass/bourbon/addons/_timing-functions.scss new file mode 100644 index 0000000000..51b2410914 --- /dev/null +++ b/templates/sass/bourbon/addons/_timing-functions.scss @@ -0,0 +1,32 @@ +// 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/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); diff --git a/templates/sass/bourbon/css3/_animation.scss b/templates/sass/bourbon/css3/_animation.scss new file mode 100644 index 0000000000..f99e06eb6f --- /dev/null +++ b/templates/sass/bourbon/css3/_animation.scss @@ -0,0 +1,171 @@ +// 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 ($animation-1, + $animation-2: false, $animation-3: false, + $animation-4: false, $animation-5: false, + $animation-6: false, $animation-7: false, + $animation-8: false, $animation-9: false) + { + $full: compact($animation-1, $animation-2, $animation-3, $animation-4, + $animation-5, $animation-6, $animation-7, $animation-8, $animation-9); + + -webkit-animation: $full; + -moz-animation: $full; + animation: $full; +} + +// Individual Animation Properties +@mixin animation-name ($name-1, + $name-2: false, $name-3: false, + $name-4: false, $name-5: false, + $name-6: false, $name-7: false, + $name-8: false, $name-9: false) + { + $full: compact($name-1, $name-2, $name-3, $name-4, + $name-5, $name-6, $name-7, $name-8, $name-9); + + -webkit-animation-name: $full; + -moz-animation-name: $full; + animation-name: $full; +} + + +@mixin animation-duration ($time-1: 0, + $time-2: false, $time-3: false, + $time-4: false, $time-5: false, + $time-6: false, $time-7: false, + $time-8: false, $time-9: false) + { + $full: compact($time-1, $time-2, $time-3, $time-4, + $time-5, $time-6, $time-7, $time-8, $time-9); + + -webkit-animation-duration: $full; + -moz-animation-duration: $full; + animation-duration: $full; +} + + +@mixin animation-timing-function ($motion-1: ease, +// ease | linear | ease-in | ease-out | ease-in-out + $motion-2: false, $motion-3: false, + $motion-4: false, $motion-5: false, + $motion-6: false, $motion-7: false, + $motion-8: false, $motion-9: false) + { + $full: compact($motion-1, $motion-2, $motion-3, $motion-4, + $motion-5, $motion-6, $motion-7, $motion-8, $motion-9); + + -webkit-animation-timing-function: $full; + -moz-animation-timing-function: $full; + animation-timing-function: $full; +} + + +@mixin animation-iteration-count ($value-1: 1, +// infinite |" + ${ id }titles[i-1] + "
"); + +} + +function ${ id }next() { + var i=${ id }loc+1; + log_event("seq_next", {'old':${id}loc, 'new':i,'id':'${id}'}); + if(i > ${ len(items) } ) { + i = ${ len(items) }; + } else { + ${ id }goto(i); + }; +} + + +function ${ id }prev() { + var i=${ id }loc-1; + log_event("seq_prev", {'old':${id}loc, 'new':i,'id':'${id}'}); + if (i < 1 ) { + i = 1; + } else { + ${ id }goto(i); + }; +} + + + +$(function() { + var i; + for(i=1; i<${ len(items)+1 }; i++) { + ${ id }setup_click(i); + } + + + $('.${ id }next a').click(function(eo) { ${ id }next(); return false;}); + $('.${ id }prev a').click(function(eo) { ${ id }prev(); return false;}); + ${ id }goto( ${ position } ); + +}); diff --git a/templates/server-down.html b/templates/server-down.html new file mode 100644 index 0000000000..0faed814db --- /dev/null +++ b/templates/server-down.html @@ -0,0 +1,6 @@ +<%inherit file="main.html" /> + +Our staff is currently working to get the site back up as soon as possible. Please email us at technical@mitx.mit.edu to report any problems or downtime.
+Our staff is currently working to get the site back up as soon as possible. Please email us at technical@mitx.mit.edu to report any problems or downtime.
+Our staff is currently working to get the site back up as soon as possible. Please email us at technical@mitx.mit.edu to report any problems or downtime.
+This article has been locked
+ %endif +Last modified: ${wiki_article.modified_on.strftime("%b %d, %Y, %I:%M %p")}
+ %endif + + %if wiki_article is not UNDEFINED: ++ The page you requested could not be found. + Click here to create it. +
+ %else: ++ Or maybe rather: Congratulations! It seems that there's no root + article, which is probably because you just installed simple-wiki + and your installation is working. Now you can create the root article. + Click here to create it. +
+ %endif +%else: +%if wiki_err_noparent is not UNDEFINED: ++ You cannot create this page, because its parent + does not exist. Click here + to create it. +
+%else: +%if wiki_err_keyword is not UNDEFINED and wiki_err_keyword: ++ The page you're trying to create ${wiki_url} starts with _, which is reserved for internal use. +
+%elif wiki_err_locked is not UNDEFINED and wiki_err_locked: ++ The article you are trying to modify is locked. +
+%elif wiki_err_noread is not UNDEFINED and wiki_err_noread: ++ You do not have access to read this article. +
+%elif wiki_err_nowrite is not UNDEFINED and wiki_err_nowrite: ++ You do not have access to edit this article. +
+%elif wiki_err_noanon is not UNDEFINED and wiki_err_noanon: ++ Anonymous attachments are not allowed. Try logging in. +
+%elif wiki_err_create is not UNDEFINED and wiki_err_create: ++ You do not have access to create this article. +
+%elif wiki_err_encode is not UNDEFINED and wiki_err_encode: ++ The url you requested could not be handled by the wiki. + Probably you used a bad character in the URL. + Only use digits, English letters, underscore and dash. For instance + /wiki/An_Article-1 +
+%elif wiki_err_deleted is not UNDEFINED and wiki_err_deleted: ++ The article you tried to access has been deleted. You may be able to restore it to an earlier version in its history, or create a new version. +
+%elif wiki_err_norevision is not UNDEFINED: ++ This article does not contain revision ${wiki_err_norevision | h}. +
+%else: ++ An error has occured. +
+%endif +%endif +%endif + +circuit:basic
+$LaTeX Math Expression$
+ To create a new wiki article, create a link to it. Clicking the link gives you the creation page. +[Article Name](wiki:ArticleName)
+ Other useful examples:[Link](http://google.com)
+Huge Header
+
====
Smaller Header
+
-------
*emphasis* or _emphasis_
+**strong** or __strong__
+- Unordered List
+
  - Sub Item 1
+
  - Sub Item 2
1. Ordered
+
2. List
| Revision | +Comment | +Diff | +Modified | +
|---|---|---|---|
| + ${revision.article.title} - ${revision} + | ++ ${ revision.revision_text if revision.revision_text else "None" } | +
+ %for x in revision.get_diff():
+ ${x|h} + %endfor |
+ ${revision.get_user()}
+ + ${revision.revision_date.strftime("%b %d, %Y, %I:%M %p")} + |
+
| + %if wiki_prev_page: + Previous page + %endif + %if wiki_next_page: + Next page + %endif + | +|||
Welcome to MITx. You must read and agree to these Terms of Service +("TOS"), MITx’s Privacy +Policy, and Honor Code prior to +registering for this site or using any portion of this site +(“Site”), including accessing any course materials, chat +room, mailing list, or other electronic service. These TOS, the +Privacy Policy and the Honor Code are agreements (the +“Agreements”) between you and the Massachusetts Institute +of Technology (“MIT”). If you do not understand or do not +agree to be bound by the terms of the Agreements, please immediately +exit this site.
+ +MITx reserves the right to modify these TOS at any time and +will publish notice of any such modifications online on this page for +a reasonable period of time following such modifications, and by +changing the effective date of these TOS. By continuing to access the +Site after notice of such changes have been posted, you signify your +agreement to be bound by them. Be sure to return to this page +periodically to ensure familiarity with the most current version of +these TOS.
+ +MITx offers online courses that include opportunities for +professor-to-student and student-to-student interactivity, individual +assessment of a student's work, and for students who demonstrate their +mastery of subjects, a certificate or credential.
+ +You agree that you are responsible for your own use of the Site and +for your User Postings. “User Postings” include all +content submitted, posted, published or distributed on the Site by you +or other users of the Site, including but not limited to all forum +posts, wiki edits, notes, questions, comments, videos, and file +uploads. You agree that you will use the Site in compliance with these +TOS, the Honor Code, and all applicable +local, state, national, and international laws, rules and regulations, +including copyright laws and any laws regarding the transmission of +technical data exported from your country of residence and all United +States export control laws. + +
As a condition of your use of the Services, you will not use the +Site in any manner intended to damage, disable, overburden, or impair +any MITx server, or the network(s) connected to any MITx +server, or interfere with any other party's use and enjoyment of the +Site. You may not attempt to gain unauthorized access to the Site, +other accounts, computer systems or networks connected to +any MITx server through hacking, password mining or any other +means. You may not obtain or attempt to obtain any materials or +information stored on the Site, its servers, or associated computers +through any means not intentionally made available through the +Site.
+ +In order to participate in Site activities, you must provide an +email address ("Email Address") and a user password +("User Password") in order to create a user account +(“User Account”). You agree that you will never divulge or +share access or access information to your User Account with any third +party for any reason. In setting up your User Account, you may be +prompted or required to enter additional information, including your +name. You understand and agree that all information provided by you is +accurate and current. You agree to maintain and update your +information to keep it accurate and current.
+ +We care about the confidentiality and security of your personal +information. Please see our Privacy +Policy for more information about what information about +you MITx collects and how MITx uses that +information.
+ +Unless indicated as being in the public domain, all content on the +Site is protected by United States copyright. The texts, exams and +other instructional materials provided with the courses offered on +this Site are for your personal use in connection with those courses +only. MIT is planning to make MITx course content and software +infrastructure available under open source licenses that will help +create a vibrant ecosystem of contributors and further MIT’s +goal of making education accessible and affordable to the world.
+ +Certain reference documents, digital textbooks, articles and other +information on the Site are used with the permission of third parties +and use of that information is subject to certain rules and +conditions, which will be posted along with the information. By using +this Site you agree to abide by all such rules and conditions. Due to +privacy concerns, User Postings shall be licensed to MITx with +the terms discussed below. Please +see MITx's Copyright Page for +more information.
+ +User Postings Representations and Warranties. By +submitting or distributing your User Postings, you affirm, represent, +and warrant that you are the creator and owner of or have the +necessary licenses, rights, consents, and permissions to reproduce and +publish the posted information, and to authorize MIT and MITx's +Users to reproduce, modify, publish, and otherwise use that infomation +and distribute your User Postings as necessary to exercise the +licenses granted by you below. You, and not MITx, are solely +responsible for your User Postings and the consequences of posting or +publishing them.
+ +Limited License Grant to MIT. By submitting or +distributing User Postings to the Site, you hereby grant to MIT a +worldwide, non-exclusive, transferable, assignable, fully paid-up, +royalty-free, perpetual, irrevocable right and license to host, +transfer, display, perform, reproduce, modify, distribute and +re-distribute, relicense, and otherwise exploit your User Postings, in +whole or in part, in any form, and in any media formats and through +any media channels (now known or hereafter developed).
+ +Limited License Grant to MITx Users. By +submitting or distributing User Postings to the Site, you hereby grant +to each User of the Site a non-exclusive license to access and use +your User Postings in connection with their use of the Site for their +own personal purposes.
+ +“MITx,” "MIT", "Massachusetts Institute +of Technology", and its logos and seal are trademarks of the +Massachusetts Institute of Technology. You may not use MIT’s +names or logos, or any variations thereof, without prior written +consent of MIT. You may not use the MIT name in any of its forms nor +MIT seals or logos for promotional purposes, or in any way that +deliberately or inadvertently claims, suggests, or in MIT's sole +judgment gives the appearance or impression of a relationship with or +endorsement by MIT. + +
All Trademarks not owned by MIT that appear on the Site or on or +through the services made available on or through the Site, if any, +are the property of their respective owners. Nothing contained +on the Site should be construed as granting, by implication, estoppel, +or otherwise, any license or right to use any such Trademark displayed +on the Site without the written permission of the third party that may +own the applicable Trademark. + + +
Copyright owners who believe their material has been infringed on +the Site should contact MITx's designated copyright agent at +dcma-agent@mit.edu or at 77 Massachusetts Avenue, Cambridge, MA +02138-4307 Attention: MIT DCMA Agent, W92-263A. + +
Notification must +include: +
THE SITE IS PROVIDED "AS IS" AND "AS AVAILABLE" +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING +WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS +FOR USE FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. MIT does not +warrant the Site will operate in an uninterrupted or error-free manner +or that the Site is free of viruses or other harmful components. Use +of information obtained from or through this Site is at your own +risk. Your access to or download of information, materials, or data +through the Site or any reference sites is at your own discretion and +risk and that you will be solely responsible for any damage to your +property (including your computer system) or loss of data that results +from the download or use of such material or data. We may close or +limit enrollment for pedagogical or technological reasons.
+ +User Postings Disclaimer. You understand that when +using the Site you will be exposed to User Postings from a variety of +sources, and that MIT is not responsible for the accuracy, usefulness, +reliability, or intellectual property rights of or relating to such +User Postings. You further understand and acknowledge that you may be +exposed to User Postings that are inaccurate, offensive, defamatory, +indecent or objectionable, and you agree to waive, and hereby do +waive, any legal or equitable rights or remedies you have or may have +against MIT with respect thereto. MIT does not endorse any User +Postings or any opinion, recommendation or advice expressed +therein. MITx has no obligation to monitor any User Postings or +any other user communications through the Site. However, MITx reserves +the right to review User Postings and to edit or remove, in whole or +in part, such User Postings in its sole discretion. If notified by a +User or a content owner of a User Posting that allegedly does not +conform to the TOS, MIT may investigate the allegation and determine +in its sole discretion whether to remove the User Posting, which it +reserves the right to do at any time and without notice.
+ +Links to Other Sites. The Site may include +hyperlinks to sites maintained or controlled by others. MIT is not +responsible for and does not routinely screen, approve, review or +endorse the contents of or use of any of the products or services that +may be offered at these sites. If you decide to access linked third +party web sites, you do so at your own risk.
+ + +YOU AGREE THAT MIT WILL NOT BE LIABLE TO YOU FOR ANY LOSS OR +DAMAGES, EITHER ACTUAL OR CONSEQUENTIAL, ARISING OUT OF OR RELATING TO +THESE TERMS OF SERVICE, OR TO YOUR (OR ANY THIRD PARTY'S) USE OR +INABILITY TO USE THE SITE, OR TO YOUR PLACEMENT OF CONTENT ON THE +SITE, OR TO YOUR RELIANCE UPON INFORMATION OBTAINED FROM OR THROUGH +THE SITE WHETHER BASED IN CONTRACT, TORT, STATUTORY OR OTHER LAW, +EXCEPT ONLY IN THE CASE OF DEATH OR PERSONAL INJURY WHERE AND ONLY TO +THE EXTENT THAT APPLICABLE LAW REQUIRES SUCH LIABILITY.
+ +IN PARTICULAR, MIT WILL HAVE NO LIABILTY FOR ANY CONSEQUENTIAL, +INDIRECT, PUNITIVE, SPECIAL, EXEMPLARY OR INCIDENTAL DAMAGES, WHETHER +FORESEEABLE OR UNFORESEEABLE, (INCLUDING, BUT NOT LIMITED TO, CLAIMS +FOR DEFAMATION, ERRORS, LOSS OF DATA, OR INTERRUPTION IN AVAILABILITY +OF DATA).
+ + +You agree to defend, hold harmless and indemnify MIT, and its +subsidiaries, affiliates, officers, agents, and employees from and +against any third-party claims, actions or demands arising out of, +resulting from or in any way related to your use of the Site, +including any liability or expense arising from any and all claims, +losses, damages (actual and consequential), suits, judgments, +litigation costs and attorneys' fees, of every kind and nature. In +such a case, MIT will provide you with written notice of such claim, +suit or action.
+ +Termination Rights. You agree that MIT, in its sole +discretion, may terminate your use of the Site or your participation +in it thereof, for any reason or no reason. If you no longer desire to +participate in the Site, you may terminate your participation therein +upon notice to MIT.
+ +Entire Agreement. This Agreement constitutes the entire agreement +between you and MIT with respect to your use of the Site, superseding +any prior agreements between you and MIT regarding your use of the +Site.
+ +Waiver and Severability of TOS. The failure of MIT to exercise or +enforce any right or provision of the TOS of Site shall not constitute +a waiver of such right or provision. If any provision of the TOS is +found by a court of competent jurisdiction to be invalid, the parties +nevertheless agree that the court should endeavor to give effect to +the parties' intentions as reflected in the provision, and the +other provisions of the TOS remain in full force and effect.
+ +Choice of Law/Forum Selection. You agree that any dispute +arising out of or relating to these Terms or any content posted to a +Site will be governed by the laws of the Commonwealth of +Massachusetts, excluding its conflicts of law provisions. You further +consent to the personal jurisdiction of and exclusive venue in the +federal and state courts located in and serving Boston, Massachusetts +as the legal forum for any such dispute.
+ +Effective Date: February 20, 2012
During video playback, use the subtitles and the scroll bar to navigate. Clicking the subtitles is a fast way to skip forwards and backwards by small amounts.
+If you are on a low-resolution display, the left navigation bar can be hidden by clicking on the set of three left arrows next to it.
+If you need bigger or smaller fonts, use your browsers settings to scale them up or down. Under Google Chrome, this is done by pressing ctrl-plus, or ctrl-minus at the same time.
+