Merge remote-tracking branch 'templates/master'
This commit is contained in:
8
templates/.gitignore
vendored
Normal file
8
templates/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
*.pyc
|
||||
*~
|
||||
*.scssc
|
||||
*.swp
|
||||
*.orig
|
||||
*.DS_Store
|
||||
#*
|
||||
.#*
|
||||
9
templates/.hgignore
Normal file
9
templates/.hgignore
Normal file
@@ -0,0 +1,9 @@
|
||||
syntax: glob
|
||||
*.pyc
|
||||
*~
|
||||
*.scssc
|
||||
*.swp
|
||||
*.orig
|
||||
*.DS_Store
|
||||
#*
|
||||
.#*
|
||||
7
templates/404.html
Normal file
7
templates/404.html
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
<%inherit file="main.html" />
|
||||
|
||||
<section class="outside-app">
|
||||
<h1>Page not found</h1>
|
||||
<p>The page that you were looking for was not found. Go back to the <a href="/">homepage</a> or let us know about any pages that may have been moved at <a href="mailto:technical@mitx.mit.edu">technical@mitx.mit.edu</a>.</p>
|
||||
</section>
|
||||
381
templates/6002x-faq.html
Normal file
381
templates/6002x-faq.html
Normal file
@@ -0,0 +1,381 @@
|
||||
<%inherit file="marketing.html" />
|
||||
<%block name="login_area">
|
||||
</%block>
|
||||
|
||||
<section class="subpage">
|
||||
<div>
|
||||
|
||||
<h1>
|
||||
More about 6.002x
|
||||
</h1>
|
||||
|
||||
<h2> Answering common questions about the first course on <i>MITx</i>, the
|
||||
Institute’s online-learning initiative.</h2>
|
||||
|
||||
<p>
|
||||
This set of questions and answers accompanies MIT’s February 13,
|
||||
2012, announcement regarding <i>MITx</i>’s prototype course —
|
||||
6.002x: Circuits and Electronics.
|
||||
</p>
|
||||
|
||||
<h2> I tried to register for the course, but it says the username
|
||||
is already taken.</h2>
|
||||
|
||||
<p> 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.</p>
|
||||
|
||||
<h2> I forgot my password </h2>
|
||||
|
||||
<p> The log-in form will have a link to reset your password once the
|
||||
course opens. </p>
|
||||
|
||||
<h2> The videos stall out </h2>
|
||||
|
||||
<p> 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). </p>
|
||||
|
||||
<p> 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.</p>
|
||||
|
||||
<a name="othercourses" ></a>
|
||||
<h2> I am interested in a different subject. What other courses do
|
||||
you offer? </h2>
|
||||
|
||||
<p> 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. </p>
|
||||
|
||||
<a name="start" ></a>
|
||||
<h2>How will I know that the course has started?</h2>
|
||||
|
||||
<p> 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.</p>
|
||||
|
||||
<a name="login" ></a>
|
||||
<h2> I can't log in</h2>
|
||||
|
||||
<p> 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. </p>
|
||||
|
||||
<a name="schedule" ></a>
|
||||
<h2> Does the class have a schedule?</h2>
|
||||
|
||||
<p> 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. </p>
|
||||
|
||||
<a name="enrollissues" ></a>
|
||||
<h2> I just enrolled for the course. I have not received any form
|
||||
of acknowledgement that I have enrolled.</h2>
|
||||
|
||||
<p> You should receive a single activation e-mail. If you did not, the
|
||||
most common issues are:
|
||||
<ul>
|
||||
<li> Typo in e-mail address
|
||||
<li> Old browser. We recommend downloading the current version of
|
||||
Firefox or Chrome. The course requires a modern browser.
|
||||
<li> JavaScript disabled
|
||||
<li> Activation e-mail in spam folder. Check spam folder.
|
||||
<li> Non-unique username. Try adding a random string at the end.
|
||||
</ul>
|
||||
|
||||
<p>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.
|
||||
|
||||
<a name="howdropcourse" ></a>
|
||||
<h2> How do I drop the course?</h2>
|
||||
|
||||
<p> You do not have to do anything. You can simply stop working on the
|
||||
course at any time you choose to do so.</p>
|
||||
|
||||
<a name="ifdropcourse" ></a>
|
||||
<h2>What happens if I drop the course?</h2>
|
||||
|
||||
<p> 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. </p>
|
||||
|
||||
<a name="whatismitx" ></a>
|
||||
<h2>
|
||||
What is <i>MITx</i>?</h2>
|
||||
|
||||
<p> MIT seeks through the development of <i>MITx</i> to improve
|
||||
education both on the MIT campus and around the world.
|
||||
|
||||
<p> On campus, <i>MITx</i> will be coupled with an Institute-wide research
|
||||
initiative on online teaching and learning. The online learning tools
|
||||
that <i>MITx</i> develops will benefit the educational experience of
|
||||
residential students by supplementing and reinforcing the classroom
|
||||
and laboratory experiences.</p>
|
||||
|
||||
<p>
|
||||
Beyond the MIT campus, <i>MITx</i> 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 <i>MITx</i> courses are based.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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 <i>MITx</i> represents a next step forward in that
|
||||
effort.
|
||||
</p>
|
||||
|
||||
<a name="differentcampus" ></a>
|
||||
<h2>
|
||||
What is 6.002x, and how is it different from the on-campus version of
|
||||
6.002?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
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. <i>MITx</i>’s 6.002x is modeled on the on-campus
|
||||
version of 6.002.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
6.002x is built on the content created collaboratively by MIT
|
||||
professors Anant Agarwal and Jeffrey H. Lang for 6.002.
|
||||
</p>
|
||||
|
||||
<a name="howenroll" ></a>
|
||||
<h2>
|
||||
How do I enroll in 6.002x?
|
||||
</h2>
|
||||
<p>
|
||||
To enroll, visit <a href="http://mitx.mit.edu">http://mitx.mit.edu</a>
|
||||
and sign up.
|
||||
</p>
|
||||
|
||||
<a name="whenavailable" ></a>
|
||||
<h2>
|
||||
When will the course be available online?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
6.002x will become available online on Monday, March 5.
|
||||
</p>
|
||||
|
||||
<a name="timeline" ></a>
|
||||
<h2>
|
||||
Do I need to follow a set timeline in completing 6.002x?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
In this pilot course of <i>MITx</i>, 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.
|
||||
</p>
|
||||
|
||||
<a name="workrequired" ></a>
|
||||
<h2>
|
||||
How much time is required to complete the course?
|
||||
</h2>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<a name="instructors" ></a>
|
||||
<h2>
|
||||
Who are the instructors for 6.002x?
|
||||
</h2>
|
||||
<p>
|
||||
There are four instructors for 6.002x: Anant Agarwal, Chris Terman,
|
||||
Gerald Sussman and Piotr Mitros. The team also includes several
|
||||
teaching assistants (TAs).
|
||||
</p>
|
||||
|
||||
<a name="worklike" ></a>
|
||||
<h2>
|
||||
What is the work like in 6.002x?
|
||||
</h2>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<a name="questionsduringcourse" ></a>
|
||||
<h2>
|
||||
What if I have a question during the course?
|
||||
</h2>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<a name="collaboration" ></a>
|
||||
<h2>
|
||||
Will 6.002x offer any means for collaboration among online learners?
|
||||
</h2>
|
||||
<p>
|
||||
Yes. 6.002x will offer modest support for collaborative work through a
|
||||
prototype wiki and discussion forum.
|
||||
</p>
|
||||
|
||||
<a name="prereqs" ></a>
|
||||
<h2>
|
||||
Are there prerequisites to take the course?
|
||||
</h2>
|
||||
<p>
|
||||
While <i>MITx</i> courses are open to all, there are some skills required to
|
||||
succeed in taking the course.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<a name="cost" ></a>
|
||||
<h2>
|
||||
How much does the course cost?
|
||||
</h2>
|
||||
<p>
|
||||
All of the courses on <i>MITx</i> 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.
|
||||
</p>
|
||||
|
||||
<a name="credential" ></a>
|
||||
<h2>
|
||||
What is a credential?
|
||||
</h2>
|
||||
<p>
|
||||
Any learner who successfully completes 6.002x will receive an
|
||||
electronic certificate indicating a grade. This certificate will
|
||||
indicate that you earned it from <i>MITx</i>’s pilot course. In
|
||||
this prototype version, <i>MITx</i> 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.
|
||||
</p>
|
||||
|
||||
<a name="whograding" ></a>
|
||||
<h2>
|
||||
Who is grading the course?
|
||||
</h2>
|
||||
<p>
|
||||
<i>MITx</i> courses will use automated technologies to check student work
|
||||
including practice exercises, homework assignments, labs and exams.
|
||||
</p>
|
||||
|
||||
<a name="whatpassing" ></a>
|
||||
<h2>
|
||||
What is a passing grade?
|
||||
</h2>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<a name="textbook" ></a>
|
||||
<h2>
|
||||
Do I need to buy a textbook?
|
||||
</h2>
|
||||
<p>
|
||||
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 <a href="http://www.amazon.com/exec/obidos/ASIN/1558607358/ref=nosim/mitopencourse-20" target="_blank">Amazon</a>.
|
||||
</p>
|
||||
|
||||
<a name="technicalrequirements" ></a>
|
||||
<h2>
|
||||
Do I need to have special software to access 6.002x?
|
||||
</h2>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<a name="futurecourses" ></a>
|
||||
<h2>
|
||||
When will the next courses become available and what topics will they be on?
|
||||
</h2>
|
||||
<p>
|
||||
Additional courses will be announced
|
||||
on <a href="http://mitx.mit.edu">mitx.mit.edu</a> as they become
|
||||
available. We expect this will happen in fall 2012. We also have
|
||||
accounts
|
||||
on <a href="https://twitter.com/#!/MyMITx">Twitter</a>, <a href="http://www.facebook.com/pages/MITx/378592442151504">Facebook</a>,
|
||||
and <a href="http://www.linkedin.com/groups/Friends-Alumni-MITx-4316538">LinkedIn</a>.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
130
templates/6002x-press-release.html
Normal file
130
templates/6002x-press-release.html
Normal file
@@ -0,0 +1,130 @@
|
||||
<%inherit file="marketing.html" />
|
||||
<%block name="login_area">
|
||||
</%block>
|
||||
|
||||
<section class="subpage">
|
||||
<div>
|
||||
|
||||
<h1> <i>MITx</i> prototype course opens for enrollment—Online-learning
|
||||
initiative’s first offering, ‘6.002x: Circuits and
|
||||
Electronics,’ accepting registrants now.</h1>
|
||||
|
||||
<p> MIT News Office</p>
|
||||
|
||||
<p> In December,
|
||||
MIT <a href="http://web.mit.edu/newsoffice/2011/mitx-education-initiative-1219.html">announced </a>the
|
||||
launch of an online learning initiative called “<i>MITx</i>.”
|
||||
Starting this week, interested learners can now enroll for free in the
|
||||
initiative”s prototype course -- 6.002x: Circuits and
|
||||
Electronics.</p>
|
||||
|
||||
<p>Students can sign up for the course
|
||||
at <a href="http://mitx.mit.edu">mitx.mit.edu</a>. The course will
|
||||
officially begin on March 5 and run through June 8.</p>
|
||||
|
||||
<p> 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.</p>
|
||||
|
||||
<blockquote>
|
||||
<p>
|
||||
“We are very excited to begin <i>MITx</i> 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.”
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
To access the course, registered students will log in
|
||||
at <a href="http://mitx.mit.edu">mitx.mit.edu</a>, 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.
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
“We invite you to join us for this pilot course of <i>MITx</i>,”
|
||||
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.”
|
||||
</blockquote>
|
||||
|
||||
<p> <a href="http://mitx.mit.edu"> A video introduction to 6.002x can
|
||||
be found here.</a></p>
|
||||
|
||||
<p> <a href="/6002x-faq.html"> A set of Frequently Asked Questions
|
||||
about 6.002x can be found here.</a></p>
|
||||
|
||||
<p>
|
||||
<a href="http://web.mit.edu/newsoffice/2011/mitx-faq-1219">
|
||||
FAQs about <i>MITx</i> as a whole can be found here.
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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 <i>MITx</i> courses, students who complete the mastery
|
||||
requirement on <i>MITx</i> will be able to receive the credential for a
|
||||
modest fee.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Further courses are expected to become
|
||||
available beginning in the fall.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>
|
||||
RELATED:
|
||||
</h3>
|
||||
<p>
|
||||
<a href="/index.html">
|
||||
6.002x course website
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="/6002x-faq.html">
|
||||
6.002x FAQ
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<h3>
|
||||
ARCHIVE: "MIT launches online learning initiative"
|
||||
</h3>
|
||||
<a href="http://web.mit.edu/newsoffice/2011/mitx-education-initiative-1219.html">
|
||||
http://web.mit.edu/newsoffice/2011/mitx-education-initiative-1219.html
|
||||
</a>
|
||||
|
||||
<h3>
|
||||
<i>MITx</i> website
|
||||
</h3>
|
||||
<a href="http://mitx.mit.edu">
|
||||
http://mitx.mit.edu
|
||||
</a>
|
||||
|
||||
<!--h3>
|
||||
TAGS:
|
||||
</h3>
|
||||
<p>
|
||||
<i>MITx</i>; students; education, teaching, academics; innovation and
|
||||
invention; faculty; mit administration; learning; electrical
|
||||
engineering and computer science; csail
|
||||
</p-->
|
||||
</div>
|
||||
</section>
|
||||
147
templates/Kirchhoff.html
Normal file
147
templates/Kirchhoff.html
Normal file
@@ -0,0 +1,147 @@
|
||||
<h1>Kirchhoff's circuit laws</h1>
|
||||
<div>From Wikipedia, the free encyclopedia. See <a href="http://en.wikipedia.org/wiki/Kirchhoff's_circuit_laws">original page</a> for copyright and attribution</div>
|
||||
<h2>Kirchhoff's current law (KCL)</h2>
|
||||
<div>
|
||||
<div style="width:198px;"><a href="http://en.wikipedia.org/wiki/File:KCL.png"><img alt="" src="/static/Kirchhoff_files/KCL.png" width="196" height="195"></a>
|
||||
<div>The current entering any junction is equal to the current leaving that junction. <i>i</i><sub>1</sub> + <i>i</i><sub>4</sub> = <i>i</i><sub>2</sub> + <i>i</i><sub>3</sub></div>
|
||||
</div>
|
||||
</div>
|
||||
<p>This law is also called <b>Kirchhoff's first law</b>, <b>Kirchhoff's point rule</b>, <b>Kirchhoff's junction rule</b> (or nodal rule), and <b>Kirchhoff's first rule</b>.</p>
|
||||
<p>The principle of conservation of <a href="http://en.wikipedia.org/wiki/Electric_charge" title="Electric charge">electric charge</a> implies that:</p>
|
||||
<dl>
|
||||
<dd>At any node (junction) in an <a href="http://en.wikipedia.org/wiki/Electrical_circuit" title="Electrical circuit">electrical circuit</a>, the sum of <a href="http://en.wikipedia.org/wiki/Current_(electricity)" title="Current (electricity)">currents</a> flowing into that node is equal to the sum of currents flowing out of that node.
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>or</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dd>The algebraic sum of currents in a network of conductors meeting at a point is zero.</dd>
|
||||
</dl>
|
||||
<p>Recalling that current is a signed (positive or negative) quantity reflecting direction towards or away from a node, this principle can be stated as:</p>
|
||||
<dl>
|
||||
<dd><img alt="\sum_{k=1}^n {I}_k = 0" src="/static/Kirchhoff_files/17bbbd9b6e69b94dab881bacae540191.png"></dd>
|
||||
</dl>
|
||||
<p><i>n</i> is the total number of branches with currents flowing towards or away from the node.</p>
|
||||
<p>This formula is valid for <a href="http://en.wikipedia.org/wiki/Complex_number" title="Complex number">complex</a> currents:</p>
|
||||
<dl>
|
||||
<dd><img alt="\sum_{k=1}^n \tilde{I}_k = 0" src="/static/Kirchhoff_files/912713fc906c190d03a73f02b2f738ab.png"></dd>
|
||||
</dl>
|
||||
<p>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).</p>
|
||||
<h3>Changing charge density</h3>
|
||||
<p>KCL is only valid if the <a href="http://en.wikipedia.org/wiki/Charge_density" title="Charge density">charge density</a> 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 <a href="http://en.wikipedia.org/wiki/Antenna_(radio)" title="Antenna (radio)">antenna</a> where current enters the antenna from the transmitter feeder but no current exits from the other end.(Johnson and Graham, pp.36-37)</p>
|
||||
<p><a href="http://en.wikipedia.org/wiki/James_Clerk_Maxwell" title="James Clerk Maxwell">Maxwell</a> introduced the concept of <a href="http://en.wikipedia.org/wiki/Displacement_current" title="Displacement current">displacement currents</a> 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 <a href="http://en.wikipedia.org/wiki/Electric_flux" title="Electric flux">electric flux</a> due to that charge (electric flux is measured in the same units, <a href="http://en.wikipedia.org/wiki/Coulomb" title="Coulomb">Coulombs</a>, as electric charge in the <a href="http://en.wikipedia.org/wiki/SI_system" title="SI system">SI system</a> of units). This rate of change of flux, <img alt="\psi \ " src="/static/Kirchhoff_files/ec93733267512bc18567c04e5a728e24.png">, is what Maxwell called displacement current <span dir="ltr"><i>I</i><sub>D</sub></span>;</p>
|
||||
<dl>
|
||||
<dd><img alt="I_\mathrm D = \frac {d \psi}{d t}" src="/static/Kirchhoff_files/c449f0cd2e060f03076e28ae5f8f0a75.png"></dd>
|
||||
</dl>
|
||||
<p>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.</p>
|
||||
<p>This can also be expressed in terms of vector field quantities by taking the <a href="http://en.wikipedia.org/wiki/Divergence" title="Divergence">divergence</a> of <a href="http://en.wikipedia.org/wiki/Amp%C3%A8re%27s_law" title="Ampere's law">Ampere's law</a> with Maxwell's correction and combining with <a href="http://en.wikipedia.org/wiki/Gauss%27s_law" title="Gauss's law">Gauss's law</a>, yielding:</p>
|
||||
<dl>
|
||||
<dd><img alt="\nabla \cdot \mathbf{J} = -\nabla \cdot \frac{\partial \mathbf{D}}{\partial t} = -\frac{\partial \rho}{\partial t}" src="/static/Kirchhoff_files/229253cd444bad52ccf237f182f18267.png"></dd>
|
||||
</dl>
|
||||
<p>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 (<a href="http://en.wikipedia.org/wiki/Divergence_theorem" title="Divergence theorem">Divergence theorem</a>)). 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 <b>J</b>.</p>
|
||||
<h3>Uses</h3>
|
||||
<p>A <a href="http://en.wikipedia.org/wiki/Matrix_(mathematics)" title="Matrix (mathematics)">matrix</a> version of Kirchhoff's current law is the basis of most <a href="http://en.wikipedia.org/wiki/Electronic_circuit_simulation" title="Electronic circuit simulation">circuit simulation software</a>, such as <a href="http://en.wikipedia.org/wiki/SPICE" title="SPICE">SPICE</a>.</p>
|
||||
<h2><span>[<a href="http://en.wikipedia.org/w/index.php?title=Kirchhoff%27s_circuit_laws&action=edit§ion=4" title="Edit section: Kirchhoff's voltage law (KVL)">edit</a>]</span> <span id="Kirchhoff.27s_voltage_law_.28KVL.29">Kirchhoff's voltage law (KVL)</span></h2>
|
||||
<div>
|
||||
<div style="width:202px;"><a href="http://en.wikipedia.org/wiki/File:Kirchhoff_voltage_law.svg"><img alt="" src="/static/Kirchhoff_files/200px-Kirchhoff_voltage_law.svg.png" width="200" height="175"></a>
|
||||
<div>
|
||||
<div><a href="http://en.wikipedia.org/wiki/File:Kirchhoff_voltage_law.svg" title="Enlarge"><img src="/static/Kirchhoff_files/magnify-clip.png" width="15" height="11" alt=""></a></div>
|
||||
The sum of all the voltages around the loop is equal to zero. v<sub>1</sub> + v<sub>2</sub> + v<sub>3</sub> - v<sub>4</sub> = 0</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>This law is also called <b>Kirchhoff's second law</b>, <b>Kirchhoff's loop (or mesh) rule</b>, and <b>Kirchhoff's second rule</b>.</p>
|
||||
<p>The principle of conservation of energy implies that</p>
|
||||
<dl>
|
||||
<dd>The directed sum of the electrical <a href="http://en.wikipedia.org/wiki/Potential_difference" title="Potential difference">potential differences</a> (voltage) around any closed circuit is zero.
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>or</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dd>More simply, the sum of the <a href="http://en.wikipedia.org/wiki/Electromotive_force" title="Electromotive force">emfs</a> in any closed loop is equivalent to the sum of the potential drops in that loop.
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>
|
||||
<dl>
|
||||
<dd>or</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dd>The algebraic sum of the products of the resistances of the conductors and the currents in them in a closed loop is equal to the total <a href="http://en.wikipedia.org/wiki/Electromotive_force" title="Electromotive force">emf</a> available in that loop.</dd>
|
||||
</dl>
|
||||
<p>Similarly to KCL, it can be stated as:</p>
|
||||
<dl>
|
||||
<dd><img alt="\sum_{k=1}^n V_k = 0" src="/static/Kirchhoff_files/08d7bd7060be987d4da37b7fc263a740.png"></dd>
|
||||
</dl>
|
||||
<p>Here, <i>n</i> is the total number of voltages measured. The voltages may also be complex:</p>
|
||||
<dl>
|
||||
<dd><img alt="\sum_{k=1}^n \tilde{V}_k = 0" src="/static/Kirchhoff_files/98720898396d325be0abb463b68caf90.png"></dd>
|
||||
</dl>
|
||||
<p>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.</p>
|
||||
<p>This law holds true even when resistance (which causes <b>dissipation</b> 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.</p>
|
||||
<p>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.</p>
|
||||
<h3>Electric field and electric potential</h3>
|
||||
<p>Kirchhoff's voltage law could be viewed as a consequence of the principle of <a href="http://en.wikipedia.org/wiki/Conservation_of_energy" title="Conservation of energy">conservation of energy</a>. Otherwise, it would be possible to build a <a href="http://en.wikipedia.org/wiki/Perpetual_motion_machine" title="Perpetual motion machine">perpetual motion machine</a> that passed a current in a circle around the circuit.</p>
|
||||
<p>Considering that electric potential is defined as a <a href="http://en.wikipedia.org/wiki/Line_integral" title="Line integral">line integral</a> over an <a href="http://en.wikipedia.org/wiki/Electric_field" title="Electric field">electric field</a>, Kirchhoff's voltage law can be expressed equivalently as</p>
|
||||
<dl>
|
||||
<dd><img alt="\oint_C \mathbf{E} \cdot d\mathbf{l} = 0," src="/static/Kirchhoff_files/07172609b59c136393705e4067de95d0.png"></dd>
|
||||
</dl>
|
||||
<p>which states that the <a href="http://en.wikipedia.org/wiki/Line_integral" title="Line integral">line integral</a> of the <a href="http://en.wikipedia.org/wiki/Electric_field" title="Electric field">electric field</a> around closed loop C is zero.</p>
|
||||
<p>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.</p>
|
||||
<h3>Limitations</h3>
|
||||
<p>This is a simplification of <a href="http://en.wikipedia.org/wiki/Faraday%27s_law_of_induction" title="Faraday's law of induction">Faraday's law of induction</a> for the special case where there is no fluctuating <a href="http://en.wikipedia.org/wiki/Magnetic_field" title="Magnetic field">magnetic field</a> linking the closed loop. Therefore, it practically suffices for explaining circuits containing only resistors and capacitors.</p>
|
||||
<p>In the presence of a changing magnetic field the electric field is not <a href="http://en.wikipedia.org/wiki/Conservative_vector_field" title="Conservative vector field">conservative</a> and it cannot therefore define a pure scalar <a href="http://en.wikipedia.org/wiki/Potential" title="Potential">potential</a>-the <a href="http://en.wikipedia.org/wiki/Line_integral" title="Line integral">line integral</a> 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 <a href="http://en.wikipedia.org/wiki/Electromotive_force" title="Electromotive force">electromotive force</a> (emf), is associated with each <a href="http://en.wikipedia.org/wiki/Inductance" title="Inductance">inductance</a> of the circuit, exactly equal to the amount by which the line integral of the electric field is not zero by <a href="http://en.wikipedia.org/wiki/Faraday%27s_law_of_induction" title="Faraday's law of induction">Faraday's law of induction</a>.</p>
|
||||
33
templates/accordion.html
Normal file
33
templates/accordion.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<%!
|
||||
from django.core.urlresolvers import reverse
|
||||
%>
|
||||
|
||||
<%def name="make_chapter(chapter)">
|
||||
<h3><a href="#">${chapter['name']}</a></h3>
|
||||
|
||||
<ul>
|
||||
% for section in chapter['sections']:
|
||||
<li
|
||||
% if 'active' in section and section['active']:
|
||||
class="active"
|
||||
% endif
|
||||
>
|
||||
|
||||
<a href="${reverse('courseware_section', args=format_url_params([course_name, chapter['name'], section['name']]))}">
|
||||
<p>${section['name']}</p>
|
||||
|
||||
<p class="subtitle">
|
||||
${section['format']}
|
||||
|
||||
% if 'due' in section and section['due']!="":
|
||||
due ${section['due']}
|
||||
% endif
|
||||
</p>
|
||||
</a>
|
||||
% endfor
|
||||
</ul>
|
||||
</%def>
|
||||
|
||||
% for chapter in toc:
|
||||
${make_chapter(chapter)}
|
||||
% endfor
|
||||
70
templates/accordion_bak.html
Normal file
70
templates/accordion_bak.html
Normal file
@@ -0,0 +1,70 @@
|
||||
<h3><a href="#">Using the System</a></h3>
|
||||
<div>
|
||||
<ul>
|
||||
<li> Lecture
|
||||
<li> Homework
|
||||
<li> Lab
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<h3><a href="#">Basic Circuit Analysis</a></h3>
|
||||
<div>
|
||||
<ul>
|
||||
<li> Electronic Text
|
||||
<li> Introduction <br><small>lecture, 50min, due Feb 1</small>
|
||||
<li> KVL, KCL, and Resistive <br><small>lecture, 50min, due Feb 3</small>
|
||||
<li> Nodal analysis <br><small>lecture, 50min, due Feb 5</small>
|
||||
<li> <div style="background-color:#aed0ea;">Linearity, Superposition <br><small>lecture, 50min, due Feb 7</small></div>
|
||||
<li> Homework 1 <br><small>due Feb 14</small>
|
||||
<li> Lab 0 <br><small>due Feb 7</small>
|
||||
</ul>
|
||||
</div>
|
||||
<h3><a href="#">Digital Systems</a></h3>
|
||||
<div>
|
||||
<!--ul>
|
||||
<li> Lecture
|
||||
<li> Homework
|
||||
<li> Lab
|
||||
</ul-->
|
||||
</div>
|
||||
<h3><a href="#">Nonlinear Elements</a></h3>
|
||||
<div>
|
||||
<!--ul>
|
||||
<li> Lecture
|
||||
<li> Homework
|
||||
<li> Lab
|
||||
</ul-->
|
||||
</div>
|
||||
<h3><a href="#">Analog Amplification</a></h3>
|
||||
<div>
|
||||
<!--ul>
|
||||
<li> Lecture
|
||||
<li> Homework
|
||||
<li> Lab
|
||||
</ul-->
|
||||
</div>
|
||||
<h3><a href="#">Capacitors and Inductors</a></h3>
|
||||
<div>
|
||||
<!--ul>
|
||||
<li> Lecture
|
||||
<li> Homework
|
||||
<li> Lab
|
||||
</ul-->
|
||||
</div>
|
||||
<h3><a href="#">Operational Amplifiers</a></h3>
|
||||
<div>
|
||||
<!--ul>
|
||||
<li> Lecture
|
||||
<li> Homework
|
||||
<li> Lab
|
||||
</ul-->
|
||||
</div>
|
||||
<h3><a href="#">Applications</a></h3>
|
||||
<div>
|
||||
<!--ul>
|
||||
<li> Lecture
|
||||
<li> Homework
|
||||
<li> Lab
|
||||
</ul-->
|
||||
</div>
|
||||
|
||||
19
templates/accordion_init.js
Normal file
19
templates/accordion_init.js
Normal file
@@ -0,0 +1,19 @@
|
||||
$("#accordion").accordion({
|
||||
active: ${ active_chapter },
|
||||
header: 'h3',
|
||||
autoHeight: false,
|
||||
});
|
||||
|
||||
$("#open_close_accordion a").click(function(){
|
||||
if ($(".course-wrapper").hasClass("closed")){
|
||||
$(".course-wrapper").removeClass("closed");
|
||||
} else {
|
||||
$(".course-wrapper").addClass("closed");
|
||||
}
|
||||
});
|
||||
|
||||
$('.ui-accordion').bind('accordionchange', function(event, ui) {
|
||||
var event_data = {'newheader':ui.newHeader.text(),
|
||||
'oldheader':ui.oldHeader.text()};
|
||||
log_event('accordion', event_data);
|
||||
});
|
||||
13
templates/activation_active.html
Normal file
13
templates/activation_active.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<section class="tos">
|
||||
<div>
|
||||
|
||||
<section class="activation">
|
||||
<h1>Account already active!</h1>
|
||||
<!-- <p>Now go <a href="/">log in</a> and try the course!</a></p> -->
|
||||
<p> This account has already been activated. We will notify you as
|
||||
soon as the course starts.</p>
|
||||
<p>For now you can go to the <a href="http://mitx.mit.edu/">MITx homepage</a> or the <a href="/">6.002x course page</a>.</p>
|
||||
</div>
|
||||
</section>
|
||||
10
templates/activation_complete.html
Normal file
10
templates/activation_complete.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<section class="tos">
|
||||
<div>
|
||||
<h1>Activation Complete!</h1>
|
||||
<!-- <p>Now go <a href="/">log in</a> and try the course!</a></p> -->
|
||||
<p>Thanks for activating your email. We will notify you as soon as the course starts.</p>
|
||||
<p>For now you can go to the <a href="http://mitx.mit.edu/">MITx homepage</a> or the <a href="/">6.002x course page</a>.</p>
|
||||
</div>
|
||||
</section>
|
||||
10
templates/activation_email.txt
Normal file
10
templates/activation_email.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Someone, hopefully you, signed up for an account for MITx's on-line
|
||||
offering of 6.002 using this email address. If it was you, and you'd
|
||||
like to activate and use your account, copy and paste this address
|
||||
into your web browser's address bar:
|
||||
|
||||
http://${ site }/activate/${ key }
|
||||
|
||||
If you didn't request this, you don't need to do anything; you won't
|
||||
receive any more email from us. Please do not reply to this e-mail; if
|
||||
you require assistance, check the help section of the MITx web site.
|
||||
1
templates/activation_email_subject.txt
Normal file
1
templates/activation_email_subject.txt
Normal file
@@ -0,0 +1 @@
|
||||
Your account for MITx's on-line 6.002
|
||||
14
templates/activation_invalid.html
Normal file
14
templates/activation_invalid.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<section class="tos">
|
||||
<div>
|
||||
<h1>Activation Invalid</h1>
|
||||
|
||||
<p>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 <a href="mailto:bugs@mitx.mit.edu">bugs@mitx.mit.edu</a>.</p>
|
||||
|
||||
<p>Or you can go back to the <a href="/">6.002x course page</a>.</p>
|
||||
</div>
|
||||
</section>
|
||||
356
templates/book_toc.html
Normal file
356
templates/book_toc.html
Normal file
@@ -0,0 +1,356 @@
|
||||
<li><a href="javascript:goto_page(9)"> Contents ix </a>
|
||||
<li><a href="javascript:goto_page(1)"> Preamble i </a>
|
||||
<ul> <li><a href="javascript:goto_page(1)"> Comments on the Book i</a>
|
||||
<li><a href="javascript:goto_page(4)"> About the Authors iv</a>
|
||||
<li><a href="javascript:goto_page(7)"> Dedication vii</a>
|
||||
<li><a href="javascript:goto_page(19)"> Preface xix </a>
|
||||
<li><a href="javascript:goto_page(19)"> Approach xix </a>
|
||||
<li><a href="javascript:goto_page(21)"> Overview xxi </a>
|
||||
<li><a href="javascript:goto_page(23)"> Course Organization xxiii </a>
|
||||
<li><a href="javascript:goto_page(23)"> Web Supplements xxiii </a>
|
||||
<li><a href="javascript:goto_page(24)"> Acknowledgments xxiv </a>
|
||||
</ul>
|
||||
|
||||
<li><a href="javascript:goto_page(27)"> 1 The Circuit Abstraction 3 </a>
|
||||
<ul> <li><a href="javascript:goto_page(27)"> 1.1 The Power of Abstraction 3 </a>
|
||||
<li><a href="javascript:goto_page(29)"> 1.2 The Lumped Circuit Abstraction 4 </a>
|
||||
<li><a href="javascript:goto_page(33)"> 1.3 The Lumped Matter Discipline 9 </a>
|
||||
<li><a href="javascript:goto_page(37)"> 1.4 Limitations of the Lumped Circuit Abstraction 13 </a>
|
||||
<li><a href="javascript:goto_page(39)"> 1.5 Practical Two-Terminal Elements 15 </a>
|
||||
<ul> <li><a href="javascript:goto_page(40)"> 1.5.1 Batteries 16 </a>
|
||||
<li><a href="javascript:goto_page(42)"> 1.5.2 Linear Resistors 18 </a>
|
||||
<li><a href="javascript:goto_page(49)"> 1.5.3 Associated Variables Convention 25 </a>
|
||||
</ul> <li><a href="javascript:goto_page(53)"> 1.6 Ideal Two-Terminal Elements 29 </a>
|
||||
<ul> <li><a href="javascript:goto_page(54)"> 1.6.1 Ideal Voltage Sources, Wires and Resistors 30 </a>
|
||||
<li><a href="javascript:goto_page(56)"> 1.6.2 Element Laws 32 </a>
|
||||
<li><a href="javascript:goto_page(57)"> 1.6.3 The Current Source 33 </a>
|
||||
</ul> <li><a href="javascript:goto_page(60)"> 1.7 Modeling Physical Elements 36 </a>
|
||||
<li><a href="javascript:goto_page(64)"> 1.8 Signal Representation 40 </a>
|
||||
<ul> <li><a href="javascript:goto_page(65)"> 1.8.1 Analog Signals 41 </a>
|
||||
<li><a href="javascript:goto_page(66)"> 1.8.3 Digital Signals 42 </a>
|
||||
</ul> <li><a href="javascript:goto_page(70)"> 1.9 Summary 46 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(77)"> 2 Resistive Networks 53 </a>
|
||||
<ul> <li><a href="javascript:goto_page(78)"> 2.1 Terminology 54 </a>
|
||||
<li><a href="javascript:goto_page(79)"> 2.2 Kirchhoff's Laws 55 </a>
|
||||
<ul> <li><a href="javascript:goto_page(80)"> 2.2.1 KCL 56 </a>
|
||||
<li><a href="javascript:goto_page(84)"> 2.2.1 KVL 60 </a>
|
||||
</ul> <li><a href="javascript:goto_page(90)"> 2.3 Circuit Analysis: Basic Method 66 </a>
|
||||
<ul> <li><a href="javascript:goto_page(91)"> 2.3.1 Single-Resistor Circuits 67 </a>
|
||||
<li><a href="javascript:goto_page(94)"> 2.3.2 Quick Intuitive Analysis of Single-Resistor Circuits 70 </a>
|
||||
<li><a href="javascript:goto_page(95)"> 2.3.3 Energy Conservation 71 </a>
|
||||
<li><a href="javascript:goto_page(97)"> 2.3.4 Voltage and Current Dividers 73 </a>
|
||||
<li><a href="javascript:goto_page(99)"> 2.3.4.1 Voltage Dividers 73 </a>
|
||||
<li><a href="javascript:goto_page(100)"> 2.3.4.2 Resistors in Series 76 </a>
|
||||
<li><a href="javascript:goto_page(104)"> 2.3.4.3 Current Dividers 80 </a>
|
||||
<li><a href="javascript:goto_page(108)"> 2.3.4.4 Resistors in Parallel 82 </a>
|
||||
<li><a href="javascript:goto_page(108)"> 2.3.5 A More Complex Circuit 84 </a>
|
||||
</ul> <li><a href="javascript:goto_page(113)"> 2.4 Intuitive Method of Circuit Analysis 89 </a>
|
||||
<li><a href="javascript:goto_page(119)"> 2.5 More Examples 95 </a>
|
||||
<li><a href="javascript:goto_page(122)"> 2.6 Dependent Sources and the Control Concept 98 </a>
|
||||
<ul> <li><a href="javascript:goto_page(126)"> 2.6.1 Circuits with Dependent Sources 102 </a>
|
||||
</ul> <li><a href="javascript:goto_page(131)"> 2.7 A Formulation Suitable for a Computer Solution * 107 </a>
|
||||
<li><a href="javascript:goto_page(132)"> 2.8 Summary 108 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(143)"> 3 Network Theorems 119 </a>
|
||||
<ul> <li><a href="javascript:goto_page(143)"> 3.1 Introduction 119 </a>
|
||||
<li><a href="javascript:goto_page(143)"> 3.2 The Node Voltage 119 </a>
|
||||
<li><a href="javascript:goto_page(149)"> 3.3 The Node Method 125 </a>
|
||||
<ul> <li><a href="javascript:goto_page(154)"> 3.3.1 Node Method: A Second Example 130 </a>
|
||||
<li><a href="javascript:goto_page(159)"> 3.3.2 Floating Independent Voltage Sources 135 </a>
|
||||
<li><a href="javascript:goto_page(163)"> 3.3.3 Dependent Sources and the Node Method 139 </a>
|
||||
<li><a href="javascript:goto_page(169)"> 3.3.4 The Conductance and Source Matrices * 145 </a>
|
||||
</ul> <li><a href="javascript:goto_page(169)"> 3.4 Loop Method * 145 </a>
|
||||
<li><a href="javascript:goto_page(169)"> 3.5 Superposition 145 </a>
|
||||
<ul> <li><a href="javascript:goto_page(176)"> 3.5.1 Superposition Rules for Dependent Sources 152 </a>
|
||||
</ul> <li><a href="javascript:goto_page(182)"> 3.6 Thevenin's Theorem and Norton's Theorem 158 </a>
|
||||
<ul> <li><a href="javascript:goto_page(182)"> 3.6.1 The Thevenin Equivalent Network 158 </a>
|
||||
<li><a href="javascript:goto_page(192)"> 3.6.2 The Norton Equivalent Network 168 </a>
|
||||
<li><a href="javascript:goto_page(195)"> 3.6.3 More Examples 171 </a>
|
||||
</ul> <li><a href="javascript:goto_page(201)"> 3.7 Summary 177 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(217)"> 4 Analysis of Nonlinear Circuits 193 </a>
|
||||
<ul> <li><a href="javascript:goto_page(217)"> 4.1 Introduction to Nonlinear Elements 193 </a>
|
||||
<li><a href="javascript:goto_page(221)"> 4.2 Analytical Solutions 197 </a>
|
||||
<li><a href="javascript:goto_page(227)"> 4.3 Graphical Analysis 203 </a>
|
||||
<li><a href="javascript:goto_page(230)"> 4.4 Piecewise Linear Analysis 206 </a>
|
||||
<ul> <li><a href="javascript:goto_page(238)"> 4.4.1 Improved Piecewise Linear Models for Nonlinear Elements * 214 </a>
|
||||
</ul> <li><a href="javascript:goto_page(238)"> 4.5 Incremental Analysis 214 </a>
|
||||
<li><a href="javascript:goto_page(253)"> 4.6 Summary 229 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(267)"> 5 The Digital Abstraction 243 </a>
|
||||
<ul> <li><a href="javascript:goto_page(269)"> 5.1 Voltage Levels and the Static Discipline 245 </a>
|
||||
<li><a href="javascript:goto_page(256+24)"> 5.2 Boolean Logic 256 </a>
|
||||
<li><a href="javascript:goto_page(258+24)"> 5.3 Combinational Gates 258 </a>
|
||||
<li><a href="javascript:goto_page(261+24)"> 5.4 Standard Sum-of-Products Representation 261 </a>
|
||||
<li><a href="javascript:goto_page(262+24)"> 5.5 Simplifying Logic Expressions * 262 </a>
|
||||
<li><a href="javascript:goto_page(267+24)"> 5.6 Number Representation 267 </a>
|
||||
<li><a href="javascript:goto_page(274+24)"> 5.7 Summary 274 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(285+24)"> 6 The MOSFET Switch 285 </a>
|
||||
<ul> <li><a href="javascript:goto_page(285+24)"> 6.1 The Switch 285 </a>
|
||||
<li><a href="javascript:goto_page(288+24)"> 6.2 Logic Functions Using Switches 288 </a>
|
||||
<li><a href="javascript:goto_page(298+24)"> 6.3 The MOSFET Device and Its S Model 298 </a>
|
||||
<li><a href="javascript:goto_page(291+24)"> 6.4 MOSFET Switch Implementation of Logic Gates 291 </a>
|
||||
<li><a href="javascript:goto_page(296+24)"> 6.5 Static Analysis Using the S Model 296 </a>
|
||||
<li><a href="javascript:goto_page(300+24)"> 6.6 The SR Model of the MOSFET 300 </a>
|
||||
<li><a href="javascript:goto_page(301+24)"> 6.7 Physical Structure of the MOSFET * 301 </a>
|
||||
<li><a href="javascript:goto_page(306+24)"> 6.8 Static Analysis Using the SR Model 306 </a>
|
||||
<ul> <li><a href="javascript:goto_page(311+24)"> 6.8.1 Static Analysis of the NAND Gate Using the SR Model 311 </a>
|
||||
</ul> <li><a href="javascript:goto_page(314+24)"> 6.9 Signal Restoration 314 </a>
|
||||
<ul> <li><a href="javascript:goto_page(314+24)"> 6.9.1 Signal Restoration and Gain 314 </a>
|
||||
<li><a href="javascript:goto_page(317+24)"> 6.9.2 Signal Restoration and Nonlinearity 317 </a>
|
||||
<li><a href="javascript:goto_page(318+24)"> 6.9.3 Buffer Characteristics and the Static Discipline 318 </a>
|
||||
<li><a href="javascript:goto_page(319+24)"> 6.9.4 Inverter Transfer Characteristics and the Static Discipline 319 </a>
|
||||
</ul> <li><a href="javascript:goto_page(320+24)"> 6.10 Power Consumption in Logic Gates 320 </a>
|
||||
<li><a href="javascript:goto_page(321+24)"> 6.11 Active Pullups 321 </a>
|
||||
<li><a href="javascript:goto_page(322+24)"> 6.12 Summary 322 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(331+24)"> 7 The MOSFET Amplifier 331 </a>
|
||||
<ul> <li><a href="javascript:goto_page(332+24)"> 7.1 Signal Amplification 332 </a>
|
||||
<li><a href="javascript:goto_page(332+24)"> 7.2 Review of Dependent Sources 332 </a>
|
||||
<li><a href="javascript:goto_page(335+24)"> 7.3 Actual MOSFET Characteristics 335 </a>
|
||||
<li><a href="javascript:goto_page(340+24)"> 7.4 The Switch Current Source (SCS) MOSFET Model 340 </a>
|
||||
<li><a href="javascript:goto_page(344+24)"> 7.5 The MOSFET Amplifier 344 </a>
|
||||
<ul> <li><a href="javascript:goto_page(349+24)"> 7.5.1 Biasing the MOSFET Amplifier 349 </a>
|
||||
<li><a href="javascript:goto_page(352+24)"> 7.5.2 The Amplifier Abstraction and the Saturation Discipline 352 </a>
|
||||
</ul> <li><a href="javascript:goto_page(353+24)"> 7.6 Large Signal Analysis of the MOSFET Amplifier 353 </a>
|
||||
<ul> <li><a href="javascript:goto_page(353+24)"> 7.6.1 v_IN versus v_OUT in the Saturation Region 353 </a>
|
||||
<li><a href="javascript:goto_page(356+24)"> 7.6.2 Valid Input and Output Voltage Ranges 356 </a>
|
||||
<li><a href="javascript:goto_page(363+24)"> 7.6.3 Alternative Method for Valid Input and Output Voltage Ranges 363 </a>z
|
||||
</ul> <li><a href="javascript:goto_page(385+24)"> 7.7 Operating Point Selection 385 </a>
|
||||
<li><a href="javascript:goto_page(386+24)"> 7.8 Switch Unified (SU) MOSFET Model * 386 </a>
|
||||
<li><a href="javascript:goto_page(389+24)"> 7.9 Summary 389 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(405+24)"> 8 The Small Signal Model 405 </a>
|
||||
<ul> <li><a href="javascript:goto_page(405+24)"> 8.1 Overview of the Nonlinear MOSFET Amplifier 405 </a>
|
||||
<li><a href="javascript:goto_page(405+24)"> 8.2 The Small Signal Model 405 </a>
|
||||
<ul> <li><a href="javascript:goto_page(413+24)"> 8.2.1 Small Signal Circuit Representation 413 </a>
|
||||
<li><a href="javascript:goto_page(418+24)"> 8.3.2 Small Signal Circuit for the MOSFET Amplifier 418 </a>
|
||||
<li><a href="javascript:goto_page(420+24)"> 8.2.3 Selecting an Operating Point 420 </a>
|
||||
<li><a href="javascript:goto_page(423+24)"> 8.2.4 Input and Output Resistance, Current and Power Gain 423 </a>
|
||||
</ul> <li><a href="javascript:goto_page(447+24)"> 8.3 Summary 447 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(457+24)"> 9 Energy Storage Elements 457 </a>
|
||||
<ul> <li><a href="javascript:goto_page(461+24)"> 1-Sep Constitutive Laws 461 </a>
|
||||
<ul> <li><a href="javascript:goto_page(461+24)"> 9.1.1 Capacitors 461 </a>
|
||||
<li><a href="javascript:goto_page(466+24)"> 9.1.2 Inductors 466 </a>
|
||||
</ul> <li><a href="javascript:goto_page(470+24)"> 9.2 Series & Parallel Connections 470 </a>
|
||||
<ul> <li><a href="javascript:goto_page(471+24)"> 9.2.1 Capacitors 471 </a>
|
||||
<li><a href="javascript:goto_page(472+24)"> 9.2.2 Inductors 472 </a>
|
||||
</ul> <li><a href="javascript:goto_page(473+24)"> 9.3 Special Examples 473 </a>
|
||||
<ul> <li><a href="javascript:goto_page(473+24)"> 9.3.1 MOSFET Gate Capacitance 473 </a>
|
||||
<li><a href="javascript:goto_page(476+24)"> 9.3.2 Wiring Loop Inductance 476 </a>
|
||||
<li><a href="javascript:goto_page(477+24)"> 9.3.3 IC Wiring Capacitance and Inductance 477 </a>
|
||||
<li><a href="javascript:goto_page(478+24)"> 9.3.4 Transformers * 478 </a>
|
||||
</ul> <li><a href="javascript:goto_page(480+24)"> 9.4 Simple Circuit Examples 480 </a>
|
||||
<ul> <li><a href="javascript:goto_page(482+24)"> 9.4.1 Sinusoidal Inputs * 482 </a>
|
||||
<li><a href="javascript:goto_page(482+24)"> 9.4.2 Step Inputs 482 </a>
|
||||
<li><a href="javascript:goto_page(488+24)"> 9.4.3 Impulse Inputs 488 </a>
|
||||
<li><a href="javascript:goto_page(489+24)"> 9.4.4 Role Reversal * 489 </a>
|
||||
</ul> <li><a href="javascript:goto_page(489+24)"> 9.5 Energy, Charge and Flux Conservation 489 </a>
|
||||
<li><a href="javascript:goto_page(492+24)"> 9.6 Summary 492 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(503+24)"> 10 First-order Transients 503 </a>
|
||||
<ul> <li><a href="javascript:goto_page(504+24)"> 10.1.1 Analysis of RC Circuits 504 </a>
|
||||
<ul> <li><a href="javascript:goto_page(504+24)"> 10.1.2 Parallel RC Circuit, Step Input 504 </a>
|
||||
<li><a href="javascript:goto_page(509+24)"> 10.1.3 RC Discharge Transient 509 </a>
|
||||
<li><a href="javascript:goto_page(511+24)"> 10.1.4 Series RC Circuit, Step Input 511 </a>
|
||||
<li><a href="javascript:goto_page(515+24)"> 10.2 Series RC Circuit, Square Wave Input 515 </a>
|
||||
</ul> <li><a href="javascript:goto_page(517+24)"> 10.2.1 Analysis of RL Circuits 517 </a>
|
||||
<ul> <li><a href="javascript:goto_page(517+24)"> 10.3 Series RL Circuit, Step Input 517 </a>
|
||||
</ul> <li><a href="javascript:goto_page(520+24)"> 10.4 Intuitive Analysis 520 </a>
|
||||
<li><a href="javascript:goto_page(525+24)"> 10.4.1 Propagation Delay and the Digital Abstraction 525 </a>
|
||||
<ul> <li><a href="javascript:goto_page(527+24)"> 10.4.2 Definitions 527 </a>
|
||||
<li><a href="javascript:goto_page(529+24)"> 10.5 Computing t_pd from the SRC MOSFET Model 529 </a>
|
||||
</ul> <li><a href="javascript:goto_page(538+24)"> 10.5.1 State and State Variables * 538 </a>
|
||||
<ul> <li><a href="javascript:goto_page(538+24)"> 10.5.2 The Concept of State 538 </a>
|
||||
<li><a href="javascript:goto_page(540+24)"> 10.5.3 Computer Analysis using the State Equation 540 </a>
|
||||
<li><a href="javascript:goto_page(541+24)"> 10.5.4 Zero-input and Zero-state Response 541 </a>
|
||||
<li><a href="javascript:goto_page(544+24)"> 10.6 Solution by Integrating Factors* 544 </a>
|
||||
</ul> <li><a href="javascript:goto_page(545+24)"> 10.6.1 Additional Examples 545 </a>
|
||||
<ul> <li><a href="javascript:goto_page(545+24)"> 10.6.2 Effect of Wire Inductance in Digital Circuits 545 </a>
|
||||
<li><a href="javascript:goto_page(545+24)"> 10.6.3 Ramp Inputs and Linearity 545 </a>
|
||||
<li><a href="javascript:goto_page(550+24)"> 10.6.4 Response of an RC Circuit to Short Pulses and the Impulse Response 550 </a>
|
||||
<li><a href="javascript:goto_page(553+24)"> 10.6.5 Intuitive Method for the Impulse Response 553 </a>
|
||||
<li><a href="javascript:goto_page(554+24)"> 10.6.6 Clock Signals and Clock Fanout 554 </a>
|
||||
<li><a href="javascript:goto_page(558+24)"> 10.6.7 RC Response to Decaying Exponential * 558 </a>
|
||||
<li><a href="javascript:goto_page(558+24)"> 10.7 Series RL Circuit with Sinewave Input 558 </a>
|
||||
</ul> <li><a href="javascript:goto_page(561+24)"> 10.7.1 Digital Memory 561 </a>
|
||||
<ul> <li><a href="javascript:goto_page(561+24)"> 10.7.2 The Concept of Digital State 561 </a>
|
||||
<li><a href="javascript:goto_page(562+24)"> 10.7.3 An Abstract Digital Memory Element 562 </a>
|
||||
<li><a href="javascript:goto_page(563+24)"> 10.7.4 Design of the Digital Memory Element 563 </a>
|
||||
<li><a href="javascript:goto_page(567+24)"> 10.7.5 A Static Memory Element 567 </a>
|
||||
</ul> <li><a href="javascript:goto_page(568+24)"> 10.8 Summary 568 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(595+24)"> 11 Energy and Power in Digital Circuits 595 </a>
|
||||
<ul> <li><a href="javascript:goto_page(595+24)"> 11.1 Power and Energy Relations for a Simple RC Circuit 595 </a>
|
||||
<li><a href="javascript:goto_page(597+24)"> 11.2 Average Power in an RC Circuit 597 </a>
|
||||
<ul> <li><a href="javascript:goto_page(599+24)"> 11.2.1 Energy Dissipated during Interval T_1 599 </a>
|
||||
<li><a href="javascript:goto_page(601+24)"> 11.2.2 Energy Dissipated during Interval T_2 601 </a>
|
||||
<li><a href="javascript:goto_page(603+24)"> 11.2.3 Total Energy Dissipated 603 </a>
|
||||
</ul> <li><a href="javascript:goto_page(604+24)"> 11.3 Power Dissipation in Logic Gates 604 </a>
|
||||
<ul> <li><a href="javascript:goto_page(604+24)"> 11.3.1 Static Power Dissipation 604 </a>
|
||||
<li><a href="javascript:goto_page(605+24)"> 11.3.2 Total Power Dissipation 605 </a>
|
||||
</ul> <li><a href="javascript:goto_page(611+24)"> 11.4 NMOS Logic 611 </a>
|
||||
<li><a href="javascript:goto_page(611+24)"> 11.5 CMOS Logic 611 </a>
|
||||
<ul> <li><a href="javascript:goto_page(616+24)"> 11.5.1 CMOS Logic Gate Design 616 </a>
|
||||
</ul> <li><a href="javascript:goto_page(618+24)"> 11.6 Summary 618 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(625+24)"> 12 Transients in Second Order Circuits 625 </a>
|
||||
<ul> <li><a href="javascript:goto_page(627+24)"> 12.1 Undriven LC Circuit 627 </a>
|
||||
<li><a href="javascript:goto_page(640+24)"> 12.2 Undriven, Series RLC Circuit 640 </a>
|
||||
<ul> <li><a href="javascript:goto_page(644+24)"> 12.2.1 Under-Damped Dynamics 644 </a>
|
||||
<li><a href="javascript:goto_page(648+24)"> 12.2.2 Over-Damped Dynamics 648 </a>
|
||||
<li><a href="javascript:goto_page(649+24)"> 12.2.3 Critically-Damped Dynamics 649 </a>
|
||||
</ul> <li><a href="javascript:goto_page(651+24)"> 12.3 Stored Energy in Transient, Series RLC Circuit 651 </a>
|
||||
<li><a href="javascript:goto_page(654+24)"> 12.4 Undriven, Parallel RLC Circuit * 654 </a>
|
||||
<ul> <li><a href="javascript:goto_page(654+24)"> 12.4.1 Under-Damped Dynamics 654 </a>
|
||||
<li><a href="javascript:goto_page(654+24)"> 12.4.2 Over-Damped Dynamics 654 </a>
|
||||
<li><a href="javascript:goto_page(654+24)"> 12.4.3 Critically-Damped Dynamics 654 </a>
|
||||
</ul> <li><a href="javascript:goto_page(654+24)"> 12.5 Driven, Series RLC Circuit 654 </a>
|
||||
<ul> <li><a href="javascript:goto_page(657+24)"> 12.5.1 Step Response 657 </a>
|
||||
<li><a href="javascript:goto_page(661+24)"> 12.5.2 Impulse Response * 661 </a>
|
||||
</ul> <li><a href="javascript:goto_page(678+24)"> 12.6 Driven, Parallel RLC Circuit * 678 </a>
|
||||
<ul> <li><a href="javascript:goto_page(678+24)"> 12.6.1 Step Response 678 </a>
|
||||
<li><a href="javascript:goto_page(678+24)"> 12.6.2 Impulse Response 678 </a>
|
||||
</ul> <li><a href="javascript:goto_page(678+24)"> 12.7 Intuitive Analysis of Second-Order Circuits 678 </a>
|
||||
<li><a href="javascript:goto_page(684+24)"> 12.8 Two-Capacitor Or Two-Inductor Circuits 684 </a>
|
||||
<li><a href="javascript:goto_page(689+24)"> 12.9 State-Variable Method * 689 </a>
|
||||
<li><a href="javascript:goto_page(691+24)"> 12.10 State-Space Analysis * 691 </a>
|
||||
<ul> <li><a href="javascript:goto_page(691+24)"> 12.10.1 Numerical Solution * 691 </a>
|
||||
</ul> <li><a href="javascript:goto_page(691+24)"> 12.11 Higher-Order Circuits* 691 </a>
|
||||
<li><a href="javascript:goto_page(692+24)"> 12.12 Summary 692 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(703+24)"> 13 Sinusoidal Steady State 703 </a>
|
||||
<ul> <li><a href="javascript:goto_page(703+24)"> 13.1 Introduction 703 </a>
|
||||
<li><a href="javascript:goto_page(706+24)"> 13.2 Analysis using Complex Exponential Drive 706 </a>
|
||||
<ul> <li><a href="javascript:goto_page(706+24)"> 13.2.1 Homogeneous Solution 706 </a>
|
||||
<li><a href="javascript:goto_page(707+24)"> 13.2.2 Particular Solution 707 </a>
|
||||
<li><a href="javascript:goto_page(710+24)"> 13.2.3 Complete Solution 710 </a>
|
||||
<li><a href="javascript:goto_page(710+24)"> 13.2.4 Sinusoidal Steady State Response 710 </a>
|
||||
</ul> <li><a href="javascript:goto_page(712+24)"> 13.3 The Boxes: Impedance 712 </a>
|
||||
<ul> <li><a href="javascript:goto_page(718+24)"> 13.3.1 Example: Series RL Circuit 718 </a>
|
||||
<li><a href="javascript:goto_page(722+24)"> 13.3.2 Example: Another RC Circuit 722 </a>
|
||||
<li><a href="javascript:goto_page(724+24)"> 13.3.3 Example: RC Circuit with Two Capacitors 724 </a>
|
||||
<li><a href="javascript:goto_page(729+24)"> 13.3.4 Example: Analysis of Small Signal Amplifier with Capacitive Load 729 </a>
|
||||
</ul> <li><a href="javascript:goto_page(731+24)"> 13.4 Frequency Response: Magnitude/Phase vs. Frequency 731 </a>
|
||||
<ul> <li><a href="javascript:goto_page(732+24)"> 13.4.1 Frequency Response of Capacitors, Inductor 732 </a>
|
||||
<li><a href="javascript:goto_page(737+24)"> 13.4.2 Intuitively Sketching th 737 </a>
|
||||
<li><a href="javascript:goto_page(741+24)"> 13.4.3 The Bode Plot: Sketching the Frequency Response of General Functions * 741 </a>
|
||||
</ul> <li><a href="javascript:goto_page(742+24)"> 13.5 Filters 742 </a>
|
||||
<ul> <li><a href="javascript:goto_page(744+24)"> 13.5.1 Filter Design Example: Crossover Network 744 </a>
|
||||
<li><a href="javascript:goto_page(746+24)"> 13.5.2 Decoupling Amplifier Stages 746 </a>
|
||||
</ul> <li><a href="javascript:goto_page(751+24)"> 13.6 Time Domain 751 </a>
|
||||
<ul> <li><a href="javascript:goto_page(751+24)"> 13.6.1 Frequency Domain Analysis 751 </a>
|
||||
<li><a href="javascript:goto_page(754+24)"> 13.6.2 Time Domain Analysis 754 </a>
|
||||
<li><a href="javascript:goto_page(756+24)"> 13.6.3 Comparing Time Domain and Frequency Domain Analyses 756 </a>
|
||||
</ul> <li><a href="javascript:goto_page(757+24)"> 13.7 Power and Energy in an Impedance 757 </a>
|
||||
<ul> <li><a href="javascript:goto_page(758+24)"> 13.7.1 Arbitrary Impedance 758 </a>
|
||||
<li><a href="javascript:goto_page(760+24)"> 13.7.2 Pure Resistance 760 </a>
|
||||
<li><a href="javascript:goto_page(761+24)"> 13.7.3 Pure Reactance 761 </a>
|
||||
<li><a href="javascript:goto_page(763+24)"> 13.7.4 Example: Power in an RC Circuit 763 </a>
|
||||
</ul> <li><a href="javascript:goto_page(765+24)"> 13.8 Summary 765 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(777+24)"> 14 Sinusoidal Steady State: Resonance 777 </a>
|
||||
<ul> <li><a href="javascript:goto_page(777+24)"> 14.1 Parallel RLC, Sinusoidal Response 777 </a>
|
||||
<ul> <li><a href="javascript:goto_page(778+24)"> 14.1.1 Homogeneous Solution 778 </a>
|
||||
<li><a href="javascript:goto_page(780+24)"> 14.1.2 Particular Solution 780 </a>
|
||||
<li><a href="javascript:goto_page(781+24)"> 14.1.3 Total Solution for the Parallel RLC Circuit 781 </a>
|
||||
</ul> <li><a href="javascript:goto_page(783+24)"> 14.2 Frequency Response for Resonant Systems 783 </a>
|
||||
<ul> <li><a href="javascript:goto_page(792+24)"> 14.2.1 The Resonant Region of the Frequency Response 792 </a>
|
||||
</ul> <li><a href="javascript:goto_page(801+24)"> 14.3 Series RLC 801 </a>
|
||||
<li><a href="javascript:goto_page(808+24)"> 14.4 The Bode Plot for Resonant Functions * 808 </a>
|
||||
<li><a href="javascript:goto_page(808+24)"> 14.5 Filter Examples 808 </a>
|
||||
<ul> <li><a href="javascript:goto_page(809+24)"> 14.5.1 Bandpass Filter 809 </a>
|
||||
<li><a href="javascript:goto_page(810+24)"> 14.5.2 Lowpass Filter 810 </a>
|
||||
<li><a href="javascript:goto_page(812+24)"> 14.5.3 Highpass Filter 812 </a>
|
||||
<li><a href="javascript:goto_page(815+24)"> 14.5.4 Notch Filter 815 </a>
|
||||
</ul> <li><a href="javascript:goto_page(816+24)"> 14.6 Stored Energy in a Resonant Circuit 816 </a>
|
||||
<li><a href="javascript:goto_page(821+24)"> 14.7 Summary 821 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(837+24)"> 15 The Operational Amplifier Abstraction 837 </a>
|
||||
<ul> <li><a href="javascript:goto_page(837+24)"> 15.1 Introduction 837 </a>
|
||||
<ul> <li><a href="javascript:goto_page(838+24)"> 15.1.1 Historical Perspective 838 </a>
|
||||
</ul> <li><a href="javascript:goto_page(839+24)"> 15.2 Device Properties of the Operational Amplifier 839 </a>
|
||||
<ul> <li><a href="javascript:goto_page(839+24)"> 15.2 The Op Amp Model 839 </a>
|
||||
</ul> <li><a href="javascript:goto_page(842+24)"> 15.3 Simple Op Amp Circuits 842 </a>
|
||||
<ul> <li><a href="javascript:goto_page(842+24)"> 15.3.1 The Non-inverting Op Amp 842 </a>
|
||||
<li><a href="javascript:goto_page(844+24)"> 15.3.2 A Second Example: The Inverting Connection 844 </a>
|
||||
<li><a href="javascript:goto_page(846+24)"> 15.3.3 Sensitivity 846 </a>
|
||||
<li><a href="javascript:goto_page(847+24)"> 15.3.4 A Special Case: The Voltage Follower 847 </a>
|
||||
<li><a href="javascript:goto_page(848+24)"> 15.3.5 An Additional Constraint: v+ - v- ~ 0 848 </a>
|
||||
</ul> <li><a href="javascript:goto_page(849+24)"> 15.4 Input and Output Resistances 849 </a>
|
||||
<ul> <li><a href="javascript:goto_page(849+24)"> 15.4.1 Output Resistance, Inverting Op Amp 849 </a>
|
||||
<li><a href="javascript:goto_page(851+24)"> 15.4.2 Input Resistance, Inverting Connection 851 </a>
|
||||
<li><a href="javascript:goto_page(853+24)"> 15.4.3 Input and Output R for Non-Inverting Op Amp 853 </a>
|
||||
<li><a href="javascript:goto_page(855+24)"> 15.4.4 Generalization on Input Resistance * 855 </a>
|
||||
<li><a href="javascript:goto_page(855+24)"> 15.4.5 Example: Op Amp Current Source 855 </a>
|
||||
</ul> <li><a href="javascript:goto_page(857+24)"> 15.5 Additional Examples 857 </a>
|
||||
<ul> <li><a href="javascript:goto_page(858+24)"> 15.5.1 Adder 858 </a>
|
||||
<li><a href="javascript:goto_page(858+24)"> 15.5.2 Subtracter 858 </a>
|
||||
</ul> <li><a href="javascript:goto_page(859+24)"> 15.6 Op Amp RC Circuits 859 </a>
|
||||
<ul> <li><a href="javascript:goto_page(859+24)"> 15.6.1 Op Amp Integrator 859 </a>
|
||||
<li><a href="javascript:goto_page(862+24)"> 15.6.2 Op Amp Differentiator 862 </a>
|
||||
<li><a href="javascript:goto_page(863+24)"> 15.6.3 An RC Active Filter 863 </a>
|
||||
<li><a href="javascript:goto_page(865+24)"> 15.6.4 The RC Active Filter -- Impedance Analysis 865 </a>
|
||||
<li><a href="javascript:goto_page(866+24)"> 15.6.5 Sallen-Key Filter 866 </a>
|
||||
</ul> <li><a href="javascript:goto_page(866+24)"> 15.7 Op Amp in Saturation 866 </a>
|
||||
<ul> <li><a href="javascript:goto_page(867+24)"> 15.7.1 Op Amp Integrator in Saturation 867 </a>
|
||||
</ul> <li><a href="javascript:goto_page(869+24)"> 15.8 Positive Feedback 869 </a>
|
||||
<ul> <li><a href="javascript:goto_page(869+24)"> 15.8.1 RC Oscillator 869 </a>
|
||||
</ul> <li><a href="javascript:goto_page(872+24)"> 15.9 Two-ports* 872 </a>
|
||||
<li><a href="javascript:goto_page(873+24)"> 15.10 Summary 873 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(905+24)"> 16 Diodes 905 </a>
|
||||
<ul> <li><a href="javascript:goto_page(905+24)"> 16.1 Introduction 905 </a>
|
||||
<li><a href="javascript:goto_page(905+24)"> 16.2 Semiconductor Diode Characteristics 905 </a>
|
||||
<li><a href="javascript:goto_page(908+24)"> 16.3 Analysis of Diode Circuits 908 </a>
|
||||
<ul> <li><a href="javascript:goto_page(908+24)"> 16.3.1 Method of Assumed States 908 </a>
|
||||
</ul> <li><a href="javascript:goto_page(912+24)"> 16.4 Nonlinear Analysis with RL and RC 912 </a>
|
||||
<ul> <li><a href="javascript:goto_page(912+24)"> 16.4.1 Peak Detector 912 </a>
|
||||
<li><a href="javascript:goto_page(915+24)"> 16.4.2 Example: Clamping Circuit 915 </a>
|
||||
<li><a href="javascript:goto_page(918+24)"> 16.4.3 A Switched Power Supply Using a Diode 918 </a>
|
||||
</ul> <li><a href="javascript:goto_page(918+24)"> 16.5 Additional Examples 918 </a>
|
||||
<ul> <li><a href="javascript:goto_page(918+24)"> 16.5.1 Piecewise Linear Example: Clipping Circuit 918 </a>
|
||||
<li><a href="javascript:goto_page(918+24)"> 16.5.2 Exponentiation Circuit 918 </a>
|
||||
<li><a href="javascript:goto_page(918+24)"> 16.5.3 Piecewise Linear Example: Limiter 918 </a>
|
||||
<li><a href="javascript:goto_page(918+24)"> 16.5.4 Example: Full-Wave Diode Bridge 918 </a>
|
||||
<li><a href="javascript:goto_page(918+24)"> 16.5.5 Incremental Example: Zener Diode Regulator 918 </a>
|
||||
<li><a href="javascript:goto_page(918+24)"> 16.5.6 Incremental Example: Diode Attenuator 918 </a>
|
||||
</ul> <li><a href="javascript:goto_page(919+24)"> 16.6 Summary 919 </a>
|
||||
|
||||
</ul> <li><a href="javascript:goto_page(927+24)"> A1 Maxwell's Equations and the LMD 927 </a>
|
||||
<ul> <li><a href="javascript:goto_page(927+24)"> A.1 The Lumped Matter Discipline 927 </a>
|
||||
<ul> <li><a href="javascript:goto_page(927+24)"> A.1.1 The First Constraint of the Lumped Matter Discipline 927 </a>
|
||||
<li><a href="javascript:goto_page(930+24)"> A.1.2 The Second Constraint of the Lumped Matter Discipline 930 </a>
|
||||
<li><a href="javascript:goto_page(932+24)"> A.1.3 The Third Constraint of the Lumped Matter Discipline 932 </a>
|
||||
<li><a href="javascript:goto_page(933+24)"> A.1.4 The Lumped Matter Discipline Applied to Circuits 933 </a>
|
||||
</ul> <li><a href="javascript:goto_page(934+24)"> A.2 Deriving Kirchhoff's Laws 934 </a>
|
||||
<li><a href="javascript:goto_page(936+24)"> A.3 Deriving the Resistance of a Piece of Material 936 </a>
|
||||
</ul> <li><a href="javascript:goto_page(941+24)"> B Trigonometric Functions & Identities 941 </a>
|
||||
<ul> <li><a href="javascript:goto_page(941+24)"> B.1 Negative Arguments 941 </a>
|
||||
<li><a href="javascript:goto_page(942+24)"> B.2 Phase-Shifted Arguments 942 </a>
|
||||
<li><a href="javascript:goto_page(942+24)"> B.3 Sum and Difference Arguments 942 </a>
|
||||
<li><a href="javascript:goto_page(943+24)"> B.4 Products 943 </a>
|
||||
<li><a href="javascript:goto_page(943+24)"> B.5 Half-Angle & Twice-Angle Arguments 943 </a>
|
||||
<li><a href="javascript:goto_page(943+24)"> B.6 Squares 943 </a>
|
||||
<li><a href="javascript:goto_page(943+24)"> B.7 Miscellaneous 943 </a>
|
||||
<li><a href="javascript:goto_page(944+24)"> B.8 Taylor Series Expansions 944 </a>
|
||||
<li><a href="javascript:goto_page(944+24)"> B.9 Relations to e^j\theta 944 </a>
|
||||
</ul> <li><a href="javascript:goto_page(947+24)"> C Complex Numbers 947 </a>
|
||||
<ul> <li><a href="javascript:goto_page(947+24)"> C.1 Magnitude and Phase 947 </a>
|
||||
<li><a href="javascript:goto_page(948+24)"> C.2 Polar Representation 948 </a>
|
||||
<li><a href="javascript:goto_page(949+24)"> C.3 Addition and Subtraction 949 </a>
|
||||
<li><a href="javascript:goto_page(949+24)"> C.4 Multiplication and Division 949 </a>
|
||||
<li><a href="javascript:goto_page(950+24)"> C.5 Complex Conjugate 950 </a>
|
||||
<li><a href="javascript:goto_page(951+24)"> C.6 Properties of e^j\theta 951 </a>
|
||||
<li><a href="javascript:goto_page(951+24)"> C.7 Rotation 951 </a>
|
||||
<li><a href="javascript:goto_page(952+24)"> C.8 Complex Functions of Time 952 </a>
|
||||
<li><a href="javascript:goto_page(952+24)"> C.9 Numerical Examples 952 </a>
|
||||
</ul> <li><a href="javascript:goto_page(957+24)"> D Solving Simultaneous Linear Equations 957 </a>
|
||||
|
||||
|
||||
<li><a href="javascript:goto_page(959+24)"> Answers to Selected Problems 959 </a>
|
||||
<li><a href="javascript:goto_page(971+24)"> Figure Acknowledgments 971 </a>
|
||||
<li><a href="javascript:goto_page(973+24)"> Index 973 </a>
|
||||
38
templates/copyright.html
Normal file
38
templates/copyright.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<section class="copyright">
|
||||
|
||||
<div>
|
||||
<h1> Licensing Information </h1>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<h2>Videos and Exercises</h2>
|
||||
<p> 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 <i>MITx</i> course content
|
||||
available under open source licenses.
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<h2>Textbook</h2>
|
||||
<p> 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. </p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<h2>Student-generated content</h2>
|
||||
<td>Copyright © 2012. All Rights Reserved. Due to privacy
|
||||
concerns, we do not know what portion of these will be released
|
||||
under open licenses. </td></li>
|
||||
</ul>
|
||||
|
||||
<p>MIT and <i>MITx</i> are trademarks of the Massachusetts Institute
|
||||
of Technology, and may not be used without permission.</p>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
36
templates/courseware.html
Normal file
36
templates/courseware.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<%inherit file="main.html" />
|
||||
<%block name="title"><title>Courseware – MITx 6.002x</title></%block>
|
||||
|
||||
<%block name="js_extra">
|
||||
<!-- TODO: http://docs.jquery.com/Plugins/Validation -->
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
${init}
|
||||
|
||||
$(".sequence-nav li a").hover(function(){
|
||||
$(this).siblings().toggleClass("shown");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</%block>
|
||||
|
||||
<%include file="navigation.html" args="active_page='courseware'" />
|
||||
|
||||
<section class="main-content">
|
||||
<div class="course-wrapper">
|
||||
<section class="course-index">
|
||||
<header id="open_close_accordion">
|
||||
<h2>Courseware Index</h2>
|
||||
<a href="#">close</a>
|
||||
</header>
|
||||
|
||||
<div id="accordion">
|
||||
${accordion}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="course-content">
|
||||
${content}
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
73
templates/create_account.html
Normal file
73
templates/create_account.html
Normal file
@@ -0,0 +1,73 @@
|
||||
<!-- TODO: Add pattern field to username. See HTML5 cookbook, page 84 for details-->
|
||||
<div name="enroll_form" id="enroll_form">
|
||||
|
||||
<h1>Enroll in 6.002x Circuits & Electronics</h1>
|
||||
<!--[if lte IE 8]>
|
||||
<p class="ie-warning"> Enrollment requires a modern web browser with JavaScript enabled. You don't have this. You can’t enroll without upgrading, since you couldn’t take the course without upgrading. Feel free to download the latest version of <a href="http://www.mozilla.org/en-US/firefox/new/">Mozilla Firefox</a> or <a href="http://support.google.com/chrome/bin/answer.py?hl=en&answer=95346">Google Chrome</a>, for free, to enroll and take this course.</p>
|
||||
<![endif]-->
|
||||
|
||||
<form name="enroll" id="enroll_form" method="get">
|
||||
<fieldset><% if 'error' in locals(): e = error %>
|
||||
|
||||
<div id="enroll_error" name="enroll_error"></div>
|
||||
|
||||
<ol>
|
||||
|
||||
<li class="email">
|
||||
<label>E-mail*</label>
|
||||
<input name="email" id="ca_email" type="email" />
|
||||
</li>
|
||||
|
||||
<li class="password">
|
||||
<label>Password*</label>
|
||||
<input name="password" id="ca_password" type="password" />
|
||||
</li>
|
||||
|
||||
<li class="username">
|
||||
<label>Username (public)* <span class="ui-icon ui-icon-help" id="spinner_nick" style="display:inline-block;"></span></label>
|
||||
<input name="username" id="ca_username" type="text" />
|
||||
|
||||
<div id="sregion_nick" class="tip">Nickname you'd like to use on forums.</div>
|
||||
</li>
|
||||
|
||||
<li class="full-name">
|
||||
<label>Full name*<span class="ui-icon ui-icon-help" id="spinner_name" style="display:inline-block;"></span></label>
|
||||
<input name="name" id="ca_name" type="text" />
|
||||
|
||||
<div class="tip" id="sregion_name">If you successfully complete the course, you will receive an electronic certificate of accomplishment from <i>MITx</i> with this name on it.</div>
|
||||
</li>
|
||||
|
||||
<li class="location">
|
||||
<label>Location <span class="ui-icon ui-icon-help" id="spinner_location" style="display:inline-block;"></span></label>
|
||||
<input name="location" id="ca_location" type="text" />
|
||||
|
||||
<div id="sregion_location" class="tip">Preferred format is city, state, country (so for us, "Cambridge, Massachusetts, USA").</div>
|
||||
</li>
|
||||
|
||||
<li class="language">
|
||||
<label>Preferred Language <span class="ui-icon ui-icon-help" id="spinner_language" style="display:inline-block;"></span></label>
|
||||
|
||||
<input name="language" id="ca_language" type="text" />
|
||||
|
||||
<div id="sregion_language" class="tip">Please let us know what language you'd most like to see the content in (even if not your native). We're working on translations and internationalization.</div>
|
||||
</li>
|
||||
|
||||
<li class="terms">
|
||||
<label> <input name="terms_of_service" id="cb_terms_of_service" type="checkbox" value="terms_of_service" />I agree to the <a href="/t/tos.html">Terms of Service</a>*</label>
|
||||
</li>
|
||||
|
||||
<li class="honor-code">
|
||||
<label>
|
||||
<input name="honor_code" id="cb_honor_code" type="checkbox" value="honor_code" />I agree to the <a href="/t/honor.html">Honor Code</a>, summarized as:*</label>
|
||||
<ul>
|
||||
<li>Complete all mid-terms and final exams with only my own work.</li>
|
||||
<li>Maintain only one account, and not share the username or password.</li>
|
||||
<li>Not engage in any activities that would dishonestly improve my results, or improve or hurt those of others.</li>
|
||||
<li>Not post answers to problems that are being used to assess student performance.</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
<input name="create_account_button" id="create_account_button" type="submit" value="Create Account">
|
||||
</fieldset> </form>
|
||||
</div>
|
||||
8
templates/edit_circuit.html
Normal file
8
templates/edit_circuit.html
Normal file
@@ -0,0 +1,8 @@
|
||||
<div align="center">
|
||||
<form onsubmit="return submit_circuit('${name}');" action="" method="post">
|
||||
<!--input type="hidden" class="schematic" width="600" height="400" name="schematic" value="" /-->
|
||||
${ circuit_line }
|
||||
<input type="submit" value="save">
|
||||
<input type="hidden" name="csrfmiddlewaretoken" id="csrfmiddlewaretoken">
|
||||
</form>
|
||||
</div>
|
||||
25
templates/emails/welcome_body.txt
Normal file
25
templates/emails/welcome_body.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
MITx's prototype offering, 6.002x, is now open. To log in, visit
|
||||
|
||||
https://6002x.mitx.mit.edu
|
||||
|
||||
where you will find a login button at the top right-hand corner of the
|
||||
window.
|
||||
|
||||
Please make sure you're using the latest version of Google Chrome or
|
||||
Firefox. If you've forgotten your password, the log-in form has a
|
||||
place to reset it.
|
||||
|
||||
Once you log in, we recommend that you start the course by reviewing
|
||||
the "System Usage Sequence" in the Overview section, and the "6.002x
|
||||
At-a-Glance (Calendar)" handout under the Course Info tab. After you
|
||||
familiarize yourself with the various features of the MITx platform,
|
||||
you can jump right into the coursework by working on "Administrivia
|
||||
and Circuit Elements", the first Lecture Sequence in Week 1.
|
||||
|
||||
Thanks for joining us for the ride!
|
||||
|
||||
The 6.002x team
|
||||
|
||||
(Please note that this e-mail address does not receive e-mails --
|
||||
if you need assistance, please use the help section of the web
|
||||
site)
|
||||
1
templates/emails/welcome_subject.txt
Normal file
1
templates/emails/welcome_subject.txt
Normal file
@@ -0,0 +1 @@
|
||||
Welcome to 6.002x!
|
||||
8
templates/feedback_email.txt
Normal file
8
templates/feedback_email.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Feedback from: ${ user }
|
||||
E-mail: ${ email }
|
||||
Browser: ${ browser }
|
||||
url: ${ url }
|
||||
time: ${ time }
|
||||
Subject: ${ subject }
|
||||
Feedback:
|
||||
${ feedback }
|
||||
22
templates/gradebook.html
Normal file
22
templates/gradebook.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<%inherit file="main.html" />
|
||||
<%include file="navigation.html" args="active_page=''" />
|
||||
<section class="main-content">
|
||||
<div class="gradebook-wrapper">
|
||||
<section class="gradebook-content">
|
||||
<h1>Gradebook</h1>
|
||||
% for s in students:
|
||||
<h2><a href=/profile/${s['id']}>${s['username']}</a></h2>
|
||||
% for c in s['grade_info']['grade_summary']:
|
||||
<h3>${c['category']} </h3>
|
||||
<p>
|
||||
% if 'subscores' in c:
|
||||
% for ss in c['subscores']:
|
||||
<br>${ss['summary']}
|
||||
% endfor
|
||||
% endif
|
||||
</p>
|
||||
% endfor
|
||||
% endfor
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
50
templates/help.html
Normal file
50
templates/help.html
Normal file
@@ -0,0 +1,50 @@
|
||||
<%inherit file="main.html" />
|
||||
<%block name="title"><title>Help - MITx 6.002x</title></%block>
|
||||
|
||||
<%include file="navigation.html" args="active_page='help'"/>
|
||||
|
||||
<section class="help main-content">
|
||||
<h1>Help</h1>
|
||||
|
||||
<section class="self-help">
|
||||
<h2>Self-help</h2>
|
||||
|
||||
<ul>
|
||||
<li>Read
|
||||
the <a href="http://mitx.mit.edu/6002x-faq.html">FAQ</a>
|
||||
carefully</li>
|
||||
<li>Check the <a href="/info">course updates</a> -- we will
|
||||
announce major errors and issues there </li>
|
||||
<li>Check whether the issues has been asked on
|
||||
the <a href="/discussion">discussion forums</a>, and if not,
|
||||
ask</li>
|
||||
<li>Ask in the IRC channel (irc.mitx.mit.edu, channel #6002)]</li>
|
||||
<li>Check the <a href="/info">course handouts.</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="help-email">
|
||||
<h2>Help email</h2>
|
||||
<p> If you can't solve your problems with self-help, we have several
|
||||
e-mail addresses set up:</p>
|
||||
|
||||
<dl>
|
||||
<dt>System-related questions</dt>
|
||||
<dd><a href="mailto:technical@mitx.mit.edu">technical@mitx.mit.edu</a></dd>
|
||||
<dt>Content-related questions</dt>
|
||||
<dd><a href="mailto:content@mitx.mit.edu">content@mitx.mit.edu</a></dd>
|
||||
<dt>Bug reports</dt>
|
||||
<dd><a href="mailto:bugs@mitx.mit.edu">bugs@mitx.mit.edu</a></dd>
|
||||
<dt>Suggestions</dt>
|
||||
<dd><a href="mailto:suggestions@mitx.mit.edu">suggestions@mitx.mit.edu</a></dd>
|
||||
</dl>
|
||||
|
||||
<p> 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 <a href="http://www.mozilla.org/en-US/firefox/new/">Firefox</a>
|
||||
or <a href="https://www.google.com/chrome/">Chrome</a>, and
|
||||
include browser and version in your e-mail, as well as
|
||||
screenshots or other pertinent details. </p>
|
||||
</section>
|
||||
</section>
|
||||
17
templates/homework.html
Normal file
17
templates/homework.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<h1> ${ homework['name']} Test </h1>
|
||||
|
||||
<ol>
|
||||
% for problem in homework['problems']:
|
||||
<li>
|
||||
<h2>${ problem['name'] }</h2>
|
||||
|
||||
${ problem['html'] }
|
||||
|
||||
<section>
|
||||
<input type="hidden" name="problem_id" value="${ problem['name'] }">
|
||||
<input type="submit" value="Check">
|
||||
</section>
|
||||
</li>
|
||||
% endfor
|
||||
</ol>
|
||||
|
||||
49
templates/honor.html
Normal file
49
templates/honor.html
Normal file
@@ -0,0 +1,49 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<section class="honor-code">
|
||||
<div>
|
||||
<h1> Collaboration Policy </h1>
|
||||
|
||||
<p> By enrolling in a course on <i>MITx</i>, you are joining a
|
||||
special worldwide community of learners. The aspiration
|
||||
of <i>MITx</i> 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 <i>MITx</i> achieve this goal.
|
||||
|
||||
<p> <i>MITx</i> depends upon your motivation to learn the material
|
||||
and to do so with honesty. In order to participate
|
||||
in <i>MITx</i>, 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.
|
||||
|
||||
<div style="color:darkred;">
|
||||
<h2> <i>MITx</i> Honor Code Pledge</h2>
|
||||
|
||||
<p> By enrolling in an <i>MITx</i> course, I agree that I will:
|
||||
|
||||
<ul>
|
||||
<li> Complete all mid-terms and final exams with my own work
|
||||
and only my own work. I will not submit the work of any
|
||||
other person.
|
||||
<li> Maintain only one user account and not let anyone else
|
||||
use my username and/or password.
|
||||
<li> Not engage in any activity that would dishonestly improve
|
||||
my results, or improve or hurt the results of others.
|
||||
<li> Not post answers to problems that are being used to
|
||||
assess student performance.
|
||||
</ul>
|
||||
</div>
|
||||
<p> Unless otherwise indicated by the instructor of an <i>MITx</i>
|
||||
course, learners on <i>MITx</i> are encouraged to:
|
||||
<ul>
|
||||
<li> Collaborate with others on the lecture videos, exercises,
|
||||
homework and labs.
|
||||
<li> Discuss with others general concepts and materials in
|
||||
each course.
|
||||
<li> Present ideas and written work to fellow <i>MITx</i>
|
||||
learners or others for comment or criticism.
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
127
templates/index.html
Normal file
127
templates/index.html
Normal file
@@ -0,0 +1,127 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<%block name="title">MITx 6.002x: Circuits & Electronics</%block>
|
||||
<%block name="description">6.002x (Circuits and Electronics) is an experimental on-line adaptation of MIT's first undergraduate analog design course: 6.002.</%block>
|
||||
<%block name="keywords">MITx, circuits, electronics, EECS, electrical engineering, analog circuits, digital circuits, online learning, MIT, online laboratory, education, learners, undergraduate, certificate</%block>
|
||||
|
||||
<%block name="header_text">
|
||||
<section class="course">
|
||||
<section>
|
||||
<h1>Circuits & Electronics</h1>
|
||||
<h2>6.002x</h2>
|
||||
<a class="enroll" rel="leanModal" href="#enroll"><noscript>In order to</noscript> Enroll in 6.002x Circuits <span>&</span> Electronics <noscript>you need to have javascript enabled</noscript></a>
|
||||
</section>
|
||||
<p>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.</p>
|
||||
</section>
|
||||
</%block>
|
||||
|
||||
<%block name="header_class">course</%block>
|
||||
|
||||
<section class="index-content">
|
||||
<section class="about-course">
|
||||
|
||||
<section class="about-info">
|
||||
<h1>About 6.002x</h1>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="on-mitx">
|
||||
<h1>6.002x on <em>MITx</em></h1> <!-- Link doesn't need to be here, but there should be some way to get back to main MITx site -->
|
||||
|
||||
<p>If you successfully complete the course, you will receive an electronic certificate of accomplishment from <em>MITx</em>. This certificate will indicate that you earned it from <em>MITx’s</em> pilot course. In this prototype version, <em>MITx</em> will not require that you be tested in a testing center or otherwise have your identity certified in order to receive this certificate.</p>
|
||||
|
||||
<p>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 <a href="http://www.amazon.com/exec/obidos/ASIN/1558607358/ref=nosim/mitopencourse-20" target="_blank">Amazon</a>.</p>
|
||||
</section>
|
||||
|
||||
<section class="requirements">
|
||||
<h1> Requirements </h1>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p>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. </p>
|
||||
</section>
|
||||
|
||||
<section class="cta">
|
||||
<a class="enroll" rel="leanModal" href="#enroll"><noscript>In order to</noscript> Enroll in 6.002x Circuits & Electronics <noscript>you need to have javascript enabled</noscript></a>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="staff">
|
||||
<h1>About the course staff</h1>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<img src="/static/staff/agarwal-mit-news-small.jpg" alt="Anant Agarwal">
|
||||
<h2>Anant Agarwal</h2>
|
||||
<p>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.”</p></li>
|
||||
|
||||
<li>
|
||||
<img src="/static/staff/gjs-small.jpg" alt="Gerald Sussman">
|
||||
<h2>Gerald Sussman</h2>
|
||||
<p>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.</p></li>
|
||||
|
||||
<li>
|
||||
<img src="/static/staff/pmitros-small.jpg" alt="Piotr Mitros">
|
||||
<h2>Piotr Mitros</h2>
|
||||
<p>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.</p></li>
|
||||
</ul>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<div id="enroll" class="leanModal_box" name="enroll"><%include file="create_account.html" /></div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
|
||||
// TODO: Clean up as per http://stackoverflow.com/questions/169506/obtain-form-input-fields-using-jquery
|
||||
|
||||
/* Handles when the user hits 'enroll'. Grabs form data. Does AJAX.
|
||||
Either shows error, or shows success. */
|
||||
|
||||
$('form#enroll_form').submit(function(e) {
|
||||
e.preventDefault();
|
||||
var submit_data={};
|
||||
$.each($("[id^=ca_]"), function(index,value){
|
||||
submit_data[value.name]=value.value;
|
||||
});
|
||||
$.each($("[id^=cb_]"), function(index,value){
|
||||
submit_data[value.name]=value.checked;
|
||||
});
|
||||
|
||||
postJSON('/create_account',
|
||||
submit_data,
|
||||
function(json) {
|
||||
if(json.success) {
|
||||
$('#enroll').html(json.value);
|
||||
} else {
|
||||
$('#enroll_error').html(json.value).stop().css("background-color", "#933").animate({ backgroundColor: "#333"}, 2000);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
/* Activate stupid spinner drop-downs in enrollment form */
|
||||
var spinner_array=$("[id^=spinner_]");
|
||||
spinner_array.each(function(i) {
|
||||
var s=spinner_array[i];
|
||||
$("#"+s.id).click(function(){
|
||||
$("#sregion"+s.id.substring(7)).toggle();
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
/*$("sregion"+$("[id^=spinner_]")[1].id.substring(7)) */
|
||||
});
|
||||
|
||||
</script>
|
||||
15
templates/info.html
Normal file
15
templates/info.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<%inherit file="main.html" />
|
||||
<%block name="title"><title>Course Info - MITx 6.002x</title></%block>
|
||||
|
||||
<%include file="navigation.html" args="active_page='info'" />
|
||||
|
||||
<section class="main-content">
|
||||
<div class="info-wrapper">
|
||||
<section class="updates">
|
||||
<%include file="updates.html" />
|
||||
</section>
|
||||
<section class="handouts">
|
||||
<%include file="handouts.html" />
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
34
templates/login.html
Normal file
34
templates/login.html
Normal file
@@ -0,0 +1,34 @@
|
||||
<!-- TODO: http://docs.jquery.com/Plugins/Validation -->
|
||||
<div id="login_div">
|
||||
<header>
|
||||
<h1>Log in to MITx</h1>
|
||||
<p class="no-account">If you don’t have an account yet, <a href="#enroll" rel="leanModal">please enroll here</a></p>
|
||||
</header>
|
||||
<!--[if lte IE 9]>
|
||||
<p class="ie-warning">You are using a browser that is not supported by <em>MITx</em>, and you might not be able to complete pieces of the course. Please download the latest version of <a href="http://www.mozilla.org/en-US/firefox/new/">Firefox</a> or <a href="https://www.google.com/chrome">Chrome</a> to get the full experience.</p>
|
||||
<![endif]-->
|
||||
|
||||
<form id="login_form" method="post">
|
||||
<ol>
|
||||
<li>
|
||||
<label>E-mail*</label>
|
||||
<input name="email" id="li_email" type="email" required>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>Password*</label>
|
||||
<input name="password" id="li_password" type="password" required>
|
||||
</li>
|
||||
|
||||
<li class="remember">
|
||||
<label><input name="remember" id="remember" type="checkbox">Remember me</label>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
<input name="submit" id="login_button" type="submit" value="Log in">
|
||||
</form>
|
||||
|
||||
<div class="lost-password">
|
||||
<div id="lost_password"><a class="" rel="leanModal" href="#pwd_reset">Lost password?</a></div>
|
||||
</div>
|
||||
</div>
|
||||
139
templates/main.html
Normal file
139
templates/main.html
Normal file
@@ -0,0 +1,139 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<%block name="title"><title>MITx 6.002x</title></%block>
|
||||
|
||||
<link rel="stylesheet" href="${ settings.LIB_URL }jquery.treeview.css" type="text/css" media="all" />
|
||||
<link rel="stylesheet" href="/static/css/application.css" type="text/css" media="all" />
|
||||
|
||||
<script type="text/javascript" src="${ settings.LIB_URL }jquery-1.6.2.min.js"></script>
|
||||
<script type="text/javascript" src="${ settings.LIB_URL }jquery-ui-1.8.16.custom.min.js"></script>
|
||||
<script type="text/javascript" src="${ settings.LIB_URL }swfobject/swfobject.js"></script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="/static/js/html5shiv.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
tex2jax: {inlineMath: [["\\(","\\)"]],
|
||||
displayMath: [["\\[","\\]"]]}
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" src="${ settings.LIB_URL }mathjax-MathJax-c9db6ac/MathJax.js?config=TeX-AMS_HTML-full"></script>
|
||||
|
||||
<%block name="headextra"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="<%block name="bodyclass"/>">
|
||||
<!--[if lte IE 9]>
|
||||
<p class="ie-warning">You are using a browser that is not supported by <em>MITx</em>, and you might not be able to complete pieces of the course. Please download the latest version of <a href="http://www.mozilla.org/en-US/firefox/new/">Firefox</a> or <a href="https://www.google.com/chrome">Chrome</a> to get the full experience.</p>
|
||||
<![endif]-->
|
||||
|
||||
${self.body()}
|
||||
<%block name="bodyextra"/>
|
||||
|
||||
<footer>
|
||||
<!-- Template based on a design from http://www.dotemplate.com/ - Donated $10 (pmitros) so we don't need to include credit. -->
|
||||
<p> Copyright © 2012. MIT. <a href="/t/copyright.html">Some rights reserved.</a>
|
||||
</p>
|
||||
<nav>
|
||||
<ul class="social">
|
||||
<li class="linkedin">
|
||||
<a href="http://www.linkedin.com/groups/Friends-Alumni-MITx-4316538">Linked In</a>
|
||||
</li>
|
||||
<li class="twitter">
|
||||
<a href="https://twitter.com/#!/MyMITx">Twitter</a>
|
||||
</li>
|
||||
<li class="facebook">
|
||||
<a href="http://www.facebook.com/pages/MITx/378592442151504">Facebook</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="#feedback_div" rel="leanModal">Feedback</a></li>
|
||||
<li><a href="#calculator_div" rel="leanModal">Calculator</a></li>
|
||||
<li><a href="/s/help.html">Help</a></li>
|
||||
<li><a href="/logout">Log out</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</footer>
|
||||
|
||||
<div id="feedback_div" class="leanModal_box">
|
||||
<p>Found a bug? Got an idea for improving our system? Let us know.</p>
|
||||
|
||||
<form>
|
||||
<ol>
|
||||
<li><label>Subject:</label> <input type="text" id="feedback_subject"></li>
|
||||
<li><label>Feedback: </label><textarea id="feedback_message"></textarea></li>
|
||||
<li><input id="feedback_button" type="button" value="Submit"></li>
|
||||
</ol>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="calculator_div" class="leanModal_box">
|
||||
<form id="calculator">
|
||||
<input type="text" id="calculator_input">
|
||||
<input id="calculator_button" type="submit" value="=">
|
||||
<input type="text" id="calculator_output" readonly>
|
||||
</form>
|
||||
|
||||
<dl>
|
||||
<dt>Suffixes:</dt>
|
||||
<dd> %kMGTcmunp</dd>
|
||||
<dt>Operations:</dt>
|
||||
<dd>^ * / + - ()</dd>
|
||||
<dt>Functions:</dt>
|
||||
<dd>sin, cos, tan, sqrt, log10, log2, ln, arccos, arcsin, arctan, abs </dd>
|
||||
<dt>Constants</dt>
|
||||
<dd>e, pi</dd>
|
||||
|
||||
<!-- Students won't know what parallel means at this time. Complex numbers aren't well tested in the courseware, so we would prefer to not expose them. If you read the comments in the source, feel free to use them. If you run into a bug, please let us know. But we can't officially support them right now.
|
||||
|
||||
<dt>Unsupported:</dt> <dd>||, j </dd> -->
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="${ settings.LIB_URL }jquery.treeview.js"></script>
|
||||
<script type="text/javascript" src="/static/js/jquery.leanModal.min.js"></script>
|
||||
<script type="text/javascript" src="/static/js/jquery.cookie.js"></script>
|
||||
<script type="text/javascript" src="/static/js/video_player.js"></script>
|
||||
<script type="text/javascript" src="/static/js/schematic.js"></script>
|
||||
<script type="text/javascript" src="/static/js/cktsim.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
// Feedback form
|
||||
$(function() {
|
||||
$("#feedback_button").click(function(){
|
||||
postJSON("/send_feedback", {"subject":$("#feedback_subject").attr("value"),
|
||||
"url":document.URL,
|
||||
"message":$("#feedback_message").attr("value")},
|
||||
function(data){
|
||||
$("#feedback_subject").attr("value","");
|
||||
$("#feedback_message").attr("value","");
|
||||
$("#feedback_div").html("Feedback submitted. Thank you");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Calculator
|
||||
$(function() {
|
||||
$("form#calculator").submit(function(e){
|
||||
e.preventDefault();
|
||||
$.getJSON("/calculate", {"equation":$("#calculator_input").attr("value")},
|
||||
function(data){
|
||||
$("#calculator_output").attr("value",data.result);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$(function(){
|
||||
$("a[rel*=leanModal]").leanModal();
|
||||
});
|
||||
</script>
|
||||
|
||||
<%block name="js_extra"/>
|
||||
</body>
|
||||
</html>
|
||||
181
templates/marketing.html
Normal file
181
templates/marketing.html
Normal file
@@ -0,0 +1,181 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title><%block name="title">MITx: MIT's new online learning initiative</%block></title>
|
||||
|
||||
<meta name="description" content="<%block name="description">MITx will offer a portfolio of MIT courses for free to a virtual community of learners around the world</%block>" />
|
||||
|
||||
<meta name="keywords" content="<%block name="keywords">MITx, online learning, MIT, online laboratory, education, learners, undergraduate, certificate</%block>" />
|
||||
|
||||
<!--link rel="stylesheet" href="${ settings.LIB_URL }jquery.treeview.css" type="text/css" media="all" /-->
|
||||
<link rel="stylesheet" href="/static/css/marketing.css" type="text/css" media="all" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<!--[if lt IE 8]>
|
||||
<link rel="stylesheet" href="/static/css/marketing-ie.css" type="text/css" media="all" />
|
||||
<![endif]-->
|
||||
|
||||
<script type="text/javascript" src="${ settings.LIB_URL }jquery-1.6.2.min.js"></script>
|
||||
<script type="text/javascript" src="${ settings.LIB_URL }jquery-ui-1.8.16.custom.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/static/js/jquery.leanModal.min.js"></script>
|
||||
<!--script type="text/javascript" src="${ settings.LIB_URL }swfobject/swfobject.js"></script-->
|
||||
<!--script type="text/javascript" src="${ settings.LIB_URL }jquery.treeview.js"></script-->
|
||||
<!--script type="text/javascript" src="/static/js/video_player.js"></script-->
|
||||
<!-- <script type="text/javascript" src="/static/js/schematic.js"></script> -->
|
||||
|
||||
<script src="/static/js/html5shiv.js"></script>
|
||||
|
||||
|
||||
<%block name="headextra"/>
|
||||
|
||||
<script type="text/javascript">
|
||||
function getCookie(name) {
|
||||
var cookieValue = null;
|
||||
if (document.cookie && document.cookie != '') {
|
||||
var cookies = document.cookie.split(';');
|
||||
for (var i = 0; i < cookies.length; i++) {
|
||||
var cookie = jQuery.trim(cookies[i]);
|
||||
// Does this cookie string begin with the name we want?
|
||||
if (cookie.substring(0, name.length + 1) == (name + '=')) {
|
||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cookieValue;
|
||||
}
|
||||
|
||||
function postJSON(url, data, callback) {
|
||||
$.ajax({type:'POST',
|
||||
url: url,
|
||||
dataType: 'json',
|
||||
data: data,
|
||||
success: callback,
|
||||
headers : {'X-CSRFToken':getCookie('csrftoken')}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<%block name="header">
|
||||
<header class="announcement <%block name="header_class"/>">
|
||||
<div class="anouncement-wrapper">
|
||||
<%block name="header_nav">
|
||||
<nav>
|
||||
<h1><a href="http://mitx.mit.edu/">MITx</a></h1>
|
||||
% if settings.COURSEWARE_ENABLED:
|
||||
<%block name="login_area">
|
||||
<a rel="leanModal" class="login" href="#login">Log In</a>
|
||||
</%block>
|
||||
% endif
|
||||
</nav>
|
||||
</%block>
|
||||
|
||||
<%block name="header_text">
|
||||
<section>
|
||||
<h1><em>MITx</em></h1>
|
||||
<h2>MIT’s new online learning initiative</h2>
|
||||
</section>
|
||||
</%block>
|
||||
</div>
|
||||
</header>
|
||||
</%block>
|
||||
|
||||
${self.body()}
|
||||
<%block name="bodyextra"/>
|
||||
|
||||
<footer>
|
||||
<div class="footer-wrapper">
|
||||
<p> Copyright © 2012. MIT. <a href="/t/copyright.html">Some rights reserved.</a></p>
|
||||
|
||||
<ul>
|
||||
<li><a href="/t/tos.html">Terms of Service</a></li>
|
||||
<li><a href="/t/privacy.html">Privacy Policy</a></li>
|
||||
<li><a href="/t/honor.html">Honor Code</a></li>
|
||||
<li><a href="/t/mitx_help.html">Help</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class="social">
|
||||
<li class="linkedin">
|
||||
<a href="http://www.linkedin.com/groups/Friends-Alumni-MITx-4316538">Linked In</a>
|
||||
</li>
|
||||
<li class="twitter">
|
||||
<a href="https://twitter.com/#!/MyMITx">Twitter</a>
|
||||
</li>
|
||||
<li class="facebook">
|
||||
<a href="http://www.facebook.com/pages/MITx/378592442151504">Facebook</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
% if settings.COURSEWARE_ENABLED:
|
||||
<div id="login" class="leanModal_box"><%include file="login.html" /></div>
|
||||
% endif
|
||||
<div id="pwd_reset" class="leanModal_box"><%include file="password_reset_form.html" /></div>
|
||||
<div id="reset_done" class="leanModal_box"></div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
/* Handles when the user tries to log in. Grabs form data. Does AJAX.
|
||||
Either shows error, or redirects. */
|
||||
$('form#login_form').submit(function(e) {
|
||||
e.preventDefault();
|
||||
var submit_data={};
|
||||
$.each($("[id^=li_]"), function(index,value){
|
||||
submit_data[value.name]=value.value;
|
||||
});
|
||||
submit_data["remember"] = ($('#remember').attr("checked")? true : false);
|
||||
|
||||
postJSON('/login',
|
||||
submit_data,
|
||||
function(json) {
|
||||
if(json.success) {
|
||||
location.href="/info";
|
||||
} else if($('#login_error').length == 0) {
|
||||
$('#login_form').prepend('<div id="login_error">Email or password is incorrect.</div>');
|
||||
} else {
|
||||
$('#login_error').stop().css("background-color", "#933").animate({ backgroundColor: "#333"}, 2000);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
$('form#pwd_reset_form').submit(function(e) {
|
||||
e.preventDefault();
|
||||
var submit_data = {};
|
||||
submit_data['email'] = $('#id_email').val();
|
||||
postJSON('/password_reset/',
|
||||
submit_data,
|
||||
function(json){
|
||||
if (json.success) {
|
||||
$('#pwd_reset').html(json.value);
|
||||
} else {
|
||||
$('#pwd_error').html(json.error).stop().css("background-color", "#933").animate({ backgroundColor: "#333"}, 2000);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(function(){
|
||||
$("a[rel*=leanModal]").leanModal();
|
||||
|
||||
$("a.login").click(function(){
|
||||
$("#login_form #li_email").focus();
|
||||
});
|
||||
|
||||
$("a.enroll").click(function(){
|
||||
$("#enroll_form #ca_email").focus();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<%block name="js_extra"/>
|
||||
</body>
|
||||
</html>
|
||||
104
templates/mitx-overview.html
Normal file
104
templates/mitx-overview.html
Normal file
@@ -0,0 +1,104 @@
|
||||
<%inherit file="marketing.html" />
|
||||
<%block name="login_area">
|
||||
</%block>
|
||||
<section class="subpage">
|
||||
<div>
|
||||
|
||||
<h1> <i>MITx</i> Advances MIT’s Vision for Online Learning</h1>
|
||||
|
||||
<p> 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 <i>MITx</i>, an initiative to
|
||||
offer exciting, challenging and enriching courses to anyone,
|
||||
anywhere, who has the motivation and ability to engage MIT’s
|
||||
educational content.</p>
|
||||
|
||||
<p> Ten years ago, MIT
|
||||
launched <a href="http://ocw.mit.edu/index.htm">OpenCourseWare</a>,
|
||||
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. <i>MITx</i> is the next step
|
||||
in opening MIT’s educational doors to the world. Through OCW and
|
||||
<i>MITx</i>, MIT invites the world to join it in the passion, hard work and
|
||||
thrill of learning and discovery.</p>
|
||||
|
||||
<h2><i>MITx</i> will e-publish interactive online courses that:</h2>
|
||||
|
||||
<ul>
|
||||
<li>Empower students to learn at their own pace;</li>
|
||||
<li>Offer online laboratories where students can experiment and apply their learning;</li>
|
||||
<li>Connect students to each other in online discussion groups and wiki-based collaborative learning; </li>
|
||||
<li>Challenge learners with MIT-rigor course materials; and</li>
|
||||
<li>Assess individual student learning as the student progresses through the course.</li>
|
||||
</ul>
|
||||
|
||||
<p> <i>MITx</i> students who demonstrate their mastery of a subject can earn
|
||||
a certificate of completion awarded by <i>MITx</i>.</p>
|
||||
|
||||
<p> <i>MITx</i> 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.</p>
|
||||
|
||||
<h2> Why Is MIT Creating <i>MITx</i>?</h2>
|
||||
|
||||
<p> 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.</p>
|
||||
|
||||
<p> 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 <i>MITx</i>
|
||||
aspiration to capture and encourage the energy of our faculty in
|
||||
creating new online teaching and learning tools. </p>
|
||||
|
||||
<p> Once up and running, <i>MITx</i> will be a laboratory for online
|
||||
learning. Whether <i>MITx</i> learners are MIT’s on-campus students,
|
||||
university students elsewhere, or independent learners, <i>MITx</i> 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 <i>MITx</i> and our on-campus teaching. </p>
|
||||
|
||||
<p> Access to higher education. <i>MITx</i> 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 <i>MITx</i>, MIT educational content can reach, augment, and enrich
|
||||
the education and livelihood of many learners who cannot attend
|
||||
MIT. </p>
|
||||
|
||||
<p> <i>MITx</i> 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
|
||||
<i>MITx</i>. </p>
|
||||
|
||||
<p> Advancing the public good. <i>MITx</i> 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.</p>
|
||||
|
||||
<p> 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. <i>MITx</i> is our contribution. </p>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
118
templates/mitx_global.html
Normal file
118
templates/mitx_global.html
Normal file
@@ -0,0 +1,118 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<%block name="header_class">home</%block>
|
||||
|
||||
<section class="index-content">
|
||||
<section class="about">
|
||||
|
||||
<section class="intro">
|
||||
<section class="intro-text">
|
||||
<p><em>MITx</em> 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.</p>
|
||||
<p>The first <em>MITx</em> 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.</p>
|
||||
</section>
|
||||
|
||||
<section class="intro-video">
|
||||
<a id="video-overlay-link" rel="leanModal" href="#video-overlay"><img src="/static/images/video-image.png" id="video-img" alt="Link to MITx introduction video" /><span> Watch intro video</span></a>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="features">
|
||||
<h2><em>MIT<span>x</span></em> courses will be offered on an online learning platform that:</h2>
|
||||
|
||||
<ul>
|
||||
<li>organizes and presents course material to enable students to learn worldwide</li>
|
||||
<li>features interactive instruction, online laboratories and student-to-student and student-to-professor communication</li>
|
||||
<li>allows for the individual assessment of any student’s work and allows students who demonstrate their mastery of subjects to earn certificates awarded by <em>MITx</em></li>
|
||||
<li>operates on an open-source, scalable software infrastructure in order to make it continuously improving and readily available to other educational institutions, such as universities and K-12 school systems.</li>
|
||||
</ul>
|
||||
|
||||
<p><strong>Press & links:</strong> <a href="/6002x-press-release.html">6.002x Press Release</a>, <a href="/6002x-faq.html">6.002x FAQ</a>, <a href="/mitx-overview.html">MITx overview</a>, <a href="http://www.boston.com/news/local/massachusetts/articles/2011/12/19/mit_to_launch_online_only_graded_courses_free_to_all/?page=full" target="_blank">Boston Globe</a>, <a href="http://www.nytimes.com/2011/12/19/education/mit-expands-free-online-courses-offering-certificates.html?_r=3&hpw=" target="_blank">New York Times</a>, <a href="http://web.mit.edu/newsoffice/2011/mitx-education-initiative-1219.html" target="_blank">MIT Press Release</a>, <a href="http://web.mit.edu/newsoffice/2011/mitx-faq-1219" target="_blank"><em>MITx</em> FAQ</a>, <a href="http://ocw.mit.edu/index.htm" target="_blank">OpenCourseWare</a></p>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="course">
|
||||
<hgroup>
|
||||
<h1>Spring 2012 Course offering</h1>
|
||||
<h2>Circuits and Electronics</h2>
|
||||
<h3>6.002x</h3>
|
||||
</hgroup>
|
||||
|
||||
<p>
|
||||
<a href="http://6002x.mitx.mit.edu/" class="more-info">More information <span>&</span> Enroll <span class="arrow">‣</span></a>
|
||||
</p>
|
||||
|
||||
<p>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 <em>MITx</em>.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<div id="video-overlay" class="leanModal_box">
|
||||
<iframe id="player" type="text/html" width="560" height="390" src="http://www.youtube.com/embed/p2Q6BrNhdh8?enablejsapi=1" frameborder="0">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<%block name="js_extra">
|
||||
<script>
|
||||
|
||||
var player;
|
||||
function onYouTubePlayerAPIReady() {
|
||||
player = new YT.Player('player', {
|
||||
});
|
||||
}
|
||||
|
||||
$(function() {
|
||||
|
||||
var tag = document.createElement('script');
|
||||
tag.src = "http://www.youtube.com/player_api";
|
||||
var firstScriptTag = document.getElementsByTagName('script')[0];
|
||||
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
|
||||
|
||||
$("a#video-overlay-link").click(function(){
|
||||
player.playVideo();
|
||||
$("a.modal_close, #lean_overlay").click(function(){
|
||||
player.pauseVideo();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// TODO: Clean up as per http://stackoverflow.com/questions/169506/obtain-form-input-fields-using-jquery
|
||||
|
||||
/* Handles when the user hits 'enroll'. Grabs form data. Does AJAX.
|
||||
Either shows error, or shows success. */
|
||||
|
||||
$('#create_account_button').click(function() {
|
||||
var submit_data={};
|
||||
$.each($("[id^=ca_]"), function(index,value){
|
||||
submit_data[value.name]=value.value;
|
||||
});
|
||||
$.each($("[id^=cb_]"), function(index,value){
|
||||
submit_data[value.name]=value.checked;
|
||||
});
|
||||
|
||||
postJSON('/create_account',
|
||||
submit_data,
|
||||
function(json) {
|
||||
if(json.success) {
|
||||
$('#enroll').html(json.value);
|
||||
} else {
|
||||
$('#enroll_error').html(json.value);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
/* Activate stupid spinner drop-downs in enrollment form */
|
||||
var spinner_array=$("[id^=spinner_]");
|
||||
spinner_array.each(function(i) {
|
||||
var s=spinner_array[i];
|
||||
$("#"+s.id).click(function(){
|
||||
$("#sregion"+s.id.substring(7)).toggle();
|
||||
});
|
||||
})
|
||||
|
||||
/*$("sregion"+$("[id^=spinner_]")[1].id.substring(7)) */
|
||||
});
|
||||
|
||||
</script>
|
||||
</%block>
|
||||
28
templates/mitx_help.html
Normal file
28
templates/mitx_help.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<section class="tos">
|
||||
<div>
|
||||
<section class="help-email">
|
||||
<h2>Help & Feedback</h2>
|
||||
<p> If run into problems signing up for the web site which you
|
||||
cannot resolve on your own, please check
|
||||
the <a href="http://mitx.mit.edu/6002x-faq.html">Frequently
|
||||
Asked Questions</a>. If you find a bug or other issues, you can
|
||||
reach us at:</p>
|
||||
<dl>
|
||||
<dt>System-related questions</dt>
|
||||
<dd><a href="mailto:technical@mitx.mit.edu">technical@mitx.mit.edu</a> -- For technical questions, please make sure you are using a current version of <a href="http://www.mozilla.org/en-US/firefox/new/">Firefox</a> or <a href="https://www.google.com/chrome/">Chrome</a>, and include browser and version in your e-mail, as well as screenshots or other pertinent details. </dd>
|
||||
<dt>Content-related questions</dt>
|
||||
<dd><a href="mailto:content@mitx.mit.edu">content@mitx.mit.edu</a></dd>
|
||||
<dt>Bug reports</dt>
|
||||
<dd><a href="mailto:bugs@mitx.mit.edu">bugs@mitx.mit.edu</a></dd>
|
||||
<dt>Suggestions</dt>
|
||||
<dd><a href="mailto:suggestions@mitx.mit.edu">suggestions@mitx.mit.edu</a></dd>
|
||||
</dl>
|
||||
|
||||
<p> Please bear in mind that while we read them, we do not expect to
|
||||
have time to respond to all e-mails.</p>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
20
templates/navigation.html
Normal file
20
templates/navigation.html
Normal file
@@ -0,0 +1,20 @@
|
||||
<%page args="active_page" />
|
||||
<div class="header-wrapper">
|
||||
<header>
|
||||
<hgroup>
|
||||
<h1><em>MITx</em></h1>
|
||||
<h2><a href="/courseware">Circuits and Electronics</a></h2>
|
||||
</hgroup>
|
||||
|
||||
<nav class="${active_page}">
|
||||
<ul class="coursenav">
|
||||
<li class="courseware"><a href="/courseware">Courseware</a></li>
|
||||
<li class="info"><a href="/info">Course Info</a></li>
|
||||
<li class="book"><a href="/book">Textbook</a></li>
|
||||
<li class="discussion"><a href="/discussion/questions">Discussion</a></li>
|
||||
<li class="wiki"><a href="/wiki/view">Wiki</a></li>
|
||||
<li class="profile"><a href="/profile">Profile</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
</div>
|
||||
10
templates/password_reset_form.html
Normal file
10
templates/password_reset_form.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<h1>Password reset</h1>
|
||||
|
||||
<p>Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one.</p>
|
||||
|
||||
<form id="pwd_reset_form">
|
||||
<div id="pwd_error"></div>
|
||||
<label for="id_email">E-mail address:</label>
|
||||
<input id="id_email" type="email" name="email" maxlength="75" />
|
||||
<input type="submit" id="pwd_reset_button" value="Reset my password" />
|
||||
</form>
|
||||
198
templates/privacy.html
Normal file
198
templates/privacy.html
Normal file
@@ -0,0 +1,198 @@
|
||||
<%inherit file="marketing.html" />
|
||||
|
||||
<section class="privacy-policy">
|
||||
<div>
|
||||
<h1>Privacy Policy</h1>
|
||||
|
||||
<h2>Confidentiality & Security of Personally
|
||||
Identifiable Information</h2>
|
||||
|
||||
<p>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. </p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<h2>Usernames and Postings </h2>
|
||||
|
||||
<p>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).</p>
|
||||
|
||||
<h2>What You Consent to by Using Our Site</h2>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<h2>Information We Collect and How We Use It </h2>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p>Among other things, we may use the information that you provide
|
||||
(including your Personally Identifiable Information) in connection
|
||||
with the following:</p>
|
||||
|
||||
<ul>
|
||||
<li>To help us improve <i>MITx</i> offerings, both individually
|
||||
(e.g. by course staff when working with a student) and in
|
||||
aggregate, and to individualize the experience and to evaluate
|
||||
the access and use of the Site and the impact of <i>MITx</i> on
|
||||
the worldwide educational community.
|
||||
</li>
|
||||
<li>For purposes of scientific research, particularly, for
|
||||
example, in the areas of cognitive science and education. </li>
|
||||
<li>For the purpose for which you specifically provided
|
||||
the personal information, for example to respond to a specific inquiry or
|
||||
provide you the specific course and/or services you select. </li>
|
||||
<li>To track both individual and aggregate attendance,
|
||||
progress and completion of an online course, and to analyze statistics on
|
||||
student performance and how students learn. </li>
|
||||
<li>To monitor and detect violations of the Honor Code, the
|
||||
Terms of Service, as well as other misuses and potential misuses of the
|
||||
site. </li>
|
||||
<li>To publish information gathered about <i>MITx</i>
|
||||
access, use, impact, and student performance but only as non-personally
|
||||
identifiable data.</li>
|
||||
<li>To send you updates about online courses offered by <i>MITx</i>
|
||||
or other MIT events or to send you email messages about Site maintenance
|
||||
or updates.</li>
|
||||
<li>To archive this information and/or use it for future
|
||||
communications with you.</li>
|
||||
<li>As otherwise described to you at the point of
|
||||
collection. </li>
|
||||
</ul>
|
||||
|
||||
<p> In addition to the above situations where your information may be
|
||||
shared with others, there is also the possibility that <i>MITx</i>
|
||||
will affiliate with other educational institutions and/or
|
||||
that <i>MITx</i> 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.
|
||||
|
||||
<h2>Sharing with Third Parties</h2>
|
||||
|
||||
<p>We may share the information we collect with third parties
|
||||
as follows:</p>
|
||||
|
||||
<ul>
|
||||
<li> With service providers or
|
||||
contractors that perform certain functions on our behalf, including processing
|
||||
information that you provide to us on the Site, operating the Site or portions
|
||||
of it, or in connection with other aspects of <i>MITx</i> services. These
|
||||
service providers and contractors will be obligated to keep your information
|
||||
confidential.</p>
|
||||
|
||||
<li> With all users and other visitors
|
||||
to the Site, to the extent that you submit post comments or other information
|
||||
to a portion of the Site designed for public communications. As provided in the
|
||||
Terms of Service, we may provide those postings to students in future offerings
|
||||
of the course, either within the context of the forums, the courseware, or
|
||||
otherwise, for marketing purposes, or in any other way. If we do use your postings,
|
||||
we will use them without your real name and e-mail (except with explicit
|
||||
permission), but we may use your username. </p>
|
||||
|
||||
<li>To connect you to other users of the Site. For instance, we
|
||||
may recommend specific study partners, or connect potential student
|
||||
mentees and mentors. In such cases, we may use all information
|
||||
collected to determine who to connect you to, but we will only connect
|
||||
you by username, and not disclose your real name or e-mail address to
|
||||
your contact. </p>
|
||||
|
||||
<li> To respond to subpoenas, court orders, or other legal process, in
|
||||
response to a request for cooperation from law enforcement or another
|
||||
government agency, to investigate, prevent, or take action regarding
|
||||
illegal activities, suspected fraud, or to enforce our user agreement
|
||||
or privacy policy, or to protect our rights or the rights of
|
||||
others.</p>
|
||||
|
||||
<li> As otherwise described to you at the point of collection or
|
||||
pursuant to your consent. For example, from time to time, we may ask
|
||||
your permission to use your Personally Identifiable Information in
|
||||
other ways. In the future, <i>MITx</i> may have an alumni association,
|
||||
resume book, etc. We may offer services where it is possible to
|
||||
verify <i>MITx</i> credentials. </p>
|
||||
|
||||
<li> For integration with third party services. Videos and other
|
||||
content may be hosted on YouTube and other web sites not controlled
|
||||
by <i>MITx</i>. We may provide links and other integration with social
|
||||
networks, and other sites. Those web sites are guided by their own
|
||||
privacy policies. </p>
|
||||
</ul>
|
||||
|
||||
<h2>Personalization and Pedagogical Improvements</h2>
|
||||
|
||||
<p>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. </p>
|
||||
|
||||
<h2>Changing Our Privacy Policy</h2>
|
||||
|
||||
<p>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. </p>
|
||||
|
||||
<h2>Privacy Concerns</h2>
|
||||
|
||||
<p>If you have privacy concerns, or have disclosed data you would
|
||||
prefer to keep private, please contact us
|
||||
at <a href="mailto:privacy@mitx.mit.edu">privacy@mitx.mit.edu</a>. </p>
|
||||
|
||||
<p> Effective Date: February 6, 2012
|
||||
|
||||
</div>
|
||||
</section>
|
||||
25
templates/problem.html
Normal file
25
templates/problem.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<h2>${ problem['name'] }</h2>
|
||||
|
||||
<section class="problem">
|
||||
${ problem['html'] }
|
||||
|
||||
<section class="action">
|
||||
<input type="hidden" name="problem_id" value="${ problem['name'] }">
|
||||
|
||||
% if check_button:
|
||||
<input id="check_${ id }" type="button" value="Check ${ attempts }" >
|
||||
% endif
|
||||
% if reset_button:
|
||||
<input id="reset_${ id }" type="button" value="Reset ${ attempts }" >
|
||||
% endif
|
||||
% if save_button:
|
||||
<input id="save_${ id }" type="button" value="Save" >
|
||||
% endif
|
||||
% if answer_available:
|
||||
<input id="show_${ id }" type="button" value="Show Answer" >
|
||||
% endif
|
||||
% if explain :
|
||||
<a href="/courseware/6.002_Spring_2012/${ explain }" class="new-page">Explanation</a>
|
||||
% endif
|
||||
</section>
|
||||
</section>
|
||||
69
templates/problem.js
Normal file
69
templates/problem.js
Normal file
@@ -0,0 +1,69 @@
|
||||
function ${ id }_load() {
|
||||
$('#main_${ id }').load('${ ajax_url }problem_get?id=${ id }',
|
||||
function() {
|
||||
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
|
||||
update_schematics();
|
||||
|
||||
$('#check_${ id }').click(function() {
|
||||
$("input.schematic").each(function(index,element){ element.schematic.update_value(); });
|
||||
var submit_data={};
|
||||
$.each($("[id^=input_${ id }_]"), function(index,value){
|
||||
submit_data[value.id]=value.value;
|
||||
});
|
||||
postJSON('/modx/problem/${ id }/problem_check',
|
||||
submit_data,
|
||||
function(json) {
|
||||
switch(json.success) {
|
||||
case 'incorrect': // Worked, but answer not
|
||||
case 'correct':
|
||||
${ id }_load();
|
||||
//alert("!!"+json.success);
|
||||
break;
|
||||
default:
|
||||
alert(json.success);
|
||||
}
|
||||
});
|
||||
log_event('problem_check', submit_data);
|
||||
});
|
||||
|
||||
$('#reset_${ id }').click(function() {
|
||||
var submit_data={};
|
||||
$.each($("[id^=input_${ id }_]"), function(index,value){
|
||||
submit_data[value.id]=value.value;
|
||||
});
|
||||
|
||||
postJSON('/modx/problem/${ id }/problem_reset', {'id':'${ id }'}, function(json) {
|
||||
${ id }_load();
|
||||
});
|
||||
log_event('problem_reset', submit_data);
|
||||
});
|
||||
|
||||
$('#show_${ id }').click(function() {
|
||||
postJSON('/modx/problem/${ id }/problem_show', {}, function(data) {
|
||||
for (var key in data) {
|
||||
$("#answer_"+key).text(data[key]);
|
||||
}
|
||||
});
|
||||
|
||||
log_event('problem_show', {'problem':'${ id }'});
|
||||
});
|
||||
|
||||
$('#save_${ id }').click(function() {
|
||||
$("input.schematic").each(function(index,element){ element.schematic.update_value(); });
|
||||
var submit_data={};
|
||||
$.each($("[id^=input_${ id }_]"), function(index,value){
|
||||
submit_data[value.id]=value.value;});
|
||||
postJSON('/modx/problem/${ id }/problem_save',
|
||||
submit_data, function(data){
|
||||
if(data.success) {
|
||||
alert('Saved');
|
||||
}}
|
||||
);
|
||||
log_event('problem_save', submit_data);
|
||||
});
|
||||
}
|
||||
);}
|
||||
|
||||
$(function() {
|
||||
${ id }_load();
|
||||
});
|
||||
1
templates/problem_ajax.html
Normal file
1
templates/problem_ajax.html
Normal file
@@ -0,0 +1 @@
|
||||
<section id="main_${id}" class="problems-wrapper"></section>
|
||||
168
templates/profile.html
Normal file
168
templates/profile.html
Normal file
@@ -0,0 +1,168 @@
|
||||
<%inherit file="main.html" />
|
||||
<%block name="title"><title>Profile - MITx 6.002x</title></%block>
|
||||
|
||||
<%!
|
||||
from django.core.urlresolvers import reverse
|
||||
%>
|
||||
|
||||
<%block name="headextra">
|
||||
<script type="text/javascript" src="/static/js/flot/jquery.flot.js"></script>
|
||||
<script type="text/javascript" src="/static/js/flot/jquery.flot.stack.js"></script>
|
||||
<script type="text/javascript" src="/static/js/flot/jquery.flot.symbol.js"></script>
|
||||
<script>
|
||||
<%include file="profile_graphs.js"/>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var loc=true; // Activate on clicks? Not if already clicked.
|
||||
var lang=true;
|
||||
$(function() {
|
||||
$("#change_location").click(function() {
|
||||
$(this).hide();
|
||||
|
||||
log_event("profile", {"type":"location_show", "old":$("#location_sub").text()});
|
||||
|
||||
if(loc) {
|
||||
$("#description").html('<div>'+
|
||||
"Preferred format is city, state, country (so for us, "+
|
||||
""Cambridge, Massachusetts, USA"), but give "+
|
||||
"as much or as little detail as you want. </div>");
|
||||
|
||||
loc=false;
|
||||
|
||||
$("#location_sub").html('<form>'+'<input id="id_loc_text" type="text" name="loc_text" />'+
|
||||
'<input type="submit" id="change_loc_button" value="Save" />'+'</form>');
|
||||
|
||||
$("#change_loc_button").click(function() {
|
||||
$("#change_location").show();
|
||||
|
||||
postJSON('/change_setting', {'location':$("#id_loc_text").attr("value")}, function(json) {
|
||||
$("#location_sub").text(json.location);
|
||||
loc=true;
|
||||
$("#description").html("");
|
||||
log_event("profile", {"type":"location_change", "new":json.location});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$("#change_language").click(function() {
|
||||
$(this).hide();
|
||||
log_event("profile", {"type":"language_show", "old":$("#language_sub").text()});
|
||||
|
||||
if(lang) {
|
||||
lang=false;
|
||||
$("#language_sub").html('<form>'+'<input id="id_lang_text" type="text" name="lang_text" />'+
|
||||
'<input type="submit" id="change_lang_button" value="Save" />'+'</form>');
|
||||
$("#change_lang_button").click(function() {
|
||||
$("#change_language").show();
|
||||
postJSON('/change_setting', {'language':$("#id_lang_text").attr("value")}, function(json) {
|
||||
$("#language_sub").text(json.language);
|
||||
lang=true;
|
||||
$("#description").html("");
|
||||
log_event("profile", {"type":"language_change", "new":json.language});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('#change_password').click(function(){
|
||||
$('.modal').trigger('click');
|
||||
log_event("profile", {"type":"password_show"});
|
||||
});
|
||||
|
||||
$('#pwd_reset_button').click(function() {
|
||||
$.post('/password_reset/',{ "csrfmiddlewaretoken" : "${ csrf }",
|
||||
"email" : $('#id_email').val()}, function(data){
|
||||
$("#password_reset_complete_link").click();
|
||||
log_event("profile", {"type":"password_send"});
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</%block>
|
||||
|
||||
|
||||
<%include file="navigation.html" args="active_page='profile'" />
|
||||
|
||||
<section class="main-content">
|
||||
<div class="profile-wrapper">
|
||||
|
||||
<section class="course-info">
|
||||
<h1>Course Progress</h1>
|
||||
|
||||
<div id="grade-detail-graph"></div>
|
||||
|
||||
<ol class="chapters">
|
||||
%for chapter in chapters:
|
||||
%if not chapter['chapter'] == "hidden":
|
||||
<li>
|
||||
<h2><a href="${reverse('courseware_chapter', args=format_url_params([chapter['course'], chapter['chapter']])) }">
|
||||
${ chapter['chapter'] }</a></h2>
|
||||
|
||||
<ol class="sections">
|
||||
%for section in chapter['sections']:
|
||||
<li>
|
||||
<%
|
||||
earned = section['section_total'][0]
|
||||
total = section['section_total'][1]
|
||||
percentageString = "{0:.0%}".format( float(earned)/total) if earned > 0 else ""
|
||||
%>
|
||||
|
||||
<h3><a href="${reverse('courseware_section', args=format_url_params([chapter['course'], chapter['chapter'], section['section']])) }">
|
||||
${ section['section'] }</a> ${"({0:g}/{1:g}) {2}".format( earned, total, percentageString )}</h3>
|
||||
${section['subtitle']}
|
||||
%if 'due' in section and section['due']!="":
|
||||
due ${section['due']}
|
||||
%endif
|
||||
|
||||
%if len(section['scores']) > 0:
|
||||
<ol class="scores">
|
||||
${ "Problem Scores: " if section['graded'] else "Practice Scores: "}
|
||||
%for score in section['scores']:
|
||||
<li class="score">${"{0:g}/{1:g}".format(score[0],score[1])}</li>
|
||||
%endfor
|
||||
</ol>
|
||||
%endif
|
||||
|
||||
</li> <!--End section-->
|
||||
%endfor
|
||||
</ol> <!--End sections-->
|
||||
</li> <!--End chapter-->
|
||||
%endif
|
||||
%endfor
|
||||
</ol> <!--End chapters-->
|
||||
</section>
|
||||
|
||||
<section class="user-info">
|
||||
|
||||
<h1>${name}</h1>
|
||||
|
||||
<ul>
|
||||
<li>Forum name: <strong>${username}</strong></li>
|
||||
<li>E-mail: <strong>${email}</strong></li>
|
||||
<li>
|
||||
Location: <div id="location_sub">${location}</div><div id="description"></div> <a href="#" id="change_location">Edit</a>
|
||||
</li>
|
||||
<li>
|
||||
Language: <div id="language_sub">${language}</div> <a href="#" id="change_language">Edit</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div id="change_password_pop">
|
||||
<h2>Password change</h2>
|
||||
<p>We'll e-mail a password reset link to ${email}.</p>
|
||||
|
||||
<input id="id_email" type="hidden" name="email" maxlength="75" value="${email}" />
|
||||
<input type="submit" id="pwd_reset_button" value="Reset Password" />
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="password_reset_complete" class="leanModal_box">
|
||||
<a href="#password_reset_complete" rel="leanModal" id="password_reset_complete_link"></a>
|
||||
<h1>Password Reset Email Sent</h1>
|
||||
An email has been sent to ${email}. Follow the link in the email to change your password.
|
||||
</div>
|
||||
164
templates/profile_graphs.js
Normal file
164
templates/profile_graphs.js
Normal file
@@ -0,0 +1,164 @@
|
||||
<%!
|
||||
import json
|
||||
%>
|
||||
|
||||
$(function () {
|
||||
function showTooltip(x, y, contents) {
|
||||
$('<div id="tooltip">' + contents + '</div>').css( {
|
||||
position: 'absolute',
|
||||
display: 'none',
|
||||
top: y + 5,
|
||||
left: x + 5,
|
||||
border: '1px solid #000',
|
||||
padding: '4px 6px',
|
||||
color: '#fff',
|
||||
'background-color': '#333',
|
||||
opacity: 0.90
|
||||
}).appendTo("body").fadeIn(200);
|
||||
}
|
||||
|
||||
/* -------------------------------- Grade detail bars -------------------------------- */
|
||||
|
||||
<%
|
||||
colors = ["#b72121", "#600101", "#666666", "#333333"]
|
||||
|
||||
tickIndex = 1
|
||||
sectionSpacer = 0.5
|
||||
sectionIndex = 0
|
||||
|
||||
series = []
|
||||
ticks = [] #These are the indices and x-axis labels for the data
|
||||
bottomTicks = [] #Labels on the bottom
|
||||
detail_tooltips = {} #This an dictionary mapping from 'section' -> array of detail_tooltips
|
||||
droppedScores = [] #These are the datapoints to indicate assignments which aren't factored into the total score
|
||||
dropped_score_tooltips = []
|
||||
|
||||
for section in grade_summary:
|
||||
if 'subscores' in section: ##This is for sections like labs or homeworks, with several smaller components and a total
|
||||
series.append({
|
||||
'label' : section['category'],
|
||||
'data' : [[i + tickIndex, score['percentage']] for i,score in enumerate(section['subscores'])],
|
||||
'color' : colors[sectionIndex]
|
||||
})
|
||||
|
||||
ticks += [[i + tickIndex, score['label'] ] for i,score in enumerate(section['subscores'])]
|
||||
bottomTicks.append( [tickIndex + len(section['subscores'])/2, section['category']] )
|
||||
detail_tooltips[ section['category'] ] = [score['summary'] for score in section['subscores']]
|
||||
|
||||
droppedScores += [[tickIndex + index, 0.05] for index in section['dropped_indices']]
|
||||
|
||||
dropExplanation = "The lowest {0} {1} scores are dropped".format( len(section['dropped_indices']), section['category'] )
|
||||
dropped_score_tooltips += [dropExplanation] * len(section['dropped_indices'])
|
||||
|
||||
|
||||
tickIndex += len(section['subscores']) + sectionSpacer
|
||||
|
||||
|
||||
category_total_label = section['category'] + " Total"
|
||||
series.append({
|
||||
'label' : category_total_label,
|
||||
'data' : [ [tickIndex, section['totalscore']['score']] ],
|
||||
'color' : colors[sectionIndex]
|
||||
})
|
||||
|
||||
ticks.append( [tickIndex, section['totallabel']] )
|
||||
detail_tooltips[category_total_label] = [section['totalscore']['summary']]
|
||||
else:
|
||||
series.append({
|
||||
'label' : section['category'],
|
||||
'data' : [ [tickIndex, section['totalscore']['score']] ],
|
||||
'color' : colors[sectionIndex]
|
||||
})
|
||||
|
||||
ticks.append( [tickIndex, section['totallabel']] )
|
||||
detail_tooltips[section['category']] = [section['totalscore']['summary']]
|
||||
|
||||
tickIndex += 1 + sectionSpacer
|
||||
sectionIndex += 1
|
||||
|
||||
|
||||
detail_tooltips['Dropped Scores'] = dropped_score_tooltips
|
||||
|
||||
## ----------------------------- Grade overviewew bar ------------------------- ##
|
||||
totalWeight = 0.0
|
||||
sectionIndex = 0
|
||||
totalScore = 0.0
|
||||
overviewBarX = tickIndex
|
||||
|
||||
for section in grade_summary:
|
||||
weighted_score = section['totalscore']['score'] * section['weight']
|
||||
summary_text = "{0} - {1:.1%} of a possible {2:.0%}".format(section['category'], weighted_score, section['weight'])
|
||||
|
||||
weighted_category_label = section['category'] + " - Weighted"
|
||||
|
||||
if section['totalscore']['score'] > 0:
|
||||
series.append({
|
||||
'label' : weighted_category_label,
|
||||
'data' : [ [overviewBarX, weighted_score] ],
|
||||
'color' : colors[sectionIndex]
|
||||
})
|
||||
|
||||
detail_tooltips[weighted_category_label] = [ summary_text ]
|
||||
sectionIndex += 1
|
||||
totalWeight += section['weight']
|
||||
totalScore += section['totalscore']['score'] * section['weight']
|
||||
|
||||
ticks += [ [overviewBarX, "Total"] ]
|
||||
tickIndex += 1 + sectionSpacer
|
||||
%>
|
||||
|
||||
var series = ${ json.dumps(series) };
|
||||
var ticks = ${ json.dumps(ticks) };
|
||||
var bottomTicks = ${ json.dumps(bottomTicks) };
|
||||
var detail_tooltips = ${ json.dumps(detail_tooltips) };
|
||||
var droppedScores = ${ json.dumps(droppedScores) };
|
||||
|
||||
//Alwasy be sure that one series has the xaxis set to 2, or the second xaxis labels won't show up
|
||||
series.push( {label: 'Dropped Scores', data: droppedScores, points: {symbol: "cross", show: true, radius: 3}, bars: {show: false}, color: "#333"} );
|
||||
|
||||
var options = {
|
||||
series: {stack: true,
|
||||
lines: {show: false, steps: false },
|
||||
bars: {show: true, barWidth: 0.8, align: 'center', lineWidth: 0, fill: .8 },},
|
||||
xaxis: {tickLength: 0, min: 0.0, max: ${tickIndex - sectionSpacer}, ticks: ticks, labelAngle: 90},
|
||||
yaxis: {ticks: [[1, "100%"], [0.87, "A 87%"], [0.7, "B 70%"], [0.6, "C 60%"], [0, "0%"]], min: 0.0, max: 1.0, labelWidth: 50},
|
||||
grid: { hoverable: true, clickable: true, borderWidth: 1,
|
||||
markings: [ {yaxis: {from: 0.87, to: 1 }, color: "#ddd"}, {yaxis: {from: 0.7, to: 0.87 }, color: "#e9e9e9"},
|
||||
{yaxis: {from: 0.6, to: 0.7 }, color: "#f3f3f3"}, ] },
|
||||
legend: {show: false},
|
||||
};
|
||||
|
||||
var $grade_detail_graph = $("#grade-detail-graph");
|
||||
if ($grade_detail_graph.length > 0) {
|
||||
var plot = $.plot($grade_detail_graph, series, options);
|
||||
|
||||
var o = plot.pointOffset({x: ${overviewBarX} , y: ${totalScore}});
|
||||
$grade_detail_graph.append('<div style="position:absolute;left:' + (o.left - 12) + 'px;top:' + (o.top - 20) + 'px">${"{totalscore:.0%}".format(totalscore=totalScore)}</div>');
|
||||
}
|
||||
|
||||
var previousPoint = null;
|
||||
$("#grade-detail-graph").bind("plothover", function (event, pos, item) {
|
||||
$("#x").text(pos.x.toFixed(2));
|
||||
$("#y").text(pos.y.toFixed(2));
|
||||
if (item) {
|
||||
if (previousPoint != (item.dataIndex, item.seriesIndex)) {
|
||||
previousPoint = (item.dataIndex, item.seriesIndex);
|
||||
|
||||
$("#tooltip").remove();
|
||||
|
||||
if (item.series.label in detail_tooltips) {
|
||||
var series_tooltips = detail_tooltips[item.series.label];
|
||||
if (item.dataIndex < series_tooltips.length) {
|
||||
var x = item.datapoint[0].toFixed(2), y = item.datapoint[1].toFixed(2);
|
||||
|
||||
showTooltip(item.pageX, item.pageY, series_tooltips[item.dataIndex]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
$("#tooltip").remove();
|
||||
previousPoint = null;
|
||||
}
|
||||
});
|
||||
});
|
||||
55
templates/registration/change_password.html
Normal file
55
templates/registration/change_password.html
Normal file
@@ -0,0 +1,55 @@
|
||||
{% extends "admin/base_site.html" %}
|
||||
{% load i18n admin_modify adminmedia %}
|
||||
{% load url from future %}
|
||||
{% block extrahead %}{{ block.super }}
|
||||
{% url 'admin:jsi18n' as jsi18nurl %}
|
||||
<script type="text/javascript" src="{{ jsi18nurl|default:"../../../../jsi18n/" }}"></script>
|
||||
{% endblock %}
|
||||
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />{% endblock %}
|
||||
{% block bodyclass %}{{ opts.app_label }}-{{ opts.object_name.lower }} change-form{% endblock %}
|
||||
{% block breadcrumbs %}{% if not is_popup %}
|
||||
<div class="breadcrumbs">
|
||||
<a href="../../../../">{% trans "Home" %}</a> ›
|
||||
<a href="../../../">{{ opts.app_label|capfirst|escape }}</a> ›
|
||||
<a href="../../">{{ opts.verbose_name_plural|capfirst }}</a> ›
|
||||
<a href="../">{{ original|truncatewords:"18" }}</a> ›
|
||||
{% trans 'Change password' %}
|
||||
</div>
|
||||
{% endif %}{% endblock %}
|
||||
{% block content %}<div id="content-main">
|
||||
<form action="{{ form_url }}" method="post" id="{{ opts.module_name }}_form">{% csrf_token %}{% block form_top %}{% endblock %}
|
||||
<div>
|
||||
{% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %}
|
||||
{% if form.errors %}
|
||||
<p class="errornote">
|
||||
{% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<p>{% blocktrans with original.username as username %}Enter a new password for the user <strong>{{ username }}</strong>.{% endblocktrans %}</p>
|
||||
|
||||
<fieldset class="module aligned">
|
||||
|
||||
<div class="form-row">
|
||||
{{ form.password1.errors }}
|
||||
{# TODO: get required class on label_tag #}
|
||||
<label for="id_password1" class="required">{% trans 'Password' %}:</label> {{ form.password1 }}
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
{{ form.password2.errors }}
|
||||
{# TODO: get required class on label_tag #}
|
||||
<label for="id_password2" class="required">{% trans 'Password (again)' %}:</label> {{ form.password2 }}
|
||||
<p class="help">{% trans 'Enter the same password as above, for verification.' %}</p>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<div class="submit-row">
|
||||
<input type="submit" value="{% trans 'Change password' %}" class="default" />
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">document.getElementById("id_password1").focus();</script>
|
||||
</div>
|
||||
</form></div>
|
||||
{% endblock %}
|
||||
12
templates/registration/logged_out.html
Normal file
12
templates/registration/logged_out.html
Normal file
@@ -0,0 +1,12 @@
|
||||
{% extends "admin/base_site.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a></div>{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p>{% trans "Thanks for spending some quality time with the Web site today." %}</p>
|
||||
|
||||
<p><a href="../">{% trans 'Log in again' %}</a></p>
|
||||
|
||||
{% endblock %}
|
||||
28
templates/registration/login.html
Normal file
28
templates/registration/login.html
Normal file
@@ -0,0 +1,28 @@
|
||||
{% extends "registration/base.html" %}
|
||||
|
||||
{% block title %}Log in{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>Log in</h1>
|
||||
|
||||
{% if form.errors %}
|
||||
<p class="error">Please correct the errors below:</p>
|
||||
{% endif %}
|
||||
|
||||
<form method="post" action="?next={{ next|default:"/" }}">
|
||||
{% csrf_token %}
|
||||
<dl>
|
||||
<dt><label for="id_username">Username:</label>{% if form.username.errors %} <span class="error">{{ form.username.errors|join:", " }}</span>{% endif %}</dt>
|
||||
<dd>{{ form.username }}</dd>
|
||||
<dt><label for="id_password">Password:</label>{% if form.password.errors %} <span class="error">{{ form.password.errors|join:", " }}</span>{% endif %}</dt>
|
||||
<dd>{{ form.password }}</dd>
|
||||
<dt><input type="submit" value="Log in" /></dt>
|
||||
</dl>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
{% block content-related %}
|
||||
<p>If you don't have an account, you can <a href="/accounts/register/">sign
|
||||
up</a> for one.
|
||||
{% endblock %}
|
||||
0
templates/registration/login_error.html
Normal file
0
templates/registration/login_error.html
Normal file
8
templates/registration/logout.html
Normal file
8
templates/registration/logout.html
Normal file
@@ -0,0 +1,8 @@
|
||||
{% extends "registration/base.html" %}
|
||||
|
||||
{% block title %}Logged out{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>You've been logged out.</h1>
|
||||
<p>Thanks for stopping by; when you come back, don't forget to <a href="/accounts/login/">log in</a> again.</p>
|
||||
{% endblock %}
|
||||
15
templates/registration/password_change_done.html
Normal file
15
templates/registration/password_change_done.html
Normal file
@@ -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 %}<a href="{{ docsroot }}">{% trans 'Documentation' %}</a> / {% endif %}{% trans 'Change password' %} / <a href="../../logout/">{% trans 'Log out' %}</a>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../">{% trans 'Home' %}</a> › {% trans 'Password change' %}</div>{% endblock %}
|
||||
|
||||
{% block title %}{% trans 'Password change successful' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>{% trans 'Password change successful' %}</h1>
|
||||
|
||||
<p>{% trans 'Your password was changed.' %}</p>
|
||||
|
||||
{% endblock %}
|
||||
51
templates/registration/password_change_form.html
Normal file
51
templates/registration/password_change_form.html
Normal file
@@ -0,0 +1,51 @@
|
||||
{% extends "admin/base_site.html" %}
|
||||
{% load i18n adminmedia %}
|
||||
{% load url from future %}
|
||||
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />{% endblock %}
|
||||
{% block userlinks %}{% url 'django-admindocs-docroot' as docsroot %}{% if docsroot %}<a href="{{ docsroot }}">{% trans 'Documentation' %}</a> / {% endif %} {% trans 'Change password' %} / <a href="../logout/">{% trans 'Log out' %}</a>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> › {% trans 'Password change' %}</div>{% endblock %}
|
||||
|
||||
{% block title %}{% trans 'Password change' %}{% endblock %}
|
||||
|
||||
{% block content %}<div id="content-main">
|
||||
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<div>
|
||||
{% if form.errors %}
|
||||
<p class="errornote">
|
||||
{% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<h1>{% trans 'Password change' %}</h1>
|
||||
|
||||
<p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p>
|
||||
|
||||
<fieldset class="module aligned wide">
|
||||
|
||||
<div class="form-row">
|
||||
{{ form.old_password.errors }}
|
||||
<label for="id_old_password" class="required">{% trans 'Old password' %}:</label>{{ form.old_password }}
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
{{ form.new_password1.errors }}
|
||||
<label for="id_new_password1" class="required">{% trans 'New password' %}:</label>{{ form.new_password1 }}
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
{{ form.new_password2.errors }}
|
||||
<label for="id_new_password2" class="required">{% trans 'Password (again)' %}:</label>{{ form.new_password2 }}
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<div class="submit-row">
|
||||
<input type="submit" value="{% trans 'Change my password' %}" class="default" />
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">document.getElementById("id_old_password").focus();</script>
|
||||
</div>
|
||||
</form></div>
|
||||
|
||||
{% endblock %}
|
||||
9
templates/registration/password_reset_complete.html
Normal file
9
templates/registration/password_reset_complete.html
Normal file
@@ -0,0 +1,9 @@
|
||||
{% load i18n %}
|
||||
|
||||
<h1> Password reset complete </h1>
|
||||
|
||||
{% block content %}
|
||||
|
||||
Your password has been set. You may go ahead and <a href="/">log in</a> now.
|
||||
|
||||
{% endblock %}
|
||||
45
templates/registration/password_reset_confirm.html
Normal file
45
templates/registration/password_reset_confirm.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Reset password - MITx 6.002x</title>
|
||||
|
||||
<link rel="stylesheet" href="/static/css/application.css" type="text/css" media="all" />
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="/static/js/html5shiv.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
{% block content %}
|
||||
<section class="outside-app">
|
||||
|
||||
{% if validlink %}
|
||||
|
||||
<h1>Enter new password</h1>
|
||||
|
||||
<p>Please enter your new password twice so we can verify you typed it in correctly.</p>
|
||||
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
{{ form.new_password1.errors }}
|
||||
<p class="aligned wide"><label for="id_new_password1">New password:</label>{{ form.new_password1 }}</p>
|
||||
{{ form.new_password2.errors }}
|
||||
<p class="aligned wide"><label for="id_new_password2">Confirm password:</label>{{ form.new_password2 }}</p>
|
||||
<p><input type="submit" value="Change my password" /></p>
|
||||
</form>
|
||||
|
||||
{% else %}
|
||||
|
||||
<h1>Password reset unsuccessful</h1>
|
||||
|
||||
<p>The password reset link was invalid, possibly because the link has already been used. Please request a new password reset.</p>
|
||||
|
||||
{% endif %}
|
||||
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
3
templates/registration/password_reset_done.html
Normal file
3
templates/registration/password_reset_done.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<h1>Password reset successful</h1>
|
||||
|
||||
<p>We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly.</p>
|
||||
14
templates/registration/password_reset_email.html
Normal file
14
templates/registration/password_reset_email.html
Normal file
@@ -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 %}
|
||||
3
templates/registration/reg_complete.html
Normal file
3
templates/registration/reg_complete.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<h1>Check your email</h1>
|
||||
<p>An activation link has been sent to ${ email }, along with
|
||||
instructions for activating your account.</p>
|
||||
8
templates/registration/registration_complete.html
Normal file
8
templates/registration/registration_complete.html
Normal file
@@ -0,0 +1,8 @@
|
||||
{% extends "registration/base.html" %}
|
||||
|
||||
{% block title %}Registration complete{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Check your email</h1>
|
||||
<p>An activation link has been sent to the email address you supplied, along with instructions for activating your account.</p>
|
||||
{% endblock %}
|
||||
58
templates/registration/registration_form.html
Normal file
58
templates/registration/registration_form.html
Normal file
@@ -0,0 +1,58 @@
|
||||
{% extends "registration/base.html" %}
|
||||
|
||||
{% block title %}Sign up{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% if form.errors %}
|
||||
<p class="errors">Please correct the errors below: {{ form.non_field_errors }}</p>
|
||||
{% endif %}
|
||||
|
||||
<h1>Create an account</h1>
|
||||
|
||||
<form method="post" action="" class="wide">
|
||||
{% csrf_token %}
|
||||
<p>
|
||||
<label for="id_username">Username:</label>
|
||||
{% if form.username.errors %}
|
||||
<p class="errors">{{ form.username.errors.as_text }}</p>
|
||||
{% endif %}
|
||||
{{ form.username }}
|
||||
</p>
|
||||
<p>
|
||||
<label for="id_email">Email address:</label>
|
||||
{% if form.email.errors %}
|
||||
<p class="errors">{{ form.email.errors.as_text }}</p>
|
||||
{% endif %}
|
||||
{{ form.email }}
|
||||
</p>
|
||||
<p>
|
||||
<label for="id_password1">Password:</label>
|
||||
{% if form.password1.errors %}
|
||||
<p class="errors">{{ form.password1.errors.as_text }}</p>
|
||||
{% endif %}
|
||||
{{ form.password1 }}
|
||||
</p>
|
||||
<p>
|
||||
<label for="id_password2">Password (type again to catch typos):</label>
|
||||
{% if form.password2.errors %}
|
||||
<p class="errors">{{ form.password2.errors.as_text }}</p>
|
||||
{% endif %}
|
||||
{{ form.password2 }}
|
||||
</p>
|
||||
<p class="submit"><input type="submit" value="Register →"></p>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block content-related %}
|
||||
<p>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.</p>
|
||||
|
||||
<p>We'll only use your email to send you signup instructions. We hate spam
|
||||
as much as you do.</p>
|
||||
|
||||
<p>This account will let you log into the ticket tracker, claim tickets,
|
||||
and be exempt from spam filtering.</p>
|
||||
{% endblock %}
|
||||
BIN
templates/sass/.DS_Store
vendored
Normal file
BIN
templates/sass/.DS_Store
vendored
Normal file
Binary file not shown.
17
templates/sass/README
Normal file
17
templates/sass/README
Normal file
@@ -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.
|
||||
11
templates/sass/_gradebook.scss
Normal file
11
templates/sass/_gradebook.scss
Normal file
@@ -0,0 +1,11 @@
|
||||
div.gradebook-wrapper {
|
||||
@extend .table-wrapper;
|
||||
|
||||
section.gradebook-content {
|
||||
@extend .content;
|
||||
|
||||
h1 {
|
||||
@extend .top-header;
|
||||
}
|
||||
}
|
||||
}
|
||||
54
templates/sass/_help.scss
Normal file
54
templates/sass/_help.scss
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
109
templates/sass/_info.scss
Normal file
109
templates/sass/_info.scss
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
153
templates/sass/_profile.scss
Normal file
153
templates/sass/_profile.scss
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
132
templates/sass/_textbook.scss
Normal file
132
templates/sass/_textbook.scss
Normal file
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
18
templates/sass/application.scss
Normal file
18
templates/sass/application.scss
Normal file
@@ -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";
|
||||
77
templates/sass/base/_base.scss
Normal file
77
templates/sass/base/_base.scss
Normal file
@@ -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;
|
||||
}
|
||||
|
||||
221
templates/sass/base/_extends.scss
Normal file
221
templates/sass/base/_extends.scss
Normal file
@@ -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;
|
||||
}
|
||||
125
templates/sass/base/_font-face.scss
Normal file
125
templates/sass/base/_font-face.scss
Normal file
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
22
templates/sass/base/_functions.scss
Normal file
22
templates/sass/base/_functions.scss
Normal file
@@ -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;
|
||||
}
|
||||
102
templates/sass/base/_reset.scss
Normal file
102
templates/sass/base/_reset.scss
Normal file
@@ -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;
|
||||
}
|
||||
32
templates/sass/base/_variables.scss
Normal file
32
templates/sass/base/_variables.scss
Normal file
@@ -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;
|
||||
29
templates/sass/bourbon/_bourbon.scss
vendored
Normal file
29
templates/sass/bourbon/_bourbon.scss
vendored
Normal file
@@ -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";
|
||||
267
templates/sass/bourbon/addons/_button.scss
vendored
Normal file
267
templates/sass/bourbon/addons/_button.scss
vendored
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
5
templates/sass/bourbon/addons/_font-family.scss
vendored
Normal file
5
templates/sass/bourbon/addons/_font-family.scss
vendored
Normal file
@@ -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;
|
||||
36
templates/sass/bourbon/addons/_html5-input-types.scss
vendored
Normal file
36
templates/sass/bourbon/addons/_html5-input-types.scss
vendored
Normal file
@@ -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;
|
||||
// }
|
||||
30
templates/sass/bourbon/addons/_position.scss
vendored
Normal file
30
templates/sass/bourbon/addons/_position.scss
vendored
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
32
templates/sass/bourbon/addons/_timing-functions.scss
vendored
Normal file
32
templates/sass/bourbon/addons/_timing-functions.scss
vendored
Normal file
@@ -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);
|
||||
171
templates/sass/bourbon/css3/_animation.scss
vendored
Normal file
171
templates/sass/bourbon/css3/_animation.scss
vendored
Normal file
@@ -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 | <number>
|
||||
$value-2: false, $value-3: false,
|
||||
$value-4: false, $value-5: false,
|
||||
$value-6: false, $value-7: false,
|
||||
$value-8: false, $value-9: false)
|
||||
{
|
||||
$full: compact($value-1, $value-2, $value-3, $value-4,
|
||||
$value-5, $value-6, $value-7, $value-8, $value-9);
|
||||
|
||||
-webkit-animation-iteration-count: $full;
|
||||
-moz-animation-iteration-count: $full;
|
||||
animation-iteration-count: $full;
|
||||
}
|
||||
|
||||
|
||||
@mixin animation-direction ($direction-1: normal,
|
||||
// normal | alternate
|
||||
$direction-2: false, $direction-3: false,
|
||||
$direction-4: false, $direction-5: false,
|
||||
$direction-6: false, $direction-7: false,
|
||||
$direction-8: false, $direction-9: false)
|
||||
{
|
||||
$full: compact($direction-1, $direction-2, $direction-3, $direction-4,
|
||||
$direction-5, $direction-6, $direction-7, $direction-8, $direction-9);
|
||||
|
||||
-webkit-animation-direction: $full;
|
||||
-moz-animation-direction: $full;
|
||||
animation-direction: $full;
|
||||
}
|
||||
|
||||
|
||||
@mixin animation-play-state ($state-1: running,
|
||||
// running | paused
|
||||
$state-2: false, $state-3: false,
|
||||
$state-4: false, $state-5: false,
|
||||
$state-6: false, $state-7: false,
|
||||
$state-8: false, $state-9: false)
|
||||
{
|
||||
$full: compact($state-1, $state-2, $state-3, $state-4,
|
||||
$state-5, $state-6, $state-7, $state-8, $state-9);
|
||||
|
||||
-webkit-animation-play-state: $full;
|
||||
-moz-animation-play-state: $full;
|
||||
animation-play-state: $full;
|
||||
}
|
||||
|
||||
|
||||
@mixin animation-delay ($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-delay: $full;
|
||||
-moz-animation-delay: $full;
|
||||
animation-delay: $full;
|
||||
}
|
||||
|
||||
|
||||
@mixin animation-fill-mode ($mode-1: none,
|
||||
// http://goo.gl/l6ckm
|
||||
// none | forwards | backwards | both
|
||||
$mode-2: false, $mode-3: false,
|
||||
$mode-4: false, $mode-5: false,
|
||||
$mode-6: false, $mode-7: false,
|
||||
$mode-8: false, $mode-9: false)
|
||||
{
|
||||
$full: compact($mode-1, $mode-2, $mode-3, $mode-4,
|
||||
$mode-5, $mode-6, $mode-7, $mode-8, $mode-9);
|
||||
|
||||
-webkit-animation-fill-mode: $full;
|
||||
-moz-animation-fill-mode: $full;
|
||||
animation-fill-mode: $full;
|
||||
}
|
||||
|
||||
|
||||
// Deprecated
|
||||
@mixin animation-basic ($name, $time: 0, $motion: ease) {
|
||||
$length-of-name: length($name);
|
||||
$length-of-time: length($time);
|
||||
$length-of-motion: length($motion);
|
||||
|
||||
@if $length-of-name > 1 {
|
||||
@include animation-name(zip($name));
|
||||
} @else {
|
||||
@include animation-name( $name);
|
||||
}
|
||||
|
||||
@if $length-of-time > 1 {
|
||||
@include animation-duration(zip($time));
|
||||
} @else {
|
||||
@include animation-duration( $time);
|
||||
}
|
||||
|
||||
@if $length-of-motion > 1 {
|
||||
@include animation-timing-function(zip($motion));
|
||||
} @else {
|
||||
@include animation-timing-function( $motion);
|
||||
}
|
||||
@warn "The animation-basic mixin is deprecated. Use the animation mixin instead.";
|
||||
}
|
||||
|
||||
7
templates/sass/bourbon/css3/_appearance.scss
vendored
Normal file
7
templates/sass/bourbon/css3/_appearance.scss
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@mixin appearance ($value) {
|
||||
-webkit-appearance: $value;
|
||||
-moz-appearance: $value;
|
||||
-ms-appearance: $value;
|
||||
-o-appearance: $value;
|
||||
appearance: $value;
|
||||
}
|
||||
71
templates/sass/bourbon/css3/_background-image.scss
vendored
Normal file
71
templates/sass/bourbon/css3/_background-image.scss
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
//************************************************************************//
|
||||
// Background-image property for adding multiple background images with
|
||||
// gradients, or for stringing multiple gradients together.
|
||||
//************************************************************************//
|
||||
@import "../functions/linear-gradient";
|
||||
@import "../functions/radial-gradient";
|
||||
|
||||
@mixin background-image(
|
||||
$image-1 , $image-2: false,
|
||||
$image-3: false, $image-4: false,
|
||||
$image-5: false, $image-6: false,
|
||||
$image-7: false, $image-8: false,
|
||||
$image-9: false, $image-10: false
|
||||
) {
|
||||
$images: compact($image-1, $image-2,
|
||||
$image-3, $image-4,
|
||||
$image-5, $image-6,
|
||||
$image-7, $image-8,
|
||||
$image-9, $image-10);
|
||||
|
||||
background-image: add-prefix($images, webkit);
|
||||
background-image: add-prefix($images, moz);
|
||||
background-image: add-prefix($images, ms);
|
||||
background-image: add-prefix($images, o);
|
||||
background-image: add-prefix($images);
|
||||
}
|
||||
|
||||
|
||||
@function add-prefix($images, $vendor: false) {
|
||||
$images-prefixed: ();
|
||||
|
||||
@for $i from 1 through length($images) {
|
||||
$type: type-of(nth($images, $i)); // Get type of variable - List or String
|
||||
|
||||
// If variable is a list - Gradient
|
||||
@if $type == list {
|
||||
$gradient-type: nth(nth($images, $i), 1); // Get type of gradient (linear || radial)
|
||||
$gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue)
|
||||
|
||||
$gradient: render-gradients($gradient-args, $gradient-type, $vendor);
|
||||
$images-prefixed: append($images-prefixed, $gradient, comma);
|
||||
}
|
||||
|
||||
// If variable is a string - Image
|
||||
@else if $type == string {
|
||||
$images-prefixed: join($images-prefixed, nth($images, $i), comma);
|
||||
}
|
||||
}
|
||||
@return $images-prefixed;
|
||||
}
|
||||
|
||||
|
||||
@function render-gradients($gradients, $gradient-type, $vendor: false) {
|
||||
$vendor-gradients: false;
|
||||
@if $vendor {
|
||||
$vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient($gradients);
|
||||
}
|
||||
|
||||
@else if $vendor == false {
|
||||
$vendor-gradients: "#{$gradient-type}-gradient(#{$gradients})";
|
||||
$vendor-gradients: unquote($vendor-gradients);
|
||||
}
|
||||
@return $vendor-gradients;
|
||||
}
|
||||
|
||||
//Examples:
|
||||
//@include background-image(linear-gradient(top, orange, red));
|
||||
//@include background-image(radial-gradient(50% 50%, cover circle, orange, red));
|
||||
//@include background-image(url("/images/a.png"), linear-gradient(orange, red));
|
||||
//@include background-image(url("image.png"), linear-gradient(orange, red), url("image.png"));
|
||||
//@include background-image(linear-gradient(hsla(0, 100%, 100%, 0.25) 0%, hsla(0, 100%, 100%, 0.08) 50%, transparent 50%), linear-gradient(orange, red);
|
||||
15
templates/sass/bourbon/css3/_background-size.scss
vendored
Normal file
15
templates/sass/bourbon/css3/_background-size.scss
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@mixin background-size ($length-1,
|
||||
$length-2: false, $length-3: false,
|
||||
$length-4: false, $length-5: false,
|
||||
$length-6: false, $length-7: false,
|
||||
$length-8: false, $length-9: false)
|
||||
{
|
||||
$full: compact($length-1, $length-2, $length-3, $length-4,
|
||||
$length-5, $length-6, $length-7, $length-8, $length-9);
|
||||
|
||||
-webkit-background-size: $full;
|
||||
-moz-background-size: $full;
|
||||
-ms-background-size: $full;
|
||||
-o-background-size: $full;
|
||||
background-size: $full;
|
||||
}
|
||||
7
templates/sass/bourbon/css3/_border-image.scss
vendored
Normal file
7
templates/sass/bourbon/css3/_border-image.scss
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@mixin border-image ($image) {
|
||||
-webkit-border-image: $image;
|
||||
-moz-border-image: $image;
|
||||
-ms-border-image: $image;
|
||||
-o-border-image: $image;
|
||||
border-image: $image;
|
||||
}
|
||||
59
templates/sass/bourbon/css3/_border-radius.scss
vendored
Normal file
59
templates/sass/bourbon/css3/_border-radius.scss
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
@mixin border-radius ($radii) {
|
||||
-webkit-border-radius: $radii;
|
||||
-moz-border-radius: $radii;
|
||||
-ms-border-radius: $radii;
|
||||
-o-border-radius: $radii;
|
||||
border-radius: $radii;
|
||||
}
|
||||
|
||||
@mixin border-top-left-radius($radii) {
|
||||
-webkit-border-top-left-radius: $radii;
|
||||
-moz-border-top-left-radius: $radii;
|
||||
-ms-border-top-left-radius: $radii;
|
||||
-o-border-top-left-radius: $radii;
|
||||
border-top-left-radius: $radii;
|
||||
}
|
||||
|
||||
@mixin border-top-right-radius($radii) {
|
||||
-webkit-border-top-right-radius: $radii;
|
||||
-moz-border-top-right-radius: $radii;
|
||||
-ms-border-top-right-radius: $radii;
|
||||
-o-border-top-right-radius: $radii;
|
||||
border-top-right-radius: $radii;
|
||||
}
|
||||
|
||||
@mixin border-bottom-left-radius($radii) {
|
||||
-webkit-border-bottom-left-radius: $radii;
|
||||
-moz-border-bottom-left-radius: $radii;
|
||||
-ms-border-bottom-left-radius: $radii;
|
||||
-o-border-bottom-left-radius: $radii;
|
||||
border-bottom-left-radius: $radii;
|
||||
}
|
||||
|
||||
@mixin border-bottom-right-radius($radii) {
|
||||
-webkit-border-bottom-right-radius: $radii;
|
||||
-moz-border-bottom-right-radius: $radii;
|
||||
-ms-border-bottom-right-radius: $radii;
|
||||
-o-border-bottom-right-radius: $radii;
|
||||
border-bottom-right-radius: $radii;
|
||||
}
|
||||
|
||||
@mixin border-top-radius($radii) {
|
||||
@include border-top-left-radius($radii);
|
||||
@include border-top-right-radius($radii);
|
||||
}
|
||||
|
||||
@mixin border-right-radius($radii) {
|
||||
@include border-top-right-radius($radii);
|
||||
@include border-bottom-right-radius($radii);
|
||||
}
|
||||
|
||||
@mixin border-bottom-radius($radii) {
|
||||
@include border-bottom-left-radius($radii);
|
||||
@include border-bottom-right-radius($radii);
|
||||
}
|
||||
|
||||
@mixin border-left-radius($radii) {
|
||||
@include border-top-left-radius($radii);
|
||||
@include border-bottom-left-radius($radii);
|
||||
}
|
||||
16
templates/sass/bourbon/css3/_box-shadow.scss
vendored
Normal file
16
templates/sass/bourbon/css3/_box-shadow.scss
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
// Box-Shadow Mixin Requires Sass v3.1.1+
|
||||
@mixin box-shadow ($shadow-1,
|
||||
$shadow-2: false, $shadow-3: false,
|
||||
$shadow-4: false, $shadow-5: false,
|
||||
$shadow-6: false, $shadow-7: false,
|
||||
$shadow-8: false, $shadow-9: false)
|
||||
{
|
||||
$full: compact($shadow-1, $shadow-2, $shadow-3, $shadow-4,
|
||||
$shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9);
|
||||
|
||||
-webkit-box-shadow: $full;
|
||||
-moz-box-shadow: $full;
|
||||
-ms-box-shadow: $full;
|
||||
-o-box-shadow: $full;
|
||||
box-shadow: $full;
|
||||
}
|
||||
8
templates/sass/bourbon/css3/_box-sizing.scss
vendored
Normal file
8
templates/sass/bourbon/css3/_box-sizing.scss
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
@mixin box-sizing ($box) {
|
||||
// content-box | border-box | inherit
|
||||
-webkit-box-sizing: $box;
|
||||
-moz-box-sizing: $box;
|
||||
-ms-box-sizing: $box;
|
||||
-o-box-sizing: $box;
|
||||
box-sizing: $box;
|
||||
}
|
||||
67
templates/sass/bourbon/css3/_columns.scss
vendored
Normal file
67
templates/sass/bourbon/css3/_columns.scss
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
@mixin columns($arg: auto) {
|
||||
// <column-count> || <column-width>
|
||||
-webkit-columns: $arg;
|
||||
-moz-columns: $arg;
|
||||
columns: $arg;
|
||||
}
|
||||
|
||||
@mixin column-count($int: auto) {
|
||||
// auto || integer
|
||||
-webkit-column-count: $int;
|
||||
-moz-column-count: $int;
|
||||
column-count: $int;
|
||||
}
|
||||
|
||||
@mixin column-gap($length: normal) {
|
||||
// normal || length
|
||||
-webkit-column-gap: $length;
|
||||
-moz-column-gap: $length;
|
||||
column-gap: $length;
|
||||
}
|
||||
|
||||
@mixin column-fill($arg: auto) {
|
||||
// auto || length
|
||||
-webkit-columns-fill: $arg;
|
||||
-moz-columns-fill: $arg;
|
||||
columns-fill: $arg;
|
||||
}
|
||||
|
||||
@mixin column-rule($arg) {
|
||||
// <border-width> || <border-style> || <color>
|
||||
-webkit-column-rule: $arg;
|
||||
-moz-column-rule: $arg;
|
||||
column-rule: $arg;
|
||||
}
|
||||
|
||||
@mixin column-rule-color($color) {
|
||||
-webkit-column-rule-color: $color;
|
||||
-moz-column-rule-color: $color;
|
||||
column-rule-color: $color;
|
||||
}
|
||||
|
||||
@mixin column-rule-style($style: none) {
|
||||
// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
|
||||
-webkit-column-rule-style: $style;
|
||||
-moz-column-rule-style: $style;
|
||||
column-rule-style: $style;
|
||||
}
|
||||
|
||||
@mixin column-rule-width ($width: none) {
|
||||
-webkit-column-rule-width: $width;
|
||||
-moz-column-rule-width: $width;
|
||||
column-rule-width: $width;
|
||||
}
|
||||
|
||||
@mixin column-span($arg: none) {
|
||||
// none || all
|
||||
-webkit-column-span: $arg;
|
||||
-moz-column-span: $arg;
|
||||
column-span: $arg;
|
||||
}
|
||||
|
||||
@mixin column-width($length: auto) {
|
||||
// auto || length
|
||||
-webkit-column-width: $length;
|
||||
-moz-column-width: $length;
|
||||
column-width: $length;
|
||||
}
|
||||
67
templates/sass/bourbon/css3/_flex-box.scss
vendored
Normal file
67
templates/sass/bourbon/css3/_flex-box.scss
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
// CSS3 Flexible Box Model and property defaults
|
||||
|
||||
// Custom shorthand notation for flexbox
|
||||
@mixin box($orient: inline-axis, $pack: start, $align: stretch) {
|
||||
@include display-box;
|
||||
@include box-orient($orient);
|
||||
@include box-pack($pack);
|
||||
@include box-align($align);
|
||||
}
|
||||
|
||||
@mixin display-box {
|
||||
display: -webkit-box;
|
||||
display: -moz-box;
|
||||
display: box;
|
||||
}
|
||||
|
||||
@mixin box-orient($orient: inline-axis) {
|
||||
// horizontal|vertical|inline-axis|block-axis|inherit
|
||||
-webkit-box-orient: $orient;
|
||||
-moz-box-orient: $orient;
|
||||
box-orient: $orient;
|
||||
}
|
||||
|
||||
@mixin box-pack($pack: start) {
|
||||
// start|end|center|justify
|
||||
-webkit-box-pack: $pack;
|
||||
-moz-box-pack: $pack;
|
||||
box-pack: $pack;
|
||||
}
|
||||
|
||||
@mixin box-align($align: stretch) {
|
||||
// start|end|center|baseline|stretch
|
||||
-webkit-box-align: $align;
|
||||
-moz-box-align: $align;
|
||||
box-align: $align;
|
||||
}
|
||||
|
||||
@mixin box-direction($direction: normal) {
|
||||
// normal|reverse|inherit
|
||||
-webkit-box-direction: $direction;
|
||||
-moz-box-direction: $direction;
|
||||
box-direction: $direction;
|
||||
}
|
||||
@mixin box-lines($lines: single) {
|
||||
// single|multiple
|
||||
-webkit-box-lines: $lines;
|
||||
-moz-box-lines: $lines;
|
||||
box-lines: $lines;
|
||||
}
|
||||
|
||||
@mixin box-ordinal-group($integer: 1) {
|
||||
-webkit-box-ordinal-group: $integer;
|
||||
-moz-box-ordinal-group: $integer;
|
||||
box-ordinal-group: $integer;
|
||||
}
|
||||
|
||||
@mixin box-flex($value: 0.0) {
|
||||
-webkit-box-flex: $value;
|
||||
-moz-box-flex: $value;
|
||||
box-flex: $value;
|
||||
}
|
||||
|
||||
@mixin box-flex-group($integer: 1) {
|
||||
-webkit-box-flex-group: $integer;
|
||||
-moz-box-flex-group: $integer;
|
||||
box-flex-group: $integer;
|
||||
}
|
||||
10
templates/sass/bourbon/css3/_inline-block.scss
vendored
Normal file
10
templates/sass/bourbon/css3/_inline-block.scss
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
// Legacy support for inline-block in IE7 (maybe IE6)
|
||||
@mixin inline-block {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
}
|
||||
41
templates/sass/bourbon/css3/_linear-gradient.scss
vendored
Normal file
41
templates/sass/bourbon/css3/_linear-gradient.scss
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
@mixin linear-gradient($pos, $G1, $G2: false,
|
||||
$G3: false, $G4: false,
|
||||
$G5: false, $G6: false,
|
||||
$G7: false, $G8: false,
|
||||
$G9: false, $G10: false,
|
||||
$fallback: false) {
|
||||
// Detect what type of value exists in $pos
|
||||
$pos-type: type-of(nth($pos, 1));
|
||||
|
||||
// If $pos is missing from mixin, reassign vars and add default position
|
||||
@if ($pos-type == color) or (nth($pos, 1) == "transparent") {
|
||||
$G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
|
||||
$G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
|
||||
$pos: top; // Default position
|
||||
}
|
||||
|
||||
$full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
|
||||
|
||||
// Set $G1 as the default fallback color
|
||||
$fallback-color: nth($G1, 1);
|
||||
|
||||
// If $fallback is a color use that color as the fallback color
|
||||
@if type-of($fallback) == color {
|
||||
$fallback-color: $fallback;
|
||||
}
|
||||
|
||||
background-color: $fallback-color;
|
||||
background-image: deprecated-webkit-gradient(linear, $full); // Safari <= 5.0
|
||||
background-image: -webkit-linear-gradient($pos, $full); // Safari 5.1+, Chrome
|
||||
background-image: -moz-linear-gradient($pos, $full);
|
||||
background-image: -ms-linear-gradient($pos, $full);
|
||||
background-image: -o-linear-gradient($pos, $full);
|
||||
background-image: unquote("linear-gradient(#{$pos}, #{$full})");
|
||||
}
|
||||
|
||||
|
||||
// Usage: Gradient position is optional, default is top. Position can be a degree. Color stops are optional as well.
|
||||
// @include linear-gradient(#1e5799, #2989d8);
|
||||
// @include linear-gradient(#1e5799, #2989d8, $fallback:#2989d8);
|
||||
// @include linear-gradient(top, #1e5799 0%, #2989d8 50%);
|
||||
// @include linear-gradient(50deg, rgba(10, 10, 10, 0.5) 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);
|
||||
22
templates/sass/bourbon/css3/_radial-gradient.scss
vendored
Normal file
22
templates/sass/bourbon/css3/_radial-gradient.scss
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
// Requires Sass 3.1+
|
||||
@mixin radial-gradient($pos, $shape-size,
|
||||
$G1, $G2,
|
||||
$G3: false, $G4: false,
|
||||
$G5: false, $G6: false,
|
||||
$G7: false, $G8: false,
|
||||
$G9: false, $G10: false) {
|
||||
|
||||
$full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
|
||||
|
||||
background-color: nth($G1, 1);
|
||||
background-image: deprecated-webkit-gradient(radial, $full); // Safari <= 5.0
|
||||
background-image: -webkit-radial-gradient($pos, $shape-size, $full);
|
||||
background-image: -moz-radial-gradient($pos, $shape-size, $full);
|
||||
background-image: -ms-radial-gradient($pos, $shape-size, $full);
|
||||
background-image: -o-radial-gradient($pos, $shape-size, $full);
|
||||
background-image: unquote("radial-gradient(#{$pos}, #{$shape-size}, #{$full})");
|
||||
}
|
||||
|
||||
// Usage: Gradient position and shape-size are required. Color stops are optional.
|
||||
// @include radial-gradient(50% 50%, circle cover, #1e5799, #efefef);
|
||||
// @include radial-gradient(50% 50%, circle cover, #eee 10%, #1e5799 30%, #efefef);
|
||||
19
templates/sass/bourbon/css3/_transform.scss
vendored
Normal file
19
templates/sass/bourbon/css3/_transform.scss
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
@mixin transform($property: none) {
|
||||
// none | <transform-function>
|
||||
-webkit-transform: $property;
|
||||
-moz-transform: $property;
|
||||
-ms-transform: $property;
|
||||
-o-transform: $property;
|
||||
transform: $property;
|
||||
}
|
||||
|
||||
@mixin transform-origin($axes: 50%) {
|
||||
// x-axis - left | center | right | length | %
|
||||
// y-axis - top | center | bottom | length | %
|
||||
// z-axis - length
|
||||
-webkit-transform-origin: $axes;
|
||||
-moz-transform-origin: $axes;
|
||||
-ms-transform-origin: $axes;
|
||||
-o-transform-origin: $axes;
|
||||
transform-origin: $axes;
|
||||
}
|
||||
104
templates/sass/bourbon/css3/_transition.scss
vendored
Normal file
104
templates/sass/bourbon/css3/_transition.scss
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
|
||||
// Example: @include transition (all, 2.0s, ease-in-out);
|
||||
// @include transition ((opacity, width), (1.0s, 2.0s), ease-in, (0, 2s));
|
||||
// @include transition ($property:(opacity, width), $delay: (1.5s, 2.5s));
|
||||
|
||||
@mixin transition ($property: all, $duration: 0.15s, $timing-function: ease-out, $delay: 0) {
|
||||
|
||||
// Detect # of args passed into each variable
|
||||
$length-of-property: length($property);
|
||||
$length-of-duration: length($duration);
|
||||
$length-of-timing-function: length($timing-function);
|
||||
$length-of-delay: length($delay);
|
||||
|
||||
@if $length-of-property > 1 {
|
||||
@include transition-property(zip($property)); }
|
||||
@else {
|
||||
@include transition-property( $property);
|
||||
}
|
||||
|
||||
@if $length-of-duration > 1 {
|
||||
@include transition-duration(zip($duration)); }
|
||||
@else {
|
||||
@include transition-duration( $duration);
|
||||
}
|
||||
|
||||
@if $length-of-timing-function > 1 {
|
||||
@include transition-timing-function(zip($timing-function)); }
|
||||
@else {
|
||||
@include transition-timing-function( $timing-function);
|
||||
}
|
||||
|
||||
@if $length-of-delay > 1 {
|
||||
@include transition-delay(zip($delay)); }
|
||||
@else {
|
||||
@include transition-delay( $delay);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@mixin transition-property ($prop-1: all,
|
||||
$prop-2: false, $prop-3: false,
|
||||
$prop-4: false, $prop-5: false,
|
||||
$prop-6: false, $prop-7: false,
|
||||
$prop-8: false, $prop-9: false)
|
||||
{
|
||||
$full: compact($prop-1, $prop-2, $prop-3, $prop-4, $prop-5,
|
||||
$prop-6, $prop-7, $prop-8, $prop-9);
|
||||
|
||||
-webkit-transition-property: $full;
|
||||
-moz-transition-property: $full;
|
||||
-ms-transition-property: $full;
|
||||
-o-transition-property: $full;
|
||||
transition-property: $full;
|
||||
}
|
||||
|
||||
@mixin transition-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-transition-duration: $full;
|
||||
-moz-transition-duration: $full;
|
||||
-ms-transition-duration: $full;
|
||||
-o-transition-duration: $full;
|
||||
transition-duration: $full;
|
||||
}
|
||||
|
||||
@mixin transition-timing-function ($motion-1: ease,
|
||||
$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);
|
||||
|
||||
// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
|
||||
-webkit-transition-timing-function: $full;
|
||||
-moz-transition-timing-function: $full;
|
||||
-ms-transition-timing-function: $full;
|
||||
-o-transition-timing-function: $full;
|
||||
transition-timing-function: $full;
|
||||
}
|
||||
|
||||
@mixin transition-delay ($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-transition-delay: $full;
|
||||
-moz-transition-delay: $full;
|
||||
-ms-transition-delay: $full;
|
||||
-o-transition-delay: $full;
|
||||
transition-delay: $full;
|
||||
}
|
||||
|
||||
36
templates/sass/bourbon/functions/_deprecated-webkit-gradient.scss
vendored
Normal file
36
templates/sass/bourbon/functions/_deprecated-webkit-gradient.scss
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
// Render Deprecated Webkit Gradient - Linear || Radial
|
||||
//************************************************************************//
|
||||
@function deprecated-webkit-gradient($type, $full) {
|
||||
$gradient-list: ();
|
||||
$gradient: false;
|
||||
$full-length: length($full);
|
||||
$percentage: false;
|
||||
$gradient-type: $type;
|
||||
|
||||
@for $i from 1 through $full-length {
|
||||
$gradient: nth($full, $i);
|
||||
|
||||
@if length($gradient) == 2 {
|
||||
$color-stop: color-stop(nth($gradient, 2), nth($gradient, 1));
|
||||
$gradient-list: join($gradient-list, $color-stop, comma);
|
||||
}
|
||||
@else {
|
||||
@if $i == $full-length {
|
||||
$percentage: 100%;
|
||||
}
|
||||
@else {
|
||||
$percentage: ($i - 1) * (100 / ($full-length - 1)) + "%";
|
||||
}
|
||||
$color-stop: color-stop(unquote($percentage), $gradient);
|
||||
$gradient-list: join($gradient-list, $color-stop, comma);
|
||||
}
|
||||
}
|
||||
|
||||
@if $type == radial {
|
||||
$gradient: -webkit-gradient(radial, center center, 0, center center, 460, $gradient-list);
|
||||
}
|
||||
@else if $type == linear {
|
||||
$gradient: -webkit-gradient(linear, left top, left bottom, $gradient-list);
|
||||
}
|
||||
@return $gradient;
|
||||
}
|
||||
13
templates/sass/bourbon/functions/_grid-width.scss
vendored
Normal file
13
templates/sass/bourbon/functions/_grid-width.scss
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
@function grid-width($n) {
|
||||
@return $n * $gw-column + ($n - 1) * $gw-gutter;
|
||||
}
|
||||
|
||||
// The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function.
|
||||
//
|
||||
// $gw-column: 100px; // Column Width
|
||||
// $gw-gutter: 40px; // Gutter Width
|
||||
//
|
||||
// div {
|
||||
// width: grid-width(4); // returns 520px;
|
||||
// margin-left: $gw-gutter; // returns 40px;
|
||||
// }
|
||||
23
templates/sass/bourbon/functions/_linear-gradient.scss
vendored
Normal file
23
templates/sass/bourbon/functions/_linear-gradient.scss
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
@function linear-gradient($pos: top, $G1: false, $G2: false,
|
||||
$G3: false, $G4: false,
|
||||
$G5: false, $G6: false,
|
||||
$G7: false, $G8: false,
|
||||
$G9: false, $G10: false) {
|
||||
|
||||
// Detect what type of value exists in $pos
|
||||
$pos-type: type-of(nth($pos, 1));
|
||||
|
||||
// If $pos is missing from mixin, reassign vars and add default position
|
||||
@if ($pos-type == color) or (nth($pos, 1) == "transparent") {
|
||||
$G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
|
||||
$G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
|
||||
$pos: top; // Default position
|
||||
}
|
||||
|
||||
$type: linear;
|
||||
$gradient: compact($pos, $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
|
||||
$type-gradient: append($type, $gradient, comma);
|
||||
|
||||
@return $type-gradient;
|
||||
}
|
||||
|
||||
40
templates/sass/bourbon/functions/_modular-scale.scss
vendored
Normal file
40
templates/sass/bourbon/functions/_modular-scale.scss
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
@function modular-scale($value, $increment, $ratio) {
|
||||
@if $increment > 0 {
|
||||
@for $i from 1 through $increment {
|
||||
$value: ($value * $ratio);
|
||||
}
|
||||
}
|
||||
|
||||
@if $increment < 0 {
|
||||
$increment: abs($increment);
|
||||
@for $i from 1 through $increment {
|
||||
$value: ($value / $ratio);
|
||||
}
|
||||
}
|
||||
|
||||
@return $value;
|
||||
}
|
||||
|
||||
// div {
|
||||
// Increment Up GR with positive value
|
||||
// font-size: modular-scale(14px, 1, 1.618); // returns: 22.652px
|
||||
//
|
||||
// Increment Down GR with negative value
|
||||
// font-size: modular-scale(14px, -1, 1.618); // returns: 8.653px
|
||||
//
|
||||
// Can be used with ceil(round up) or floor(round down)
|
||||
// font-size: floor( modular-scale(14px, 1, 1.618) ); // returns: 22px
|
||||
// font-size: ceil( modular-scale(14px, 1, 1.618) ); // returns: 23px
|
||||
// }
|
||||
//
|
||||
// modularscale.com
|
||||
|
||||
@function golden-ratio($value, $increment) {
|
||||
@return modular-scale($value, $increment, 1.618)
|
||||
}
|
||||
|
||||
// div {
|
||||
// font-size: golden-ratio(14px, 1); // returns: 22.652px
|
||||
// }
|
||||
//
|
||||
// goldenratiocalculator.com
|
||||
15
templates/sass/bourbon/functions/_radial-gradient.scss
vendored
Normal file
15
templates/sass/bourbon/functions/_radial-gradient.scss
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
// This function is required and used by the background-image mixin.
|
||||
@function radial-gradient($pos, $shape-size,
|
||||
$G1, $G2,
|
||||
$G3: false, $G4: false,
|
||||
$G5: false, $G6: false,
|
||||
$G7: false, $G8: false,
|
||||
$G9: false, $G10: false) {
|
||||
|
||||
$type: radial;
|
||||
$gradient: compact($pos, $shape-size, $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
|
||||
$type-gradient: append($type, $gradient, comma);
|
||||
|
||||
@return $type-gradient;
|
||||
}
|
||||
|
||||
9
templates/sass/bourbon/functions/_tint-shade.scss
vendored
Normal file
9
templates/sass/bourbon/functions/_tint-shade.scss
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
// Add percentage of white to a color
|
||||
@function tint($color, $percent){
|
||||
@return mix(white, $color, $percent);
|
||||
}
|
||||
|
||||
// Add percentage of black to a color
|
||||
@function shade($color, $percent){
|
||||
@return mix(black, $color, $percent);
|
||||
}
|
||||
19
templates/sass/bourbon/lib/bourbon.rb
Normal file
19
templates/sass/bourbon/lib/bourbon.rb
Normal file
@@ -0,0 +1,19 @@
|
||||
require "bourbon/generator"
|
||||
|
||||
module Bourbon
|
||||
if defined?(Rails)
|
||||
class Engine < ::Rails::Engine
|
||||
require 'bourbon/engine'
|
||||
end
|
||||
|
||||
module Rails
|
||||
class Railtie < ::Rails::Railtie
|
||||
rake_tasks do
|
||||
load "tasks/install.rake"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
require File.join(File.dirname(__FILE__), "/bourbon/sass_extensions")
|
||||
6
templates/sass/bourbon/lib/bourbon/sass_extensions.rb
Normal file
6
templates/sass/bourbon/lib/bourbon/sass_extensions.rb
Normal file
@@ -0,0 +1,6 @@
|
||||
module Bourbon::SassExtensions
|
||||
end
|
||||
|
||||
require "sass"
|
||||
|
||||
require File.join(File.dirname(__FILE__), "/sass_extensions/functions")
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user