<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[3879] sites/trunk/wordpress.org/public_html/wp-content/themes/pub: WP.org Theme: Introduce a parent theme for future wp.org themes.</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://meta.trac.wordpress.org/changeset/3879">3879</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://meta.trac.wordpress.org/changeset/3879","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>obenland</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2016-08-29 22:43:40 +0000 (Mon, 29 Aug 2016)</dd>
</dl>
<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>WP.org Theme: Introduce a parent theme for future wp.org themes.
Allows us to bundle components in a central place for all themes to use.
CSS us built on Inverted Triangle CSS logic.
See <a href="http://meta.trac.wordpress.org/ticket/1015">#1015</a>.</pre>
<h3>Added Paths</h3>
<ul>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjshintignore">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/.jshintignore</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjshintrc">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/.jshintrc</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgGruntfilejs">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/Gruntfile.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgREADMEmd">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/README.md</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/</li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_basescss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_base.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_copyscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_copy.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_elementsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_elements.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_headingsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_headings.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_linksscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_links.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_listsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_lists.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_tablesscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_tables.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_typographyscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_typography.scss</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/components/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsscomponents_componentsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/components/_components.scss</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssgeneric_genericscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/_generic.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssgeneric_normalizescss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/_normalize.scss</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_accessibilityscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_accessibility.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_alignmentsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_alignments.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_buttonsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_buttons.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_clearingsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_clearings.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_copyscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_copy.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_inputsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_inputs.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_linksscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_links.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_mainnavigationscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_main-navigation.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_noticesscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_notices.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_objectsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_objects.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_sitedescriptionscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-description.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_siteheaderscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-header.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_sitemainscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-main.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_sitetitlescss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-title.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_wporgheaderscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_wporg-header.scss</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsssettings_colorsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_colors.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsssettings_modularscalescss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_modular-scale.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsssettings_settingsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_settings.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsssettings_typographyscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_typography.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssstylescss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/style.scss</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsstools_modularscalescss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/_modular-scale.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsstools_toolsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/_tools.scss</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/trumps/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsstrumps_trumpsscss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/trumps/_trumps.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgfooterphp">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/footer.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgfunctionsphp">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/functions.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgheaderphp">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/header.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgindexphp">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/index.php</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjscustomizerjs">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/customizer.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjsnavigationjs">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/navigation.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjsskiplinkfocusfixjs">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/skip-link-focus-fix.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgpackagejson">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/package.json</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgstylecss">sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/style.css</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjshintignore"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/.jshintignore</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/.jshintignore (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/.jshintignore 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+js/**.min.js
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjshintrc"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/.jshintrc</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/.jshintrc (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/.jshintrc 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,25 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+ "boss": true,
+ "curly": true,
+ "eqeqeq": true,
+ "eqnull": true,
+ "esversion": 6,
+ "expr": true,
+ "immed": true,
+ "noarg": true,
+ "nonbsp": true,
+ "onevar": true,
+ "quotmark": "single",
+ "trailing": true,
+ "undef": true,
+ "unused": true,
+ "browser": true,
+ "globals": {
+ "_": false,
+ "Backbone": false,
+ "jQuery": false,
+ "JSON": false,
+ "pagenow": false,
+ "wp": false
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgGruntfilejs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/Gruntfile.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/Gruntfile.js (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/Gruntfile.js 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,161 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* global module:false, require:function, process:object */
+
+module.exports = function( grunt ) {
+ var isChild = 'wporg' !== grunt.file.readJSON( 'package.json' ).name;
+
+ grunt.initConfig({
+ postcss: {
+ options: {
+ map: 'build' !== process.argv[2],
+ processors: [
+ require( 'autoprefixer' )( {
+ browsers: [
+ 'Android >= 2.1',
+ 'Chrome >= 21',
+ 'Edge >= 12',
+ 'Explorer >= 7',
+ 'Firefox >= 17',
+ 'Opera >= 12.1',
+ 'Safari >= 6.0'
+ ],
+ cascade: false
+ } ),
+ require( 'pixrem' )
+ ]
+ },
+ dist: {
+ src: 'css/style.css'
+ }
+ },
+ jshint: {
+ files: [
+ 'Gruntfile.js',
+ 'js/**/*.js'
+ ],
+ options: grunt.file.readJSON( '.jshintrc' )
+ },
+ sass: {
+ options: {
+ sourceMap: true,
+ // Don't add source map URL in built version.
+ omitSourceMapUrl: 'build' === process.argv[2],
+ outputStyle: 'expanded'
+ },
+ dist: {
+ files: {
+ 'css/style.css': 'css/style.scss'
+ }
+ }
+ },
+ sass_globbing: {
+ itcss: {
+ files: function() {
+ var files = {};
+
+ ['settings', 'tools', 'generic', 'base', 'objects', 'components', 'trumps'].forEach( function( component ) {
+ var paths = [
+ '../wporg/css/' + component + '/**/*.scss',
+ '!../wporg/css/' + component + '/_' + component + '.scss'
+ ];
+
+ if ( isChild ) {
+ paths.push( 'css/' + component + '/**/*.scss' );
+ paths.push( '!css/' + component + '/_' + component + '.scss' );
+ }
+
+ files[ 'css/' + component + '/_' + component + '.scss' ] = paths;
+ } );
+
+ return files;
+ }()
+ },
+ options: { signature: false }
+ },
+ rtlcss: {
+ options: {
+ // rtlcss options
+ opts: {
+ clean: false,
+ processUrls: { atrule: true, decl: false },
+ stringMap: [
+ {
+ name: 'import-rtl-stylesheet',
+ priority: 10,
+ exclusive: true,
+ search: [ '.css' ],
+ replace: [ '-rtl.css' ],
+ options: {
+ scope: 'url',
+ ignoreCase: false
+ }
+ }
+ ]
+ },
+ saveUnmodified: false,
+ plugins: [
+ {
+ name: 'swap-dashicons-left-right-arrows',
+ priority: 10,
+ directives: {
+ control: {},
+ value: []
+ },
+ processors: [
+ {
+ expr: /content/im,
+ action: function( prop, value ) {
+ if ( value === '"\\f141"' ) { // dashicons-arrow-left
+ value = '"\\f139"';
+ } else if ( value === '"\\f340"' ) { // dashicons-arrow-left-alt
+ value = '"\\f344"';
+ } else if ( value === '"\\f341"' ) { // dashicons-arrow-left-alt2
+ value = '"\\f345"';
+ } else if ( value === '"\\f139"' ) { // dashicons-arrow-right
+ value = '"\\f141"';
+ } else if ( value === '"\\f344"' ) { // dashicons-arrow-right-alt
+ value = '"\\f340"';
+ } else if ( value === '"\\f345"' ) { // dashicons-arrow-right-alt2
+ value = '"\\f341"';
+ }
+ return { prop: prop, value: value };
+ }
+ }
+ ]
+ }
+ ]
+ },
+ dynamic: {
+ expand: true,
+ cwd: 'css/',
+ dest: 'css/',
+ ext: '-rtl.css',
+ src: ['**/style.css']
+ }
+ },
+ watch: {
+ jshint: {
+ files: ['<%= jshint.files %>'],
+ tasks: ['jshint']
+ },
+ css: {
+ files: ['**/*.scss'],
+ tasks: ['css']
+ }
+ }
+ });
+
+ if ( 'build' === process.argv[2] ) {
+ grunt.config.merge( { postcss: { options : { processors: [ require( 'cssnano' ) ] } } } );
+ }
+
+ grunt.loadNpmTasks('grunt-sass');
+ grunt.loadNpmTasks('grunt-rtlcss');
+ grunt.loadNpmTasks('grunt-postcss');
+ grunt.loadNpmTasks('grunt-sass-globbing');
+ grunt.loadNpmTasks('grunt-contrib-watch');
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+
+ grunt.registerTask('css', ['sass_globbing', 'sass', 'postcss', 'rtlcss:dynamic']);
+ grunt.registerTask('default', ['jshint', 'css']);
+ grunt.registerTask('build', ['css']);
+};
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgREADMEmd"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/README.md</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/README.md (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/README.md 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,31 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+### WordPress.org
+
+This Theme serves as a parent theme for all themes used on WordPress.org.
+The idea is to collect commonly used styles and components here, for all child themes to use.
+
+#### Getting Started
+
+1. Create a child theme and specify `wporg` as the template for it.
+1. Copy `package.json`, `Gruntfile.js`, `.jshinignore`, and `.jshintrc` into your child theme.
+1. Replace project-specific information in `package.json`.
+1. Run `npm install` (this can take a little while).
+1. Run `grunt css` to create the CSS folder structure.
+1. Copy `css/style.scss` into your child theme.
+
+Running `grunt watch` or `grunt css` now will pull in all Sass files from parent and child theme.
+
+#### Developing
+
+```
+grunt watch
+```
+Watches JavaScript and Sass files for changes to run linters and builds Sass, etc.
+
+#### Committing
+
+Before committing changes, please create a build version to keep the file size down.
+
+```
+grunt build
+svn ci
+```
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_basescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_base.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_base.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_base.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,7 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+@import "copy";
+@import "elements";
+@import "headings";
+@import "links";
+@import "lists";
+@import "tables";
+@import "typography";
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_copyscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_copy.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_copy.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_copy.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,45 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+p {
+ margin: 1em 0;
+}
+
+dfn, cite, em, i {
+ font-style: italic;
+}
+
+blockquote {
+ margin: 0 1.5em;
+}
+
+address {
+ margin: 0 0 1.5em;
+}
+
+pre {
+ background: #eee;
+ font-family: "Courier 10 Pitch", Courier, monospace;
+ font-size: 0.9375rem;
+ line-height: 1.6;
+ margin-bottom: 1.6em;
+ max-width: 100%;
+ overflow: auto;
+ padding: 1.6em;
+}
+
+code, kbd, tt, var {
+ font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
+ font-size: 0.9375rem;
+}
+
+abbr, acronym {
+ border-bottom: 1px dotted #666;
+ cursor: help;
+}
+
+mark, ins {
+ background: #fff9c0;
+ text-decoration: none;
+}
+
+big {
+ font-size: 125%;
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_elementsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_elements.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_elements.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_elements.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,52 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+html {
+ box-sizing: border-box;
+}
+
+*,
+*:before,
+*:after { /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
+ box-sizing: inherit;
+}
+
+body {
+ background: #fff; /* Fallback for when there is no custom background color defined. */
+}
+
+blockquote, q {
+ quotes: "" "";
+
+ &:before,
+ &:after {
+ content: "";
+ }
+}
+
+blockquote {
+ // Override wp4.css.
+ background: transparent;
+ border: none;
+ padding: 0;
+
+ border-left: 2px solid #eee;
+ color: #82878c;
+ font-style: italic;
+ margin: 1rem 0;
+ padding-left: 1rem;
+
+ cite {
+ font-size: ms( -2 );
+ }
+}
+
+hr {
+ background-color: #eee;
+ border: 0;
+ height: 2px;
+ margin: 5rem auto;
+}
+
+img {
+ height: auto; /* Make sure images are scaled correctly. */
+ max-width: 100%; /* Adhere to container width. */
+}
+
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_headingsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_headings.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_headings.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_headings.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,47 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+h1, h2, h3, h4, h5, h6 {
+ clear: both;
+
+ // Override wp4.css.
+ font-family: inherit;
+ line-height: $type__lineheight;
+ margin: 2rem 0 1rem;
+}
+
+h1 {
+ font-size: ms( 12 );
+ font-weight: 300;
+}
+
+h2 {
+ font-size: ms( 8 );
+ font-weight: 300;
+}
+
+h3 {
+ font-size: ms( 4 );
+ font-weight: 400;
+}
+
+h4 {
+ font-size: ms( 2 );
+
+ // Override wp4.css.
+ border: none;
+ color: $color__base-gray;
+ font-weight: 600;
+ padding: 0;
+}
+
+h5 {
+ font-size: ms( 0 );
+ font-weight: 600;
+ letter-spacing: 0.01rem;
+ text-transform: uppercase;
+}
+
+h6 {
+ font-size: ms( -2 );
+ font-weight: 600;
+ letter-spacing: 0.8px;
+ text-transform: uppercase;
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_linksscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_links.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_links.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_links.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,25 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+a {
+ color: $color__wp-blue;
+
+ &:visited {
+ /* Override wp4.css */
+ color: $color__wp-blue;
+ }
+
+ &:hover,
+ &:focus,
+ &:active {
+ /* Override wp4.css */
+ color: $color__wp-blue;
+ text-decoration: underline;
+ }
+
+ &:focus {
+ outline: thin dotted;
+ }
+
+ &:hover,
+ &:active {
+ outline: 0;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_listsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_lists.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_lists.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_lists.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,25 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ul, ol {
+ margin: 0 0 1.5em 3em;
+}
+
+ul {
+ list-style: disc;
+}
+
+ol {
+ list-style: decimal;
+}
+
+li > ul,
+li > ol {
+ margin-bottom: 0;
+ margin-left: 1.5em;
+}
+
+dt {
+ font-weight: bold;
+}
+
+dd {
+ margin: 0 1.5em 1.5em;
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_tablesscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_tables.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_tables.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_tables.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,29 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+table {
+ border: 1px solid #eee;
+ //border-spacing: .1rem;
+ border-collapse: collapse;
+ font-size: ms( -2 );
+ margin: 0 0 ms( 0 );
+ padding: 0;
+ width: 100%;
+
+ thead {
+ background: $color__base-gray;
+ color: #fff;
+ }
+
+ th, td {
+ border: 1px solid #eee;
+ font-weight: normal;
+ margin: 0;
+ padding: 0.4rem;
+ text-align: left;
+ vertical-align: top;
+ }
+
+ tbody {
+ tr:nth-child( even ) {
+ background: #f7f7f7;
+ }
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssbase_typographyscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_typography.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_typography.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/base/_typography.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,20 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+html {
+ font-size: 100%;
+}
+
+body,
+button,
+input,
+select,
+textarea {
+ color: $color__base-gray;
+ font-family: "Open Sans", sans-serif;
+ font-size: 100%;
+ line-height: $type__lineheight;
+}
+
+@media screen and ( min-width: $ms-breakpoint ) {
+ html {
+ font-size: 1.125rem;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsscomponents_componentsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/components/_components.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/_generic.scss
===================================================================
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/_generic.scss (rev 0)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/_generic.scss 2016-08-29 22:43:40 UTC (rev 3879)
</ins><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+@import "normalize";
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssgeneric_normalizescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/_normalize.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/_normalize.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/generic/_normalize.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,210 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+html {
+ font-family: sans-serif;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+
+body {
+ margin: 0;
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+[hidden],
+template {
+ display: none;
+}
+
+a {
+ background-color: transparent;
+}
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+b,
+strong {
+ font-weight: bold;
+}
+
+dfn {
+ font-style: italic;
+}
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+small {
+ font-size: 80%;
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+img {
+ border: 0;
+}
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+figure {
+ margin: 1em 40px;
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0;
+}
+
+pre {
+ overflow: auto;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0;
+}
+
+button {
+ overflow: visible;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+input {
+ line-height: normal;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+legend {
+ border: 0;
+ padding: 0;
+}
+
+textarea {
+ overflow: auto;
+}
+
+optgroup {
+ font-weight: bold;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+td,
+th {
+ padding: 0;
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_accessibilityscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_accessibility.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_accessibility.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_accessibility.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,32 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* Text meant only for screen readers. */
+.screen-reader-text {
+ clip: rect(1px, 1px, 1px, 1px);
+ height: 1px;
+ overflow: hidden;
+ position: absolute !important;
+ width: 1px;
+
+ &:focus {
+ background-color: #f1f1f1;
+ border-radius: 3px;
+ box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
+ clip: auto !important;
+ color: #21759b;
+ display: block;
+ font-size: 0.875rem;
+ font-weight: bold;
+ height: auto;
+ left: 5px;
+ line-height: normal;
+ padding: 15px 23px 14px;
+ text-decoration: none;
+ top: 5px;
+ width: auto;
+ z-index: 100000; /* Above WP toolbar. */
+ }
+}
+
+/* Do not show the outline on the skip link target. */
+#content[tabindex="-1"]:focus {
+ outline: 0;
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_alignmentsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_alignments.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_alignments.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_alignments.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,18 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.alignleft {
+ display: inline;
+ float: left;
+ margin-right: 1.5em;
+}
+
+.alignright {
+ display: inline;
+ float: right;
+ margin-left: 1.5em;
+}
+
+.aligncenter {
+ clear: both;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_buttonsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_buttons.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_buttons.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_buttons.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,353 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// /* ----------------------------------------------------------------------------
+//
+// NOTE: If you edit this file, you should make sure that the CSS rules for
+// buttons in the following files are updated.
+//
+// * jquery-ui-dialog.css
+// * editor.css
+//
+// WordPress-style Buttons
+// =======================
+// Create a button by adding the `.button` class to an element. For backwards
+// compatibility, we support several other classes (such as `.button-secondary`),
+// but these will *not* work with the stackable classes described below.
+//
+// Button Styles
+// -------------
+// To display a primary button style, add the `.button-primary` class to a button.
+//
+// Button Sizes
+// ------------
+// Adjust a button's size by adding the `.button-large` or `.button-small` class.
+//
+// Button States
+// -------------
+// Lock the state of a button by adding the name of the pseudoclass as
+// an actual class (e.g. `.hover` for `:hover`).
+//
+//
+// TABLE OF CONTENTS:
+// ------------------
+// 1.0 - Button Layouts
+// 2.0 - Default Button Style
+// 3.0 - Primary Button Style
+// 4.0 - Button Groups
+// 5.0 - Responsive Button Styles
+//
+//---------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------------
+ 1.0 - Button Layouts
+---------------------------------------------------------------------------- */
+
+.button,
+.button-primary,
+.button-secondary,
+.plugin-upload-form .button-primary {
+ border: 1px solid;
+ border-radius: 3px;
+ box-sizing: border-box;
+ cursor: pointer;
+ display: inline-block;
+ font-size: ms( -2 );
+ height: ms( 4 );
+ line-height: 1;
+ margin: 0;
+ padding: 0 0.8rem;
+ text-decoration: none;
+ white-space: nowrap;
+ -webkit-appearance: none;
+}
+
+/* Remove the dotted border on :focus and the extra padding in Firefox */
+button::-moz-focus-inner,
+input[type="reset"]::-moz-focus-inner,
+input[type="button"]::-moz-focus-inner,
+input[type="submit"]::-moz-focus-inner {
+ border: 0 none;
+ padding: 0;
+}
+
+.button.button-xl,
+.button-group.button-xl .button {
+ font-size: ms( 0 );
+ height: ms( 8 );
+ line-height: 1;
+ padding: 0 1.5rem;
+}
+
+.button.button-large,
+.button-group.button-large .button {
+ height: ms( 6 );
+ line-height: 1;
+ padding: 0 1rem;
+}
+
+.button.button-small,
+.button-group.button-small .button {
+ font-size: ms( -4 );
+ height: ms( 2 );
+ line-height: 1;
+ padding: 0 0.5rem;
+}
+
+a.button,
+a.button-primary,
+a.button-secondary {
+ line-height: ms( 4 );
+}
+
+a.button.button-large,
+.button-group.button-large a.button {
+ line-height: ms( 6 );
+}
+
+a.button.button-small,
+.button-group.button-small a.button {
+ line-height: ms( 2 );
+}
+
+.button:active,
+.button:focus {
+ outline: none;
+}
+
+.button.hidden {
+ display: none;
+}
+
+/* Style Reset buttons as simple text links */
+
+input[type="reset"],
+input[type="reset"]:hover,
+input[type="reset"]:active,
+input[type="reset"]:focus {
+ background: none;
+ border: none;
+ box-shadow: none;
+ padding: 0 2px 1px;
+ width: auto;
+}
+
+/* ----------------------------------------------------------------------------
+ 2.0 - Default Button Style
+---------------------------------------------------------------------------- */
+
+.button,
+.button:visited,
+.button-secondary {
+ background: #f7f7f7;
+ border-color: #cccccc;
+ box-shadow: 0 1px 0 #cccccc;
+ color: #555;
+ vertical-align: top;
+}
+
+p .button {
+ vertical-align: baseline;
+}
+
+.button.hover,
+.button:hover,
+.button-secondary:hover,
+.button.focus,
+.button:focus,
+.button-secondary:focus {
+ background: #fafafa;
+ border-color: #999;
+ color: #23282d;
+}
+
+.button.focus,
+.button:focus,
+.button-secondary:focus,
+.button-link:focus {
+ border-color: #5b9dd9;
+ box-shadow: 0 0 3px rgba( 0, 115, 170, 0.8 );
+}
+
+.button.active,
+.button.active:hover,
+.button:active,
+.button-secondary:active {
+ background: #eee;
+ border-color: #999;
+ box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+ transform: translateY(1px);
+}
+
+.button.active:focus {
+ border-color: #5b9dd9;
+ box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ), 0 0 3px rgba( 0, 115, 170, 0.8 );
+}
+
+.button[disabled],
+.button:disabled,
+.button.disabled,
+.button-secondary[disabled],
+.button-secondary:disabled,
+.button-secondary.disabled,
+.button-disabled {
+ background: #f7f7f7 !important;
+ border-color: #ddd !important;
+ box-shadow: none !important;
+ color: #a0a5aa !important;
+ cursor: default;
+ text-shadow: 0 1px 0 #fff !important;
+ transform: none !important;
+}
+
+/* Buttons that look like links, for a cross of good semantics with the visual */
+.button-link {
+ background: none;
+ border: 0;
+ border-radius: 0;
+ box-shadow: none;
+ cursor: pointer;
+ margin: 0;
+ outline: none;
+ padding: 0;
+}
+
+.button-link:focus {
+ outline: #5b9dd9 solid 1px;
+}
+
+/* ----------------------------------------------------------------------------
+ 3.0 - Primary Button Style
+---------------------------------------------------------------------------- */
+
+.button-primary,
+.download-button,
+.plugin-upload-form .button-primary {
+ background: #0085ba;
+ border-color: #0073aa #006799 #006799;
+ box-shadow: 0 1px 0 #006799;
+ color: #fff;
+ text-decoration: none;
+ text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;
+
+ &:visited {
+ background: #0085ba;
+ border-color: #0073aa #006799 #006799;
+ box-shadow: 0 1px 0 #006799;
+ color: #fff;
+ }
+
+ &.hover,
+ &:hover,
+ &.focus,
+ &:focus {
+ background: #008ec2;
+ border-color: #006799;
+ box-shadow: 0 1px 0 #006799;
+ color: #fff;
+ }
+
+ &.focus,
+ &:focus {
+ box-shadow: 0 1px 0 #0073aa, 0 0 2px 1px #33b3db;
+ }
+
+ &.active,
+ &.active:hover,
+ &.active:focus,
+ &:active {
+ background: #0073aa;
+ border-color: #006799;
+ box-shadow: inset 0 2px 0 #006799;
+ vertical-align: top;
+ }
+
+ &[disabled],
+ &:disabled,
+ &.disabled {
+ background: #008ec2 !important;
+ border-color: #007cb2 !important;
+ box-shadow: none !important;
+ color: #66c6e4 !important;
+ cursor: default;
+ text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 ) !important;
+ }
+
+ &.button.button-hero {
+ box-shadow: 0 2px 0 #006799;
+
+ &.active,
+ &.active:hover,
+ &.active:focus,
+ &:active {
+ box-shadow: inset 0 3px 0 #006799;
+ }
+ }
+}
+
+.button-primary-disabled {
+ background: #008ec2 !important;
+ border-color: #007cb2 !important;
+ box-shadow: none !important;
+ color: #66c6e4 !important;
+ cursor: default;
+ text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 ) !important;
+}
+
+
+
+/* ----------------------------------------------------------------------------
+ 4.0 - Button Groups
+---------------------------------------------------------------------------- */
+
+.button-group {
+ display: inline-block;
+ font-size: 0;
+ position: relative;
+ vertical-align: middle;
+ white-space: nowrap;
+}
+
+.button-group > .button {
+ border-radius: 0;
+ display: inline-block;
+ margin-right: -1px;
+ z-index: 10;
+}
+
+.button-group > .button-primary {
+ z-index: 100;
+}
+
+.button-group > .button:hover {
+ z-index: 20;
+}
+
+.button-group > .button:first-child {
+ border-radius: 3px 0 0 3px;
+}
+
+.button-group > .button:last-child {
+ border-radius: 0 3px 3px 0;
+}
+
+.button-group > .button:focus {
+ position: relative;
+ z-index: 1;
+}
+
+/* ----------------------------------------------------------------------------
+ 5.0 - Responsive Button Styles
+---------------------------------------------------------------------------- */
+
+@media screen and ( max-width: $ms-breakpoint ) {
+
+ .button,
+ .button.button-large,
+ .button.button-small,
+ .plugin-upload-form .button-primary {
+ font-size: 14px;
+ height: auto;
+ line-height: normal;
+ margin-bottom: 4px;
+ padding: 6px 14px;
+ vertical-align: middle;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_clearingsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_clearings.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_clearings.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_clearings.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,17 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.clear,
+.entry-content,
+.comment-content,
+.site-header,
+.site-content,
+.site-footer {
+ &:before,
+ &:after {
+ content: "";
+ display: table;
+ table-layout: fixed;
+ }
+
+ &:after {
+ clear: both;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_copyscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_copy.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_copy.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_copy.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,23 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+p {
+ &.subheading {
+ color: #82878c;
+ font-size: ms( 2 );
+ font-weight: 300;
+ margin: -0.4rem auto 2rem;
+ text-align: center;
+ }
+
+ &.intro {
+ font-size: ms( 2 );
+ }
+
+ &.aside {
+ font-size: ms( -2 );
+ }
+
+ &.note {
+ font-size: ms( -4 );
+ letter-spacing: 0.01rem;
+ max-width: ms(26);
+ }
+}
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_inputsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_inputs.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_inputs.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_inputs.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,326 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* ----------------------------------------------------------------------------
+
+WordPress-style Form Elements
+=============================
+These are the current form element styles for wp-admin. Many of them include the .wp-admin class to be appended which I appended to the html tag on this pen.
+
+Form Styles
+-------------
+All form element styles are minimal and require additional styling for layout.
+
+---------------------------------------------------------------------------- */
+
+/* Include margin and padding in the width calculation of input and textarea. */
+input,
+textarea {
+ box-sizing: border-box;
+}
+
+input[type="checkbox"],
+input[type="color"],
+input[type="date"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="email"],
+input[type="month"],
+input[type="number"],
+input[type="password"],
+input[type="radio"],
+input[type="search"],
+input[type="tel"],
+input[type="text"],
+input[type="time"],
+input[type="url"],
+input[type="week"],
+select,
+textarea {
+ background-color: #fff;
+ border: 1px solid #ddd;
+ box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.07 );
+ color: #32373c;
+ outline: none;
+ transition: 0.05s border-color ease-in-out;
+
+ &:focus {
+ border-color: #5b9dd9;
+ box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
+ }
+}
+
+/* rtl:ignore */
+input[type="email"],
+input[type="url"] {
+ direction: ltr;
+}
+
+/* Vertically align the number selector with the input. */
+input[type="number"] {
+ height: 28px;
+ line-height: inherit;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ background: #fff;
+ border: 1px solid #b4b9be;
+ box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.1 );
+ clear: none;
+ color: #555;
+ cursor: pointer;
+ display: inline-block;
+ height: 16px;
+ line-height: 0;
+ margin: -4px 4px 0 0;
+ min-width: 16px;
+ outline: 0;
+ padding: 0 !important;
+ text-align: center;
+ transition: 0.05s border-color ease-in-out;
+ vertical-align: middle;
+ width: 16px;
+ -webkit-appearance: none;
+
+ &:checked:before {
+ display: inline-block;
+ float: left;
+ font: normal 21px/1 dashicons;
+ vertical-align: middle;
+ width: 16px;
+ speak: none;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+
+ &.disabled,
+ &:disabled,
+ &:disabled:checked:before,
+ &.disabled:checked:before {
+ opacity: 0.7;
+ }
+}
+
+input[type="checkbox"]:checked:before {
+ color: #1e8cbe;
+ content: "\f147";
+ margin: -3px 0 0 -4px;
+}
+
+input[type="radio"] {
+ border-radius: 50%;
+ line-height: 10px;
+ margin-right: 4px;
+
+ &:checked + label:before {
+ color: #82878c;
+ }
+
+ &:checked:before {
+ background-color: #1e8cbe;
+ border-radius: 50px;
+ content: "\2022";
+ font-size: 24px;
+ height: 6px;
+ line-height: 16px;
+ margin: 4px;
+ text-indent: -9999px;
+ width: 6px;
+ }
+}
+
+input[type="reset"]:hover,
+input[type="reset"]:active {
+ color: #00a0d2;
+}
+
+/* Search */
+input[type="search"] {
+ -webkit-appearance: textfield;
+
+ &::-webkit-search-decoration {
+ display: none;
+ }
+}
+
+textarea,
+input,
+select,
+button {
+ font-family: inherit;
+ font-size: inherit;
+ font-weight: inherit;
+}
+
+textarea,
+input,
+select {
+ border-radius: 0;
+ font-size: 14px;
+ padding: 3px 5px; /* Reset mobile webkit's default element styling */
+}
+
+textarea {
+ line-height: 1.4;
+ overflow: auto;
+ padding: 2px 6px;
+ resize: vertical;
+
+ &.code {
+ line-height: 1.4;
+ padding: 4px 6px 1px 6px;
+ }
+}
+
+label {
+ cursor: pointer;
+ vertical-align: middle;
+}
+
+input,
+select {
+ margin: 1px;
+ padding: 3px 5px;
+}
+
+input.code {
+ padding-top: 6px;
+}
+
+input.readonly,
+input[readonly],
+textarea.readonly,
+textarea[readonly] {
+ background-color: #eee;
+}
+
+:-moz-placeholder,
+.wp-core-ui :-moz-placeholder {
+ color: #a9a9a9;
+}
+
+input:disabled,
+input.disabled,
+select:disabled,
+select.disabled,
+textarea:disabled,
+textarea.disabled {
+ background: rgba( 255, 255, 255, 0.5 );
+ border-color: rgba( 222, 222, 222, 0.75 );
+ box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.04 );
+ color: rgba( 51, 51, 51, 0.5 );
+}
+
+input[type="file"]:disabled,
+input[type="file"].disabled,
+input[type="range"]:disabled,
+input[type="range"].disabled {
+ background: none;
+ box-shadow: none;
+}
+
+input.large-text,
+textarea.large-text {
+ width: 99%;
+}
+
+input.regular-text {
+ width: 25em;
+}
+
+input.small-text {
+ padding: 1px 6px;
+ width: 50px;
+}
+
+input[type="number"].small-text {
+ width: 65px;
+}
+
+input.tiny-text {
+ width: 35px;
+}
+
+input[type="number"].tiny-text {
+ width: 45px;
+}
+
+
+/* =Media Queries
+-------------------------------------------------------------- */
+
+@media screen and ( max-width: 782px ) {
+ /* Input Elements */
+ textarea {
+ -webkit-appearance: none;
+ }
+
+ input[type="text"],
+ input[type="email"],
+ input[type="search"],
+ input[type="password"],
+ input[type="number"] {
+ -webkit-appearance: none;
+ padding: 6px 10px;
+ }
+
+ input[type="number"] {
+ height: 40px;
+ }
+
+ input.code {
+ padding-bottom: 5px;
+ padding-top: 10px;
+ }
+
+ input[type="checkbox"] {
+ -webkit-appearance: none;
+ padding: 10px;
+ }
+
+ input[type="checkbox"]:checked:before {
+ font: normal 30px/1 dashicons;
+ margin: -3px -5px;
+ }
+
+ input[type="radio"],
+ input[type="checkbox"] {
+ height: 25px;
+ width: 25px;
+ }
+
+ input[type="radio"]:checked:before {
+ vertical-align: middle;
+ width: 9px;
+ height: 9px;
+ margin: 7px;
+ line-height: 16px;
+ }
+
+ textarea,
+ input {
+ font-size: 16px;
+ }
+
+ input[type="text"].small-text,
+ input[type="search"].small-text,
+ input[type="password"].small-text,
+ input[type="number"].small-text,
+ input[type="number"].small-text {
+ width: auto;
+ max-width: 55px;
+ display: inline;
+ padding: 3px 6px;
+ margin: 0 3px;
+ }
+
+ input.regular-text {
+ width: 100%;
+ }
+
+ label {
+ font-size: 14px;
+ }
+
+ fieldset label {
+ display: block;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_linksscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_links.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_links.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_links.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,13 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+a {
+ &.button:hover,
+ &.button:focus,
+ &.button:active {
+ text-decoration: none;
+ }
+
+ // Override for wp4.css.
+ p &:not(.button),
+ p &:not(.button):hover {
+ border: none;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_mainnavigationscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_main-navigation.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_main-navigation.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_main-navigation.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,135 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.main-navigation {
+ background: $color__wp-blue;
+ clear: both;
+ left: 0;
+ position: absolute;
+ top: 60px;
+ width: 100%;
+
+ ul {
+ display: none;
+ list-style: none;
+ margin: 0;
+ padding-left: 0;
+
+ ul {
+ box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
+ float: left;
+ left: -999em;
+ position: absolute;
+ top: 1.5em;
+ z-index: 99999;
+
+ ul {
+ left: -999em;
+ top: 0;
+ }
+
+ li {
+ &:hover > ul,
+ &.focus > ul {
+ left: 100%;
+ }
+ }
+
+ a {
+ width: 200px;
+ }
+
+ :hover > a,
+ .focus > a {
+ }
+
+ a:hover,
+ a.focus {
+ }
+ }
+
+ li:hover > ul,
+ li.focus > ul {
+ left: auto;
+ }
+ }
+
+ li {
+ border-top: 1px solid rgba( 255, 255, 255, 0.2 );
+ padding: 1rem;
+
+ &:hover > a,
+ &.focus > a {
+ }
+ }
+
+ a {
+ color: rgba( 255, 255, 255, 0.8 );
+ display: block;
+ font-size: ms( -2 );
+ text-decoration: none;
+
+ &:hover,
+ &.active {
+ color: #fff;
+ }
+
+ @media screen and (min-width: $ms-breakpoint) {
+ &.active {
+ border-bottom: 1px solid;
+ }
+ }
+ }
+}
+
+/* Small menu. */
+.main-navigation.toggled ul {
+ display: block;
+}
+
+.menu-toggle {
+ background: transparent;
+ border: none;
+ color: #fff;
+ font-size: ms( 4 );
+ height: 3.5rem;
+ overflow: hidden;
+ position: absolute;
+ right: 1rem;
+ top: -58px;
+ width: 3.5rem;
+ -webkit-appearance: none;
+
+ .toggled &:before {
+ content: "\f343";
+ }
+}
+
+@media screen and ( min-width: $ms-breakpoint ) {
+ .menu-toggle {
+ display: none;
+ }
+ .main-navigation {
+ float: right;
+ position: initial;
+ width: initial;
+
+ &.toggled {
+ padding: 1px 0;
+ }
+
+ ul {
+ display: inline-block;
+ font-size: 0;
+
+ li {
+ border: 0;
+ display: inline-block;
+ font-size: ms( 0 );
+ margin-right: 1rem;
+ padding: 0;
+
+ &:last-of-type {
+ margin-right: 0;
+ }
+ }
+ }
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_noticesscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_notices.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_notices.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_notices.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,53 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.notice {
+ background: #fff;
+ border-left: 4px solid #fff;
+ box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
+ margin: 1em 0;
+ padding: 1px 12px;
+
+ p {
+ font-size: ms( -2 );
+ margin: 0.5em 0;
+ padding: 2px;
+ }
+
+ &.notice-alt {
+ box-shadow: none;
+ }
+
+ &.notice-large {
+ padding: 10px 20px;
+ }
+
+ &.notice-success {
+ border-left-color: #46b450;
+ }
+
+ &.notice-success.notice-alt {
+ background-color: #ecf7ed;
+ }
+
+ &.notice-warning {
+ border-left-color: #ffb900;
+ }
+
+ &.notice-warning.notice-alt {
+ background-color: #fff8e5;
+ }
+
+ &.notice-error {
+ border-left-color: #dc3232;
+ }
+
+ &.notice-error.notice-alt {
+ background-color: #fbeaea;
+ }
+
+ &.notice-info {
+ border-left-color: #00a0d2;
+ }
+
+ &.notice-info.notice-alt {
+ background-color: #e5f5fa;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_objectsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_objects.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_objects.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_objects.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,14 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+@import "accessibility";
+@import "alignments";
+@import "buttons";
+@import "clearings";
+@import "copy";
+@import "inputs";
+@import "links";
+@import "main-navigation";
+@import "notices";
+@import "site-description";
+@import "site-header";
+@import "site-main";
+@import "site-title";
+@import "wporg-header";
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_sitedescriptionscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-description.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-description.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-description.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,7 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.site-description {
+ color: rgba( 255, 255, 255, 0.8);
+ font-size: ms( 2 );
+ font-weight: 300;
+ margin: -0.4rem auto 2rem;
+ text-align: center;
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_siteheaderscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-header.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-header.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-header.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,20 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.site-header {
+ background: $color__wp-blue;
+ padding: 1rem 0;
+ position: relative;
+
+ .site-branding {
+ margin: 0 auto;
+ max-width: 960px;
+ padding: 0 ms( 4 );
+
+ @media screen and ( min-width: $ms-breakpoint ) {
+ padding: 0 10px;
+ }
+ }
+
+ &.home {
+ padding: ms( 4 ) ms( 1 );
+ text-align: center;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_sitemainscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-main.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-main.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-main.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,34 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.site-main {
+ margin: 0 auto;
+ max-width: 960px;
+ padding: ms( 10 ) ms( 4 );
+
+ @media screen and ( min-width: $ms-breakpoint ) {
+ padding: ms( 10 ) 10px;
+ }
+
+ &.single,
+ .single & {
+ padding: 0;
+
+ @media screen and ( min-width: $ms-breakpoint ) {
+ padding: 0 10px ms( 10 );
+ }
+ }
+
+ &.page,
+ .page & {
+ padding-top: 0;
+ }
+
+ .page-title {
+ font-size: ms( 4 );
+ font-weight: 400;
+ }
+
+ .no-results {
+ margin: 0 auto;
+ max-width: ms( 32 );
+ padding: 0 2rem;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_sitetitlescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-title.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-title.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_site-title.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,25 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.site-title {
+ display: inline-block;
+ font-size: ms( 4 );
+ font-weight: 300;
+ line-height: 1;
+ margin: 0 2rem 0 0;
+ max-width: none;
+
+ a {
+ color: #fff;
+ font-weight: 300;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+ }
+
+ .site-header.home & {
+ display: inherit;
+ font-size: ms( 12 );
+ margin: 2rem 0 1rem;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssobjects_wporgheaderscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_wporg-header.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_wporg-header.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/objects/_wporg-header.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,53 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+#wporg-header {
+ h1 {
+ margin: auto;
+ }
+
+ h2.rosetta {
+ clear: none;
+ }
+
+ form input {
+ box-sizing: content-box;
+ margin: 0;
+ padding: 3px;
+ }
+
+ .button {
+ box-shadow: none;
+ }
+
+ .download-button {
+ background-color: #21759b;
+ background-image: linear-gradient(to bottom, #2a95c5, #21759b);
+ border-bottom-color: #1e6a8d;
+ border-color: #21759b;
+ box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5 );
+
+ &:hover,
+ &:focus {
+ background-color: #278ab7;
+ background-image: linear-gradient(to bottom, #2e9fd2, #21759b);
+ border-color: #1b607f;
+ box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.3 );
+ }
+
+ &:active {
+ background: #1b607f;
+ background-image: linear-gradient(to bottom, #21759b, #278ab7);
+ border-color: #124560 #2382ae #2382ae #2382ae;
+ box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
+ color: rgba(255,255,255,0.95);
+ text-shadow: 0 1px 0 rgba(0,0,0,0.1);
+ transform: none;
+ }
+ }
+
+ a:hover,
+ a:focus,
+ a:active {
+ text-decoration: none;
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsssettings_colorsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_colors.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_colors.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_colors.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,3 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+$color__wp-blue: #0073aa;
+$color__base-gray: #32373c;
+$color__green: #c7e8ca;
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsssettings_modularscalescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_modular-scale.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_modular-scale.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_modular-scale.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,3 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+$ms-base: 1rem 1.143rem;
+$ms-ratio: 1.25;
+$ms-breakpoint: 737px;
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsssettings_settingsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_settings.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_settings.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_settings.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,3 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+@import "colors";
+@import "modular-scale";
+@import "typography";
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsssettings_typographyscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_typography.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_typography.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/settings/_typography.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,3 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+$type__base: 18px;
+$type__base-mobile: 16px;
+$type__lineheight: 1.5;
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcssstylescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/style.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/style.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/style.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,29 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+//--------------------------------------------------------------
+// 01 Settings
+//------------------------------------------------------------*/
+@import "settings/settings";
+
+//--------------------------------------------------------------
+// 02 Tools
+//------------------------------------------------------------*/
+@import "tools/tools";
+
+//--------------------------------------------------------------
+// 03 Generic
+//------------------------------------------------------------*/
+@import "generic/generic";
+
+//--------------------------------------------------------------
+// 04 Base
+//------------------------------------------------------------*/
+@import "base/base";
+
+//--------------------------------------------------------------
+// 05 Objects
+//------------------------------------------------------------*/
+@import "objects/objects";
+
+//--------------------------------------------------------------
+// 06 Components
+//------------------------------------------------------------*/
+@import "components/components";
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsstools_modularscalescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/_modular-scale.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/_modular-scale.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/_modular-scale.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,1486 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// Golden ratio
+$phi : 1.618034 ;
+$golden : $phi ;
+
+$double-octave : 4 ;
+$major-twelfth : 3 ;
+$major-eleventh : 2.666666667 ;
+$major-tenth : 2.5 ;
+$octave : 2 ;
+$major-seventh : 1.875 ;
+$minor-seventh : 1.777777778 ;
+$major-sixth : 1.666666667 ;
+$minor-sixth : 1.6 ;
+$fifth : 1.5 ;
+$augmented-fourth : 1.41421 ;
+$fourth : 1.333333333 ;
+$major-third : 1.25 ;
+$minor-third : 1.2 ;
+$major-second : 1.125 ;
+$minor-second : 1.066666667 ;
+
+
+$ms-base: 1em !default;
+$ms-ratio: $golden !default;
+$ms-range: null !default;
+$ms-fluid: true !default;
+
+
+// Feature testing
+
+
+// Test if the pow() function exists
+@function ms-pow-exists() {
+ @if pow(4, 2) == 16 {
+ @return true;
+ }
+ @return false;
+}
+
+$MS-pow-exists: ms-pow-exists();
+
+// Test if MS was installed via the gem
+@function ms-gem-exists() {
+ @if ms-gem-installed() == true {
+ @return true;
+ }
+ @return false;
+}
+
+$MS-gem-exists: ms-gem-exists();
+
+// If a native exponent function doesnt exist
+// this one is needed.
+@function ms-pow($Base, $Exponent) {
+
+ // Find and remove unit.
+ // Avoids messyness with unit calculations
+ $Unit: $Base * 0 + 1;
+ $Base: $Base/$Unit;
+
+ // This function doesnt support non-interger exponents.
+ // Warn the user about why this is breaking.
+ @if round($Exponent) != $Exponent {
+ @warn "Unfortunately, you need Compass to use non-integer exponents";
+ }
+
+ // Set up the loop, priming the return with the base.
+ $Return: $Base;
+
+ // If the number is positive, multiply it.
+ @if $Exponent > 0 {
+ // Basic feedback loop as exponents
+ // are recursivley multiplied numbers.
+ @for $i from 1 to $Exponent {
+ $Return: $Return * $Base;
+ }
+ }
+
+ // If the number is 0 or negitive
+ // divide instead of multiply.
+ @else {
+ // Libsass doesnt allow negitive values in loops
+ @for $i from (-1 + 1) to (abs($Exponent) + 1) {
+ $Return: $Return / $Base;
+ }
+ }
+
+ // Return is now compounded redy to be returned.
+ // Add the unit back onto the number.
+ @return $Return * $Unit;
+}
+
+
+@function ms-calc($Value, $Base: $ms-base, $Ratio: $ms-ratio) {
+
+ // If pow exists use it.
+ // It supports non-interger values!
+ @if $MS-pow-exists {
+
+ // The formula for figuring out modular scales is:
+ // (r^v)*b
+ @return pow($Ratio, $Value) * $Base;
+ }
+
+ // If not, use ms-pow().
+ // Not as fast or capable of non-integer exponents.
+ @else {
+ @return ms-pow($Ratio, $Value) * $Base;
+ }
+}
+
+
+@function ms-reverse-list($list) {
+ @if length($list) > 1 {
+ @if nth($list, 1) > nth($list, length($list)) {
+ $MS-reversed-list: ();
+ @each $Value in $list {
+ $MS-reversed-list: join($Value, $MS-reversed-list);
+ }
+ @return $MS-reversed-list;
+ }
+ }
+ @return $list;
+}
+
+
+@function ms-generate-list($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // Create blank lists
+ $MS-list: ();
+ $MS-base-list: ();
+
+ // Loop through each ratio AND each base
+ // to generate all possibilities.
+ @each $Ratio in $Ratios {
+ @each $Base in $Bases {
+
+ // Set base variables
+ $MS-base-list: ();
+ $Base-counter: 0;
+
+ // Seed list with an initial value
+ $MS-base-list: $Base;
+
+ // Find values on a positive scale
+ @if $Value >= 0 {
+
+ // Find lower values on the scale
+ $Base-counter: -1;
+ @while ms-calc($Base-counter, $Base, $Ratio) >= nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter - 1;
+ }
+
+ // Ensure the list is smallest to largest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Find higher possible values on the scale
+ $Base-counter: 1;
+ @while ms-calc($Base-counter, $Base, $Ratio) <= ms-calc($Value, nth($Bases, 1), $Ratio) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter + 1;
+ }
+ }
+
+ // Find values on a negitive scale
+ @else {
+
+ // Find lower values on the scale
+ $Base-counter: 1;
+ @while ms-calc($Base-counter, $Base, $Ratio) <= nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter + 1;
+ }
+
+ // Ensure the list is smallest to largest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Find higher possible values on the scale
+ $Base-counter: -1;
+ @while ms-calc($Base-counter, $Base, $Ratio) >= ms-calc($Value, nth($Bases, 1), $Ratio) {
+ $MS-calc: ms-calc($Base-counter, $Base, $Ratio);
+ // detect if the value excedes the main base value
+ @if $MS-calc < nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, $MS-calc);
+ }
+ $Base-counter: $Base-counter - 1;
+ }
+
+ // Trim outlier base.
+ @if length($Bases) > 1 {
+ @for $i from 2 through length($Bases) {
+ @if nth($MS-base-list, 1) > nth($Bases, 1) {
+ $MS-new-list: ();
+ @for $i from 2 through length($MS-base-list) {
+ $MS-new-list: join($MS-new-list, nth($MS-base-list, $i));
+ }
+ $MS-base-list: $MS-new-list;
+ }
+ }
+ }
+ }
+
+ // reverse list if its largest to smallest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Add new possibilities to the master list
+ $MS-list: append($MS-list, $MS-base-list, comma);
+
+ }
+ }
+
+ // After all the possibilities are found, output a master list
+ @return $MS-list;
+}
+
+
+// List sorting via a modified merge-sort algorythmn
+// http://en.wikipedia.org/wiki/Merge_sort
+
+@function ms-merge($A, $B) {
+
+ $Return: ();
+
+ // Some empty lists get passed through
+ // so just pass the other list throguh
+ @if length($A) == 0 {
+ @return $B;
+ }
+
+ // If lists fit next to each other, just merge them
+ // This helps performance skipping the need to check each value
+ @if nth($A, length($A)) < nth($B, 1) {
+ @return join($A, $B);
+ }
+ @if nth($B, length($B)) < nth($A, 1) {
+ @return join($B, $A);
+ }
+
+ // Counters start at 1
+ $A-counter: 1;
+ $B-counter: 1;
+
+ // Start looping through all numbers in array
+ @while $A-counter <= length($A) and $B-counter <= length($B) {
+
+ // Check if the A value is smaller
+ // Uses or equal to avoid duplicate numbers
+ @if nth($A, $A-counter) <= nth($B, $B-counter) {
+ $Return: join($Return, nth($A, $A-counter));
+ $A-counter: $A-counter + 1;
+ }
+
+ // Check if the B value is smaller
+ @else if nth($A, $A-counter) > nth($B, $B-counter) {
+ $Return: join($Return, nth($B, $B-counter));
+ $B-counter: $B-counter + 1;
+ }
+ }
+
+ // Run through remainder values in the list
+ @while $A-counter <= length($A) {
+ $Current: nth($A, $A-counter);
+ @if $Current != nth($Return, length($Return)) {
+ $Return: join($Return, $Current);
+ }
+ $A-counter: $A-counter + 1;
+ }
+ @while $B-counter <= length($B) {
+ $Current: nth($B, $B-counter);
+ @if $Current != nth($Return, length($Return)) {
+ $Return: join($Return, $Current);
+ }
+ $B-counter: $B-counter + 1;
+ }
+
+ // Done! return is now sorted and complete
+ @return $Return;
+}
+
+
+
+// Pull it all together
+@function ms-sort-list($Lists) {
+
+ $Return: ();
+
+ @each $List in $Lists {
+ @if $Return == () {
+ $Return: $List;
+ }
+ @else {
+ $Return: ms-merge($List, $Return);
+ }
+ }
+
+ // final cleanup of repeated items
+ $Last: null;
+ $New-list: ();
+ @each $Item in $Return {
+ @if $Item != $Last {
+ $New-list: join($New-list, $Item);
+ }
+ $Last: $Item;
+ }
+ $Return: $New-list;
+
+
+ @return $Return;
+}
+
+
+@function ms-round-px($Result) {
+ @if unit($Result) == 'px' {
+ @return round($Result);
+ }
+ @return $Result;
+}
+
+
+// The main function that brings it all together
+@function ms($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // If no multi-base or multi-ratio stuff is going on
+ // then just retrn the basic calculaiton
+ @if length($Bases) == 1 and length($Ratios) == 1 {
+ @return ms-round-px(ms-calc($Value, $Bases, $Ratios));
+ }
+
+ // Do calculations directly in Ruby when avalible
+ @if $MS-gem-exists {
+
+ // Remove units from bases
+ $Unit: nth($Bases, 1) * 0 + 1; // Extracts the unit from the base
+ $Unitless-Bases: ();
+ @each $Base in $Bases {
+ $Base: $Base/$Unit;
+ $Unitless-Bases: join($Unitless-Bases, $Base);
+ }
+
+ // Calculate natively in Ruby
+ @return ms-round-px(ms-gem-func($Value, $Unitless-Bases, $Ratios) * $Unit);
+ }
+
+ // Generate a list of all possible values
+ $Return: ms-generate-list($Value, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Return: ms-sort-list($Return);
+
+ // Reverse list if its negitive.
+ @if $Value < 0 {
+ $MS-new-return: ();
+ @each $i in $Return {
+ $MS-new-return: join($i, $MS-new-return);
+ }
+ $Return: $MS-new-return;
+ }
+
+ // Normalize value for counting from 1
+ // Because CSS counts things from 1
+ // So Sass does as well
+ // So I get to write fun stuff like this
+ $Value: abs($Value) + 1;
+
+ // Find the correct value in the list
+ $Return: nth($Return, $Value);
+
+ @return ms-round-px($Return);
+}
+
+// Same function, different name, for good measure.
+@function modular-scale($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+ @return ms($Value, $Bases, $Ratios);
+}
+
+
+// Outputs a list of values instead of a single value
+@function ms-list($Start: 0, $End: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // Seed results
+ $Positive-return: ();
+ $Negitive-return: ();
+ $Return: ();
+
+ @if $End >= 0 {
+ // Generate a list of all possible values
+ $Positive-return: ms-generate-list($End, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Positive-return: ms-sort-list($Positive-return);
+
+ // Trim list
+ $Trim-list: ();
+ // If the starting value is a positive number
+ // trim the positive return from that
+ @if $Start >= 0 {
+ @for $i from ($Start + 1) through $End + 1 {
+ $Trim-list: join($Trim-list, nth($Positive-return, $i));
+ }
+ }
+ // If not, then include everything up to the end.
+ @else {
+ @for $i from 1 through $End + 1 {
+ $Trim-list: join($Trim-list, nth($Positive-return, $i));
+ }
+ }
+ $Positive-return: $Trim-list;
+ }
+
+ // Generate a negitive list
+ @if $Start < 0 {
+ // Generate a list of all possible values
+ $Negitive-return: ms-generate-list($Start, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Negitive-return: ms-sort-list($Negitive-return);
+
+ // Reverse negitive list results.
+ $MS-new-return: ();
+ @each $i in $Negitive-return {
+ $MS-new-return: join($i, $MS-new-return);
+ }
+ $Negitive-return: $MS-new-return;
+
+ // Trim list
+ $Trim-list: ();
+ @if $End < 0 {
+ @for $i from abs($End) through (abs($Start) + 2) {
+ $Trim-list: join(nth($Negitive-return, $i), $Trim-list);
+ }
+ }
+ @else {
+ @for $i from 2 through (abs($Start) + 1) {
+ $Trim-list: join(nth($Negitive-return, $i), $Trim-list);
+ }
+ }
+ $Negitive-return: $Trim-list;
+ }
+
+ // Join both positive and negitive possibilities.
+ $Return: join($Negitive-return, $Positive-return);
+
+ @return $Return;
+}
+
+
+// Stripping units is rarely a best practice and this function
+// should not be used elsewhere
+@function ms-unitless($val) {
+ $val: $val / ($val - $val + 1);
+ @return $val;
+}
+
+// Search config for values
+@function ms-range($x,$y,$range:$ms-range) {
+ @return nth(nth($range,$x),$y);
+}
+
+// Generate calc() function
+@function ms-respond-calc($value, $n, $range: $ms-range, $base: $ms-base) {
+ $val1: ms($value,$base,ms-range($n,1,$range));
+ $val2: ms($value,$base,ms-range($n+1,1,$range));
+ $break1: ms-range($n,2,$range);
+ $break2: ms-range($n+1,2,$range);
+ $diff: ms-unitless($val2) - ms-unitless($val1);
+ @if $ms-fluid {
+ @return calc( #{$val1} + #{$diff} * ( ( 100vw - #{$break1}) / #{ms-unitless($break2) - ms-unitless($break1)} ) );
+ } @else {
+ @return ms($value,$base,ms-range($n,1,$range));
+ }
+}
+
+// Main responsive mixin
+@mixin ms-respond($property, $value, $range: $ms-range, $base: $ms-base) {
+ // If there is no responsive config, just output the property and value
+ @if $ms-range == null {
+ #{$property}: ms($value,$base,$ms-ratio);
+ } @else {
+
+ // Initial value
+ #{$property}: ms($value,$base,ms-range(1,1,$range));
+
+ // Loop through breakpoints
+ @for $i from 1 through (length($range) - 1) {
+ @media (min-width: ms-range($i,2,$range)) and (max-width: ms-range($i+1,2,$range)) {
+ #{$property}: ms-respond-calc($value, $i, $range, $base);
+ }
+ }
+
+ // Final breakpoint is just an override value
+ @media (min-width: ms-range(length($range),2,$range)) {
+ #{$property}: ms($value,$base,ms-range(length($range),1,$range));
+ }
+ }
+}// Golden ratio
+$phi : 1.618034 ;
+$golden : $phi ;
+
+$double-octave : 4 ;
+$major-twelfth : 3 ;
+$major-eleventh : 2.666666667 ;
+$major-tenth : 2.5 ;
+$octave : 2 ;
+$major-seventh : 1.875 ;
+$minor-seventh : 1.777777778 ;
+$major-sixth : 1.666666667 ;
+$minor-sixth : 1.6 ;
+$fifth : 1.5 ;
+$augmented-fourth : 1.41421 ;
+$fourth : 1.333333333 ;
+$major-third : 1.25 ;
+$minor-third : 1.2 ;
+$major-second : 1.125 ;
+$minor-second : 1.066666667 ;
+
+
+$ms-base: 1em !default;
+$ms-ratio: $golden !default;
+$ms-range: null !default;
+$ms-fluid: true !default;
+
+
+// Feature testing
+
+
+// Test if the pow() function exists
+@function ms-pow-exists() {
+ @if pow(4, 2) == 16 {
+ @return true;
+ }
+ @return false;
+}
+
+$MS-pow-exists: ms-pow-exists();
+
+// Test if MS was installed via the gem
+@function ms-gem-exists() {
+ @if ms-gem-installed() == true {
+ @return true;
+ }
+ @return false;
+}
+
+$MS-gem-exists: ms-gem-exists();
+
+// If a native exponent function doesnt exist
+// this one is needed.
+@function ms-pow($Base, $Exponent) {
+
+ // Find and remove unit.
+ // Avoids messyness with unit calculations
+ $Unit: $Base * 0 + 1;
+ $Base: $Base/$Unit;
+
+ // This function doesnt support non-interger exponents.
+ // Warn the user about why this is breaking.
+ @if round($Exponent) != $Exponent {
+ @warn "Unfortunately, you need Compass to use non-integer exponents";
+ }
+
+ // Set up the loop, priming the return with the base.
+ $Return: $Base;
+
+ // If the number is positive, multiply it.
+ @if $Exponent > 0 {
+ // Basic feedback loop as exponents
+ // are recursivley multiplied numbers.
+ @for $i from 1 to $Exponent {
+ $Return: $Return * $Base;
+ }
+ }
+
+ // If the number is 0 or negitive
+ // divide instead of multiply.
+ @else {
+ // Libsass doesnt allow negitive values in loops
+ @for $i from (-1 + 1) to (abs($Exponent) + 1) {
+ $Return: $Return / $Base;
+ }
+ }
+
+ // Return is now compounded redy to be returned.
+ // Add the unit back onto the number.
+ @return $Return * $Unit;
+}
+
+
+@function ms-calc($Value, $Base: $ms-base, $Ratio: $ms-ratio) {
+
+ // If pow exists use it.
+ // It supports non-interger values!
+ @if $MS-pow-exists {
+
+ // The formula for figuring out modular scales is:
+ // (r^v)*b
+ @return pow($Ratio, $Value) * $Base;
+ }
+
+ // If not, use ms-pow().
+ // Not as fast or capable of non-integer exponents.
+ @else {
+ @return ms-pow($Ratio, $Value) * $Base;
+ }
+}
+
+
+@function ms-reverse-list($list) {
+ @if length($list) > 1 {
+ @if nth($list, 1) > nth($list, length($list)) {
+ $MS-reversed-list: ();
+ @each $Value in $list {
+ $MS-reversed-list: join($Value, $MS-reversed-list);
+ }
+ @return $MS-reversed-list;
+ }
+ }
+ @return $list;
+}
+
+
+@function ms-generate-list($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // Create blank lists
+ $MS-list: ();
+ $MS-base-list: ();
+
+ // Loop through each ratio AND each base
+ // to generate all possibilities.
+ @each $Ratio in $Ratios {
+ @each $Base in $Bases {
+
+ // Set base variables
+ $MS-base-list: ();
+ $Base-counter: 0;
+
+ // Seed list with an initial value
+ $MS-base-list: $Base;
+
+ // Find values on a positive scale
+ @if $Value >= 0 {
+
+ // Find lower values on the scale
+ $Base-counter: -1;
+ @while ms-calc($Base-counter, $Base, $Ratio) >= nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter - 1;
+ }
+
+ // Ensure the list is smallest to largest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Find higher possible values on the scale
+ $Base-counter: 1;
+ @while ms-calc($Base-counter, $Base, $Ratio) <= ms-calc($Value, nth($Bases, 1), $Ratio) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter + 1;
+ }
+ }
+
+ // Find values on a negitive scale
+ @else {
+
+ // Find lower values on the scale
+ $Base-counter: 1;
+ @while ms-calc($Base-counter, $Base, $Ratio) <= nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter + 1;
+ }
+
+ // Ensure the list is smallest to largest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Find higher possible values on the scale
+ $Base-counter: -1;
+ @while ms-calc($Base-counter, $Base, $Ratio) >= ms-calc($Value, nth($Bases, 1), $Ratio) {
+ $MS-calc: ms-calc($Base-counter, $Base, $Ratio);
+ // detect if the value excedes the main base value
+ @if $MS-calc < nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, $MS-calc);
+ }
+ $Base-counter: $Base-counter - 1;
+ }
+
+ // Trim outlier base.
+ @if length($Bases) > 1 {
+ @for $i from 2 through length($Bases) {
+ @if nth($MS-base-list, 1) > nth($Bases, 1) {
+ $MS-new-list: ();
+ @for $i from 2 through length($MS-base-list) {
+ $MS-new-list: join($MS-new-list, nth($MS-base-list, $i));
+ }
+ $MS-base-list: $MS-new-list;
+ }
+ }
+ }
+ }
+
+ // reverse list if its largest to smallest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Add new possibilities to the master list
+ $MS-list: append($MS-list, $MS-base-list, comma);
+
+ }
+ }
+
+ // After all the possibilities are found, output a master list
+ @return $MS-list;
+}
+
+
+// List sorting via a modified merge-sort algorythmn
+// http://en.wikipedia.org/wiki/Merge_sort
+
+@function ms-merge($A, $B) {
+
+ $Return: ();
+
+ // Some empty lists get passed through
+ // so just pass the other list throguh
+ @if length($A) == 0 {
+ @return $B;
+ }
+
+ // If lists fit next to each other, just merge them
+ // This helps performance skipping the need to check each value
+ @if nth($A, length($A)) < nth($B, 1) {
+ @return join($A, $B);
+ }
+ @if nth($B, length($B)) < nth($A, 1) {
+ @return join($B, $A);
+ }
+
+ // Counters start at 1
+ $A-counter: 1;
+ $B-counter: 1;
+
+ // Start looping through all numbers in array
+ @while $A-counter <= length($A) and $B-counter <= length($B) {
+
+ // Check if the A value is smaller
+ // Uses or equal to avoid duplicate numbers
+ @if nth($A, $A-counter) <= nth($B, $B-counter) {
+ $Return: join($Return, nth($A, $A-counter));
+ $A-counter: $A-counter + 1;
+ }
+
+ // Check if the B value is smaller
+ @else if nth($A, $A-counter) > nth($B, $B-counter) {
+ $Return: join($Return, nth($B, $B-counter));
+ $B-counter: $B-counter + 1;
+ }
+ }
+
+ // Run through remainder values in the list
+ @while $A-counter <= length($A) {
+ $Current: nth($A, $A-counter);
+ @if $Current != nth($Return, length($Return)) {
+ $Return: join($Return, $Current);
+ }
+ $A-counter: $A-counter + 1;
+ }
+ @while $B-counter <= length($B) {
+ $Current: nth($B, $B-counter);
+ @if $Current != nth($Return, length($Return)) {
+ $Return: join($Return, $Current);
+ }
+ $B-counter: $B-counter + 1;
+ }
+
+ // Done! return is now sorted and complete
+ @return $Return;
+}
+
+
+
+// Pull it all together
+@function ms-sort-list($Lists) {
+
+ $Return: ();
+
+ @each $List in $Lists {
+ @if $Return == () {
+ $Return: $List;
+ }
+ @else {
+ $Return: ms-merge($List, $Return);
+ }
+ }
+
+ // final cleanup of repeated items
+ $Last: null;
+ $New-list: ();
+ @each $Item in $Return {
+ @if $Item != $Last {
+ $New-list: join($New-list, $Item);
+ }
+ $Last: $Item;
+ }
+ $Return: $New-list;
+
+
+ @return $Return;
+}
+
+
+@function ms-round-px($Result) {
+ @if unit($Result) == 'px' {
+ @return round($Result);
+ }
+ @return $Result;
+}
+
+
+// The main function that brings it all together
+@function ms($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // If no multi-base or multi-ratio stuff is going on
+ // then just retrn the basic calculaiton
+ @if length($Bases) == 1 and length($Ratios) == 1 {
+ @return ms-round-px(ms-calc($Value, $Bases, $Ratios));
+ }
+
+ // Do calculations directly in Ruby when avalible
+ @if $MS-gem-exists {
+
+ // Remove units from bases
+ $Unit: nth($Bases, 1) * 0 + 1; // Extracts the unit from the base
+ $Unitless-Bases: ();
+ @each $Base in $Bases {
+ $Base: $Base/$Unit;
+ $Unitless-Bases: join($Unitless-Bases, $Base);
+ }
+
+ // Calculate natively in Ruby
+ @return ms-round-px(ms-gem-func($Value, $Unitless-Bases, $Ratios) * $Unit);
+ }
+
+ // Generate a list of all possible values
+ $Return: ms-generate-list($Value, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Return: ms-sort-list($Return);
+
+ // Reverse list if its negitive.
+ @if $Value < 0 {
+ $MS-new-return: ();
+ @each $i in $Return {
+ $MS-new-return: join($i, $MS-new-return);
+ }
+ $Return: $MS-new-return;
+ }
+
+ // Normalize value for counting from 1
+ // Because CSS counts things from 1
+ // So Sass does as well
+ // So I get to write fun stuff like this
+ $Value: abs($Value) + 1;
+
+ // Find the correct value in the list
+ $Return: nth($Return, $Value);
+
+ @return ms-round-px($Return);
+}
+
+// Same function, different name, for good measure.
+@function modular-scale($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+ @return ms($Value, $Bases, $Ratios);
+}
+
+
+// Outputs a list of values instead of a single value
+@function ms-list($Start: 0, $End: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // Seed results
+ $Positive-return: ();
+ $Negitive-return: ();
+ $Return: ();
+
+ @if $End >= 0 {
+ // Generate a list of all possible values
+ $Positive-return: ms-generate-list($End, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Positive-return: ms-sort-list($Positive-return);
+
+ // Trim list
+ $Trim-list: ();
+ // If the starting value is a positive number
+ // trim the positive return from that
+ @if $Start >= 0 {
+ @for $i from ($Start + 1) through $End + 1 {
+ $Trim-list: join($Trim-list, nth($Positive-return, $i));
+ }
+ }
+ // If not, then include everything up to the end.
+ @else {
+ @for $i from 1 through $End + 1 {
+ $Trim-list: join($Trim-list, nth($Positive-return, $i));
+ }
+ }
+ $Positive-return: $Trim-list;
+ }
+
+ // Generate a negitive list
+ @if $Start < 0 {
+ // Generate a list of all possible values
+ $Negitive-return: ms-generate-list($Start, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Negitive-return: ms-sort-list($Negitive-return);
+
+ // Reverse negitive list results.
+ $MS-new-return: ();
+ @each $i in $Negitive-return {
+ $MS-new-return: join($i, $MS-new-return);
+ }
+ $Negitive-return: $MS-new-return;
+
+ // Trim list
+ $Trim-list: ();
+ @if $End < 0 {
+ @for $i from abs($End) through (abs($Start) + 2) {
+ $Trim-list: join(nth($Negitive-return, $i), $Trim-list);
+ }
+ }
+ @else {
+ @for $i from 2 through (abs($Start) + 1) {
+ $Trim-list: join(nth($Negitive-return, $i), $Trim-list);
+ }
+ }
+ $Negitive-return: $Trim-list;
+ }
+
+ // Join both positive and negitive possibilities.
+ $Return: join($Negitive-return, $Positive-return);
+
+ @return $Return;
+}
+
+
+// Stripping units is rarely a best practice and this function
+// should not be used elsewhere
+@function ms-unitless($val) {
+ $val: $val / ($val - $val + 1);
+ @return $val;
+}
+
+// Search config for values
+@function ms-range($x,$y,$range:$ms-range) {
+ @return nth(nth($range,$x),$y);
+}
+
+// Generate calc() function
+@function ms-respond-calc($value, $n, $range: $ms-range, $base: $ms-base) {
+ $val1: ms($value,$base,ms-range($n,1,$range));
+ $val2: ms($value,$base,ms-range($n+1,1,$range));
+ $break1: ms-range($n,2,$range);
+ $break2: ms-range($n+1,2,$range);
+ $diff: ms-unitless($val2) - ms-unitless($val1);
+ @if $ms-fluid {
+ @return calc( #{$val1} + #{$diff} * ( ( 100vw - #{$break1}) / #{ms-unitless($break2) - ms-unitless($break1)} ) );
+ } @else {
+ @return ms($value,$base,ms-range($n,1,$range));
+ }
+}
+
+// Main responsive mixin
+@mixin ms-respond($property, $value, $range: $ms-range, $base: $ms-base) {
+ // If there is no responsive config, just output the property and value
+ @if $ms-range == null {
+ #{$property}: ms($value,$base,$ms-ratio);
+ } @else {
+
+ // Initial value
+ #{$property}: ms($value,$base,ms-range(1,1,$range));
+
+ // Loop through breakpoints
+ @for $i from 1 through (length($range) - 1) {
+ @media (min-width: ms-range($i,2,$range)) and (max-width: ms-range($i+1,2,$range)) {
+ #{$property}: ms-respond-calc($value, $i, $range, $base);
+ }
+ }
+
+ // Final breakpoint is just an override value
+ @media (min-width: ms-range(length($range),2,$range)) {
+ #{$property}: ms($value,$base,ms-range(length($range),1,$range));
+ }
+ }
+}// Golden ratio
+$phi : 1.618034 ;
+$golden : $phi ;
+
+$double-octave : 4 ;
+$major-twelfth : 3 ;
+$major-eleventh : 2.666666667 ;
+$major-tenth : 2.5 ;
+$octave : 2 ;
+$major-seventh : 1.875 ;
+$minor-seventh : 1.777777778 ;
+$major-sixth : 1.666666667 ;
+$minor-sixth : 1.6 ;
+$fifth : 1.5 ;
+$augmented-fourth : 1.41421 ;
+$fourth : 1.333333333 ;
+$major-third : 1.25 ;
+$minor-third : 1.2 ;
+$major-second : 1.125 ;
+$minor-second : 1.066666667 ;
+
+
+$ms-base: 1em !default;
+$ms-ratio: $golden !default;
+$ms-range: null !default;
+$ms-fluid: true !default;
+
+
+// Feature testing
+
+
+// Test if the pow() function exists
+@function ms-pow-exists() {
+ @if pow(4, 2) == 16 {
+ @return true;
+ }
+ @return false;
+}
+
+$MS-pow-exists: ms-pow-exists();
+
+// Test if MS was installed via the gem
+@function ms-gem-exists() {
+ @if ms-gem-installed() == true {
+ @return true;
+ }
+ @return false;
+}
+
+$MS-gem-exists: ms-gem-exists();
+
+// If a native exponent function doesnt exist
+// this one is needed.
+@function ms-pow($Base, $Exponent) {
+
+ // Find and remove unit.
+ // Avoids messyness with unit calculations
+ $Unit: $Base * 0 + 1;
+ $Base: $Base/$Unit;
+
+ // This function doesnt support non-interger exponents.
+ // Warn the user about why this is breaking.
+ @if round($Exponent) != $Exponent {
+ @warn "Unfortunately, you need Compass to use non-integer exponents";
+ }
+
+ // Set up the loop, priming the return with the base.
+ $Return: $Base;
+
+ // If the number is positive, multiply it.
+ @if $Exponent > 0 {
+ // Basic feedback loop as exponents
+ // are recursivley multiplied numbers.
+ @for $i from 1 to $Exponent {
+ $Return: $Return * $Base;
+ }
+ }
+
+ // If the number is 0 or negitive
+ // divide instead of multiply.
+ @else {
+ // Libsass doesnt allow negitive values in loops
+ @for $i from (-1 + 1) to (abs($Exponent) + 1) {
+ $Return: $Return / $Base;
+ }
+ }
+
+ // Return is now compounded redy to be returned.
+ // Add the unit back onto the number.
+ @return $Return * $Unit;
+}
+
+
+@function ms-calc($Value, $Base: $ms-base, $Ratio: $ms-ratio) {
+
+ // If pow exists use it.
+ // It supports non-interger values!
+ @if $MS-pow-exists {
+
+ // The formula for figuring out modular scales is:
+ // (r^v)*b
+ @return pow($Ratio, $Value) * $Base;
+ }
+
+ // If not, use ms-pow().
+ // Not as fast or capable of non-integer exponents.
+ @else {
+ @return ms-pow($Ratio, $Value) * $Base;
+ }
+}
+
+
+@function ms-reverse-list($list) {
+ @if length($list) > 1 {
+ @if nth($list, 1) > nth($list, length($list)) {
+ $MS-reversed-list: ();
+ @each $Value in $list {
+ $MS-reversed-list: join($Value, $MS-reversed-list);
+ }
+ @return $MS-reversed-list;
+ }
+ }
+ @return $list;
+}
+
+
+@function ms-generate-list($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // Create blank lists
+ $MS-list: ();
+ $MS-base-list: ();
+
+ // Loop through each ratio AND each base
+ // to generate all possibilities.
+ @each $Ratio in $Ratios {
+ @each $Base in $Bases {
+
+ // Set base variables
+ $MS-base-list: ();
+ $Base-counter: 0;
+
+ // Seed list with an initial value
+ $MS-base-list: $Base;
+
+ // Find values on a positive scale
+ @if $Value >= 0 {
+
+ // Find lower values on the scale
+ $Base-counter: -1;
+ @while ms-calc($Base-counter, $Base, $Ratio) >= nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter - 1;
+ }
+
+ // Ensure the list is smallest to largest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Find higher possible values on the scale
+ $Base-counter: 1;
+ @while ms-calc($Base-counter, $Base, $Ratio) <= ms-calc($Value, nth($Bases, 1), $Ratio) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter + 1;
+ }
+ }
+
+ // Find values on a negitive scale
+ @else {
+
+ // Find lower values on the scale
+ $Base-counter: 1;
+ @while ms-calc($Base-counter, $Base, $Ratio) <= nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, ms-calc($Base-counter, $Base, $Ratio));
+ $Base-counter: $Base-counter + 1;
+ }
+
+ // Ensure the list is smallest to largest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Find higher possible values on the scale
+ $Base-counter: -1;
+ @while ms-calc($Base-counter, $Base, $Ratio) >= ms-calc($Value, nth($Bases, 1), $Ratio) {
+ $MS-calc: ms-calc($Base-counter, $Base, $Ratio);
+ // detect if the value excedes the main base value
+ @if $MS-calc < nth($Bases, 1) {
+ $MS-base-list: join($MS-base-list, $MS-calc);
+ }
+ $Base-counter: $Base-counter - 1;
+ }
+
+ // Trim outlier base.
+ @if length($Bases) > 1 {
+ @for $i from 2 through length($Bases) {
+ @if nth($MS-base-list, 1) > nth($Bases, 1) {
+ $MS-new-list: ();
+ @for $i from 2 through length($MS-base-list) {
+ $MS-new-list: join($MS-new-list, nth($MS-base-list, $i));
+ }
+ $MS-base-list: $MS-new-list;
+ }
+ }
+ }
+ }
+
+ // reverse list if its largest to smallest
+ $MS-base-list: ms-reverse-list($MS-base-list);
+
+ // Add new possibilities to the master list
+ $MS-list: append($MS-list, $MS-base-list, comma);
+
+ }
+ }
+
+ // After all the possibilities are found, output a master list
+ @return $MS-list;
+}
+
+
+// List sorting via a modified merge-sort algorythmn
+// http://en.wikipedia.org/wiki/Merge_sort
+
+@function ms-merge($A, $B) {
+
+ $Return: ();
+
+ // Some empty lists get passed through
+ // so just pass the other list throguh
+ @if length($A) == 0 {
+ @return $B;
+ }
+
+ // If lists fit next to each other, just merge them
+ // This helps performance skipping the need to check each value
+ @if nth($A, length($A)) < nth($B, 1) {
+ @return join($A, $B);
+ }
+ @if nth($B, length($B)) < nth($A, 1) {
+ @return join($B, $A);
+ }
+
+ // Counters start at 1
+ $A-counter: 1;
+ $B-counter: 1;
+
+ // Start looping through all numbers in array
+ @while $A-counter <= length($A) and $B-counter <= length($B) {
+
+ // Check if the A value is smaller
+ // Uses or equal to avoid duplicate numbers
+ @if nth($A, $A-counter) <= nth($B, $B-counter) {
+ $Return: join($Return, nth($A, $A-counter));
+ $A-counter: $A-counter + 1;
+ }
+
+ // Check if the B value is smaller
+ @else if nth($A, $A-counter) > nth($B, $B-counter) {
+ $Return: join($Return, nth($B, $B-counter));
+ $B-counter: $B-counter + 1;
+ }
+ }
+
+ // Run through remainder values in the list
+ @while $A-counter <= length($A) {
+ $Current: nth($A, $A-counter);
+ @if $Current != nth($Return, length($Return)) {
+ $Return: join($Return, $Current);
+ }
+ $A-counter: $A-counter + 1;
+ }
+ @while $B-counter <= length($B) {
+ $Current: nth($B, $B-counter);
+ @if $Current != nth($Return, length($Return)) {
+ $Return: join($Return, $Current);
+ }
+ $B-counter: $B-counter + 1;
+ }
+
+ // Done! return is now sorted and complete
+ @return $Return;
+}
+
+
+
+// Pull it all together
+@function ms-sort-list($Lists) {
+
+ $Return: ();
+
+ @each $List in $Lists {
+ @if $Return == () {
+ $Return: $List;
+ }
+ @else {
+ $Return: ms-merge($List, $Return);
+ }
+ }
+
+ // final cleanup of repeated items
+ $Last: null;
+ $New-list: ();
+ @each $Item in $Return {
+ @if $Item != $Last {
+ $New-list: join($New-list, $Item);
+ }
+ $Last: $Item;
+ }
+ $Return: $New-list;
+
+
+ @return $Return;
+}
+
+
+@function ms-round-px($Result) {
+ @if unit($Result) == 'px' {
+ @return round($Result);
+ }
+ @return $Result;
+}
+
+
+// The main function that brings it all together
+@function ms($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // If no multi-base or multi-ratio stuff is going on
+ // then just retrn the basic calculaiton
+ @if length($Bases) == 1 and length($Ratios) == 1 {
+ @return ms-round-px(ms-calc($Value, $Bases, $Ratios));
+ }
+
+ // Do calculations directly in Ruby when avalible
+ @if $MS-gem-exists {
+
+ // Remove units from bases
+ $Unit: nth($Bases, 1) * 0 + 1; // Extracts the unit from the base
+ $Unitless-Bases: ();
+ @each $Base in $Bases {
+ $Base: $Base/$Unit;
+ $Unitless-Bases: join($Unitless-Bases, $Base);
+ }
+
+ // Calculate natively in Ruby
+ @return ms-round-px(ms-gem-func($Value, $Unitless-Bases, $Ratios) * $Unit);
+ }
+
+ // Generate a list of all possible values
+ $Return: ms-generate-list($Value, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Return: ms-sort-list($Return);
+
+ // Reverse list if its negitive.
+ @if $Value < 0 {
+ $MS-new-return: ();
+ @each $i in $Return {
+ $MS-new-return: join($i, $MS-new-return);
+ }
+ $Return: $MS-new-return;
+ }
+
+ // Normalize value for counting from 1
+ // Because CSS counts things from 1
+ // So Sass does as well
+ // So I get to write fun stuff like this
+ $Value: abs($Value) + 1;
+
+ // Find the correct value in the list
+ $Return: nth($Return, $Value);
+
+ @return ms-round-px($Return);
+}
+
+// Same function, different name, for good measure.
+@function modular-scale($Value: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+ @return ms($Value, $Bases, $Ratios);
+}
+
+
+// Outputs a list of values instead of a single value
+@function ms-list($Start: 0, $End: 0, $Bases: $ms-base, $Ratios: $ms-ratio) {
+
+ // Seed results
+ $Positive-return: ();
+ $Negitive-return: ();
+ $Return: ();
+
+ @if $End >= 0 {
+ // Generate a list of all possible values
+ $Positive-return: ms-generate-list($End, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Positive-return: ms-sort-list($Positive-return);
+
+ // Trim list
+ $Trim-list: ();
+ // If the starting value is a positive number
+ // trim the positive return from that
+ @if $Start >= 0 {
+ @for $i from ($Start + 1) through $End + 1 {
+ $Trim-list: join($Trim-list, nth($Positive-return, $i));
+ }
+ }
+ // If not, then include everything up to the end.
+ @else {
+ @for $i from 1 through $End + 1 {
+ $Trim-list: join($Trim-list, nth($Positive-return, $i));
+ }
+ }
+ $Positive-return: $Trim-list;
+ }
+
+ // Generate a negitive list
+ @if $Start < 0 {
+ // Generate a list of all possible values
+ $Negitive-return: ms-generate-list($Start, $Bases, $Ratios);
+
+ // Sort the generated lists
+ $Negitive-return: ms-sort-list($Negitive-return);
+
+ // Reverse negitive list results.
+ $MS-new-return: ();
+ @each $i in $Negitive-return {
+ $MS-new-return: join($i, $MS-new-return);
+ }
+ $Negitive-return: $MS-new-return;
+
+ // Trim list
+ $Trim-list: ();
+ @if $End < 0 {
+ @for $i from abs($End) through (abs($Start) + 2) {
+ $Trim-list: join(nth($Negitive-return, $i), $Trim-list);
+ }
+ }
+ @else {
+ @for $i from 2 through (abs($Start) + 1) {
+ $Trim-list: join(nth($Negitive-return, $i), $Trim-list);
+ }
+ }
+ $Negitive-return: $Trim-list;
+ }
+
+ // Join both positive and negitive possibilities.
+ $Return: join($Negitive-return, $Positive-return);
+
+ @return $Return;
+}
+
+
+// Stripping units is rarely a best practice and this function
+// should not be used elsewhere
+@function ms-unitless($val) {
+ $val: $val / ($val - $val + 1);
+ @return $val;
+}
+
+// Search config for values
+@function ms-range($x,$y,$range:$ms-range) {
+ @return nth(nth($range,$x),$y);
+}
+
+// Generate calc() function
+@function ms-respond-calc($value, $n, $range: $ms-range, $base: $ms-base) {
+ $val1: ms($value,$base,ms-range($n,1,$range));
+ $val2: ms($value,$base,ms-range($n+1,1,$range));
+ $break1: ms-range($n,2,$range);
+ $break2: ms-range($n+1,2,$range);
+ $diff: ms-unitless($val2) - ms-unitless($val1);
+ @if $ms-fluid {
+ @return calc( #{$val1} + #{$diff} * ( ( 100vw - #{$break1}) / #{ms-unitless($break2) - ms-unitless($break1)} ) );
+ } @else {
+ @return ms($value,$base,ms-range($n,1,$range));
+ }
+}
+
+// Main responsive mixin
+@mixin ms-respond($property, $value, $range: $ms-range, $base: $ms-base) {
+ // If there is no responsive config, just output the property and value
+ @if $ms-range == null {
+ #{$property}: ms($value,$base,$ms-ratio);
+ } @else {
+
+ // Initial value
+ #{$property}: ms($value,$base,ms-range(1,1,$range));
+
+ // Loop through breakpoints
+ @for $i from 1 through (length($range) - 1) {
+ @media (min-width: ms-range($i,2,$range)) and (max-width: ms-range($i+1,2,$range)) {
+ #{$property}: ms-respond-calc($value, $i, $range, $base);
+ }
+ }
+
+ // Final breakpoint is just an override value
+ @media (min-width: ms-range(length($range),2,$range)) {
+ #{$property}: ms($value,$base,ms-range(length($range),1,$range));
+ }
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsstools_toolsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/_tools.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/_tools.scss (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/tools/_tools.scss 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+@import "modular-scale";
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgcsstrumps_trumpsscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/css/trumps/_trumps.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/footer.php
===================================================================
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/footer.php (rev 0)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/footer.php 2016-08-29 22:43:40 UTC (rev 3879)
</ins><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,19 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/**
+ * The template for displaying the footer.
+ *
+ * Contains the closing of the #content div and all content after.
+ *
+ * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
+ *
+ * @package WordPressdotorg\Theme
+ */
+
+namespace WordPressdotorg\Theme;
+?>
+
+ </div><!-- #content -->
+
+ <?php
+
+require WPORGPATH . 'footer.php';
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgfunctionsphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/functions.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/functions.php (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/functions.php 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,170 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/**
+ * WordPress.org functions and definitions.
+ *
+ * @link https://developer.wordpress.org/themes/basics/theme-functions/
+ *
+ * @package WordPressdotorg\Theme
+ */
+
+namespace WordPressdotorg\Theme;
+
+/**
+ * Sets up theme defaults and registers support for various WordPress features.
+ *
+ * Note that this function is hooked into the after_setup_theme hook, which
+ * runs before the init hook. The init hook is too late for some features, such
+ * as indicating support for post thumbnails.
+ */
+function setup() {
+
+ // Add default posts and comments RSS feed links to head.
+ add_theme_support( 'automatic-feed-links' );
+
+ // Don't include Adjacent Posts functionality
+ remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' );
+
+ // This theme uses wp_nav_menu() in one location.
+ register_nav_menus( array(
+ 'primary' => esc_html__( 'Primary', 'wporg' ),
+ ) );
+
+ /*
+ * Switch default core markup for search form, comment form, and comments
+ * to output valid HTML5.
+ */
+ add_theme_support( 'html5', array(
+ 'search-form',
+ 'comment-form',
+ 'comment-list',
+ 'gallery',
+ 'caption',
+ ) );
+
+ // Set up the WordPress core custom background feature.
+ add_theme_support( 'custom-background', apply_filters( 'wporg_custom_background_args', array(
+ 'default-color' => 'ffffff',
+ 'default-image' => '',
+ ) ) );
+
+ $GLOBALS['pagetitle'] = __( 'WordPress.org', 'wporg' );
+}
+add_action( 'after_setup_theme', __NAMESPACE__ . '\setup' );
+
+/**
+ * Set the content width in pixels, based on the theme's design and stylesheet.
+ *
+ * Priority 0 to make it available to lower priority callbacks.
+ *
+ * @global int $content_width
+ */
+function content_width() {
+ $GLOBALS['content_width'] = apply_filters( 'wporg_content_width', 640 );
+}
+add_action( 'after_setup_theme', __NAMESPACE__ . '\content_width', 0 );
+
+/**
+ * Enqueue scripts and styles.
+ */
+function scripts() {
+ $suffix = is_rtl() ? '-rtl' : '';
+ wp_enqueue_style( 'wporg-style', get_stylesheet_directory_uri() . "/css/style{$suffix}.css" );
+
+ wp_enqueue_script( 'wporg-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20151215', true );
+ wp_enqueue_script( 'wporg-plugins-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20151215', true );
+}
+add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\scripts' );
+
+/**
+ * Add postMessage support for site title and description for the Theme Customizer.
+ *
+ * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
+ */
+function customize_register( $wp_customize ) {
+ $wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
+ $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
+}
+add_action( 'customize_register', __NAMESPACE__ . '\customize_register' );
+
+/**
+ * Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
+ */
+function customize_preview_js() {
+ wp_enqueue_script( 'wporg_plugins_customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), '20151215', true );
+}
+add_action( 'customize_preview_init', __NAMESPACE__ . '\customize_preview_js' );
+
+
+/**
+ * Adds hreflang link attributes to WordPress.org pages.
+ *
+ * @link https://support.google.com/webmasters/answer/189077?hl=en Use hreflang for language and regional URLs.
+ * @link https://sites.google.com/site/webmasterhelpforum/en/faq-internationalisation FAQ: Internationalisation.
+ */
+function hreflang_link_attributes() {
+ wp_cache_add_global_groups( array( 'locale-associations' ) );
+
+ if ( false === ( $sites = wp_cache_get( 'local-sites', 'locale-associations' ) ) ) {
+ global $wpdb;
+
+ $sites = $wpdb->get_results( 'SELECT locale, subdomain FROM locales', OBJECT_K );
+ if ( ! $sites ) {
+ return;
+ }
+
+ require_once GLOTPRESS_LOCALES_PATH;
+
+ foreach ( $sites as $site ) {
+ $gp_locale = \GP_Locales::by_field( 'wp_locale', $site->locale );
+ if ( ! $gp_locale ) {
+ unset( $sites[ $site->locale ] );
+ continue;
+ }
+
+ // Note that Google only supports ISO 639-1 codes.
+ if ( isset( $gp_locale->lang_code_iso_639_1 ) && isset( $gp_locale->country_code ) ) {
+ $hreflang = $gp_locale->lang_code_iso_639_1 . '-' . $gp_locale->country_code;
+ } elseif ( isset( $gp_locale->lang_code_iso_639_1 ) ) {
+ $hreflang = $gp_locale->lang_code_iso_639_1;
+ } elseif ( isset( $gp_locale->lang_code_iso_639_2 ) ) {
+ $hreflang = $gp_locale->lang_code_iso_639_2;
+ } elseif ( isset( $gp_locale->lang_code_iso_639_3 ) ) {
+ $hreflang = $gp_locale->lang_code_iso_639_3;
+ }
+
+ if ( $hreflang ) {
+ $sites[ $site->locale ]->hreflang = strtolower( $hreflang );
+ } else {
+ unset( $sites[ $site->locale ] );
+ }
+ }
+
+ // Add en_US to the list of sites.
+ $sites['en_US'] = (object) array(
+ 'locale' => 'en_US',
+ 'hreflang' => 'en',
+ 'subdomain' => ''
+ );
+
+ uasort( $sites, function( $a, $b ) {
+ return strcasecmp( $a->hreflang, $b->hreflang );
+ } );
+
+ wp_cache_set( 'local-sites', $sites, 'locale-associations' );
+ }
+
+ foreach ( $sites as $site ) {
+ $url = sprintf(
+ 'https://%swordpress.org%s',
+ $site->subdomain ? "{$site->subdomain}." : '',
+ $_SERVER[ 'REQUEST_URI' ]
+ );
+
+ printf(
+ '<link rel="alternate" href="%s" hreflang="%s" />' . "\n",
+ esc_url( $url ),
+ esc_attr( $site->hreflang )
+ );
+ }
+}
+add_action( 'wp_head', __NAMESPACE__ . '\hreflang_link_attributes' );
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgheaderphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/header.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/header.php (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/header.php 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,29 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/**
+ * The header for our theme.
+ *
+ * This is the template that displays all of the <head> section and everything up until <div id="content">
+ *
+ * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
+ *
+ * @package WordPressdotorg\Theme
+ */
+
+namespace WordPressdotorg\Theme;
+
+require WPORGPATH . 'header.php';
+?>
+<div id="page" class="site">
+ <a class="skip-link screen-reader-text" href="#main"><?php esc_html_e( 'Skip to content', 'wporg' ); ?></a>
+
+ <div id="content" class="site-content">
+ <header id="masthead" class="site-header" role="banner">
+ <div class="site-branding">
+ <p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
+
+ <nav id="site-navigation" class="main-navigation" role="navigation">
+ <button class="menu-toggle dashicons dashicons-arrow-down-alt2" aria-controls="primary-menu" aria-expanded="false" aria-label="<?php esc_attr_e( 'Primary Menu', 'wporg' ); ?>"></button>
+ <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_id' => 'primary-menu', 'depth' => 1 ) ); ?>
+ </nav><!-- #site-navigation -->
+ </div><!-- .site-branding -->
+ </header><!-- #masthead -->
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgindexphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/index.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/index.php (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/index.php 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,41 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/**
+ * The main template file.
+ *
+ * This is the most generic template file in a WordPress theme
+ * and one of the two required files for a theme (the other being style.css).
+ * It is used to display a page when nothing more specific matches a query.
+ * E.g., it puts together the home page when no home.php file exists.
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPressdotorg\Theme
+ */
+
+namespace WordPressdotorg\Theme;
+
+get_header(); ?>
+
+ <main id="main" class="site-main" role="main">
+
+ <?php
+ if ( have_posts() ) :
+
+ /* Start the Loop */
+ while ( have_posts() ) :
+ the_post();
+
+ get_template_part( 'content' );
+ endwhile;
+
+ the_posts_pagination();
+
+ else :
+ get_template_part( 'content', 'none' );
+ endif;
+ ?>
+
+ </main><!-- #main -->
+
+ <?php
+get_footer();
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjscustomizerjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/customizer.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/customizer.js (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/customizer.js 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,22 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * File customizer.js.
+ *
+ * Theme Customizer enhancements for a better user experience.
+ *
+ * Contains handlers to make Theme Customizer preview reload changes asynchronously.
+ */
+
+( function( $ ) {
+
+ // Site title and description.
+ wp.customize( 'blogname', function( value ) {
+ value.bind( function( to ) {
+ $( '.site-title a' ).text( to );
+ } );
+ } );
+ wp.customize( 'blogdescription', function( value ) {
+ value.bind( function( to ) {
+ $( '.site-description' ).text( to );
+ } );
+ } );
+} )( jQuery );
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjsnavigationjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/navigation.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/navigation.js (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/navigation.js 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,81 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * File navigation.js.
+ *
+ * Handles toggling the navigation menu for small screens and enables TAB key
+ * navigation support for dropdown menus.
+ */
+( function() {
+ var container, button, menu, links, subMenus, i, len;
+
+ container = document.getElementById( 'site-navigation' );
+ if ( ! container ) {
+ return;
+ }
+
+ button = container.getElementsByTagName( 'button' )[0];
+ if ( 'undefined' === typeof button ) {
+ return;
+ }
+
+ menu = container.getElementsByTagName( 'ul' )[0];
+
+ // Hide menu toggle button if menu is empty and return early.
+ if ( 'undefined' === typeof menu ) {
+ button.style.display = 'none';
+ return;
+ }
+
+ menu.setAttribute( 'aria-expanded', 'false' );
+ if ( -1 === menu.className.indexOf( 'nav-menu' ) ) {
+ menu.className += ' nav-menu';
+ }
+
+ button.onclick = function() {
+ if ( -1 !== container.className.indexOf( 'toggled' ) ) {
+ container.className = container.className.replace( ' toggled', '' );
+ button.setAttribute( 'aria-expanded', 'false' );
+ menu.setAttribute( 'aria-expanded', 'false' );
+ } else {
+ container.className += ' toggled';
+ button.setAttribute( 'aria-expanded', 'true' );
+ menu.setAttribute( 'aria-expanded', 'true' );
+ }
+ };
+
+ // Get all the link elements within the menu.
+ links = menu.getElementsByTagName( 'a' );
+ subMenus = menu.getElementsByTagName( 'ul' );
+
+ // Set menu items with submenus to aria-haspopup="true".
+ for ( i = 0, len = subMenus.length; i < len; i++ ) {
+ subMenus[i].parentNode.setAttribute( 'aria-haspopup', 'true' );
+ }
+
+ // Each time a menu link is focused or blurred, toggle focus.
+ for ( i = 0, len = links.length; i < len; i++ ) {
+ links[i].addEventListener( 'focus', toggleFocus, true );
+ links[i].addEventListener( 'blur', toggleFocus, true );
+ }
+
+ /**
+ * Sets or removes .focus class on an element.
+ */
+ function toggleFocus() {
+ var self = this;
+
+ // Move up through the ancestors of the current link until we hit .nav-menu.
+ while ( -1 === self.className.indexOf( 'nav-menu' ) ) {
+
+ // On li elements toggle the class .focus.
+ if ( 'li' === self.tagName.toLowerCase() ) {
+ if ( -1 !== self.className.indexOf( 'focus' ) ) {
+ self.className = self.className.replace( ' focus', '' );
+ } else {
+ self.className += ' focus';
+ }
+ }
+
+ self = self.parentElement;
+ }
+ }
+} )();
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgjsskiplinkfocusfixjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/skip-link-focus-fix.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/skip-link-focus-fix.js (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/js/skip-link-focus-fix.js 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,33 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * File skip-link-focus-fix.js.
+ *
+ * Helps with accessibility for keyboard only users.
+ *
+ * Learn more: https://git.io/vWdr2
+ */
+( function() {
+ var isWebkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1,
+ isOpera = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1,
+ isIe = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1;
+
+ if ( ( isWebkit || isOpera || isIe ) && document.getElementById && window.addEventListener ) {
+ window.addEventListener( 'hashchange', function() {
+ var id = location.hash.substring( 1 ),
+ element;
+
+ if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {
+ return;
+ }
+
+ element = document.getElementById( id );
+
+ if ( element ) {
+ if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {
+ element.tabIndex = -1;
+ }
+
+ element.focus();
+ }
+ }, false );
+ }
+})();
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgpackagejson"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/package.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/package.json (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/package.json 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,26 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+ "name": "wporg",
+ "version": "1.0.0",
+ "description": "Theme for WordPress.org",
+ "author": "wordpressdotorg",
+ "license": "GPL-2.0",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "svn",
+ "url": "https://meta.svn.wordpress.org/sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/"
+ },
+ "devDependencies": {
+ "autoprefixer": "^6.3.6",
+ "cssnano": "^3.7.4",
+ "grunt": "^1.0.1",
+ "grunt-contrib-jshint": "^1.0.0",
+ "grunt-contrib-watch": "^1.0.0",
+ "grunt-postcss": "^0.8.0",
+ "grunt-rtlcss": "^2.0.1",
+ "grunt-sass": "^1.2.0",
+ "grunt-sass-globbing": "^1.5.1",
+ "pixrem": "^3.0.2"
+ }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentthemespubwporgstylecss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/style.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/style.css (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg/style.css 2016-08-29 22:43:40 UTC (rev 3879)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,23 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/*!
+Theme Name: WordPress.org
+Theme URI: https://wordpress.org
+Author: wordpressdotorg
+Author URI: https://wordpress.org
+Description: Theme for WordPress.org.
+Version: 1
+License: GNU General Public License v2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+Text Domain: wporg
+
+This theme, like WordPress, is licensed under the GPL.
+Use it to make something cool, have fun, and share what you've learned with others.
+
+Normalizing styles have been helped along thanks to the fine work of
+Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
+
+
+
+PLEASE DO NOT EDIT THIS FILE.
+
+Any style changes should be done in /scss and compiled via `grunt css`.
+Thanks!
</ins></span></pre>
</div>
</div>
</body>
</html>