├── less ├── bootswatch │ ├── custom-bootswatch.less │ ├── global │ │ ├── global.less │ │ └── build.less │ ├── classic │ │ ├── bootswatch.less │ │ └── variables.less │ ├── bootstrap │ │ ├── bootswatch.less │ │ └── variables.less │ ├── united │ │ └── bootswatch.less │ ├── shamrock │ │ └── bootswatch.less │ ├── journal │ │ └── bootswatch.less │ ├── cerulean │ │ └── bootswatch.less │ ├── simplex │ │ └── bootswatch.less │ ├── cyborg │ │ └── bootswatch.less │ ├── cosmo │ │ └── bootswatch.less │ ├── amelia │ │ └── bootswatch.less │ ├── spacelab │ │ └── bootswatch.less │ ├── readable │ │ └── bootswatch.less │ ├── flatly │ │ └── bootswatch.less │ └── superhero │ │ └── bootswatch.less ├── moodle │ ├── yui_fixes.less │ ├── editor.less │ ├── reports.less │ ├── reader.less │ ├── userprofile.less │ ├── tables.less │ ├── bootstrapoverride.less │ ├── new.less │ ├── login.less │ ├── navs.less │ ├── debug.less │ ├── buttons.less │ ├── chat.less │ ├── enrolment.less │ ├── responsive.less │ ├── user.less │ ├── badges.less │ ├── undo.less │ ├── blocks.less │ └── tags.less ├── bootstrap3 │ ├── component-animations.less │ ├── wells.less │ ├── breadcrumbs.less │ ├── close.less │ ├── thumbnails.less │ ├── utilities.less │ ├── jumbotron.less │ ├── media.less │ ├── pager.less │ ├── bootstrap.less │ ├── badges.less │ ├── labels.less │ ├── code.less │ ├── alerts.less │ ├── grid.less │ ├── progress-bars.less │ ├── print.less │ ├── pagination.less │ ├── responsive-utilities.less │ ├── tooltip.less │ ├── scaffolding.less │ ├── list-group.less │ ├── popovers.less │ ├── modals.less │ └── buttons.less ├── editor.less ├── README └── moodle.less ├── pix ├── bg │ ├── body.jpg │ ├── logo.png │ ├── header.png │ ├── loginbg_samples │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ └── 4.jpg │ └── slide_samples │ │ ├── shop.jpg │ │ ├── subway.jpg │ │ └── sundet.jpg ├── favicon.ico ├── fp │ ├── alias.png │ ├── check.png │ ├── cross.png │ ├── help.png │ ├── link.png │ ├── link_sm.png │ ├── logout.png │ ├── refresh.png │ ├── search.png │ ├── setting.png │ ├── add_file.png │ ├── alias_sm.png │ ├── dnd_arrow.gif │ ├── download_all.png │ ├── path_folder.png │ ├── create_folder.png │ ├── path_folder_rtl.png │ ├── view_icon_active.png │ ├── view_list_active.png │ ├── view_tree_active.png │ ├── view_list_active.svg │ ├── view_tree_active.svg │ ├── view_icon_active.svg │ ├── create_folder.svg │ ├── add_file.svg │ ├── logout.svg │ ├── refresh.svg │ ├── download_all.svg │ ├── search.svg │ ├── help.svg │ └── setting.svg ├── modern.jpg ├── sprite.png ├── bootstrap.png ├── modern_lrg.jpg ├── modern_sml.jpg ├── moodlelogo.png ├── screenshot.jpg ├── coursenoimage.jpg ├── glyphicons-halflings.png ├── yui2-treeview-sprite-rtl.gif ├── glyphicons-halflings-white.png ├── horizontal-menu-submenu-indicator.png ├── vertical-menu-submenu-indicator.png └── readme_moodle.txt ├── fonts ├── FontAwesome.otf ├── fontawesome.eot ├── fontawesome.ttf ├── fontawesome.woff ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.ttf └── glyphicons-halflings-regular.woff ├── pix_core └── moodlelogo.gif ├── .gitignore ├── javascript ├── fitvid.js ├── blocks.js ├── html5shiv.js ├── reader.js └── respond.min.js ├── style ├── README ├── sidebar.css ├── tinymce-rtl.css ├── nprogress.css ├── yui2-rtl.css ├── forms-rtl.css └── login2.css ├── package.json ├── thirdpartylibs.xml ├── history.txt ├── version.php ├── renderers.php ├── layout ├── popup.php ├── includes │ ├── standard_login.php │ └── quicklinks.php ├── embedded.php ├── maintenance.php └── secure.php ├── renderers ├── maintenance_renderer.php └── block_settings_renderer.php ├── jquery ├── plugins.php ├── fitvids-1.0.3.js ├── jquery.cookie.js └── backstretch_2.0.4.js └── readme_moodle.txt /less/bootswatch/custom-bootswatch.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pix/bg/body.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/body.jpg -------------------------------------------------------------------------------- /pix/bg/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/logo.png -------------------------------------------------------------------------------- /pix/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/favicon.ico -------------------------------------------------------------------------------- /pix/fp/alias.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/alias.png -------------------------------------------------------------------------------- /pix/fp/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/check.png -------------------------------------------------------------------------------- /pix/fp/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/cross.png -------------------------------------------------------------------------------- /pix/fp/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/help.png -------------------------------------------------------------------------------- /pix/fp/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/link.png -------------------------------------------------------------------------------- /pix/modern.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/modern.jpg -------------------------------------------------------------------------------- /pix/sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/sprite.png -------------------------------------------------------------------------------- /pix/bg/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/header.png -------------------------------------------------------------------------------- /pix/bootstrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bootstrap.png -------------------------------------------------------------------------------- /pix/fp/link_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/link_sm.png -------------------------------------------------------------------------------- /pix/fp/logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/logout.png -------------------------------------------------------------------------------- /pix/fp/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/refresh.png -------------------------------------------------------------------------------- /pix/fp/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/search.png -------------------------------------------------------------------------------- /pix/fp/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/setting.png -------------------------------------------------------------------------------- /pix/modern_lrg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/modern_lrg.jpg -------------------------------------------------------------------------------- /pix/modern_sml.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/modern_sml.jpg -------------------------------------------------------------------------------- /pix/moodlelogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/moodlelogo.png -------------------------------------------------------------------------------- /pix/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/screenshot.jpg -------------------------------------------------------------------------------- /fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /fonts/fontawesome.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/fonts/fontawesome.eot -------------------------------------------------------------------------------- /fonts/fontawesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/fonts/fontawesome.ttf -------------------------------------------------------------------------------- /pix/coursenoimage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/coursenoimage.jpg -------------------------------------------------------------------------------- /pix/fp/add_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/add_file.png -------------------------------------------------------------------------------- /pix/fp/alias_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/alias_sm.png -------------------------------------------------------------------------------- /pix/fp/dnd_arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/dnd_arrow.gif -------------------------------------------------------------------------------- /fonts/fontawesome.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/fonts/fontawesome.woff -------------------------------------------------------------------------------- /pix/fp/download_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/download_all.png -------------------------------------------------------------------------------- /pix/fp/path_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/path_folder.png -------------------------------------------------------------------------------- /pix_core/moodlelogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix_core/moodlelogo.gif -------------------------------------------------------------------------------- /pix/fp/create_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/create_folder.png -------------------------------------------------------------------------------- /pix/fp/path_folder_rtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/path_folder_rtl.png -------------------------------------------------------------------------------- /pix/bg/loginbg_samples/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/loginbg_samples/1.jpg -------------------------------------------------------------------------------- /pix/bg/loginbg_samples/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/loginbg_samples/2.jpg -------------------------------------------------------------------------------- /pix/bg/loginbg_samples/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/loginbg_samples/3.jpg -------------------------------------------------------------------------------- /pix/bg/loginbg_samples/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/loginbg_samples/4.jpg -------------------------------------------------------------------------------- /pix/fp/view_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/view_icon_active.png -------------------------------------------------------------------------------- /pix/fp/view_list_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/view_list_active.png -------------------------------------------------------------------------------- /pix/fp/view_tree_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/fp/view_tree_active.png -------------------------------------------------------------------------------- /pix/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/glyphicons-halflings.png -------------------------------------------------------------------------------- /pix/bg/slide_samples/shop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/slide_samples/shop.jpg -------------------------------------------------------------------------------- /pix/bg/slide_samples/subway.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/slide_samples/subway.jpg -------------------------------------------------------------------------------- /pix/bg/slide_samples/sundet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/bg/slide_samples/sundet.jpg -------------------------------------------------------------------------------- /pix/yui2-treeview-sprite-rtl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/yui2-treeview-sprite-rtl.gif -------------------------------------------------------------------------------- /pix/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /pix/horizontal-menu-submenu-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/horizontal-menu-submenu-indicator.png -------------------------------------------------------------------------------- /pix/vertical-menu-submenu-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DBezemer/moodle-theme_modern/master/pix/vertical-menu-submenu-indicator.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .DS_Store? 3 | ._* 4 | .Spotlight-V100 5 | .Trashes 6 | Icon? 7 | ehthumbs.db 8 | Thumbs.db 9 | *.psd 10 | *.bak 11 | -------------------------------------------------------------------------------- /less/bootswatch/global/global.less: -------------------------------------------------------------------------------- 1 | @iconSpritePath: "../img/glyphicons-halflings.png"; 2 | @iconWhiteSpritePath: "../img/glyphicons-halflings-white.png"; -------------------------------------------------------------------------------- /javascript/fitvid.js: -------------------------------------------------------------------------------- 1 | /* 2 | FitVid will dynamically fit embedded video in Moodle 3 | */ 4 | $(document).ready(function(){ 5 | $(".mediaplugin").fitVids(); 6 | }); 7 | -------------------------------------------------------------------------------- /style/README: -------------------------------------------------------------------------------- 1 | These css files are created from .less files via the method described in the readme 2 | in the /theme/bootstrap/less/ folder. It's unwise to directly the edit the css files as your changes 3 | may be overwritten. 4 | -------------------------------------------------------------------------------- /style/sidebar.css: -------------------------------------------------------------------------------- 1 | #sidebar-wrapper { 2 | left: 0px; 3 | top: 55px; 4 | padding-bottom: 25px; 5 | background: [[setting:headingcolor]]; 6 | position: fixed; 7 | height: 100%; 8 | overflow-y: auto; 9 | z-index: 1000; 10 | } -------------------------------------------------------------------------------- /less/moodle/yui_fixes.less: -------------------------------------------------------------------------------- 1 | // we might be able to just turn these off for 2.5 see bug MDL-???? 2 | input[type=text],input[type=password],textarea { 3 | width:auto; 4 | } 5 | th, 6 | td { 7 | border: 0 solid #fff; 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /less/bootswatch/classic/bootswatch.less: -------------------------------------------------------------------------------- 1 | // The Bootstrap 2.3 theme for Bootstrap 3 2 | 3 | // note this relative path only resolves when moved to the 4 | // root 'bootswatch' folder by the grunt swatch task 5 | @import "../bootstrap3/theme"; 6 | 7 | 8 | -------------------------------------------------------------------------------- /less/bootswatch/global/build.less: -------------------------------------------------------------------------------- 1 | @import "../bower_components/bootstrap/less/bootstrap.less"; 2 | @import "variables.less"; 3 | @import "../global/global.less"; 4 | @import "bootswatch.less"; 5 | @import "../bower_components/bootstrap/less/utilities.less"; -------------------------------------------------------------------------------- /less/bootswatch/bootstrap/bootswatch.less: -------------------------------------------------------------------------------- 1 | // This file intentionally left blank 2 | 3 | // This file is used to overwrite .less files from 4 | // bootswatches to allow you to revert to standard 5 | // bootstrap3 by running: 6 | // grunt swatch --name=bootstrap 7 | -------------------------------------------------------------------------------- /less/bootswatch/bootstrap/variables.less: -------------------------------------------------------------------------------- 1 | // This file intentionally left blank 2 | 3 | // This file is used to overwrite .less files from 4 | // bootswatches to allow you to revert to standard 5 | // bootstrap3 by running: 6 | // grunt swatch --name=bootstrap 7 | -------------------------------------------------------------------------------- /less/bootswatch/classic/variables.less: -------------------------------------------------------------------------------- 1 | // This file intentionally left blank 2 | 3 | // Only the bootswatch.less file in the same directory is needed 4 | // to provide the .less rules, this file is function mostly to 5 | // overwrite the variables.less files of other themes when 6 | // this one is used 7 | -------------------------------------------------------------------------------- /less/moodle/editor.less: -------------------------------------------------------------------------------- 1 | // Over ride bootstrap editor CSS. 2 | 3 | body { 4 | margin: 8px; 5 | } 6 | .container .moodleSkin img.mceIcon { 7 | display: block; 8 | height: auto; 9 | width: auto; 10 | } 11 | .container .moodleSkin img.mceIcon { 12 | display: block; 13 | height: auto; 14 | width: auto; 15 | } 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Grunt tasks for Moodle Bootstrap theme.", 3 | "devDependencies": { 4 | "grunt": "~0.4.2", 5 | "grunt-contrib-less": "~0.9.0", 6 | "grunt-contrib-watch": "~0.5.3", 7 | "grunt-exec": "~0.4.3", 8 | "grunt-text-replace": "~0.3.11", 9 | "grunt-css-flip": "~0.2.0", 10 | "grunt-contrib-copy": "~0.5.0" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /less/moodle/reports.less: -------------------------------------------------------------------------------- 1 | /* reports.less */ 2 | 3 | // The home for small tweaks to reports that don't require 4 | // changes drastic enough to pull in the full module css 5 | // and replace it completely. 6 | 7 | #page-report-participation-index .participationselectform div label { // Using 'div' here to override the report styles.css 8 | display: inline; 9 | margin: 0 5px 0 0; 10 | } 11 | -------------------------------------------------------------------------------- /less/moodle/reader.less: -------------------------------------------------------------------------------- 1 | .yui3-panel .readerpanel{ 2 | .yui3-widget-hd { 3 | padding: @panel-body-padding; 4 | background: @panel-primary-heading-bg; 5 | height: @navbar-height; 6 | } 7 | // Fighting YUI classes KAPOW!!! 8 | .yui3-widget-hd .yui3-button-close { 9 | .btn; 10 | .btn-default; 11 | .btn-sm; 12 | width: auto; 13 | height: auto; 14 | &:before { 15 | content: inherit; 16 | } 17 | } 18 | div[role=main] { 19 | padding: 0 10px; 20 | } 21 | } -------------------------------------------------------------------------------- /style/tinymce-rtl.css: -------------------------------------------------------------------------------- 1 | /** Fix TinyMCE editor right to left **/ 2 | 3 | .dir-rtl .clearlooks2.ie9 .mceAlert .mceMiddle span, 4 | .dir-rtl .clearlooks2 .mceConfirm .mceMiddle span { 5 | top: 44px; 6 | } 7 | 8 | .dir-rtl .o2k7Skin table, 9 | .dir-rtl .o2k7Skin tbody, 10 | .dir-rtl .o2k7Skin a, 11 | .dir-rtl .o2k7Skin img, 12 | .dir-rtl .o2k7Skin tr, 13 | .dir-rtl .o2k7Skin div, 14 | .dir-rtl .o2k7Skin td, 15 | .dir-rtl .o2k7Skin iframe, 16 | .dir-rtl .o2k7Skin span, 17 | .dir-rtl .o2k7Skin *, 18 | .dir-rtl .o2k7Skin .mceText, 19 | .dir-rtl .o2k7Skin .mceListBox .mceText { 20 | text-align: right; 21 | } 22 | -------------------------------------------------------------------------------- /less/bootstrap3/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | &.in { 21 | display: block; 22 | } 23 | } 24 | .collapsing { 25 | position: relative; 26 | height: 0; 27 | overflow: hidden; 28 | .transition(height .35s ease); 29 | } 30 | -------------------------------------------------------------------------------- /less/bootstrap3/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /less/bootstrap3/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /pix/fp/view_list_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /less/bootstrap3/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button& { 27 | padding: 0; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /pix/fp/view_tree_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /pix/fp/view_icon_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /less/moodle/userprofile.less: -------------------------------------------------------------------------------- 1 | .userprofile { 2 | padding-bottom: 15px; 3 | h2 { 4 | .panel-heading; 5 | font-size: 1.1em; 6 | margin: 0 0 10px 0; 7 | padding: 10px 15px; 8 | } 9 | .panel; 10 | .panel-default; 11 | .userprofilebox { 12 | .make-row(); 13 | .profilepicture { 14 | .make-md-column(2); 15 | a { 16 | display: block; 17 | margin: 10px; 18 | img { 19 | .img-rounded; 20 | } 21 | } 22 | } 23 | .descriptionbox { 24 | .make-md-column(10); 25 | .description { 26 | margin: 10px; 27 | } 28 | } 29 | } 30 | .fullprofilelink { 31 | text-align: center; 32 | margin: 10px; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /pix/fp/create_folder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /less/bootstrap3/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(all .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /less/moodle/tables.less: -------------------------------------------------------------------------------- 1 | .path-rating .ratingtable, 2 | table.flexible, 3 | .generaltable { 4 | .table; 5 | } 6 | 7 | .path-rating .ratingtable, 8 | table#explaincaps, 9 | table#defineroletable, 10 | table.grading-report, 11 | table#listdirectories, 12 | table.rolecaps, 13 | table.userenrolment, 14 | table#form, 15 | form#movecourses table, 16 | #page-admin-course-index .editcourse, 17 | .forumheaderlist, 18 | table.flexible, 19 | .generaltable { 20 | .table-striped; 21 | } 22 | 23 | #page-report-loglive-index .generaltable, 24 | #page-admin-report-log-index .generaltable, 25 | #page-report-log-user .generaltable, 26 | #page-admin-user table { 27 | .table-condensed; 28 | } 29 | 30 | .user-enroller-panel .uep-search-results .users, 31 | table.grading-report, 32 | .forumheaderlist, 33 | .generaltable, 34 | table.flexible, 35 | table#permissions { 36 | .table-hover; 37 | } 38 | 39 | table.flexible .emptyrow { 40 | display: none; 41 | } 42 | -------------------------------------------------------------------------------- /less/editor.less: -------------------------------------------------------------------------------- 1 | // Strip down core bootstrap for editor. 2 | 3 | // Core variables and mixins. 4 | @import "bootstrap3/variables.less"; // Modify this for custom colors, font-sizes, etc. 5 | @import "bootstrap3/mixins.less"; 6 | 7 | 8 | // Base CSS. 9 | @import "bootstrap3/scaffolding.less"; 10 | @import "bootstrap3/type.less"; 11 | @import "bootstrap3/code.less"; 12 | @import "bootstrap3/tables.less"; 13 | 14 | // Components: common. 15 | @import "bootstrap3/wells.less"; 16 | 17 | // Components: Buttons & Alerts. 18 | @import "bootstrap3/buttons.less"; 19 | @import "bootstrap3/alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less. 20 | 21 | // Components: Misc. 22 | @import "bootstrap3/thumbnails.less"; 23 | 24 | // Utility classes. 25 | @import "bootstrap3/utilities.less"; // Has to be last to override when necessary. 26 | 27 | // Moodle override. 28 | @import "moodle/editor.less"; // The final override. 29 | -------------------------------------------------------------------------------- /less/moodle/bootstrapoverride.less: -------------------------------------------------------------------------------- 1 | /** 2 | * bootstrapoverride.less 3 | * 4 | * This file is meant to contain rules which specifically override 5 | * rules defined in Bootstrap. 6 | */ 7 | 8 | // Printing. 9 | @media print { 10 | a[href]:after { 11 | content: ""; 12 | } 13 | } 14 | 15 | // glyphicons.less 16 | 17 | @icon-font-path: "../theme/modern/fonts/"; 18 | 19 | // Import the fonts 20 | @font-face { 21 | font-family: 'Glyphicons Halflings'; 22 | src: url('[[font:theme|@{icon-font-name}.eot]]'); 23 | src: url('[[font:theme|@{icon-font-name}.eot]]') format('embedded-opentype'), 24 | url('[[font:theme|@{icon-font-name}.woff]]') format('woff'), 25 | url('[[font:theme|@{icon-font-name}.ttf]]') format('truetype'), 26 | url('[[font:theme|@{icon-font-name}.svg]]#glyphicons_halflingsregular') format('svg'); 27 | } 28 | 29 | .moodleSkin .mceIcon img.mceIcon { 30 | display: block; 31 | height: auto; 32 | width: auto; 33 | } 34 | -------------------------------------------------------------------------------- /pix/fp/add_file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /less/bootswatch/united/bootswatch.less: -------------------------------------------------------------------------------- 1 | // United 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url("//fonts.googleapis.com/css?family=Ubuntu"); 6 | 7 | // Navbar ===================================================================== 8 | 9 | // Buttons ==================================================================== 10 | 11 | // Typography ================================================================= 12 | 13 | // Tables ===================================================================== 14 | 15 | // Forms ====================================================================== 16 | 17 | // Navs ======================================================================= 18 | 19 | // Indicators ================================================================= 20 | 21 | // Progress bars ============================================================== 22 | 23 | // Containers ================================================================= -------------------------------------------------------------------------------- /thirdpartylibs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | less/bootstrap 5 | Bootstrap 6 | Apache 7 | 3.0.3 8 | 2.0 9 | 10 | 11 | javascript/html5shiv.js 12 | Html5Shiv 13 | Apache 14 | 3.7.0 15 | 2.0 16 | 17 | 18 | javascript/respond.min.js 19 | Respond.js 20 | MIT 21 | 1.4.2 22 | 23 | 24 | 25 | jquery/bootstrap.js 26 | Bootstrap Javascript 27 | Apache 28 | 3.0.3 29 | 2.0 30 | 31 | 32 | -------------------------------------------------------------------------------- /pix/fp/logout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /pix/fp/refresh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /history.txt: -------------------------------------------------------------------------------- 1 | 17th January 2014 - Version 2014011700 2 | 3 | Updated layout files to use the bootstrap_grid function 4 | Updated the Grunt library versions 5 | Updated thirdpartylibs 6 | Moved jQuery files to a separate folder 7 | Added a plugin.php for defining jQuery plugins 8 | Moved to 12 column grid 9 | Update to Bootstrap 3.0.3 10 | 11 | 12 | 13 | 9th January 2014 - Version 2014010900 14 | 1. Fixed: 15 | Debug info: 16 | Error code: codingerror 17 | Stack trace: 18 | line 860 of \lib\blocklib.php: coding_exception thrown 19 | line 352 of \lib\blocklib.php: call to block_manager->check_is_loaded() 20 | line 29 of \theme\bootstrap\lib.php: call to block_manager->region_has_content() 21 | line 20 of \theme\bootstrap\layout\default.php: call to bootstrap_grid() 22 | line 866 of \lib\outputrenderers.php: call to include() 23 | line 796 of \lib\outputrenderers.php: call to core_renderer->render_page_layout() 24 | line 68 of \theme\index.php: call to core_renderer->header() 25 | 2. Updated maintenance.php from Bootstrap 2.3.2 to V3 classes. -------------------------------------------------------------------------------- /less/bootstrap3/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | visibility: hidden !important; 48 | } 49 | 50 | 51 | // For Affix plugin 52 | // ------------------------- 53 | 54 | .affix { 55 | position: fixed; 56 | } 57 | -------------------------------------------------------------------------------- /less/README: -------------------------------------------------------------------------------- 1 | If you want to make changes to the .css generated from these .less files then you 2 | need to use a LESS Compiler. Details on specific compilers and how to install them 3 | can be found at http://docs.moodle.org/dev/LESS 4 | 5 | Requirements: 6 | nodejs, npm, grunt-cli. 7 | 8 | Installation: 9 | node and npm: instructions at http://nodejs.org/ 10 | grunt-cli: `[sudo] npm install -g grunt-cli` 11 | node dependencies: run `npm install` in the root directory. 12 | 13 | Usage: 14 | Default behaviour is to watch all .less files and compile 15 | into compressed CSS when a change is detected to any and then 16 | clear the theme's caches. Invoke either `grunt` or `grunt watch` 17 | in the theme's root directory. 18 | 19 | To separately compile only moodle or editor .less files 20 | run `grunt less:moodle` or `grunt less:editor` respectively. 21 | 22 | To only clear the theme caches invoke `grunt exec:decache` in 23 | the theme's root directory. 24 | 25 | Additional information about the Moodle bootstrap base theme can be found at 26 | http://docs.moodle.org/dev/Bootstrap 27 | 28 | -------------------------------------------------------------------------------- /pix/fp/download_all.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /pix/fp/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /less/bootstrap3/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: @jumbotron-padding; 8 | margin-bottom: @jumbotron-padding; 9 | color: @jumbotron-color; 10 | background-color: @jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: @jumbotron-heading-color; 15 | } 16 | p { 17 | margin-bottom: (@jumbotron-padding / 2); 18 | font-size: @jumbotron-font-size; 19 | font-weight: 200; 20 | } 21 | 22 | .container & { 23 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 24 | } 25 | 26 | .container { 27 | max-width: 100%; 28 | } 29 | 30 | @media screen and (min-width: @screen-sm-min) { 31 | padding-top: (@jumbotron-padding * 1.6); 32 | padding-bottom: (@jumbotron-padding * 1.6); 33 | 34 | .container & { 35 | padding-left: (@jumbotron-padding * 2); 36 | padding-right: (@jumbotron-padding * 2); 37 | } 38 | 39 | h1, 40 | .h1 { 41 | font-size: (@font-size-base * 4.5); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /less/bootstrap3/media.less: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | zoom: 1; 14 | } 15 | 16 | // Proper spacing between instances of .media 17 | .media, 18 | .media .media { 19 | margin-top: 15px; 20 | } 21 | .media:first-child { 22 | margin-top: 0; 23 | } 24 | 25 | // For images and videos, set to block 26 | .media-object { 27 | display: block; 28 | } 29 | 30 | // Reset margins on headings for tighter default spacing 31 | .media-heading { 32 | margin: 0 0 5px; 33 | } 34 | 35 | 36 | // Media image alignment 37 | // ------------------------- 38 | 39 | .media { 40 | > .pull-left { 41 | margin-right: 10px; 42 | } 43 | > .pull-right { 44 | margin-left: 10px; 45 | } 46 | } 47 | 48 | 49 | // Media list variation 50 | // ------------------------- 51 | 52 | // Undo default ul/ol styles 53 | .media-list { 54 | padding-left: 0; 55 | list-style: none; 56 | } 57 | -------------------------------------------------------------------------------- /less/bootstrap3/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: not-allowed; 52 | } 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /pix/fp/help.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /less/moodle/new.less: -------------------------------------------------------------------------------- 1 | ul, 2 | ol { 3 | padding: 0; 4 | } 5 | 6 | 7 | .container .moodleSkin img.mceIcon { 8 | display: block; 9 | height: auto; 10 | width: auto; 11 | } 12 | 13 | #region-bs-main-and-pre { 14 | 15 | #region-main { 16 | padding-left: 0px; 17 | } 18 | } 19 | 20 | /* Enrolment page */ 21 | .userenrolment .col_role { 22 | width: auto; 23 | } 24 | 25 | .dropdown-menu { 26 | .userpicture { 27 | margin-left: -10px; 28 | margin-right: 7px; 29 | } 30 | .msg-body { 31 | display: inline-block; 32 | line-height: 20px; 33 | max-width: 175px; 34 | vertical-align: middle; 35 | } 36 | .msg-title { 37 | display: inline-block; 38 | line-height: 14px; 39 | } 40 | .msg-sender { 41 | color: #478FCA; 42 | } 43 | .msg-time { 44 | color: #777777; 45 | display: block; 46 | font-size: 11px; 47 | } 48 | [title="new"] { 49 | background-color: lighten(@brand-info, 33.5%); 50 | } 51 | .glyphicon { 52 | margin-right: 5px; 53 | } 54 | } 55 | 56 | #adminthemeselector { 57 | td { 58 | img { 59 | max-widht: 500px; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /less/bootstrap3/bootstrap.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.less"; 3 | @import "mixins.less"; 4 | 5 | // Reset 6 | @import "normalize.less"; 7 | @import "print.less"; 8 | 9 | // Core CSS 10 | @import "scaffolding.less"; 11 | @import "type.less"; 12 | @import "code.less"; 13 | @import "grid.less"; 14 | @import "tables.less"; 15 | @import "forms.less"; 16 | @import "buttons.less"; 17 | 18 | // Components 19 | @import "component-animations.less"; 20 | @import "glyphicons.less"; 21 | @import "dropdowns.less"; 22 | @import "button-groups.less"; 23 | @import "input-groups.less"; 24 | @import "navs.less"; 25 | @import "navbar.less"; 26 | @import "breadcrumbs.less"; 27 | @import "pagination.less"; 28 | @import "pager.less"; 29 | @import "labels.less"; 30 | @import "badges.less"; 31 | @import "jumbotron.less"; 32 | @import "thumbnails.less"; 33 | @import "alerts.less"; 34 | @import "progress-bars.less"; 35 | @import "media.less"; 36 | @import "list-group.less"; 37 | @import "panels.less"; 38 | @import "wells.less"; 39 | @import "close.less"; 40 | 41 | // Components w/ JavaScript 42 | @import "modals.less"; 43 | @import "tooltip.less"; 44 | @import "popovers.less"; 45 | @import "carousel.less"; 46 | 47 | // Utility classes 48 | @import "utilities.less"; 49 | @import "responsive-utilities.less"; 50 | -------------------------------------------------------------------------------- /javascript/blocks.js: -------------------------------------------------------------------------------- 1 | /* Clicking the Header of the block, hide/show the block's content 2 | Credit to Itamar Zadok (https://moodle.org/mod/forum/discuss.php?d=218799#p982036) 3 | */ 4 | 5 | YUI().use("node-base","node-event-simulate", function(Y) { 6 | var btn1_Click = function(e) 7 | { 8 | var targetBlock = e.target.ancestor('.block', true); 9 | 10 | // Don't run if in editing mode 11 | if (targetBlock.hasClass('block_with_controls')) { 12 | return false; 13 | } 14 | 15 | var hiderShow = targetBlock.one('.block-hider-show'); 16 | var hiderHide = targetBlock.one('.block-hider-hide'); 17 | 18 | // If propogating from simulation, halt 19 | if (e.target == hiderShow || e.target == hiderHide) { 20 | e.halt(true); 21 | return false; 22 | } 23 | 24 | if (targetBlock.hasClass('hidden')) { 25 | // Try show 26 | if (hiderShow) { 27 | hiderShow.simulate('click'); 28 | } 29 | } else { 30 | // Try hide 31 | if (hiderHide) { 32 | hiderHide.simulate('click'); 33 | } 34 | } 35 | return false; 36 | 37 | }; 38 | Y.on("click", btn1_Click, ".header .title"); 39 | }); 40 | -------------------------------------------------------------------------------- /less/bootstrap3/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base classes 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | .btn-xs & { 32 | top: 0; 33 | padding: 1px 5px; 34 | } 35 | } 36 | 37 | // Hover state, but only for links 38 | a.badge { 39 | &:hover, 40 | &:focus { 41 | color: @badge-link-hover-color; 42 | text-decoration: none; 43 | cursor: pointer; 44 | } 45 | } 46 | 47 | // Account for counters in navs 48 | a.list-group-item.active > .badge, 49 | .nav-pills > .active > a > .badge { 50 | color: @badge-active-color; 51 | background-color: @badge-active-bg; 52 | } 53 | .nav-pills > li > a > .badge { 54 | margin-left: 3px; 55 | } 56 | -------------------------------------------------------------------------------- /version.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | 18 | /** 19 | * Theme settings 20 | * 21 | * @package theme_modern 22 | * @copyright 2014 Julian Ridden http://moodleman.net 23 | * @authors Julian Ridden - Bootstrap 3 work by Bas Brands, David Scotson 24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 | */ 26 | 27 | defined('MOODLE_INTERNAL') || die; 28 | 29 | $plugin->version = 2014032102; 30 | $plugin->release = '2.6.2 (Build: 20140321)'; 31 | $plugin->maturity = MATURITY_STABLE; // this version's maturity level. 32 | $plugin->requires = 2013110500; 33 | $plugin->component = 'theme_modern'; 34 | -------------------------------------------------------------------------------- /pix/fp/setting.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ]> 6 | 10 | 11 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /less/bootstrap3/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | &[href] { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /renderers.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | 18 | /** 19 | * Renderers to align Moodle's HTML with that expected by modern 20 | * 21 | * @package theme_modern 22 | * @copyright 2014 Julian Ridden http://moodleman.net 23 | * @authors Julian Ridden - Bootstrap 3 work by Bas Brands, David Scotson 24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 | */ 26 | 27 | require_once('renderers/core_renderer.php'); 28 | require_once('renderers/maintenance_renderer.php'); 29 | require_once('renderers/admin_renderer.php'); 30 | require_once('renderers/course_renderer.php'); 31 | require_once('renderers/files_renderer.php'); 32 | require_once('renderers/block_settings_renderer.php'); 33 | -------------------------------------------------------------------------------- /layout/popup.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | 18 | echo $OUTPUT->doctype() ?> 19 | htmlattributes(); ?>> 20 | 21 | <?php echo $OUTPUT->page_title(); ?> 22 | 23 | standard_head_html() ?> 24 | 25 | 26 | 27 | body_attributes(); ?>> 28 | 29 | standard_top_of_body_html(); 31 | echo $OUTPUT->main_content(); 32 | echo $OUTPUT->standard_footer_html(); 33 | echo $OUTPUT->standard_end_of_body_html(); 34 | ?> 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /layout/includes/standard_login.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * The Modern theme is built upon Bootstrapbase 3 (non-core). 19 | * 20 | * @package theme 21 | * @subpackage theme_modern 22 | * @author Julian (@moodleman) Ridden 23 | * @author Based on code originally written by G J Bernard, Mary Evans, Bas Brands, Stuart Lamour and David Scotson. 24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 | */ 26 | 27 | echo '
course_content_header(); 29 | echo $OUTPUT->main_content(); 30 | echo $OUTPUT->course_content_footer(); 31 | echo '
'; 32 | 33 | 34 | if ($hassidepost) { 35 | echo $OUTPUT->blocks('side-post', $regions['post']); 36 | } -------------------------------------------------------------------------------- /less/moodle/login.less: -------------------------------------------------------------------------------- 1 | .loginbox { 2 | border-radius: @border-radius-base - 1; 3 | .form-group; 4 | 5 | &.onecolumn { 6 | .make-sm-column(3); 7 | margin-left: 0; 8 | .well; 9 | } 10 | 11 | &.twocolumns .loginpanel { 12 | .make-sm-column(4); 13 | .make-lg-column(3); 14 | .well; 15 | } 16 | 17 | &.twocolumns .signuppanel { 18 | .make-sm-column(7); 19 | .make-sm-column-push(1); 20 | .make-lg-column(8); 21 | .make-lg-column-push(1); 22 | } 23 | 24 | .loginform { 25 | .form-label { 26 | text-align: left; 27 | width: 100%; 28 | margin-bottom: 5px; 29 | } 30 | .form-input { 31 | width: 100%; 32 | margin-bottom: 5px; 33 | input[type="text"], 34 | input[type="password"] { 35 | .form-control; 36 | width: 100%; 37 | } 38 | input[type="submit"] { 39 | margin: 10px 0 0; 40 | } 41 | } 42 | } 43 | input[type="submit"] { 44 | margin: 10px 0 0; 45 | } 46 | .desc { 47 | font-size: 30px; 48 | line-height: 30px; 49 | font-weight: 300; 50 | color: #333333; 51 | } 52 | 53 | .subcontent { 54 | text-align: left; 55 | padding: 0; 56 | margin: 0; 57 | .desc { 58 | display: none; 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /style/nprogress.css: -------------------------------------------------------------------------------- 1 | /* Make clicks pass-through */ 2 | #nprogress { 3 | pointer-events: none; 4 | } 5 | 6 | #nprogress .bar { 7 | background: #29d; 8 | 9 | position: fixed; 10 | z-index: 100; 11 | top: 0; 12 | left: 0; 13 | 14 | width: 100%; 15 | height: 2px; 16 | } 17 | 18 | /* Fancy blur effect */ 19 | #nprogress .peg { 20 | display: block; 21 | position: absolute; 22 | right: 0px; 23 | width: 100px; 24 | height: 100%; 25 | box-shadow: 0 0 10px #29d, 0 0 5px #29d; 26 | opacity: 1.0; 27 | 28 | -webkit-transform: rotate(3deg) translate(0px, -4px); 29 | -ms-transform: rotate(3deg) translate(0px, -4px); 30 | transform: rotate(3deg) translate(0px, -4px); 31 | } 32 | 33 | /* Remove these to get rid of the spinner */ 34 | #nprogress .spinner { 35 | display: block; 36 | position: fixed; 37 | z-index: 100; 38 | top: 15px; 39 | right: 15px; 40 | } 41 | 42 | #nprogress .spinner-icon { 43 | width: 18px; 44 | height: 18px; 45 | box-sizing: border-box; 46 | 47 | border: solid 2px transparent; 48 | border-top-color: #29d; 49 | border-left-color: #29d; 50 | border-radius: 50%; 51 | 52 | -webkit-animation: nprogress-spinner 400ms linear infinite; 53 | animation: nprogress-spinner 400ms linear infinite; 54 | } 55 | 56 | @-webkit-keyframes nprogress-spinner { 57 | 0% { -webkit-transform: rotate(0deg); } 58 | 100% { -webkit-transform: rotate(360deg); } 59 | } 60 | @keyframes nprogress-spinner { 61 | 0% { transform: rotate(0deg); } 62 | 100% { transform: rotate(360deg); } 63 | } 64 | 65 | -------------------------------------------------------------------------------- /less/bootstrap3/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: @font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: @code-color; 19 | background-color: @code-bg; 20 | white-space: nowrap; 21 | border-radius: @border-radius-base; 22 | } 23 | 24 | // User input typically entered via keyboard 25 | kbd { 26 | padding: 2px 4px; 27 | font-size: 90%; 28 | color: @kbd-color; 29 | background-color: @kbd-bg; 30 | border-radius: @border-radius-small; 31 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 32 | } 33 | 34 | // Blocks of code 35 | pre { 36 | display: block; 37 | padding: ((@line-height-computed - 1) / 2); 38 | margin: 0 0 (@line-height-computed / 2); 39 | font-size: (@font-size-base - 1); // 14px to 13px 40 | line-height: @line-height-base; 41 | word-break: break-all; 42 | word-wrap: break-word; 43 | color: @pre-color; 44 | background-color: @pre-bg; 45 | border: 1px solid @pre-border-color; 46 | border-radius: @border-radius-base; 47 | 48 | // Account for some code outputs that place code tags in pre tags 49 | code { 50 | padding: 0; 51 | font-size: inherit; 52 | color: inherit; 53 | white-space: pre-wrap; 54 | background-color: transparent; 55 | border-radius: 0; 56 | } 57 | } 58 | 59 | // Enable scrollable blocks of code 60 | .pre-scrollable { 61 | max-height: @pre-scrollable-max-height; 62 | overflow-y: scroll; 63 | } 64 | -------------------------------------------------------------------------------- /less/bootstrap3/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | // Provide class for links that match alerts 22 | .alert-link { 23 | font-weight: @alert-link-font-weight; 24 | } 25 | 26 | // Improve alignment and spacing of inner content 27 | > p, 28 | > ul { 29 | margin-bottom: 0; 30 | } 31 | > p + p { 32 | margin-top: 5px; 33 | } 34 | } 35 | 36 | // Dismissable alerts 37 | // 38 | // Expand the right padding and account for the close button's positioning. 39 | 40 | .alert-dismissable { 41 | padding-right: (@alert-padding + 20); 42 | 43 | // Adjust close link position 44 | .close { 45 | position: relative; 46 | top: -2px; 47 | right: -21px; 48 | color: inherit; 49 | } 50 | } 51 | 52 | // Alternate styles 53 | // 54 | // Generate contextual modifier classes for colorizing the alert. 55 | 56 | .alert-success { 57 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 58 | } 59 | .alert-info { 60 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 61 | } 62 | .alert-warning { 63 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 64 | } 65 | .alert-danger { 66 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 67 | } 68 | -------------------------------------------------------------------------------- /less/moodle.less: -------------------------------------------------------------------------------- 1 | // Import the bootstrap variables. 2 | @import "bootstrap3/variables.less"; 3 | 4 | // Old Moodle stuff from base theme. 5 | // Massive, needs broken up. 6 | @import "moodle/core"; 7 | @import "moodle/admin"; 8 | @import "moodle/calendar"; 9 | @import "moodle/course"; 10 | @import "moodle/filemanager"; 11 | @import "moodle/message"; 12 | @import "moodle/question"; 13 | @import "moodle/user"; 14 | @import "moodle/userprofile"; 15 | @import "moodle/login"; 16 | @import "moodle/tags"; 17 | @import "moodle/badges"; 18 | @import "moodle/enrolment"; 19 | @import "moodle/new"; 20 | 21 | 22 | // Upstream Bootstrap. 23 | @import "bootstrap3/bootstrap"; 24 | 25 | // Override Bootstrap defaults. 26 | @import "moodle/bootstrapoverride"; 27 | 28 | // Roll back nameclashes. 29 | @import "moodle/undo"; 30 | 31 | // New Moodle stuff that builds on Bootstrap. 32 | @import "moodle/blocks"; 33 | @import "moodle/forms"; 34 | @import "moodle/modules"; 35 | @import "moodle/chat"; 36 | @import "moodle/reports"; 37 | @import "moodle/backup-restore"; 38 | @import "moodle/tables"; 39 | @import "moodle/buttons"; 40 | @import "moodle/navs"; 41 | @import "moodle/reader"; 42 | 43 | @import "bootswatch/custom-variables.less"; 44 | @import "bootswatch/custom-bootswatch.less"; 45 | 46 | // Anything below this line is considered expendable, 47 | // so it doesn't matter if it doesn't show up in ie < 9 48 | // though at current time (2013-03-13) the whole file is 49 | // picked up in IE8, and IE9 fails at some point during the 50 | // responsive section, cutting off the last 400 selectors. 51 | 52 | // The following responsive imports are copied in 53 | // from "bootstrap/responsive". 54 | 55 | @import "moodle/responsive"; 56 | 57 | @import "moodle/debug"; 58 | -------------------------------------------------------------------------------- /less/bootstrap3/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | .container-fixed(); 12 | 13 | @media (min-width: @screen-sm-min) { 14 | width: @container-sm; 15 | } 16 | @media (min-width: @screen-md-min) { 17 | width: @container-md; 18 | } 19 | @media (min-width: @screen-lg-min) { 20 | width: @container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | .container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | .make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | .make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | .make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: @screen-sm-min) { 65 | .make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: @screen-md-min) { 74 | .make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: @screen-lg-min) { 83 | .make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /layout/embedded.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * The Modern theme is built upon Bootstrapbase 3 (non-core). 19 | * 20 | * @package theme 21 | * @subpackage theme_modern 22 | * @author Julian (@moodleman) Ridden 23 | * @author Based on code originally written by G J Bernard, Mary Evans, Bas Brands, Stuart Lamour and David Scotson. 24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 | */ 26 | 27 | echo $OUTPUT->doctype() ?> 28 | htmlattributes(); ?>> 29 | 30 | <?php echo $OUTPUT->page_title(); ?> 31 | 32 | standard_head_html() ?> 33 | 34 | 35 | 36 | body_attributes(); ?>> 37 | standard_top_of_body_html() ?> 38 |
39 |
40 | main_content(); ?> 41 |
42 |
43 | standard_end_of_body_html() ?> 44 | 45 | 46 | -------------------------------------------------------------------------------- /less/bootswatch/shamrock/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Shamrock 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url('//fonts.googleapis.com/css?family=Marcellus'); 6 | 7 | // Navbar ===================================================================== 8 | 9 | // Buttons ==================================================================== 10 | 11 | // Typography ================================================================= 12 | 13 | h1:before { 14 | content: "\2663"; 15 | margin-right: 10px; 16 | } 17 | 18 | .page-header { 19 | border-bottom-width: 5px; 20 | } 21 | 22 | // Tables ===================================================================== 23 | 24 | // Forms ====================================================================== 25 | 26 | legend { 27 | border-bottom-width: 5px; 28 | } 29 | 30 | // Navs ======================================================================= 31 | 32 | .nav { 33 | .open > a, 34 | .open > a:hover, 35 | .open > a:focus { 36 | border-color: transparent; 37 | } 38 | } 39 | 40 | // Indicators ================================================================= 41 | 42 | .alert { 43 | .alert-link { 44 | color: @link-color 45 | } 46 | } 47 | 48 | // Progress bars ============================================================== 49 | 50 | // Containers ================================================================= 51 | 52 | .panel-default { 53 | border-color: darken(@panel-footer-bg, 5%); 54 | 55 | .panel-heading { 56 | background-color: @panel-footer-bg; 57 | border-color: darken(@panel-footer-bg, 5%); 58 | color: #fff; 59 | } 60 | } 61 | 62 | .modal { 63 | background-color: @gray-light; 64 | 65 | &-header { 66 | border-bottom: none; 67 | } 68 | 69 | &-footer { 70 | background-color: @gray-dark; 71 | border-top: none; 72 | .box-shadow(none); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /less/moodle/navs.less: -------------------------------------------------------------------------------- 1 | // Prevents weird looking tabs on big reports 2 | .nav-justified > li > a { 3 | padding-left: 4px; 4 | padding-right: 4px; 5 | margin-right: 1px; 6 | white-space: nowrap; 7 | } 8 | 9 | // Give a little padding to multi row tabs 10 | .nav-justified { 11 | padding: 10px 0 0 0; 12 | } 13 | 14 | .nav-justified { 15 | // Reset tabs to collapsed on @screen-sm-min sizes. 16 | @media (min-width: @screen-sm-min) { 17 | > li { 18 | display: block; 19 | width: 100%; 20 | float: none; 21 | > a { 22 | text-align: center; 23 | margin-bottom: 5px; 24 | } 25 | } 26 | } 27 | // Ok to show tabs on medium screens 28 | @media (min-width: @screen-md) { 29 | border: 0; 30 | border-radius: 0; 31 | > li { 32 | display: table-cell; 33 | width: 1%; 34 | > a { 35 | margin-bottom: 0; 36 | } 37 | } 38 | } 39 | } 40 | 41 | 42 | 43 | .nav-tabs-justified { 44 | > li > a { 45 | // Override margin from .nav-tabs 46 | margin-right: 1px; 47 | border-radius: @border-radius-base; 48 | } 49 | 50 | > .active > a, 51 | > .active > a:hover, 52 | > .active > a:focus { 53 | border: 1px solid @nav-tabs-justified-link-border-color; 54 | } 55 | 56 | @media (min-width: @screen-sm-min) { 57 | > li > a { 58 | border: 1px solid @nav-tabs-justified-link-border-color; 59 | border-radius: @border-radius-base; 60 | } 61 | } 62 | @media (min-width: @screen-md-min) { 63 | > li > a { 64 | border-bottom: 1px solid @nav-tabs-justified-link-border-color; 65 | border-radius: @border-radius-base @border-radius-base 0 0; 66 | } 67 | > .active > a, 68 | > .active > a:hover, 69 | > .active > a:focus { 70 | border-bottom-color: @nav-tabs-justified-active-link-border-color; 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /less/bootstrap3/progress-bars.less: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // Bar animations 7 | // ------------------------- 8 | 9 | // WebKit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Spec and IE10+ 16 | @keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | 22 | 23 | // Bar itself 24 | // ------------------------- 25 | 26 | // Outer container 27 | .progress { 28 | overflow: hidden; 29 | height: @line-height-computed; 30 | margin-bottom: @line-height-computed; 31 | background-color: @progress-bg; 32 | border-radius: @border-radius-base; 33 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 34 | } 35 | 36 | // Bar of progress 37 | .progress-bar { 38 | float: left; 39 | width: 0%; 40 | height: 100%; 41 | font-size: @font-size-small; 42 | line-height: @line-height-computed; 43 | color: @progress-bar-color; 44 | text-align: center; 45 | background-color: @progress-bar-bg; 46 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 47 | .transition(width .6s ease); 48 | } 49 | 50 | // Striped bars 51 | .progress-striped .progress-bar { 52 | #gradient > .striped(); 53 | background-size: 40px 40px; 54 | } 55 | 56 | // Call animation for the active one 57 | .progress.active .progress-bar { 58 | .animation(progress-bar-stripes 2s linear infinite); 59 | } 60 | 61 | 62 | 63 | // Variations 64 | // ------------------------- 65 | 66 | .progress-bar-success { 67 | .progress-bar-variant(@progress-bar-success-bg); 68 | } 69 | 70 | .progress-bar-info { 71 | .progress-bar-variant(@progress-bar-info-bg); 72 | } 73 | 74 | .progress-bar-warning { 75 | .progress-bar-variant(@progress-bar-warning-bg); 76 | } 77 | 78 | .progress-bar-danger { 79 | .progress-bar-variant(@progress-bar-danger-bg); 80 | } 81 | -------------------------------------------------------------------------------- /less/moodle/debug.less: -------------------------------------------------------------------------------- 1 | .phpinfo table, 2 | .phpinfo th, 3 | .phpinfo h2 { 4 | margin: auto; 5 | text-align: left; 6 | } 7 | .phpinfo h2 { 8 | width: 600px; 9 | } 10 | .phpinfo .e, 11 | .phpinfo .v, 12 | .phpinfo .h { 13 | border: 1px solid #000000; 14 | font-size: 0.8em; 15 | vertical-align: baseline; 16 | color: #000000; 17 | background-color: #cccccc; 18 | } 19 | .phpinfo .e { 20 | background-color: #ccccff; 21 | font-weight: bold; 22 | } 23 | .phpinfo .h { 24 | background-color: #9999cc; 25 | font-weight: bold; 26 | } 27 | #page-footer .performanceinfo { 28 | margin: 10px 20%; 29 | } 30 | #page-footer .performanceinfo span { 31 | display: block; 32 | } 33 | #page-footer .validators { 34 | margin-top: 40px; 35 | padding-top: 5px; 36 | border-top: 1px dotted gray; 37 | } 38 | #page-footer .validators ul { 39 | margin: 0; 40 | padding: 0; 41 | list-style-type: none; 42 | } 43 | #page-footer .validators ul li { 44 | display: inline; 45 | margin-right: 10px; 46 | margin-left: 10px; 47 | } 48 | .performanceinfo .cachesused { 49 | margin-top: 1em; 50 | } 51 | .performanceinfo .cachesused .cache-stats-heading, 52 | .performanceinfo .cachesused .cache-total-stats { 53 | font-weight: bold; 54 | font-size: 110%; 55 | margin-top: 0.3em; 56 | } 57 | #page-footer .performanceinfo .cachesused .cache-definition-stats { 58 | margin: .3em; 59 | display: inline-block; 60 | vertical-align: top; 61 | background-color: @well-bg; 62 | } 63 | .cache-store-stats { 64 | padding: 0 1.3em; 65 | } 66 | .cache-store-stats.nohits { 67 | background-color: @state-danger-bg; 68 | } 69 | .cache-store-stats.lowhits { 70 | background-color: @state-warning-bg; 71 | } 72 | .cache-store-stats.hihits { 73 | background-color: @state-success-bg; 74 | } 75 | #page-footer, 76 | #page-footer .validators, 77 | #page-footer .purgecaches, 78 | #page-footer .performanceinfo { 79 | text-align: center; 80 | } 81 | -------------------------------------------------------------------------------- /style/yui2-rtl.css: -------------------------------------------------------------------------------- 1 | /** Fix YUI 2 Treeview for Right to left languages **/ 2 | 3 | .dir-rtl .ygtvtn, 4 | .dir-rtl .ygtvtm, 5 | .dir-rtl .ygtvtmh, 6 | .dir-rtl .ygtvtmhh, 7 | .dir-rtl .ygtvtp, 8 | .dir-rtl .ygtvtph, 9 | .dir-rtl .ygtvtphh, 10 | .dir-rtl .ygtvln, 11 | .dir-rtl .ygtvlm, 12 | .dir-rtl .ygtvlmh, 13 | .dir-rtl .ygtvlmhh, 14 | .dir-rtl .ygtvlp, 15 | .dir-rtl .ygtvlph, 16 | .dir-rtl .ygtvlphh, 17 | .dir-rtl .ygtvdepthcell, 18 | .dir-rtl .ygtvok, 19 | .dir-rtl .ygtvok:hover, 20 | .dir-rtl .ygtvcancel, 21 | .dir-rtl .ygtvcancel:hover { 22 | width: 18px; 23 | height: 22px; 24 | background-image: url([[pix:theme|yui2-treeview-sprite-rtl]]); 25 | background-repeat: no-repeat; 26 | cursor: pointer; 27 | } 28 | .dir-rtl .ygtvtn { 29 | background-position: 0 -5600px; 30 | } 31 | .dir-rtl .ygtvtm { 32 | background-position: 0 -4000px; 33 | } 34 | .dir-rtl .ygtvtmh, 35 | .dir-rtl .ygtvtmhh { 36 | background-position: 0 -4800px; 37 | } 38 | .dir-rtl .ygtvtp { 39 | background-position: 0 -6400px; 40 | } 41 | .dir-rtl .ygtvtph, 42 | .dir-rtl .ygtvtphh { 43 | background-position: 0 -7200px; 44 | } 45 | .dir-rtl .ygtvln { 46 | background-position: 0 -1600px; 47 | } 48 | .dir-rtl .ygtvlm { 49 | background-position: 0 0; 50 | } 51 | .dir-rtl .ygtvlmh, 52 | .dir-rtl .ygtvlmhh { 53 | background-position: 0 -800px; 54 | } 55 | .dir-rtl .ygtvlp { 56 | background-position: 0 -2400px; 57 | } 58 | .dir-rtl .ygtvlph, 59 | .dir-rtl .ygtvlphh { 60 | background-position: 0 -3200px 61 | } 62 | .dir-rtl .ygtvdepthcell { 63 | background-position: 0 -8000px; 64 | } 65 | .dir-rtl .ygtvok { 66 | background-position: 0 -8800px; 67 | } 68 | .dir-rtl .ygtvok:hover { 69 | background-position: 0 -8844px; 70 | } 71 | .dir-rtl .ygtvcancel { 72 | background-position: 0 -8822px; 73 | } 74 | .dir-rtl .ygtvcancel:hover { 75 | background-position: 0 -8866px; 76 | } 77 | .dir-rtl.yui-skin-sam .yui-panel .hd { 78 | text-align: right; 79 | } 80 | .dir-rtl .yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd { 81 | text-align: right; 82 | } 83 | -------------------------------------------------------------------------------- /renderers/maintenance_renderer.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | 18 | /** 19 | * Renderers to align Moodle's HTML with that expected by modern 20 | * 21 | * @package theme_modern 22 | * @copyright 2014 Julian Ridden http://moodleman.net 23 | * @authors Julian Ridden - Bootstrap 3 work by Bas Brands, David Scotson 24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 | */ 26 | 27 | defined('MOODLE_INTERNAL') || die(); 28 | 29 | class theme_modern_core_renderer_maintenance extends core_renderer_maintenance { 30 | 31 | public function notification($message, $classes = 'notifyproblem') { 32 | $message = clean_text($message); 33 | 34 | if ($classes == 'notifyproblem') { 35 | return html_writer::div($message, 'alert alert-danger'); 36 | } 37 | if ($classes == 'notifywarning') { 38 | return html_writer::div($message, 'alert alert-warning'); 39 | } 40 | if ($classes == 'notifysuccess') { 41 | return html_writer::div($message, 'alert alert-success'); 42 | } 43 | if ($classes == 'notifymessage') { 44 | return html_writer::div($message, 'alert alert-info'); 45 | } 46 | if ($classes == 'redirectmessage') { 47 | return html_writer::div($message, 'alert alert-block alert-info'); 48 | } 49 | return html_writer::div($message, $classes); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /less/bootstrap3/print.less: -------------------------------------------------------------------------------- 1 | // 2 | // Basic print styles 3 | // -------------------------------------------------- 4 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css 5 | 6 | @media print { 7 | 8 | * { 9 | text-shadow: none !important; 10 | color: #000 !important; // Black prints faster: h5bp.com/s 11 | background: transparent !important; 12 | box-shadow: none !important; 13 | } 14 | 15 | a, 16 | a:visited { 17 | text-decoration: underline; 18 | } 19 | 20 | a[href]:after { 21 | content: " (" attr(href) ")"; 22 | } 23 | 24 | abbr[title]:after { 25 | content: " (" attr(title) ")"; 26 | } 27 | 28 | // Don't show links for images, or javascript/internal links 29 | a[href^="javascript:"]:after, 30 | a[href^="#"]:after { 31 | content: ""; 32 | } 33 | 34 | pre, 35 | blockquote { 36 | border: 1px solid #999; 37 | page-break-inside: avoid; 38 | } 39 | 40 | thead { 41 | display: table-header-group; // h5bp.com/t 42 | } 43 | 44 | tr, 45 | img { 46 | page-break-inside: avoid; 47 | } 48 | 49 | img { 50 | max-width: 100% !important; 51 | } 52 | 53 | p, 54 | h2, 55 | h3 { 56 | orphans: 3; 57 | widows: 3; 58 | } 59 | 60 | h2, 61 | h3 { 62 | page-break-after: avoid; 63 | } 64 | 65 | // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245 66 | // Once fixed, we can just straight up remove this. 67 | select { 68 | background: #fff !important; 69 | } 70 | 71 | // Bootstrap components 72 | .navbar { 73 | display: none; 74 | } 75 | .table { 76 | td, 77 | th { 78 | background-color: #fff !important; 79 | } 80 | } 81 | .btn, 82 | .dropup > .btn { 83 | > .caret { 84 | border-top-color: #000 !important; 85 | } 86 | } 87 | .label { 88 | border: 1px solid #000; 89 | } 90 | 91 | .table { 92 | border-collapse: collapse !important; 93 | } 94 | .table-bordered { 95 | th, 96 | td { 97 | border: 1px solid #ddd !important; 98 | } 99 | } 100 | 101 | } 102 | -------------------------------------------------------------------------------- /jquery/plugins.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * This file describes jQuery plugins available in the moodle 19 | * core component. These can be included in page using: 20 | * $PAGE->requires->jquery(); 21 | * $PAGE->requires->jquery_plugin('migrate', 'core'); 22 | * $PAGE->requires->jquery_plugin('ui', 'core'); 23 | * $PAGE->requires->jquery_plugin('ui-css', 'core'); 24 | * 25 | * Please note that other moodle plugins can not use the sample 26 | * jquery plugin names, only one is loaded if collision detected. 27 | * 28 | * Any Moodle plugin may add jquery/plugins.php and include extra 29 | * jQuery plugins. 30 | * 31 | * Themes or other plugin may blacklist any jquery plugin, 32 | * for example to override default jQueryUI theme. 33 | * 34 | * @package core 35 | * @copyright 2013 Petr Skoda {@link http://skodak.org} 36 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 37 | */ 38 | 39 | $plugins = array( 40 | 'bootstrap' => array('files' => array('bootstrap.js')), 41 | 'jquery.cookie' => array('files' => array('jquery.cookie.js')), 42 | 'fitvids' => array('files' => array('fitvids-1.0.3.js')), 43 | 'modernizr' => array('files' => array('modernizr_2.6.2.js')), 44 | 'eventswipe' => array('files' => array('eventswipe_0.5.js')), 45 | 'nprogress' => array('files' => array('nprogress.js')), 46 | 'unslider' => array('files' => array('unslider_1.0.2.js')), 47 | 'backstretch' => array('files' => array('backstretch_2.0.4.js')) 48 | ); 49 | 50 | -------------------------------------------------------------------------------- /less/bootswatch/journal/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Journal 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url("//fonts.googleapis.com/css?family=News+Cycle:400,700"); 6 | 7 | // Navbar ===================================================================== 8 | 9 | .navbar { 10 | font-size: 18px; 11 | font-family: @font-family-sans-serif; 12 | font-weight: @headings-font-weight; 13 | } 14 | 15 | .navbar-brand { 16 | font-size: 18px; 17 | font-weight: @headings-font-weight; 18 | text-transform: uppercase; 19 | } 20 | 21 | // Buttons ==================================================================== 22 | 23 | // Typography ================================================================= 24 | 25 | // Tables ===================================================================== 26 | 27 | // Forms ====================================================================== 28 | 29 | .has-warning { 30 | .help-block, 31 | .control-label { 32 | color: @brand-danger; 33 | } 34 | 35 | .form-control, 36 | .form-control:focus { 37 | border-color: @brand-danger; 38 | } 39 | } 40 | 41 | .has-error { 42 | .help-block, 43 | .control-label { 44 | color: @brand-primary; 45 | } 46 | 47 | .form-control, 48 | .form-control:focus { 49 | border-color: @brand-primary; 50 | } 51 | } 52 | 53 | .has-success { 54 | .help-block, 55 | .control-label { 56 | color: @brand-success; 57 | } 58 | 59 | .form-control, 60 | .form-control:focus { 61 | border-color: @brand-success; 62 | } 63 | } 64 | 65 | // Navs ======================================================================= 66 | 67 | // Indicators ================================================================= 68 | 69 | // Progress bars ============================================================== 70 | 71 | // Containers ================================================================= 72 | 73 | .jumbotron { 74 | 75 | h1, h2, h3, h4, h5, h6 { 76 | font-family: @font-family-sans-serif; 77 | font-weight: @headings-font-weight; 78 | color: #000; 79 | } 80 | } 81 | 82 | .panel { 83 | 84 | &-primary, 85 | &-success, 86 | &-warning, 87 | &-danger, 88 | &-info { 89 | .panel-title { 90 | color: #fff; 91 | } 92 | } 93 | 94 | 95 | } 96 | -------------------------------------------------------------------------------- /less/bootstrap3/pagination.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pagination (multiple pages) 3 | // -------------------------------------------------- 4 | .pagination { 5 | display: inline-block; 6 | padding-left: 0; 7 | margin: @line-height-computed 0; 8 | border-radius: @border-radius-base; 9 | 10 | > li { 11 | display: inline; // Remove list-style and block-level defaults 12 | > a, 13 | > span { 14 | position: relative; 15 | float: left; // Collapse white-space 16 | padding: @padding-base-vertical @padding-base-horizontal; 17 | line-height: @line-height-base; 18 | text-decoration: none; 19 | color: @pagination-color; 20 | background-color: @pagination-bg; 21 | border: 1px solid @pagination-border; 22 | margin-left: -1px; 23 | } 24 | &:first-child { 25 | > a, 26 | > span { 27 | margin-left: 0; 28 | .border-left-radius(@border-radius-base); 29 | } 30 | } 31 | &:last-child { 32 | > a, 33 | > span { 34 | .border-right-radius(@border-radius-base); 35 | } 36 | } 37 | } 38 | 39 | > li > a, 40 | > li > span { 41 | &:hover, 42 | &:focus { 43 | color: @pagination-hover-color; 44 | background-color: @pagination-hover-bg; 45 | border-color: @pagination-hover-border; 46 | } 47 | } 48 | 49 | > .active > a, 50 | > .active > span { 51 | &, 52 | &:hover, 53 | &:focus { 54 | z-index: 2; 55 | color: @pagination-active-color; 56 | background-color: @pagination-active-bg; 57 | border-color: @pagination-active-border; 58 | cursor: default; 59 | } 60 | } 61 | 62 | > .disabled { 63 | > span, 64 | > span:hover, 65 | > span:focus, 66 | > a, 67 | > a:hover, 68 | > a:focus { 69 | color: @pagination-disabled-color; 70 | background-color: @pagination-disabled-bg; 71 | border-color: @pagination-disabled-border; 72 | cursor: not-allowed; 73 | } 74 | } 75 | } 76 | 77 | // Sizing 78 | // -------------------------------------------------- 79 | 80 | // Large 81 | .pagination-lg { 82 | .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large); 83 | } 84 | 85 | // Small 86 | .pagination-sm { 87 | .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small); 88 | } 89 | -------------------------------------------------------------------------------- /less/moodle/buttons.less: -------------------------------------------------------------------------------- 1 | .singlebutton div { 2 | display: inline-block; 3 | margin-left: 5px; 4 | margin-right: 5px; 5 | margin-bottom: 5px; 6 | } 7 | // Two singlebutton's side by side for ok/cancel. 8 | #notice .buttons .singlebutton { 9 | display: inline-block; 10 | } 11 | .continuebutton { 12 | text-align: center; 13 | } 14 | 15 | .btn-lineup { 16 | margin: 0 0 3px 5px; 17 | } 18 | input[name="searchwikicontent"] + input[type="submit"], 19 | select + input[type="submit"], 20 | input[type="text"] + input[type="button"], 21 | input[type="password"] + input[type="submit"], 22 | input[type="text"] + button, 23 | input[type="text"] + input[type="submit"] { 24 | .btn-lineup 25 | } 26 | p.arrow_button { 27 | margin-top: 5em; 28 | text-align: center; 29 | #remove { 30 | margin: 3em auto 5em; 31 | } 32 | input { 33 | .btn-block; 34 | } 35 | } 36 | #addcontrols { 37 | margin-top: 5em; 38 | text-align: center; 39 | margin-bottom: 3em; 40 | } 41 | #addcontrols input, 42 | #removecontrols input { 43 | .btn-block; 44 | } 45 | 46 | button, 47 | input.form-submit, 48 | input[type="button"], 49 | input[type="submit"], 50 | input[type="reset"] 51 | { 52 | .btn; 53 | .btn-default; 54 | .btn-lineup; 55 | } 56 | 57 | input.form-submit, 58 | input#id_submitbutton, 59 | input#id_submitbutton2, 60 | .path-admin .buttons input[type="submit"], 61 | td.submit input { 62 | .btn-primary 63 | } 64 | 65 | // override .btn-primary 66 | #notice .singlebutton + .singlebutton input, 67 | .submit.buttons input[name="cancel"] { 68 | .btn 69 | } 70 | 71 | #notice .singlebutton + .singlebutton input, 72 | .submit.buttons input[name="cancel"] { 73 | .btn-lineup 74 | } 75 | 76 | input[id$="_clearbutton"], 77 | input[type="reset"] { 78 | .btn-warning 79 | } 80 | 81 | button.yui3-button.closebutton, 82 | button.yui3-button.closebutton:hover { 83 | background-position: 0 0; 84 | // Because we assign button looks to every button tag above, 85 | // we need to remove some styles from non-standard looking 86 | // buttons. Correct fix, assign .btn class to every actual 87 | // button in Moodle so we don't need to carpet bomb the 88 | // bare button tag. 89 | } 90 | 91 | input.fp-btn-choose { 92 | .btn-sm; 93 | } 94 | .user-enroller-panel .uep-search-results .user .options .enrol { 95 | .btn-xs 96 | } 97 | -------------------------------------------------------------------------------- /javascript/html5shiv.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); 8 | if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d. 16 | 17 | 18 | /** 19 | * Renderers to align Moodle's HTML with that expected by modern 20 | * 21 | * @package theme_modern 22 | * @copyright 2014 Julian Ridden http://moodleman.net 23 | * @authors Julian Ridden - Bootstrap 3 work by Bas Brands, David Scotson 24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 | */ 26 | 27 | defined('MOODLE_INTERNAL') || die(); 28 | 29 | require_once($CFG->dirroot . "/blocks/settings/renderer.php"); 30 | 31 | class theme_modern_block_settings_renderer extends block_settings_renderer { 32 | 33 | public function search_form(moodle_url $formtarget, $searchvalue) { 34 | $content = html_writer::start_tag('form', 35 | array( 36 | 'class' => 'adminsearchform', 37 | 'method' => 'get', 38 | 'action' => $formtarget, 39 | 'role' => 'search', 40 | ) 41 | ); 42 | $content .= html_writer::start_div('input-group'); 43 | $content .= html_writer::empty_tag('input', 44 | array( 45 | 'id' => 'adminsearchquery', 46 | 'type' => 'text', 47 | 'name' => 'query', 48 | 'class' => 'form-control', 49 | 'placeholder' => s(get_string('searchinsettings', 'admin')), 50 | 'value' => s($searchvalue), 51 | ) 52 | ); 53 | $content .= html_writer::start_span('input-group-btn'); 54 | $content .= html_writer::tag('button', s(get_string('go')), array('type' => 'button', 'class' => 'btn btn-default')); 55 | $content .= html_writer::end_span(); 56 | $content .= html_writer::end_div(); 57 | $content .= html_writer::end_tag('form'); 58 | return $content; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /readme_moodle.txt: -------------------------------------------------------------------------------- 1 | Discription of Twitter bootstrap import into Moodle 2 | 3 | Twitter bootstrap 4 | ----------------- 5 | The bootstrap theme uses the original unmodified version 2.3.0 Twitter bootstrap less files. These are 6 | Object Oriented CSS files. The bootstrap repository is available on: 7 | 8 | https://github.com/twitter/bootstrap.git 9 | 10 | To update to the latest release of twitter bootstrap: 11 | * remove all files from less/bootstrap, 12 | * download the new less files and store them in less/bootstrap 13 | * regenerate files using recess: recess --compile --compress moodle.less > ../style/moodle.css ** 14 | * regenerate files using recess: recess --compile --compress editor.less > ../style/editor.css ** 15 | * update ./thirdpartylibs.xml 16 | 17 | ** If you want to make changes to the .css generated from these .less files then you 18 | need to install recess (https://github.com/twitter/recess) to compile the .less files, 19 | then run these commands in the bootstrapbase/less/ folder: 20 | 21 | 22 | html5shiv.js 23 | ------------ 24 | This theme uses the original unmodified html5shiv.js JavaScript library to enable HTML5 tags in IE7 and IE8. 25 | This library is available on: 26 | 27 | https://github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js 28 | 29 | To update to the latest release of html5shiv: 30 | * download and replace: javascript/html5shiv.js 31 | * update ./thirdpartylibs.xml 32 | 33 | bootstrapcollapse.js, bootstrapdropdown.js, bootstrapengine.js 34 | -------------------------------------------------------------- 35 | This theme uses YUI ports of the Twitter bootstrap jQuery based libs. These ported files are available on: 36 | 37 | https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-collapse/js/bootstrap-collapse.js 38 | https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-dropdown/js/bootstrap-dropdown.js 39 | https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-engine/js/bootstrap-engine.js 40 | 41 | The content of these files are slightly modified to make sure all required YUI libraries are loaded. To achieve 42 | that the first and last line of each of these files has been modified. 43 | 44 | The YUI port of the Twitter bootstrap libs are now longer maintained. If you need all of the Bootstrap JavaScript 45 | functionality consider switching to the original jQuery version of these file 46 | 47 | If you do want to update use these file locations: 48 | theme/bootstrapbase/yui/src/bootstrap/js/bootstrap-collapse.js 49 | theme/bootstrapbase/yui/src/bootstrap/js/bootstrap-dropdown.js 50 | theme/bootstrapbase/yui/src/bootstrap/js/bootstrap-engine.js 51 | -------------------------------------------------------------------------------- /pix/readme_moodle.txt: -------------------------------------------------------------------------------- 1 | Discription of Twitter bootstrap import into Moodle 2 | 3 | Twitter bootstrap 4 | ----------------- 5 | The bootstrap theme uses the original unmodified version 2.3.0 Twitter bootstrap less files. These are 6 | Object Oriented CSS files. The bootstrap repository is available on: 7 | 8 | https://github.com/twitter/bootstrap.git 9 | 10 | To update to the latest release of twitter bootstrap: 11 | * remove all files from less/bootstrap, 12 | * download the new less files and store them in less/bootstrap 13 | * regenerate files using recess: recess --compile --compress moodle.less > ../style/moodle.css ** 14 | * regenerate files using recess: recess --compile --compress editor.less > ../style/editor.css ** 15 | * update ./thirdpartylibs.xml 16 | 17 | ** If you want to make changes to the .css generated from these .less files then you 18 | need to install recess (https://github.com/twitter/recess) to compile the .less files, 19 | then run these commands in the bootstrapbase/less/ folder: 20 | 21 | 22 | html5shiv.js 23 | ------------ 24 | This theme uses the original unmodified html5shiv.js JavaScript library to enable HTML5 tags in IE7 and IE8. 25 | This library is available on: 26 | 27 | https://github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js 28 | 29 | To update to the latest release of html5shiv: 30 | * download and replace: javascript/html5shiv.js 31 | * update ./thirdpartylibs.xml 32 | 33 | bootstrapcollapse.js, bootstrapdropdown.js, bootstrapengine.js 34 | -------------------------------------------------------------- 35 | This theme uses YUI ports of the Twitter bootstrap jQuery based libs. These ported files are available on: 36 | 37 | https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-collapse/js/bootstrap-collapse.js 38 | https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-dropdown/js/bootstrap-dropdown.js 39 | https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-engine/js/bootstrap-engine.js 40 | 41 | The content of these files are slightly modified to make sure all required YUI libraries are loaded. To achieve 42 | that the first and last line of each of these files has been modified. 43 | 44 | The YUI port of the Twitter bootstrap libs are now longer maintained. If you need all of the Bootstrap JavaScript 45 | functionality consider switching to the original jQuery version of these file 46 | 47 | If you do want to update use these file locations: 48 | theme/bootstrapbase/yui/src/bootstrap/js/bootstrap-collapse.js 49 | theme/bootstrapbase/yui/src/bootstrap/js/bootstrap-dropdown.js 50 | theme/bootstrapbase/yui/src/bootstrap/js/bootstrap-engine.js 51 | -------------------------------------------------------------------------------- /less/bootswatch/cerulean/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Cerulean 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | .btn-shadow(@color) { 6 | #gradient > .vertical-three-colors(lighten(@color, 8%), @color, 60%, darken(@color, 4%)); 7 | filter: none; 8 | border-bottom: 1px solid darken(@color, 10%); 9 | } 10 | 11 | // Navbar ===================================================================== 12 | 13 | .navbar { 14 | .btn-shadow(@navbar-default-bg); 15 | filter: none; 16 | .box-shadow(0 1px 10px rgba(0, 0, 0, 0.1)); 17 | 18 | .navbar-nav > li > a, 19 | &-brand { 20 | text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); 21 | } 22 | } 23 | 24 | .navbar-inverse { 25 | #gradient > .vertical-three-colors(lighten(@navbar-inverse-bg, 8%), lighten(@navbar-inverse-bg, 4%), 60%, darken(@navbar-inverse-bg, 2%)); 26 | filter: none; 27 | border-bottom: 1px solid darken(@navbar-inverse-bg, 10%); 28 | } 29 | 30 | // Buttons ==================================================================== 31 | 32 | .btn { 33 | 34 | text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); 35 | 36 | .caret { 37 | border-top-color: #fff; 38 | } 39 | } 40 | 41 | .btn-default { 42 | 43 | .btn-shadow(@btn-default-bg); 44 | 45 | &:hover { 46 | color: @btn-default-color; 47 | } 48 | 49 | .caret { 50 | border-top-color: @text-color; 51 | } 52 | } 53 | 54 | .btn-default { 55 | .btn-shadow(@btn-default-bg); 56 | } 57 | 58 | .btn-primary { 59 | .btn-shadow(@btn-primary-bg); 60 | } 61 | 62 | .btn-success { 63 | .btn-shadow(@btn-success-bg); 64 | } 65 | 66 | .btn-info { 67 | .btn-shadow(@btn-info-bg); 68 | } 69 | 70 | .btn-warning { 71 | .btn-shadow(@btn-warning-bg); 72 | } 73 | 74 | .btn-danger { 75 | .btn-shadow(@btn-danger-bg); 76 | } 77 | 78 | // Typography ================================================================= 79 | 80 | // Tables ===================================================================== 81 | 82 | // Forms ====================================================================== 83 | 84 | // Navs ======================================================================= 85 | 86 | // Indicators ================================================================= 87 | 88 | // Progress bars ============================================================== 89 | 90 | // Containers ================================================================= 91 | 92 | .panel-primary, 93 | .panel-success, 94 | .panel-warning, 95 | .panel-danger, 96 | .panel-info { 97 | 98 | .panel-heading, 99 | .panel-title { 100 | color: #fff; 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /less/moodle/enrolment.less: -------------------------------------------------------------------------------- 1 | .userenrolment { 2 | width: 100%; 3 | border-collapse: collapse; 4 | } 5 | .userenrolment td { 6 | padding: 0; 7 | height: 41px; 8 | } 9 | .userenrolment .subfield { 10 | margin-right: 5px; 11 | } 12 | .userenrolment .col_userdetails .subfield_picture { 13 | float: left; 14 | } 15 | .userenrolment .col_lastseen { 16 | width: 150px; 17 | } 18 | .userenrolment .col_role { 19 | width: 262px; 20 | } 21 | .userenrolment .col_role .roles { 22 | margin-right: 30px; 23 | } 24 | .userenrolment .col_role .role { 25 | float: left; 26 | padding: 3px; 27 | margin: 3px; 28 | } 29 | .userenrolment .col_role .role a { 30 | margin-left: 3px; 31 | cursor: pointer; 32 | } 33 | .userenrolment .col_role .addrole { 34 | float: right; 35 | width: 18px; 36 | height: 18px; 37 | margin: 8px 15px 8px 0px; 38 | text-align: center; 39 | background-color: @gray-dark; 40 | border: 1px solid @gray-dark; 41 | } 42 | .userenrolment .col_role .addrole img { 43 | vertical-align: baseline; 44 | } 45 | .userenrolment .hasAllRoles .col_role .addrole { 46 | display: none; 47 | } 48 | .userenrolment .col_group .groups { 49 | margin-right: 30px; 50 | } 51 | .userenrolment .col_group .group { 52 | float: left; 53 | padding: 3px; 54 | white-space: nowrap; 55 | } 56 | .userenrolment .col_group .group a { 57 | margin-left: 3px; 58 | cursor: pointer; 59 | } 60 | .userenrolment .col_group .addgroup { 61 | width: 18px; 62 | height: 18px; 63 | margin: 8px 15px 8px 0px; 64 | text-align: center; 65 | background-color: @gray-dark; 66 | border: 1px solid @gray-dark; 67 | float: right; 68 | text-align: center; 69 | } 70 | .userenrolment .col_group .addgroup a img { 71 | vertical-align: baseline; 72 | } 73 | .userenrolment .col_enrol .enrolment { 74 | float: left; 75 | padding: 3px; 76 | margin: 3px; 77 | } 78 | .userenrolment .col_enrol .enrolment a { 79 | float: right; 80 | margin-left: 3px; 81 | } 82 | #page-enrol-users .enrol_user_buttons { 83 | float: right; 84 | } 85 | #page-enrol-users .enrol_user_buttons .enrolusersbutton { 86 | margin-left: 1em; 87 | display: inline; 88 | } 89 | #page-enrol-users .enrol_user_buttons .enrolusersbutton div, 90 | #page-enrol-users .enrol_user_buttons .enrolusersbutton form { 91 | display: inline; 92 | } 93 | #page-enrol-users .enrol_user_buttons .enrolusersbutton input { 94 | padding-left: 6px; 95 | padding-right: 6px; 96 | } 97 | #page-enrol-users .user-enroller-panel .uep-search-results .user .details { 98 | width: 237px; 99 | } 100 | -------------------------------------------------------------------------------- /javascript/reader.js: -------------------------------------------------------------------------------- 1 | /*! Reader.js 2 | * copyright 2014 Bas Brands, www.basbrands.nl 3 | * authors Bas Brands, David Scotson 4 | * license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 5 | * */ 6 | YUI.add('moodle-theme_modern-reader', function(Y) { 7 | 8 | var reader = 'reader panel'; 9 | 10 | var reader = function() { 11 | reader.superclass.constructor.apply(this, arguments); 12 | }; 13 | 14 | // Make the colour switcher a fully fledged YUI module 15 | Y.extend(reader, Y.Base, { 16 | 17 | initializer : function(config) { 18 | 19 | var onClick = function(e) { 20 | var target = e.currentTarget.getAttribute('dataid'); 21 | targetnode = Y.one(target); 22 | 23 | var openBtn = e.currentTarget, panel, bb; 24 | 25 | function showPanel() { 26 | panel.show(); 27 | } 28 | 29 | function hidePanel() { 30 | panel.hide(); 31 | } 32 | 33 | obj = Y.Node.create('
'); 34 | contentcontainer = Y.Node.create('
'); 35 | 36 | Y.one('body').insert(obj,'#page'); 37 | obj.prepend(contentcontainer,obj); 38 | 39 | var pagewidth = Y.one('body').get('docWidth'); 40 | if ( pagewidth < 480 ) { 41 | var marginleft = 0; 42 | var width = pagewidth; 43 | } else { 44 | var marginleft = 15; 45 | var width = pagewidth - 30; 46 | } 47 | 48 | panel = new Y.Panel({ 49 | srcNode: obj, 50 | width : width, 51 | zIndex : 6, 52 | modal : true, 53 | contstrain: 'body', 54 | x: marginleft, 55 | y: 10, 56 | visible: false, 57 | render : true, 58 | }); 59 | 60 | bb = panel.get('boundingBox'); 61 | 62 | var readercontent = targetnode.getHTML() 63 | contentcontainer.setHTML(readercontent); 64 | 65 | showPanel(); 66 | panel.after('visibleChange', function (e) { 67 | if (!e.newVal) { // panel is hidden 68 | Y.later(0, this, this.destroy); 69 | } 70 | }); 71 | }; 72 | 73 | Y.one('body').delegate('click', onClick, '.moodlereader'); 74 | }, 75 | 76 | }, { 77 | NAME : 'bootstrap yui modal', 78 | ATTRS : { 79 | } 80 | }); 81 | // Our leaf theme namespace 82 | M.theme_modern = M.theme_modern || {}; 83 | // Initialisation function for the colour switcher 84 | M.theme_modern.initreader = function(cfg) { 85 | return new reader(cfg); 86 | } 87 | 88 | }, '@VERSION@', {requires:['panel','node','node-load','attribute', 'event']}); 89 | -------------------------------------------------------------------------------- /layout/maintenance.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * The Modern theme is built upon Bootstrapbase 3 (non-core). 19 | * 20 | * @package theme 21 | * @subpackage theme_modern 22 | * @author Julian (@moodleman) Ridden 23 | * @author Based on code originally written by G J Bernard, Mary Evans, Bas Brands, Stuart Lamour and David Scotson. 24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 | */ 26 | 27 | $regions = theme_modern_bootstrap3_grid(false, false); 28 | 29 | echo $OUTPUT->doctype() ?> 30 | htmlattributes(); ?>> 31 | 32 | <?php echo $OUTPUT->page_title(); ?> 33 | 34 | standard_head_html() ?> 35 | 36 | 37 | 38 | body_attributes(); ?>> 39 | 40 | standard_top_of_body_html() ?> 41 | 42 |
43 | 44 | 47 | 48 |
49 |
50 | main_content(); ?> 51 |
52 |
53 | 54 |
55 | standard_footer_html(); 57 | ?> 58 |
59 | 60 | standard_end_of_body_html() ?> 61 | 62 |
63 | 64 | 65 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /style/forms-rtl.css: -------------------------------------------------------------------------------- 1 | /* I think this could be avoided (or at least tidied up) if 2 | we used HTML5 input types like url, phone, email, number etc. 3 | */ 4 | 5 | .dir-rtl .mform .fitem .felement input[name=email], 6 | .dir-rtl .mform .fitem .felement input[name=email2], 7 | .dir-rtl .mform .fitem .felement input[name=url], 8 | .dir-rtl .mform .fitem .felement input[name=idnumber], 9 | .dir-rtl .mform .fitem .felement input[name=phone1], 10 | .dir-rtl .mform .fitem .felement input[name=phone2], 11 | .dir-rtl#page-admin-setting-enrolsettingsflatfile .informationbox { 12 | text-align: left; 13 | direction: ltr; 14 | } 15 | 16 | .dir-rtl #admin-spelllanguagelist textarea, 17 | .dir-rtl#page-admin-setting-editorsettingstinymce .form-textarea textarea { 18 | text-align: left; 19 | direction: ltr; 20 | } 21 | 22 | .dir-rtl #plugins-check .pluginupdateinfo { 23 | direction: ltr; 24 | } 25 | 26 | #plugins-check .rootdir, 27 | #plugins-check .requires-ok { 28 | text-align: left; 29 | direction: ltr; 30 | } 31 | 32 | .dir-rtl #id_s__pathtodu, 33 | .dir-rtl #id_s__aspellpath, 34 | .dir-rtl #id_s__pathtodot, 35 | .dir-rtl #id_s__supportemail, 36 | .dir-rtl #id_s__supportpage, 37 | .dir-rtl #id_s__sessioncookie, 38 | .dir-rtl #id_s__sessioncookiepath, 39 | .dir-rtl #id_s__sessioncookiedomain, 40 | .dir-rtl #id_s__proxyhost, 41 | .dir-rtl #id_s__proxyuser, 42 | .dir-rtl #id_s__proxypassword, 43 | .dir-rtl #id_s__proxybypass, 44 | .dir-rtl #id_s__jabberhost, 45 | .dir-rtl #id_s__jabberserver, 46 | .dir-rtl #id_s__jabberusername, 47 | .dir-rtl #id_s__jabberpassword, 48 | .dir-rtl #id_s__additionalhtmlhead, 49 | .dir-rtl #id_s__additionalhtmltopofbody, 50 | .dir-rtl #id_s__additionalhtmlfooter, 51 | .dir-rtl #id_s__docroot, 52 | .dir-rtl #id_s__filter_tex_latexpreamble, 53 | .dir-rtl #id_s__filter_tex_latexbackground, 54 | .dir-rtl #id_s__filter_tex_pathlatex, 55 | .dir-rtl #id_s__filter_tex_pathdvips, 56 | .dir-rtl #id_s__filter_tex_pathconvert, 57 | .dir-rtl #id_s__blockedip, 58 | .dir-rtl #id_s__pathtoclam, 59 | .dir-rtl #id_s__quarantinedir, 60 | .dir-rtl #id_s__sitepolicy, 61 | .dir-rtl #id_s__sitepolicyguest, 62 | .dir-rtl #id_s__cronremotepassword, 63 | .dir-rtl #id_s__allowedip, 64 | .dir-rtl #id_s__blockedip, 65 | .dir-rtl #id_s_enrol_meta_nosyncroleids, 66 | .dir-rtl #id_s_enrol_ldap_host_url, 67 | .dir-rtl #id_s_enrol_ldap_ldapencoding, 68 | .dir-rtl #id_s_enrol_ldap_bind_dn, 69 | .dir-rtl #id_s_enrol_ldap_bind_pw, 70 | .dir-rtl #admin-emoticons .form-text, 71 | .dir-rtl #admin-role_mapping input[type=text], 72 | .dir-rtl #id_s_enrol_paypal_paypalbusiness, 73 | .dir-rtl #id_s_enrol_flatfile_location, 74 | .dir-rtl#page-admin-setting-enrolsettingsflatfile input[type=text], 75 | .dir-rtl#page-admin-setting-enrolsettingsdatabase input[type=text], 76 | .dir-rtl#page-admin-auth-db input[type=text] { 77 | direction: ltr; 78 | } 79 | -------------------------------------------------------------------------------- /less/bootswatch/simplex/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Simplex 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | .btn-shadow(@color) { 6 | #gradient > .vertical-three-colors(lighten(@color, 3%), @color, 6%, darken(@color, 3%)); 7 | filter: none; 8 | border: 1px solid darken(@color, 10%); 9 | } 10 | 11 | // Navbar ===================================================================== 12 | 13 | // Buttons ==================================================================== 14 | 15 | .btn { 16 | font-family: @headings-font-family; 17 | } 18 | 19 | .btn-default, 20 | .btn-default:hover { 21 | .btn-shadow(@btn-default-bg); 22 | } 23 | 24 | .btn-primary, 25 | .btn-primary:hover { 26 | .btn-shadow(@btn-primary-bg); 27 | } 28 | 29 | .btn-success, 30 | .btn-success:hover { 31 | .btn-shadow(@btn-success-bg); 32 | } 33 | 34 | .btn-info, 35 | .btn-info:hover { 36 | .btn-shadow(@btn-info-bg); 37 | } 38 | 39 | .btn-warning, 40 | .btn-warning:hover { 41 | .btn-shadow(@btn-warning-bg); 42 | } 43 | 44 | .btn-danger, 45 | .btn-danger:hover { 46 | .btn-shadow(@btn-danger-bg); 47 | } 48 | 49 | // Typography ================================================================= 50 | 51 | body { 52 | font-weight: 200; 53 | } 54 | 55 | // Tables ===================================================================== 56 | 57 | th { 58 | color: @headings-color; 59 | } 60 | 61 | // Forms ====================================================================== 62 | 63 | legend { 64 | color: @headings-color; 65 | } 66 | 67 | .has-warning { 68 | .help-block, 69 | .control-label { 70 | color: @brand-danger; 71 | } 72 | 73 | .form-control, 74 | .form-control:focus { 75 | border-color: @brand-danger; 76 | } 77 | } 78 | 79 | .has-error { 80 | .help-block, 81 | .control-label { 82 | color: @brand-primary; 83 | } 84 | 85 | .form-control, 86 | .form-control:focus { 87 | border-color: @brand-primary; 88 | } 89 | } 90 | 91 | .has-success { 92 | .help-block, 93 | .control-label { 94 | color: @brand-success; 95 | } 96 | 97 | .form-control, 98 | .form-control:focus { 99 | border-color: @brand-success; 100 | } 101 | } 102 | 103 | // Navs ======================================================================= 104 | 105 | .pager { 106 | a { 107 | color: @headings-color; 108 | } 109 | 110 | a:hover, 111 | .active > a, { 112 | border-color: @brand-primary; 113 | color: #fff; 114 | } 115 | 116 | .disabled > a { 117 | border-color: @pager-border; 118 | } 119 | } 120 | 121 | // Indicators ================================================================= 122 | 123 | // Progress bars ============================================================== 124 | 125 | // Containers ================================================================= -------------------------------------------------------------------------------- /less/moodle/responsive.less: -------------------------------------------------------------------------------- 1 | /* responsive.less */ 2 | 3 | @media (max-width: 873px) { 4 | .file-picker .fp-repo-area { 5 | width: 100%; 6 | height: auto; 7 | max-height: 220px; 8 | y-scroll: auto; 9 | float: none; 10 | border: 0px; 11 | } 12 | .file-picker .fp-repo-items { 13 | width: 100%; 14 | float: none; 15 | } 16 | .file-picker .fp-login-form .fp-login-input label { 17 | text-align: left; 18 | } 19 | .file-picker .fp-content form td { 20 | display: block; 21 | width: 100%; 22 | text-align: left; 23 | } 24 | .fp-content .mdl-right { 25 | text-align: left; 26 | } 27 | .fp-repo-items .fp-navbar { 28 | border-top: 1px solid rgb(187, 187, 187); 29 | } 30 | } 31 | 32 | @media (max-width: @screen-xs) { 33 | .fp-content-center { 34 | display: block; 35 | vertical-align: top; 36 | } 37 | .course-content ul.topics li.section, 38 | .course-content ul.topics li.section .content, 39 | .course-content ul.weeks li.section .content, 40 | .course-content ul.weeks li.section, 41 | .course-content ul.section { 42 | margin-right: 0; 43 | margin-left: 0; 44 | padding: 0; 45 | } 46 | .activityinstance { 47 | display: block; 48 | } 49 | .editing .course-content .section .activity { 50 | margin-bottom: 0.2em; 51 | padding-bottom: 0.2em; 52 | border-bottom: thin solid #eee; 53 | } 54 | .course-content .section .activity .commands { 55 | text-align: right; 56 | } 57 | /** Handles display of the activity chooser on small screens **/ 58 | .jsenabled .choosercontainer #chooseform .alloptions { 59 | max-width: 100%; 60 | } 61 | .jsenabled .choosercontainer #chooseform .instruction, 62 | .jsenabled .choosercontainer #chooseform .typesummary { 63 | position:static; 64 | } 65 | .que .info { 66 | float: none; 67 | width: auto; 68 | } 69 | .que .content { 70 | margin: 0; 71 | } 72 | .path-mod-choice .horizontal .choices .option { 73 | display: block; 74 | } 75 | .path-mod-forum .forumsearch #search { 76 | width: 120px; 77 | } 78 | .path-mod-forum .forumheaderlist .picture { 79 | display: none; 80 | } 81 | .panel { 82 | .courseimage { 83 | img { 84 | margin-right: 5px; 85 | float: none; 86 | max-width: 100%; 87 | } 88 | } 89 | } 90 | } 91 | 92 | 93 | @media (max-width: @screen-sm) { 94 | // Resize, reflow file-picker on small devices 95 | #filesskin .yui3-panel, 96 | #filesskin .file-picker.fp-generallayout { 97 | width: 100%; 98 | left: 0; 99 | } 100 | 101 | } 102 | -------------------------------------------------------------------------------- /less/bootstrap3/tooltip.less: -------------------------------------------------------------------------------- 1 | // 2 | // Tooltips 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .tooltip { 8 | position: absolute; 9 | z-index: @zindex-tooltip; 10 | display: block; 11 | visibility: visible; 12 | font-size: @font-size-small; 13 | line-height: 1.4; 14 | .opacity(0); 15 | 16 | &.in { .opacity(@tooltip-opacity); } 17 | &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; } 18 | &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; } 19 | &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; } 20 | &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; } 21 | } 22 | 23 | // Wrapper for the tooltip content 24 | .tooltip-inner { 25 | max-width: @tooltip-max-width; 26 | padding: 3px 8px; 27 | color: @tooltip-color; 28 | text-align: center; 29 | text-decoration: none; 30 | background-color: @tooltip-bg; 31 | border-radius: @border-radius-base; 32 | } 33 | 34 | // Arrows 35 | .tooltip-arrow { 36 | position: absolute; 37 | width: 0; 38 | height: 0; 39 | border-color: transparent; 40 | border-style: solid; 41 | } 42 | .tooltip { 43 | &.top .tooltip-arrow { 44 | bottom: 0; 45 | left: 50%; 46 | margin-left: -@tooltip-arrow-width; 47 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0; 48 | border-top-color: @tooltip-arrow-color; 49 | } 50 | &.top-left .tooltip-arrow { 51 | bottom: 0; 52 | left: @tooltip-arrow-width; 53 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0; 54 | border-top-color: @tooltip-arrow-color; 55 | } 56 | &.top-right .tooltip-arrow { 57 | bottom: 0; 58 | right: @tooltip-arrow-width; 59 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0; 60 | border-top-color: @tooltip-arrow-color; 61 | } 62 | &.right .tooltip-arrow { 63 | top: 50%; 64 | left: 0; 65 | margin-top: -@tooltip-arrow-width; 66 | border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0; 67 | border-right-color: @tooltip-arrow-color; 68 | } 69 | &.left .tooltip-arrow { 70 | top: 50%; 71 | right: 0; 72 | margin-top: -@tooltip-arrow-width; 73 | border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width; 74 | border-left-color: @tooltip-arrow-color; 75 | } 76 | &.bottom .tooltip-arrow { 77 | top: 0; 78 | left: 50%; 79 | margin-left: -@tooltip-arrow-width; 80 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; 81 | border-bottom-color: @tooltip-arrow-color; 82 | } 83 | &.bottom-left .tooltip-arrow { 84 | top: 0; 85 | left: @tooltip-arrow-width; 86 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; 87 | border-bottom-color: @tooltip-arrow-color; 88 | } 89 | &.bottom-right .tooltip-arrow { 90 | top: 0; 91 | right: @tooltip-arrow-width; 92 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; 93 | border-bottom-color: @tooltip-arrow-color; 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /less/bootstrap3/scaffolding.less: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // -------------------------------------------------- 4 | 5 | 6 | // Reset the box-sizing 7 | // 8 | // Heads up! This reset may cause conflicts with some third-party widgets. 9 | // For recommendations on resolving such conflicts, see 10 | // http://getbootstrap.com/getting-started/#third-box-sizing 11 | * { 12 | .box-sizing(border-box); 13 | } 14 | *:before, 15 | *:after { 16 | .box-sizing(border-box); 17 | } 18 | 19 | 20 | // Body reset 21 | 22 | html { 23 | font-size: 62.5%; 24 | -webkit-tap-highlight-color: rgba(0,0,0,0); 25 | } 26 | 27 | body { 28 | font-family: @font-family-base; 29 | font-size: @font-size-base; 30 | line-height: @line-height-base; 31 | color: @text-color; 32 | background-color: @body-bg; 33 | } 34 | 35 | // Reset fonts for relevant elements 36 | input, 37 | button, 38 | select, 39 | textarea { 40 | font-family: inherit; 41 | font-size: inherit; 42 | line-height: inherit; 43 | } 44 | 45 | 46 | // Links 47 | 48 | a { 49 | color: @link-color; 50 | text-decoration: none; 51 | 52 | &:hover, 53 | &:focus { 54 | color: @link-hover-color; 55 | text-decoration: underline; 56 | } 57 | 58 | &:focus { 59 | .tab-focus(); 60 | } 61 | } 62 | 63 | 64 | // Figures 65 | // 66 | // We reset this here because previously Normalize had no `figure` margins. This 67 | // ensures we don't break anyone's use of the element. 68 | 69 | figure { 70 | margin: 0; 71 | } 72 | 73 | 74 | // Images 75 | 76 | img { 77 | vertical-align: middle; 78 | } 79 | 80 | // Responsive images (ensure images don't scale beyond their parents) 81 | .img-responsive { 82 | .img-responsive(); 83 | } 84 | 85 | // Rounded corners 86 | .img-rounded { 87 | border-radius: @border-radius-large; 88 | } 89 | 90 | // Image thumbnails 91 | // 92 | // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. 93 | .img-thumbnail { 94 | padding: @thumbnail-padding; 95 | line-height: @line-height-base; 96 | background-color: @thumbnail-bg; 97 | border: 1px solid @thumbnail-border; 98 | border-radius: @thumbnail-border-radius; 99 | .transition(all .2s ease-in-out); 100 | 101 | // Keep them at most 100% wide 102 | .img-responsive(inline-block); 103 | } 104 | 105 | // Perfect circle 106 | .img-circle { 107 | border-radius: 50%; // set radius in percents 108 | } 109 | 110 | 111 | // Horizontal rules 112 | 113 | hr { 114 | margin-top: @line-height-computed; 115 | margin-bottom: @line-height-computed; 116 | border: 0; 117 | border-top: 1px solid @hr-border; 118 | } 119 | 120 | 121 | // Only display content to screen readers 122 | // 123 | // See: http://a11yproject.com/posts/how-to-hide-content/ 124 | 125 | .sr-only { 126 | position: absolute; 127 | width: 1px; 128 | height: 1px; 129 | margin: -1px; 130 | padding: 0; 131 | overflow: hidden; 132 | clip: rect(0,0,0,0); 133 | border: 0; 134 | } 135 | -------------------------------------------------------------------------------- /style/login2.css: -------------------------------------------------------------------------------- 1 | /* @group Login */ 2 | #page-login-index { 3 | background: transparent; 4 | } 5 | 6 | #page-login-index #region-main { 7 | background: transparent; 8 | border: 0px none; 9 | } 10 | 11 | #page-login-index #page-footer{ 12 | border-top: 0px none; 13 | } 14 | 15 | html.login-page{ 16 | height: 100%; 17 | } 18 | 19 | .loginbox .loginpanel { 20 | -webkit-box-shadow: none; 21 | -moz-box-shadow: none; 22 | overflow: visible; 23 | text-align: left !important; 24 | width: 100%; 25 | float: left; 26 | -webkit-box-shadow: none; 27 | -moz-box-shadow: none; 28 | margin-bottom: 20px; 29 | background: #fff; 30 | border: 2px solid #ecedf0; 31 | -webkit-border-radius: 5px; 32 | -moz-border-radius: 5px; 33 | border-radius: 5px; 34 | -webkit-box-shadow: none; 35 | -moz-box-shadow: none; 36 | font-family: "Roboto"; 37 | font-size: .9em; 38 | margin-right: 10px; 39 | } 40 | 41 | .loginbox .signuppanel { 42 | -webkit-box-shadow: none; 43 | -moz-box-shadow: none; 44 | overflow: visible; 45 | text-align: left !important; 46 | width: 100%; 47 | -webkit-box-shadow: none; 48 | -moz-box-shadow: none; 49 | margin-bottom: 20px; 50 | background: #fff; 51 | border: 2px solid #ecedf0; 52 | -webkit-border-radius: 5px; 53 | -moz-border-radius: 5px; 54 | border-radius: 5px; 55 | -webkit-box-shadow: none; 56 | -moz-box-shadow: none; 57 | font-family: "Roboto"; 58 | margin-right: 10px; 59 | } 60 | 61 | .loginbox.twocolumns .loginpanel, 62 | .loginbox.twocolumns .signuppanel { 63 | width: 45%; 64 | margin: 5px; 65 | padding: 20px; 66 | } 67 | 68 | .loginbox .loginform .form-input { 69 | float: left; 70 | width: 100%; 71 | } 72 | 73 | .loginbox .loginform .form-input input { 74 | width: 93%; 75 | } 76 | 77 | .loginbox .loginform input[type="submit"] { 78 | width: 98%; 79 | } 80 | 81 | .loginbox .loginform .form-label { 82 | float: left; 83 | width: 100%; 84 | text-align: left; 85 | white-space: nowrap; 86 | direction: rtl; 87 | } 88 | 89 | .loginbox .loginpanel .desc { 90 | padding: 10; 91 | margin: 0; 92 | display: none; 93 | margin-bottom: 5px; 94 | } 95 | 96 | .loginbox .rememberpass, 97 | .loginbox .forgetpass{ 98 | text-align: left; 99 | } 100 | 101 | .loginbox .guestsub, 102 | .loginbox .forgotsub, 103 | .loginbox .potentialidps { 104 | margin: 5px; 105 | text-align: left; 106 | } 107 | 108 | .loginbox h2, .loginbox .subcontent { 109 | padding: 0px; 110 | margin: 0; 111 | text-align: left; 112 | } 113 | 114 | .loginbox .subcontent ol { 115 | text-indent: 10px; 116 | margin-left: 30px; 117 | font-size: 1em; 118 | } 119 | 120 | .loginbox h2{ 121 | text-align: left; 122 | } 123 | 124 | .loginbox h2:before { 125 | font-family: FontAwesome; 126 | font-size: 1em; 127 | margin-right: .3em; 128 | color: #999; 129 | } 130 | 131 | .loginbox .loginpanel h2:before { 132 | content: "\f084"; 133 | } 134 | 135 | .loginbox .signuppanel h2:before { 136 | content: "\f02d"; 137 | } 138 | 139 | /* @end */ -------------------------------------------------------------------------------- /layout/includes/quicklinks.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * The Modern theme is built upon Bootstrapbase 3 (non-core). 19 | * 20 | * @package theme 21 | * @subpackage theme_modern 22 | * @author Julian (@moodleman) Ridden 23 | * @author Based on code originally written by G J Bernard, Mary Evans, Bas Brands, Stuart Lamour and David Scotson. 24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 | */ 26 | 27 | $quicklinksnum = $PAGE->theme->settings->quicklinksnumber; 28 | 29 | // make use of $quicklinksnum for better behaviour 30 | // set lg size to be 12/$quicklinksnum if $quicklinksnum is less than 4 31 | // so with 1 link you get lg-12, 2 links you get lg-6, 3 links you get lg-4 and 4+ links you get lg-3 32 | // set md size to be 12/$quicklinksnum if $quicklinsnum is less than 3 33 | $lg = ( $quicklinksnum <4 ? 12/$quicklinksnum : 3 ); 34 | $md = ( $quicklinksnum <3 ? 12/$quicklinksnum : 4 ); 35 | 36 | ?> 37 | 38 |
39 |

40 | 41 | theme->settings->quicklinkstitle ?> 42 |

43 |
44 | 45 | 75 | 76 | 77 |
78 | -------------------------------------------------------------------------------- /jquery/fitvids-1.0.3.js: -------------------------------------------------------------------------------- 1 | /*global jQuery */ 2 | /*jshint multistr:true browser:true */ 3 | /*! 4 | * FitVids 1.0.3 5 | * 6 | * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com 7 | * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ 8 | * Released under the WTFPL license - http://sam.zoy.org/wtfpl/ 9 | * 10 | * Date: Thu Sept 01 18:00:00 2011 -0500 11 | */ 12 | 13 | (function( $ ){ 14 | 15 | "use strict"; 16 | 17 | $.fn.fitVids = function( options ) { 18 | var settings = { 19 | customSelector: null 20 | }; 21 | 22 | if(!document.getElementById('fit-vids-style')) { 23 | 24 | var div = document.createElement('div'), 25 | ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0], 26 | cssStyles = '­'; 27 | 28 | div.className = 'fit-vids-style'; 29 | div.id = 'fit-vids-style'; 30 | div.style.display = 'none'; 31 | div.innerHTML = cssStyles; 32 | 33 | ref.parentNode.insertBefore(div,ref); 34 | 35 | } 36 | 37 | if ( options ) { 38 | $.extend( settings, options ); 39 | } 40 | 41 | return this.each(function(){ 42 | var selectors = [ 43 | "iframe[src*='player.vimeo.com']", 44 | "iframe[src*='youtube.com']", 45 | "iframe[src*='youtube-nocookie.com']", 46 | "iframe[src*='kickstarter.com'][src*='video.html']", 47 | "object", 48 | "embed" 49 | ]; 50 | 51 | if (settings.customSelector) { 52 | selectors.push(settings.customSelector); 53 | } 54 | 55 | var $allVideos = $(this).find(selectors.join(',')); 56 | $allVideos = $allVideos.not("object object"); // SwfObj conflict patch 57 | 58 | $allVideos.each(function(){ 59 | var $this = $(this); 60 | if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } 61 | var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), 62 | width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), 63 | aspectRatio = height / width; 64 | if(!$this.attr('id')){ 65 | var videoID = 'fitvid' + Math.floor(Math.random()*999999); 66 | $this.attr('id', videoID); 67 | } 68 | $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%"); 69 | $this.removeAttr('height').removeAttr('width'); 70 | }); 71 | }); 72 | }; 73 | // Works with either jQuery or Zepto 74 | })( window.jQuery || window.Zepto ); -------------------------------------------------------------------------------- /less/bootswatch/cyborg/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Cyborg 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url("//fonts.googleapis.com/css?family=Droid+Sans:400,700"); 6 | 7 | // Navbar ===================================================================== 8 | 9 | .navbar { 10 | 11 | border-bottom: 1px solid @gray-dark; 12 | } 13 | 14 | // Buttons ==================================================================== 15 | 16 | // Typography ================================================================= 17 | 18 | .text-primary, 19 | .text-primary:hover { 20 | color: @brand-primary; 21 | } 22 | 23 | .text-success, 24 | .text-success:hover { 25 | color: @brand-success; 26 | } 27 | 28 | .text-danger, 29 | .text-danger:hover { 30 | color: @brand-danger; 31 | } 32 | 33 | .text-warning, 34 | .text-warning:hover { 35 | color: @brand-warning; 36 | } 37 | 38 | .text-info, 39 | .text-info:hover { 40 | color: @brand-info; 41 | } 42 | 43 | // Tables ===================================================================== 44 | 45 | table, 46 | .table { 47 | color: #fff; 48 | 49 | a { 50 | color: #fff; 51 | text-decoration: underline; 52 | } 53 | } 54 | 55 | .table-responsive > .table { 56 | background-color: @table-bg; 57 | } 58 | 59 | // Forms ====================================================================== 60 | 61 | .has-warning { 62 | .help-block, 63 | .control-label { 64 | color: @brand-warning; 65 | } 66 | 67 | .form-control, 68 | .form-control:focus { 69 | border-color: @brand-warning; 70 | } 71 | } 72 | 73 | .has-error { 74 | .help-block, 75 | .control-label { 76 | color: @brand-danger; 77 | } 78 | 79 | .form-control, 80 | .form-control:focus { 81 | border-color: @brand-danger; 82 | } 83 | } 84 | 85 | .has-success { 86 | .help-block, 87 | .control-label { 88 | color: @brand-success; 89 | } 90 | 91 | .form-control, 92 | .form-control:focus { 93 | border-color: @brand-success; 94 | } 95 | } 96 | 97 | legend { 98 | color: #fff; 99 | } 100 | 101 | .input-group-addon { 102 | background-color: @btn-default-bg; 103 | } 104 | 105 | // Navs ======================================================================= 106 | 107 | .nav { 108 | 109 | .caret, 110 | a:hover .caret { 111 | border-top-color: #fff; 112 | border-bottom-color: #fff; 113 | } 114 | } 115 | 116 | .nav-tabs, 117 | .nav-pills, 118 | .breadcrumb, 119 | .pager { 120 | 121 | a { 122 | color: #fff; 123 | } 124 | } 125 | 126 | // Indicators ================================================================= 127 | 128 | .alert { 129 | 130 | .alert-link, 131 | a { 132 | color: @alert-warning-text; 133 | text-decoration: underline; 134 | } 135 | } 136 | 137 | // Progress bars ============================================================== 138 | 139 | // Containers ================================================================= 140 | 141 | .jumbotron { 142 | 143 | h1, h2, h3, h4, h5, h6 { 144 | color: #fff; 145 | } 146 | } -------------------------------------------------------------------------------- /less/bootstrap3/list-group.less: -------------------------------------------------------------------------------- 1 | // 2 | // List groups 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | // 8 | // Easily usable on
    ,
      , or
      . 9 | 10 | .list-group { 11 | // No need to set list-style: none; since .list-group-item is block level 12 | margin-bottom: 20px; 13 | padding-left: 0; // reset padding because ul and ol 14 | } 15 | 16 | 17 | // Individual list items 18 | // 19 | // Use on `li`s or `div`s within the `.list-group` parent. 20 | 21 | .list-group-item { 22 | position: relative; 23 | display: block; 24 | padding: 10px 15px; 25 | // Place the border on the list items and negative margin up for better styling 26 | margin-bottom: -1px; 27 | background-color: @list-group-bg; 28 | border: 1px solid @list-group-border; 29 | 30 | // Round the first and last items 31 | &:first-child { 32 | .border-top-radius(@list-group-border-radius); 33 | } 34 | &:last-child { 35 | margin-bottom: 0; 36 | .border-bottom-radius(@list-group-border-radius); 37 | } 38 | 39 | // Align badges within list items 40 | > .badge { 41 | float: right; 42 | } 43 | > .badge + .badge { 44 | margin-right: 5px; 45 | } 46 | } 47 | 48 | 49 | // Linked list items 50 | // 51 | // Use anchor elements instead of `li`s or `div`s to create linked list items. 52 | // Includes an extra `.active` modifier class for showing selected items. 53 | 54 | a.list-group-item { 55 | color: @list-group-link-color; 56 | 57 | .list-group-item-heading { 58 | color: @list-group-link-heading-color; 59 | } 60 | 61 | // Hover state 62 | &:hover, 63 | &:focus { 64 | text-decoration: none; 65 | background-color: @list-group-hover-bg; 66 | } 67 | 68 | // Active class on item itself, not parent 69 | &.active, 70 | &.active:hover, 71 | &.active:focus { 72 | z-index: 2; // Place active items above their siblings for proper border styling 73 | color: @list-group-active-color; 74 | background-color: @list-group-active-bg; 75 | border-color: @list-group-active-border; 76 | 77 | // Force color to inherit for custom content 78 | .list-group-item-heading { 79 | color: inherit; 80 | } 81 | .list-group-item-text { 82 | color: @list-group-active-text-color; 83 | } 84 | } 85 | } 86 | 87 | 88 | // Contextual variants 89 | // 90 | // Add modifier classes to change text and background color on individual items. 91 | // Organizationally, this must come after the `:hover` states. 92 | 93 | .list-group-item-variant(success; @state-success-bg; @state-success-text); 94 | .list-group-item-variant(info; @state-info-bg; @state-info-text); 95 | .list-group-item-variant(warning; @state-warning-bg; @state-warning-text); 96 | .list-group-item-variant(danger; @state-danger-bg; @state-danger-text); 97 | 98 | 99 | // Custom content options 100 | // 101 | // Extra classes for creating well-formatted content within `.list-group-item`s. 102 | 103 | .list-group-item-heading { 104 | margin-top: 0; 105 | margin-bottom: 5px; 106 | } 107 | .list-group-item-text { 108 | margin-bottom: 0; 109 | line-height: 1.3; 110 | } 111 | -------------------------------------------------------------------------------- /less/bootswatch/cosmo/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Cosmo 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url("//fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700"); 6 | 7 | // Navbar ===================================================================== 8 | 9 | // Buttons ==================================================================== 10 | 11 | .btn { 12 | border: none; 13 | } 14 | 15 | // Typography ================================================================= 16 | 17 | .text-primary, 18 | .text-primary:hover { 19 | color: @brand-primary; 20 | } 21 | 22 | .text-success, 23 | .text-success:hover { 24 | color: @brand-success; 25 | } 26 | 27 | .text-danger, 28 | .text-danger:hover { 29 | color: @brand-danger; 30 | } 31 | 32 | .text-warning, 33 | .text-warning:hover { 34 | color: @brand-warning; 35 | } 36 | 37 | .text-info, 38 | .text-info:hover { 39 | color: @brand-info; 40 | } 41 | 42 | // Tables ===================================================================== 43 | 44 | table, 45 | .table { 46 | 47 | a { 48 | text-decoration: underline; 49 | } 50 | 51 | .success, 52 | .warning, 53 | .danger, 54 | .info { 55 | color: #fff; 56 | 57 | a { 58 | color: #fff; 59 | } 60 | } 61 | } 62 | 63 | // Forms ====================================================================== 64 | 65 | 66 | .has-warning { 67 | .help-block, 68 | .control-label { 69 | color: @brand-warning; 70 | } 71 | 72 | .form-control, 73 | .form-control:focus { 74 | border: 1px solid @brand-warning; 75 | } 76 | } 77 | 78 | .has-error { 79 | .help-block, 80 | .control-label { 81 | color: @brand-danger; 82 | } 83 | 84 | .form-control, 85 | .form-control:focus { 86 | border: 1px solid @brand-danger; 87 | } 88 | } 89 | 90 | .has-success { 91 | .help-block, 92 | .control-label { 93 | color: @brand-success; 94 | } 95 | 96 | .form-control, 97 | .form-control:focus { 98 | border: 1px solid @brand-success; 99 | } 100 | } 101 | 102 | // Navs ======================================================================= 103 | 104 | .nav-pills { 105 | 106 | & > li > a { 107 | border-radius: 0; 108 | } 109 | } 110 | 111 | .dropdown-menu { 112 | 113 | & > li > a:hover, 114 | & > li > a:focus { 115 | background-image: none; 116 | } 117 | } 118 | 119 | // Indicators ================================================================= 120 | 121 | .alert { 122 | border: none; 123 | 124 | .alert-link { 125 | text-decoration: underline; 126 | color: #fff; 127 | } 128 | } 129 | 130 | .label { 131 | border-radius: 0; 132 | } 133 | 134 | .close { 135 | opacity: 1; 136 | } 137 | 138 | // Progress bars ============================================================== 139 | 140 | .progress { 141 | height: 8px; 142 | .box-shadow(none); 143 | } 144 | 145 | // Containers ================================================================= 146 | 147 | .panel { 148 | &-heading, 149 | &-footer { 150 | border-top-right-radius: 0; 151 | border-top-left-radius: 0; 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /less/bootswatch/amelia/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Amelia 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url("//fonts.googleapis.com/css?family=Lobster|Cabin:400,700"); 6 | 7 | // Navbar ===================================================================== 8 | 9 | .navbar { 10 | 11 | &-brand { 12 | font-family: 'Lobster', cursive; 13 | } 14 | } 15 | 16 | // Buttons ==================================================================== 17 | 18 | .btn { 19 | 20 | .caret { 21 | border-top-color: #fff; 22 | } 23 | } 24 | 25 | .btn-default { 26 | 27 | &:hover { 28 | color: @btn-default-color; 29 | } 30 | 31 | .caret { 32 | border-top-color: @btn-default-color; 33 | } 34 | } 35 | 36 | // Typography ================================================================= 37 | 38 | .text-primary, 39 | .text-primary:hover { 40 | color: lighten(@brand-primary, 40%); 41 | } 42 | 43 | .text-success, 44 | .text-success:hover { 45 | color: lighten(@brand-success, 20%); 46 | } 47 | 48 | .text-danger, 49 | .text-danger:hover { 50 | color: lighten(@brand-danger, 20%); 51 | } 52 | 53 | .text-warning, 54 | .text-warning:hover { 55 | color: lighten(@brand-warning, 20%); 56 | } 57 | 58 | .text-info, 59 | .text-info:hover { 60 | color: lighten(@brand-info, 40%); 61 | } 62 | 63 | // Tables ===================================================================== 64 | 65 | .table-responsive > .table { 66 | background-color: @table-bg; 67 | } 68 | 69 | table, 70 | .table { 71 | 72 | a { 73 | color: #fff; 74 | text-decoration: underline; 75 | } 76 | } 77 | 78 | // Forms ====================================================================== 79 | 80 | .has-warning { 81 | .help-block, 82 | .control-label { 83 | color: lighten(@brand-warning, 20%); 84 | } 85 | 86 | .form-control, 87 | .form-control:focus { 88 | border-color: lighten(@brand-warning, 20%); 89 | } 90 | } 91 | 92 | .has-error { 93 | .help-block, 94 | .control-label { 95 | color: lighten(@brand-primary, 40%); 96 | } 97 | 98 | .form-control, 99 | .form-control:focus { 100 | border-color: lighten(@brand-primary, 40%); 101 | } 102 | } 103 | 104 | .has-success { 105 | .help-block, 106 | .control-label { 107 | color: lighten(@brand-success, 20%); 108 | } 109 | 110 | .form-control, 111 | .form-control:focus { 112 | border-color: lighten(@brand-success, 20%); 113 | } 114 | } 115 | 116 | legend { 117 | font-family: 'Lobster', cursive; 118 | color: #fff; 119 | } 120 | 121 | .input-group-addon { 122 | color: @btn-default-color; 123 | } 124 | 125 | // Navs ======================================================================= 126 | 127 | .pagination { 128 | 129 | a:hover { 130 | color: #fff; 131 | } 132 | } 133 | 134 | .pager { 135 | 136 | a:hover { 137 | color: #fff; 138 | } 139 | } 140 | 141 | // Indicators ================================================================= 142 | 143 | // Progress bars ============================================================== 144 | 145 | // Containers ================================================================= 146 | 147 | .popover { 148 | color: @gray-dark; 149 | } 150 | -------------------------------------------------------------------------------- /less/bootswatch/spacelab/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Spacelab 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url("//fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700"); 6 | 7 | .btn-shadow(@color) { 8 | #gradient > .vertical-three-colors(lighten(@color, 15%), @color, 50%, darken(@color, 4%)); 9 | filter: none; 10 | border: 1px solid darken(@color, 10%); 11 | } 12 | 13 | // Navbar ===================================================================== 14 | 15 | .navbar { 16 | 17 | .btn-shadow(@navbar-default-bg); 18 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); 19 | 20 | &-inverse { 21 | .btn-shadow(@navbar-inverse-bg); 22 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); 23 | } 24 | 25 | &-nav > li > a, 26 | &-nav > li > a:hover { 27 | padding-top: @navbar-padding-vertical + 2px; 28 | padding-bottom: @navbar-padding-vertical - 2px; 29 | .transition(color ease-in-out .2s); 30 | } 31 | 32 | &-brand, 33 | &-brand:hover { 34 | .transition(color ease-in-out .2s); 35 | } 36 | 37 | .caret, 38 | .caret:hover { 39 | .transition(border-color ease-in-out .2s); 40 | } 41 | 42 | .dropdown-menu { 43 | text-shadow: none; 44 | } 45 | } 46 | 47 | // Buttons ==================================================================== 48 | 49 | .btn { 50 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); 51 | 52 | &-default { 53 | .btn-shadow(@btn-default-bg); 54 | 55 | &:hover { 56 | .btn-shadow(darken(@btn-default-bg, 4%)); 57 | } 58 | } 59 | 60 | &-primary { 61 | .btn-shadow(@btn-primary-bg); 62 | 63 | &:hover { 64 | .btn-shadow(darken(@btn-primary-bg, 4%)); 65 | } 66 | } 67 | 68 | &-success { 69 | .btn-shadow(@btn-success-bg); 70 | 71 | &:hover { 72 | .btn-shadow(darken(@btn-success-bg, 4%)); 73 | } 74 | } 75 | 76 | &-info { 77 | .btn-shadow(@btn-info-bg); 78 | 79 | &:hover { 80 | .btn-shadow(darken(@btn-info-bg, 4%)); 81 | } 82 | } 83 | 84 | &-warning { 85 | .btn-shadow(@btn-warning-bg); 86 | 87 | &:hover { 88 | .btn-shadow(darken(@btn-warning-bg, 4%)); 89 | } 90 | } 91 | 92 | &-danger { 93 | .btn-shadow(@btn-danger-bg); 94 | 95 | &:hover { 96 | .btn-shadow(darken(@btn-danger-bg, 4%)); 97 | } 98 | } 99 | 100 | &:active, 101 | &.active { 102 | background-image: none; 103 | .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 104 | } 105 | } 106 | 107 | 108 | 109 | // Typography ================================================================= 110 | 111 | // Tables ===================================================================== 112 | 113 | // Forms ====================================================================== 114 | 115 | // Navs ======================================================================= 116 | 117 | // Indicators ================================================================= 118 | 119 | // Progress bars ============================================================== 120 | 121 | // Containers ================================================================= 122 | 123 | .panel { 124 | 125 | &-primary { 126 | .panel-title { 127 | color: #fff; 128 | } 129 | } 130 | } -------------------------------------------------------------------------------- /less/moodle/user.less: -------------------------------------------------------------------------------- 1 | /* user.less */ 2 | 3 | .user-box { 4 | margin: 8px; 5 | width: 115px; 6 | height: 160px; 7 | text-align: center; 8 | float: left; 9 | clear: none; 10 | } 11 | .userlist .action-icon img { 12 | vertical-align: middle; 13 | } 14 | .userlist #showall { 15 | margin: 10px 0; 16 | } 17 | .userlist .buttons { 18 | text-align: center; 19 | } 20 | .userlist .buttons label { 21 | padding: 0 3px; 22 | } 23 | .userlist table#participants { 24 | text-align: center; 25 | } 26 | .userlist table#participants td, 27 | .userlist table#participants th { 28 | vertical-align: middle; 29 | text-align: left; 30 | padding: 4px; 31 | } 32 | .userlist table.controls { 33 | width: 100%; 34 | } 35 | .userlist table.controls tr { 36 | vertical-align: top; 37 | } 38 | .userlist table.controls td.right, 39 | .userlist table.controls td.left { 40 | padding: 4px; 41 | } 42 | .userlist table.controls .right { 43 | text-align: right; 44 | } 45 | .userinfobox { 46 | width: 100%; 47 | border: 1px solid; 48 | border-collapse: separate; 49 | padding: 10px; 50 | } 51 | .userinfobox .left, 52 | .userinfobox .side { 53 | width: 100px; 54 | vertical-align: top; 55 | } 56 | .userinfobox .userpicture { 57 | width: 100px; 58 | height: 100px; 59 | } 60 | .userinfobox .content { 61 | vertical-align: top; 62 | } 63 | .userinfobox .links { 64 | width: 100px; 65 | padding: 5px; 66 | vertical-align: bottom; 67 | } 68 | .userinfobox .links a { 69 | display: block; 70 | } 71 | .userinfobox .list td { 72 | padding: 3px; 73 | } 74 | .userinfobox .username { 75 | padding-bottom: 20px; 76 | font-weight: bold; 77 | } 78 | .userinfobox td.label { 79 | text-align: right; 80 | white-space: nowrap; 81 | vertical-align: top; 82 | font-weight: bold; 83 | } 84 | .groupinfobox { 85 | .well 86 | } 87 | .groupinfobox .left { 88 | padding: 10px; 89 | width: 100px; 90 | vertical-align: top; 91 | } 92 | .course-participation #showall { 93 | text-align: center; 94 | margin: 10px 0; 95 | } 96 | #user-policy .noticebox { 97 | text-align: center; 98 | margin-left: auto; 99 | margin-right: auto; 100 | margin-bottom: 10px; 101 | width: 80%; 102 | height: 250px; 103 | } 104 | #user-policy #policyframe { 105 | width: 100%; 106 | height: 100%; 107 | } 108 | .iplookup #map { 109 | margin: auto; 110 | } 111 | .userselector select { 112 | width: 100%; 113 | } 114 | .userselector div { 115 | margin-top: 0.2em; 116 | } 117 | .userselector div label { 118 | margin-right: 0.3em; 119 | } 120 | /* Next style does not work in all browsers but looks nicer when it does */ 121 | .userselector .userselector-infobelow { 122 | font-size: 0.8em; 123 | } 124 | #userselector_options { 125 | padding: 0.3em 0; 126 | } 127 | #userselector_options .collapsibleregioncaption { 128 | font-weight: bold; 129 | } 130 | #userselector_options p { 131 | margin: 0.2em 0; 132 | text-align: left; 133 | } 134 | /** user full profile */ 135 | #page-user-profile .messagebox { 136 | text-align: center; 137 | margin-left: auto; 138 | margin-right: auto; 139 | } 140 | /** user course profile */ 141 | #page-course-view-weeks .messagebox { 142 | text-align: center; 143 | margin-left: auto; 144 | margin-right: auto; 145 | } 146 | -------------------------------------------------------------------------------- /less/moodle/badges.less: -------------------------------------------------------------------------------- 1 | table.collection { 2 | .table; 3 | .table-bordered; 4 | .table-striped; 5 | } 6 | table.collection .name { 7 | text-align: left; 8 | vertical-align: middle; 9 | } 10 | table.collection .awards { 11 | width: 10%; 12 | text-align: center; 13 | vertical-align: middle; 14 | } 15 | table.collection .criteria { 16 | width: 40%; 17 | text-align: left; 18 | vertical-align: top; 19 | } 20 | table.collection .badgeimage, 21 | table.collection .status { 22 | width: 15%; 23 | text-align: center; 24 | vertical-align: middle; 25 | } 26 | table.collection .description { 27 | width: 25%; 28 | text-align: left; 29 | } 30 | table.collection .actions { 31 | width: 11em; 32 | text-align: center; 33 | vertical-align: middle; 34 | } 35 | 36 | a.criteria-action { 37 | padding: 0px 3px; 38 | float: right; 39 | } 40 | table.issuedbadgebox { 41 | width: 750px; 42 | background-color: #FFFFFF; 43 | } 44 | table.badgeissuedimage { 45 | width: 150px; 46 | text-align: center; 47 | } 48 | table.badgeissuedinfo { 49 | width: 600px; 50 | } 51 | table.badgeissuedinfo .bvalue { 52 | text-align: left; 53 | vertical-align: middle; 54 | } 55 | table.badgeissuedinfo .bfield { 56 | width: 125px; 57 | text-align: left; 58 | font-style: italic; 59 | } 60 | 61 | ul.badges { 62 | margin: 0; 63 | list-style: none; 64 | } 65 | .badges li { 66 | position: relative; 67 | display: inline-block; 68 | padding-bottom: 2em; 69 | text-align: center; 70 | vertical-align: top; 71 | width: 150px; 72 | } 73 | .badges li .badge-name { 74 | display: block; 75 | padding: 5px; 76 | } 77 | .badges li > img { 78 | position: absolute; 79 | } 80 | .badges li .badge-image { 81 | width: 90px; 82 | height: 90px; 83 | left: 10px; 84 | top: 0px; 85 | z-index: 1; 86 | } 87 | .badges li .badge-actions { 88 | position: relative; 89 | } 90 | div.badge { 91 | position: relative; 92 | display: block; 93 | } 94 | div.badge .expireimage { 95 | width: 100px; 96 | height: 100px; 97 | left: 20px; 98 | top: 0px; 99 | } 100 | .expireimage { 101 | .opacity(.85); 102 | width: 90px; height: 90px; 103 | left: 30px; 104 | top: 0px; 105 | position: absolute; 106 | z-index:10; 107 | } 108 | .badge-profile { 109 | vertical-align: top; 110 | } 111 | .connected { 112 | color: @alert-success-text; 113 | } 114 | .notconnected { 115 | color: @alert-danger-text; 116 | } 117 | .connecting { 118 | color: @alert-warning-text; 119 | } 120 | #page-badges-award .recipienttable tr td { 121 | vertical-align: top; 122 | } 123 | #page-badges-award .recipienttable tr td.actions .actionbutton { 124 | margin: 0.3em 0; 125 | padding: 0.5em 0; 126 | width: 100%; 127 | } 128 | #page-badges-award .recipienttable tr td.existing, 129 | #page-badges-award .recipienttable tr td.potential { 130 | width: 42%; 131 | } 132 | 133 | .statustable { 134 | margin-bottom: 0px; 135 | } 136 | .statusbox.active { 137 | background-color: @alert-success-bg; 138 | } 139 | .statusbox.inactive { 140 | background-color: @alert-warning-bg; 141 | } 142 | .activatebadge { 143 | margin: 0px; 144 | text-align: left; 145 | vertical-align: middle; 146 | } 147 | img#persona_signin { 148 | cursor: pointer; 149 | } 150 | .addcourse { 151 | float: right; 152 | } 153 | -------------------------------------------------------------------------------- /less/bootswatch/readable/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Readable 3.1.1 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url("//fonts.googleapis.com/css?family=Raleway:400,700"); 6 | 7 | // Navbar ===================================================================== 8 | 9 | .navbar { 10 | font-family: @headings-font-family; 11 | 12 | &-nav > li > a { 13 | padding: @padding-base-vertical @padding-base-horizontal; 14 | margin: 12px 6px; 15 | border: 1px solid transparent; 16 | border-radius: @border-radius-base; 17 | 18 | &:hover { 19 | border: 1px solid #ddd; 20 | } 21 | } 22 | 23 | &-nav > .active > a, 24 | &-nav > .active > a:hover { 25 | border: 1px solid #ddd; 26 | } 27 | 28 | &-default .navbar-nav > .active > a:hover { 29 | color: @navbar-default-link-hover-color; 30 | } 31 | 32 | &-inverse .navbar-nav > .active > a:hover { 33 | color: @navbar-inverse-link-hover-color; 34 | } 35 | 36 | &-brand { 37 | margin-top: 6px; 38 | } 39 | } 40 | 41 | // Buttons ==================================================================== 42 | 43 | .btn { 44 | font-family: @headings-font-family; 45 | } 46 | 47 | // Typography ================================================================= 48 | 49 | // Tables ===================================================================== 50 | 51 | // Forms ====================================================================== 52 | 53 | legend { 54 | font-family: @headings-font-family; 55 | } 56 | 57 | .input-group-addon { 58 | font-family: @font-family-sans-serif; 59 | } 60 | 61 | // Navs ======================================================================= 62 | 63 | .nav { 64 | .open > a, 65 | .open > a:hover, 66 | .open > a:focus { 67 | border: 1px solid #ddd; 68 | } 69 | } 70 | 71 | .pagination { 72 | 73 | font-family: @headings-font-family; 74 | 75 | &-lg > li > a, 76 | &-lg > li > span { 77 | padding: 14px 24px; 78 | } 79 | } 80 | 81 | .pager { 82 | 83 | font-family: @headings-font-family; 84 | 85 | a { 86 | color: @text-color; 87 | } 88 | 89 | a:hover { 90 | border-color: transparent; 91 | color: #fff; 92 | } 93 | 94 | .disabled a { 95 | border-color: @pager-border; 96 | } 97 | } 98 | 99 | // Indicators ================================================================= 100 | 101 | .alert { 102 | a, 103 | .alert-link { 104 | color: @alert-success-text; 105 | text-decoration: underline; 106 | } 107 | } 108 | 109 | .label { 110 | font-family: @headings-font-family; 111 | font-weight: normal; 112 | 113 | &-default { 114 | border: 1px solid #ddd; 115 | color: @text-color; 116 | } 117 | 118 | } 119 | 120 | .badge { 121 | font-family: @headings-font-family; 122 | font-weight: normal; 123 | } 124 | 125 | // Progress bars ============================================================== 126 | 127 | // Containers ================================================================= 128 | 129 | .panel { 130 | 131 | .box-shadow(none); 132 | 133 | &-default .panel-heading, 134 | &-default .panel-footer { 135 | background-color: #fff; 136 | font-family: @headings-font-family; 137 | font-weight: bold; 138 | } 139 | 140 | &-primary, 141 | &-success, 142 | &-warning, 143 | &-danger, 144 | &-info { 145 | .panel-heading { 146 | color: #fff; 147 | } 148 | 149 | .panel-body { 150 | border: 1px solid #ddd; 151 | border-top-width: 0; 152 | border-radius: 0 0 @border-radius-base @border-radius-base; 153 | } 154 | } 155 | } 156 | -------------------------------------------------------------------------------- /jquery/jquery.cookie.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Cookie Plugin v1.4.1 3 | * https://github.com/carhartl/jquery-cookie 4 | * 5 | * Copyright 2013 Klaus Hartl 6 | * Released under the MIT license 7 | */ 8 | (function (factory) { 9 | if (typeof define === 'function' && define.amd) { 10 | // AMD 11 | define(['jquery'], factory); 12 | } else if (typeof exports === 'object') { 13 | // CommonJS 14 | factory(require('jquery')); 15 | } else { 16 | // Browser globals 17 | factory(jQuery); 18 | } 19 | }(function ($) { 20 | 21 | var pluses = /\+/g; 22 | 23 | function encode(s) { 24 | return config.raw ? s : encodeURIComponent(s); 25 | } 26 | 27 | function decode(s) { 28 | return config.raw ? s : decodeURIComponent(s); 29 | } 30 | 31 | function stringifyCookieValue(value) { 32 | return encode(config.json ? JSON.stringify(value) : String(value)); 33 | } 34 | 35 | function parseCookieValue(s) { 36 | if (s.indexOf('"') === 0) { 37 | // This is a quoted cookie as according to RFC2068, unescape... 38 | s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); 39 | } 40 | 41 | try { 42 | // Replace server-side written pluses with spaces. 43 | // If we can't decode the cookie, ignore it, it's unusable. 44 | // If we can't parse the cookie, ignore it, it's unusable. 45 | s = decodeURIComponent(s.replace(pluses, ' ')); 46 | return config.json ? JSON.parse(s) : s; 47 | } catch(e) {} 48 | } 49 | 50 | function read(s, converter) { 51 | var value = config.raw ? s : parseCookieValue(s); 52 | return $.isFunction(converter) ? converter(value) : value; 53 | } 54 | 55 | var config = $.cookie = function (key, value, options) { 56 | 57 | // Write 58 | 59 | if (value !== undefined && !$.isFunction(value)) { 60 | options = $.extend({}, config.defaults, options); 61 | 62 | if (typeof options.expires === 'number') { 63 | var days = options.expires, t = options.expires = new Date(); 64 | t.setTime(+t + days * 864e+5); 65 | } 66 | 67 | return (document.cookie = [ 68 | encode(key), '=', stringifyCookieValue(value), 69 | options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE 70 | options.path ? '; path=' + options.path : '', 71 | options.domain ? '; domain=' + options.domain : '', 72 | options.secure ? '; secure' : '' 73 | ].join('')); 74 | } 75 | 76 | // Read 77 | 78 | var result = key ? undefined : {}; 79 | 80 | // To prevent the for loop in the first place assign an empty array 81 | // in case there are no cookies at all. Also prevents odd result when 82 | // calling $.cookie(). 83 | var cookies = document.cookie ? document.cookie.split('; ') : []; 84 | 85 | for (var i = 0, l = cookies.length; i < l; i++) { 86 | var parts = cookies[i].split('='); 87 | var name = decode(parts.shift()); 88 | var cookie = parts.join('='); 89 | 90 | if (key && key === name) { 91 | // If second argument (value) is a function it's a converter... 92 | result = read(cookie, value); 93 | break; 94 | } 95 | 96 | // Prevent storing a cookie that we couldn't decode. 97 | if (!key && (cookie = read(cookie)) !== undefined) { 98 | result[name] = cookie; 99 | } 100 | } 101 | 102 | return result; 103 | }; 104 | 105 | config.defaults = {}; 106 | 107 | $.removeCookie = function (key, options) { 108 | if ($.cookie(key) === undefined) { 109 | return false; 110 | } 111 | 112 | // Must not alter options, thus extending a fresh object... 113 | $.cookie(key, '', $.extend({}, options, { expires: -1 })); 114 | return !$.cookie(key); 115 | }; 116 | 117 | })); -------------------------------------------------------------------------------- /less/bootstrap3/popovers.less: -------------------------------------------------------------------------------- 1 | // 2 | // Popovers 3 | // -------------------------------------------------- 4 | 5 | 6 | .popover { 7 | position: absolute; 8 | top: 0; 9 | left: 0; 10 | z-index: @zindex-popover; 11 | display: none; 12 | max-width: @popover-max-width; 13 | padding: 1px; 14 | text-align: left; // Reset given new insertion method 15 | background-color: @popover-bg; 16 | background-clip: padding-box; 17 | border: 1px solid @popover-fallback-border-color; 18 | border: 1px solid @popover-border-color; 19 | border-radius: @border-radius-large; 20 | .box-shadow(0 5px 10px rgba(0,0,0,.2)); 21 | 22 | // Overrides for proper insertion 23 | white-space: normal; 24 | 25 | // Offset the popover to account for the popover arrow 26 | &.top { margin-top: -@popover-arrow-width; } 27 | &.right { margin-left: @popover-arrow-width; } 28 | &.bottom { margin-top: @popover-arrow-width; } 29 | &.left { margin-left: -@popover-arrow-width; } 30 | } 31 | 32 | .popover-title { 33 | margin: 0; // reset heading margin 34 | padding: 8px 14px; 35 | font-size: @font-size-base; 36 | font-weight: normal; 37 | line-height: 18px; 38 | background-color: @popover-title-bg; 39 | border-bottom: 1px solid darken(@popover-title-bg, 5%); 40 | border-radius: 5px 5px 0 0; 41 | } 42 | 43 | .popover-content { 44 | padding: 9px 14px; 45 | } 46 | 47 | // Arrows 48 | // 49 | // .arrow is outer, .arrow:after is inner 50 | 51 | .popover > .arrow { 52 | &, 53 | &:after { 54 | position: absolute; 55 | display: block; 56 | width: 0; 57 | height: 0; 58 | border-color: transparent; 59 | border-style: solid; 60 | } 61 | } 62 | .popover > .arrow { 63 | border-width: @popover-arrow-outer-width; 64 | } 65 | .popover > .arrow:after { 66 | border-width: @popover-arrow-width; 67 | content: ""; 68 | } 69 | 70 | .popover { 71 | &.top > .arrow { 72 | left: 50%; 73 | margin-left: -@popover-arrow-outer-width; 74 | border-bottom-width: 0; 75 | border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback 76 | border-top-color: @popover-arrow-outer-color; 77 | bottom: -@popover-arrow-outer-width; 78 | &:after { 79 | content: " "; 80 | bottom: 1px; 81 | margin-left: -@popover-arrow-width; 82 | border-bottom-width: 0; 83 | border-top-color: @popover-arrow-color; 84 | } 85 | } 86 | &.right > .arrow { 87 | top: 50%; 88 | left: -@popover-arrow-outer-width; 89 | margin-top: -@popover-arrow-outer-width; 90 | border-left-width: 0; 91 | border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback 92 | border-right-color: @popover-arrow-outer-color; 93 | &:after { 94 | content: " "; 95 | left: 1px; 96 | bottom: -@popover-arrow-width; 97 | border-left-width: 0; 98 | border-right-color: @popover-arrow-color; 99 | } 100 | } 101 | &.bottom > .arrow { 102 | left: 50%; 103 | margin-left: -@popover-arrow-outer-width; 104 | border-top-width: 0; 105 | border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback 106 | border-bottom-color: @popover-arrow-outer-color; 107 | top: -@popover-arrow-outer-width; 108 | &:after { 109 | content: " "; 110 | top: 1px; 111 | margin-left: -@popover-arrow-width; 112 | border-top-width: 0; 113 | border-bottom-color: @popover-arrow-color; 114 | } 115 | } 116 | 117 | &.left > .arrow { 118 | top: 50%; 119 | right: -@popover-arrow-outer-width; 120 | margin-top: -@popover-arrow-outer-width; 121 | border-right-width: 0; 122 | border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback 123 | border-left-color: @popover-arrow-outer-color; 124 | &:after { 125 | content: " "; 126 | right: 1px; 127 | border-right-width: 0; 128 | border-left-color: @popover-arrow-color; 129 | bottom: -@popover-arrow-width; 130 | } 131 | } 132 | 133 | } 134 | -------------------------------------------------------------------------------- /less/bootstrap3/modals.less: -------------------------------------------------------------------------------- 1 | // 2 | // Modals 3 | // -------------------------------------------------- 4 | 5 | // .modal-open - body class for killing the scroll 6 | // .modal - container to scroll within 7 | // .modal-dialog - positioning shell for the actual modal 8 | // .modal-content - actual modal w/ bg and corners and shit 9 | 10 | // Kill the scroll on the body 11 | .modal-open { 12 | overflow: hidden; 13 | } 14 | 15 | // Container that the modal scrolls within 16 | .modal { 17 | display: none; 18 | overflow: auto; 19 | overflow-y: scroll; 20 | position: fixed; 21 | top: 0; 22 | right: 0; 23 | bottom: 0; 24 | left: 0; 25 | z-index: @zindex-modal; 26 | -webkit-overflow-scrolling: touch; 27 | 28 | // Prevent Chrome on Windows from adding a focus outline. For details, see 29 | // https://github.com/twbs/bootstrap/pull/10951. 30 | outline: 0; 31 | 32 | // When fading in the modal, animate it to slide down 33 | &.fade .modal-dialog { 34 | .translate(0, -25%); 35 | .transition-transform(~"0.3s ease-out"); 36 | } 37 | &.in .modal-dialog { .translate(0, 0)} 38 | } 39 | 40 | // Shell div to position the modal with bottom padding 41 | .modal-dialog { 42 | position: relative; 43 | width: auto; 44 | margin: 10px; 45 | } 46 | 47 | // Actual modal 48 | .modal-content { 49 | position: relative; 50 | background-color: @modal-content-bg; 51 | border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) 52 | border: 1px solid @modal-content-border-color; 53 | border-radius: @border-radius-large; 54 | .box-shadow(0 3px 9px rgba(0,0,0,.5)); 55 | background-clip: padding-box; 56 | // Remove focus outline from opened modal 57 | outline: none; 58 | } 59 | 60 | // Modal background 61 | .modal-backdrop { 62 | position: fixed; 63 | top: 0; 64 | right: 0; 65 | bottom: 0; 66 | left: 0; 67 | z-index: @zindex-modal-background; 68 | background-color: @modal-backdrop-bg; 69 | // Fade for backdrop 70 | &.fade { .opacity(0); } 71 | &.in { .opacity(@modal-backdrop-opacity); } 72 | } 73 | 74 | // Modal header 75 | // Top section of the modal w/ title and dismiss 76 | .modal-header { 77 | padding: @modal-title-padding; 78 | border-bottom: 1px solid @modal-header-border-color; 79 | min-height: (@modal-title-padding + @modal-title-line-height); 80 | } 81 | // Close icon 82 | .modal-header .close { 83 | margin-top: -2px; 84 | } 85 | 86 | // Title text within header 87 | .modal-title { 88 | margin: 0; 89 | line-height: @modal-title-line-height; 90 | } 91 | 92 | // Modal body 93 | // Where all modal content resides (sibling of .modal-header and .modal-footer) 94 | .modal-body { 95 | position: relative; 96 | padding: @modal-inner-padding; 97 | } 98 | 99 | // Footer (for actions) 100 | .modal-footer { 101 | margin-top: 15px; 102 | padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding; 103 | text-align: right; // right align buttons 104 | border-top: 1px solid @modal-footer-border-color; 105 | &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons 106 | 107 | // Properly space out buttons 108 | .btn + .btn { 109 | margin-left: 5px; 110 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs 111 | } 112 | // but override that for button groups 113 | .btn-group .btn + .btn { 114 | margin-left: -1px; 115 | } 116 | // and override it for block buttons as well 117 | .btn-block + .btn-block { 118 | margin-left: 0; 119 | } 120 | } 121 | 122 | // Scale up the modal 123 | @media (min-width: @screen-sm-min) { 124 | // Automatically set modal's width for larger viewports 125 | .modal-dialog { 126 | width: @modal-md; 127 | margin: 30px auto; 128 | } 129 | .modal-content { 130 | .box-shadow(0 5px 15px rgba(0,0,0,.5)); 131 | } 132 | 133 | // Modal sizes 134 | .modal-sm { width: @modal-sm; } 135 | } 136 | 137 | @media (min-width: @screen-md-min) { 138 | .modal-lg { width: @modal-lg; } 139 | } 140 | -------------------------------------------------------------------------------- /jquery/backstretch_2.0.4.js: -------------------------------------------------------------------------------- 1 | /*! Backstretch - v2.0.4 - 2013-06-19 2 | * http://srobbin.com/jquery-plugins/backstretch/ 3 | * Copyright (c) 2013 Scott Robbin; Licensed MIT */ 4 | (function(a,d,p){a.fn.backstretch=function(c,b){(c===p||0===c.length)&&a.error("No images were supplied for Backstretch");0===a(d).scrollTop()&&d.scrollTo(0,0);return this.each(function(){var d=a(this),g=d.data("backstretch");if(g){if("string"==typeof c&&"function"==typeof g[c]){g[c](b);return}b=a.extend(g.options,b);g.destroy(!0)}g=new q(this,c,b);d.data("backstretch",g)})};a.backstretch=function(c,b){return a("body").backstretch(c,b).data("backstretch")};a.expr[":"].backstretch=function(c){return a(c).data("backstretch")!==p};a.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5E3,fade:0};var r={left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},s={position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxHeight:"none",maxWidth:"none",zIndex:-999999},q=function(c,b,e){this.options=a.extend({},a.fn.backstretch.defaults,e||{});this.images=a.isArray(b)?b:[b];a.each(this.images,function(){a("")[0].src=this});this.isBody=c===document.body;this.$container=a(c);this.$root=this.isBody?l?a(d):a(document):this.$container;c=this.$container.children(".backstretch").first();this.$wrap=c.length?c:a('
      ').css(r).appendTo(this.$container);this.isBody||(c=this.$container.css("position"),b=this.$container.css("zIndex"),this.$container.css({position:"static"===c?"relative":c,zIndex:"auto"===b?0:b,background:"none"}),this.$wrap.css({zIndex:-999998}));this.$wrap.css({position:this.isBody&&l?"fixed":"absolute"});this.index=0;this.show(this.index);a(d).on("resize.backstretch",a.proxy(this.resize,this)).on("orientationchange.backstretch",a.proxy(function(){this.isBody&&0===d.pageYOffset&&(d.scrollTo(0,1),this.resize())},this))};q.prototype={resize:function(){try{var a={left:0,top:0},b=this.isBody?this.$root.width():this.$root.innerWidth(),e=b,g=this.isBody?d.innerHeight?d.innerHeight:this.$root.height():this.$root.innerHeight(),j=e/this.$img.data("ratio"),f;j>=g?(f=(j-g)/2,this.options.centeredY&&(a.top="-"+f+"px")):(j=g,e=j*this.$img.data("ratio"),f=(e-b)/2,this.options.centeredX&&(a.left="-"+f+"px"));this.$wrap.css({width:b,height:g}).find("img:not(.deleteable)").css({width:e,height:j}).css(a)}catch(h){}return this},show:function(c){if(!(Math.abs(c)>this.images.length-1)){var b=this,e=b.$wrap.find("img").addClass("deleteable"),d={relatedTarget:b.$container[0]};b.$container.trigger(a.Event("backstretch.before",d),[b,c]);this.index=c;clearInterval(b.interval);b.$img=a("").css(s).bind("load",function(f){var h=this.width||a(f.target).width();f=this.height||a(f.target).height();a(this).data("ratio",h/f);a(this).fadeIn(b.options.speed||b.options.fade,function(){e.remove();b.paused||b.cycle();a(["after","show"]).each(function(){b.$container.trigger(a.Event("backstretch."+this,d),[b,c])})});b.resize()}).appendTo(b.$wrap);b.$img.attr("src",b.images[c]);return b}},next:function(){return this.show(this.indexe||d.operamini&&"[object OperaMini]"==={}.toString.call(d.operamini)||n&&7458>t||-1e||h&&6>h||"palmGetResource"in d&&e&&534>e||-1=k)})(jQuery,window); -------------------------------------------------------------------------------- /javascript/respond.min.js: -------------------------------------------------------------------------------- 1 | /*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl 2 | * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT 3 | * */ 4 | 5 | !function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b