diff --git a/Themes/api/module.php b/Themes/api/module.php new file mode 100644 index 0000000..c173cfb8 --- /dev/null +++ b/Themes/api/module.php @@ -0,0 +1,565 @@ + "FF0000", + "green" => "00FF00", + "blue" => "0000FF", + "purple" => "800080", + "orange" => "cc3300", + "yellow" => "ffff00", + "pink" => "ff0066", + ); + private $LIGHT_COLOR_HEX_MAP = array( + "red" => "ff4d4d", + "green" => "80ff80", + "blue" => "8080ff", + "purple" => "ff66ff", + "orange" => "ff9f80", + "yellow" => "ffff66", + "pink" => "ff99c2", + ); + private $DARK_COLOR_HEX_MAP = array( + "red" => "990000", + "green" => "004d00", + "blue" => "000077", + "purple" => "4d004d", + "orange" => "992600", + "yellow" => "cccc00", + "pink" => "99003d", + ); + + public function route() + { + switch ($this->request->action) { + case 'getThemeList': + $this->handleGetThemeList(); + break; + case 'themeFields': + $this->getThemeFields(); + break; + case 'deleteTheme': + $this->handleDeleteTheme(); + break; + case 'activateTheme': + $this->activateTheme(); + break; + case 'getThemeCode': + $this->getThemeCode(); + break; + case 'submitThemeCode': + $this->submitThemeCode(); + break; + case 'getCurrentTheme': + $this->getCurrentTheme(); + break; + case 'createNewTheme': + $this->handleCreateNewTheme(); + break; + case 'restoreDefault': + $this->restoreDefault(); + break; + case 'backupFiles': + $this->backupFiles(); + break; + case 'replaceImage': + $this->replaceImage(); + break; + } + } + // Get the CURRENT_ file, which is 1 line with the current color of the icon + public function currentFile($name) + { + $upper = strtoupper($name); + return "/pineapple/modules/Themes/img/CURRENT_{$upper}"; + } + // Move an image from light->dark or vice versa + public function replaceImage() + { + $img = $this->request->img; + switch ($img) + { + // Pineapple Logo + case 'Logo': + $this->response = array("message" => "Logo Changed"); + if ($this->request->light) { + exec("cp $this->BACKUP_LOGO /pineapple/img/logo.png"); + exec("echo light > $this->CURRENT_LOGO"); + } + else + { + exec("echo dark > $this->CURRENT_LOGO"); + exec('cp /pineapple/modules/Themes/img/logo-dark.png /pineapple/img/logo.png'); + } + $this->response = array("message" => "Logo Changed"); + break; + + // Pineapple favicon.ico Image + case 'Icon': + if ($this->request->light) { + exec("echo light > $this->CURRENT_FAVICON"); + exec("cp $this->BACKUP_FAVICON /pineapple/img/favicon.ico"); + } + else + { + exec("echo dark > $this->CURRENT_FAVICON"); + exec('cp /pineapple/modules/Themes/img/favicon-dark.ico /pineapple/img/favicon.ico'); + } + $this->response = array("message" => "Icon Changed"); + break; + + // Pineapple Throbber gif + case 'Throbber': + if ($this->request->light) { + exec("echo light > $this->CURRENT_THROBBER"); + exec("cp $this->BACKUP_THROBBER /pineapple/img/throbber.gif"); + } + else + { + exec("echo dark > $this->CURRENT_THROBBER"); + exec('cp /pineapple/modules/Themes/img/throbber-dark.gif /pineapple/img/throbber.gif'); + } + $this->response = array("message" => "Throbber Changed"); + break; + + // Modify all of the module Icons + case 'All': + foreach ($this->ALL_MODULES as $module) + { + $current = $this->currentFile($module); + $success = $this->replaceModuleImage( + $module, + $this->request->color, + $this->request->brightness + ); + } + $this->response = array( + "success" => true, + "message" => "All module icons changed to {$this->request->color}-{$this->request->brightness}" + ); + break; + // Assume module Icon + default: + $success = $this->replaceModuleImage( + $this->request->img, + $this->request->color, + $this->request->brightness + ); + $this->response = array( + "success" => $success, + "message" => "{$this->request->img} icon changed to {$this->request->color}-{$this->request->brightness}" + ); + break; + } + } + /* + * replaceModuleImage + * $moduleName -> String name of module, can be any format (nEtWoRkIng) because it gets formatted + * $color -> string name of the color, used for index of mapping + * $brightness -> string name of brightness, used for map selection + */ + public function replaceModuleImage($moduleName, $color, $brightness) + { + $current = $this->currentFile($moduleName); + $replace = "/pineapple/modules/{$moduleName}/module_icon.svg"; + switch($color) + { + case 'light': + return $this->restoreModuleIcon ( + $moduleName + ); + break; + case 'dark': + if (exec("echo dark > $current") != 0 || + exec("echo $brightness >> $current") != 0 || + !$this->searchAndReplaceFile($replace, "FFFFFF")) + { + return false; + } + break; + default: + $hex = ""; + switch($brightness) + { + case 'light': + $hex = $this->LIGHT_COLOR_HEX_MAP[$color]; + break; + case 'dark': + $hex = $this->DARK_COLOR_HEX_MAP[$color]; + break; + default: + $hex = $this->NORMAL_COLOR_HEX_MAP[$color]; + break; + } + // Replace the modules icon image + if (exec("echo $color > $current") != 0 || + exec("echo $brightness >> $current") != 0) + { + return false; + } + if (!$this->searchAndReplaceFile($replace, $hex)) { + return false; + } + break; + } + return true; + } + /* + * searchAndReplaceFile + * $s -> substring to find + * return: true or false showing succcessful string replacement + */ + public function searchAndReplaceFile($f, $s) + { + // Use a stream editor so we dont have to load the entire file into RAM + return (exec("sed -i 's/fill:\(.*\);/fill:#{$s};/g' $f") == 0); + } + /* + * setCurrentTheme + * $theme -> modify CURRENT_CSS file with new theme + */ + public function setCurrentTheme($theme) + { + $this->current_theme = $theme; + exec('echo '.$theme.' > /pineapple/modules/Themes/css/CURRENT_CSS'); + } + /* + * getCurrentTheme + * return current theme, and all parameters for icon colors/brightness + */ + public function getCurrentTheme() + { + $line = file('/pineapple/modules/Themes/css/CURRENT_CSS')[0]; + $line = trim(preg_replace('/\s+/', ' ', $line)); + + $logo = file('/pineapple/modules/Themes/img/CURRENT_LOGO')[0]; + $logo = trim(preg_replace('/\s+/', ' ', $logo)); + + $icon = file('/pineapple/modules/Themes/img/CURRENT_FAVICON')[0]; + $icon = trim(preg_replace('/\s+/', ' ', $icon)); + + $throbber = file('/pineapple/modules/Themes/img/CURRENT_THROBBER')[0]; + $throbber = trim(preg_replace('/\s+/', ' ', $throbber)); + $this->response = array( + "current" => $line, + "logo" => $logo, + "icon" => $icon, + "throbber" => $throbber, + ); + foreach ($this->ALL_MODULES as $module) + { + $current = $this->currentFile($module); + $lower = strtolower($module); + $color = file($current)[0]; + $color = trim(preg_replace('/\s+/', ' ', $color)); + $brightness = file($current)[1]; + $brightness = trim(preg_replace('/\s+/', ' ', $brightness)); + $this->response[$lower] = $color; + $this->response[$lower.'brightness'] = $brightness; + } + } + /* + * isCurrentThemeEnv + * $theme string name of theme to check if its current + * check if global current_them var is set, compare against that + * this way we dont open,read,close a file every for every check + */ + public function isCurrentThemeEnv($theme) + { + if ($this->current_theme != "") { + return ($this->current_theme == $theme); + } + if (!file_exists($this->CURRENT_CSS)) { + return false; + } + $line = file($this->CURRENT_CSS)[0]; + $line = trim(preg_replace('/\s+/', ' ', $line)); + return ($line === $theme); + } + /* + * restoreImages + * Undo any changes made by this Module + * This includes: original icons, gifs, svg's + */ + public function restoreImages() + { + $success = true; + exec("cp {$this->BACKUP_FAVICON} /pineapple/img/favicon.ico"); + exec("cp {$this->BACKUP_LOGO} /pineapple/img/logo.png"); + exec("cp {$this->BACKUP_THROBBER} /pineapple/img/throbber.gif"); + exec('echo light > /pineapple/modules/Themes/img/CURRENT_LOGO'); + exec('echo light > /pineapple/modules/Themes/img/CURRENT_FAVICON'); + exec('echo light > /pineapple/modules/Themes/img/CURRENT_THROBBER'); + + foreach ($this->ALL_MODULES as $module) + { + $current = $this->currentFile($module); + $success = $this->restoreModuleIcon ( + $module + ); + } + $this->response = array( + "success" => $success, + "message" => "Restored all files" + ); + } + /* + * restoreModuleIcon + * Generic helper function to put a modules icon back to normal + * using only the name of the module (in any format). + */ + public function restoreModuleIcon($moduleName) + { + $current = $this->currentFile($moduleName); + $replace = "/pineapple/modules/{$moduleName}/module_icon.svg"; + if (!$this->searchAndReplaceFile($replace, $this->RESTORE_HEX)) + { + return false; + } + if (exec("echo light > $current") != 0 || + exec("echo normal >> $current") != 0) + { + return false; + } + return true; + } + /* + * restoreDefault + * backup all files if not done yet + * put the original css file back + * restore all of the images + */ + public function restoreDefault() + { + $this->backupFiles(); + exec("cp {$this->BACKUP_MAIN_CSS} /pineapple/css/main.css"); + $this->setCurrentTheme('main.css'); + $this->restoreImages(); + } + /* + * getThemeCode + * retrieve the css styling code from a theme file + */ + public function getThemeCode() + { + $code = file_get_contents($this->CSS_DIR . $this->request->name); + $this->response = array("code" => $code, "file" => $this->CSS_DIR . $this->request->name); + } + /* + * getThemeFields + * more or less only returns the code for now + */ + public function getThemeFields() + { + $allFields = array(); + $code = file_get_contents($this->CSS_DIR . $this->request->name); + $this->response = array("code" => $code); + } + /* + * activateTheme + * mv the users selected theme to main.css file + */ + public function activateTheme() + { + $themeName = $this->request->name; + $cmd = exec("cp {$this->CSS_DIR}{$themeName} /pineapple/css/main.css"); + if ($cmd == 0) { + $this->setCurrentTheme($themeName); + $message = $themeName . " is now active."; + $this->response = array("return" => true, "message" => $message); + } + else + { + $message = "Could not move theme" . $themeName . "(Something is wrong..)"; + $this->response = array("return" => false,"message" => $message); + } + } + /* Credits to SteveRusin at http://php.net/manual/en/ref.strings.php */ + private function endsWith($str, $sub) + { + return (substr($str, strlen($str) - strlen($sub)) === $sub); + } + /* + * handleDeleteTheme + * delete a users theme file from the local css directory + */ + public function handleDeleteTheme() + { + $themeName = $this->request->name; + exec("rm {$this->CSS_DIR}{$themeName}"); + if (!file_exists("/pineapple/modules/Themes/css/" . $themeName)) { + $message = "Deleted " . $themeName; + } else { + $message = "Error deleting " . $themeName; + } + $this->response = array("message" => $message); + } + /* + * submitThemeCode + * save a users theme file in the local css directory + */ + public function submitThemeCode() + { + $code = $this->request->themeCode; + $themeName = $this->request->name; + $fileName = $this->request->fileName; + file_put_contents($this->CSS_DIR . $themeName, $code); + $message = (!file_exists($this->CSS_DIR . $themeName)) ? "Created " . $themeName : "Updated " . $themeName; + + $this->response = array( + "message" => $message, + "filename" => $fileName + ); + } + /* + * handleGetThemeList + * get the list of .css files in the local css directory + * avoid sending back the main.css file so it cannot be modified + */ + public function handleGetThemeList() + { + $all_themes = array(); + $root_themes = preg_grep('/^([^.])/', scandir("{$this->CSS_DIR}")); + foreach ($root_themes as $theme) { + if (!is_file($theme) && $this->endsWith($theme, '.css') && $theme != "main.css") { + $active = $this->isCurrentThemeEnv($theme); + $obj = array("title" => $theme, "location" => "../Themes/css/", "active" => $active); + array_push($all_themes, $obj); + } + } + $this->response = $all_themes; + } + /* + * handleCreateNewTheme + * create a new .css theme file in the local css directory + */ + public function handleCreateNewTheme() + { + $themePath = $this->CSS_DIR; + $themeName = str_replace(' ', '_', $this->request->themeName); + if (!$this->endswith($themeName, '.css')) { + $themeName = $themeName . ".css"; + } + if (file_exists($themePath . $themeName)) { + $this->response = array("create_success" => false, "create_message" => "A theme named {$themeName} already exists."); + return; + } + exec("cp {$this->SKELETON_CSS} {$themePath}{$themeName}"); + $this->response = array("create_success" => true, "create_message" => "Created {$themeName}"); + } + /* + * backupFiles + * Backup all of the .css/IMG files used so the module can properly restore defaults + */ + public function backupFiles() + { + $success = true; + $modules = array(); + if (!file_exists($this->BACKUP_MAIN_CSS)) { + exec("cp /pineapple/css/main.css {$this->BACKUP_MAIN_CSS}"); + array_push($modules, "Backed up main.css."); + } + if (!file_exists($this->SKELETON_CSS)) { + mkdir($this->CSS_DIR); + exec("cp {$this->BACKUP_MAIN_CSS} {$this->SKELETON_CSS}"); + array_push($modules, "Backed up skeleton.css."); + } + if (!file_exists($this->BACKUP_THROBBER)) { + exec("cp /pineapple/img/throbber.gif {$this->BACKUP_THROBBER}"); + array_push($modules, "Backed up favicon.ico"); + } + if (!file_exists($this->CURRENT_THROBBER)) { + exec("echo light > $this->CURRENT_THROBBER"); + array_push($modules, "Wrote to {$this->CURRENT_THROBBER}"); + } + if (!file_exists($this->BACKUP_FAVICON)) { + exec("cp /pineapple/img/favicon.ico {$this->BACKUP_FAVICON}"); + array_push($modules, "Backed up favicon.ico"); + } + if (!file_exists($this->CURRENT_FAVICON)) { + exec("echo light > $this->CURRENT_FAVICON"); + array_push($modules, "Wrote to /pineapple/modules/Themes/img/CURRENT_FAVICON"); + } + if (!file_exists($this->BACKUP_LOGO)) { + exec("cp /pineapple/img/logo.png $this->BACKUP_LOGO"); + array_push($modules, "Wrote to {$this->BACKUP_LOGO}"); + } + if (!file_exists($this->CURRENT_LOGO)) { + exec("echo light > $this->CURRENT_LOGO"); + array_push($modules, "Wrote to {$this->CURRENT_LOGO}"); + } + foreach ($this->ALL_MODULES as $module) + { + $current = $this->currentFile($module); + if (!$this->backupModuleIcon($current)) + { + array_push($modules, "Did not write to {$current}."); + } + else + { + array_push($modules, "Wrote to {$current}."); + } + } + $this->response = array( + "success" => $success, + "message" => $success ? + "Created a backup file for all files" : + "Failed to backup files! Tread lightly", + "modules" => $modules + ); + } + public function backupModuleIcon($currentFile) { + if (!file_exists($currentFile)) { + if (exec("echo light > $currentFile") != 0 || + exec("echo normal >> $currentFile") != 0) + { + return false; + } + return true; + } + return false; + } +} \ No newline at end of file diff --git a/Themes/css/1980.css b/Themes/css/1980.css new file mode 100644 index 0000000..e99d58d --- /dev/null +++ b/Themes/css/1980.css @@ -0,0 +1,499 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:lime; + font-family: monospace; +} + +i { + color: lime; + font: monospace; +} + +b, strong { + font-weight: 700; + font-family: monospace; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: monospace; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: lime; + text-align: center; + background-color: black; + border: 1px solid lime; + border-radius: 4px; +} + +.panel-default { + border-color: lime; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid lime; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: lime; + white-space:nowrap; + background-color: black; + border: lime; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: lime; + background-color: black; + background-image: none; + border: 1px solid lime; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid lime; + border-top: 1px solid lime; +} + +table { + background-color: black; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: black; +} + +* { + color: lime; + border-color: lime; + border-top: lime; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #000; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: lime; + word-break: break-all; + word-wrap: break-word; + background-color: #000000; + border: 1px solid lime; + border-radius: 4px; + font-family: monospace; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #000000; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #000; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: limegreen; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #18ff00; + color:lime; +} + +.btn { + background-color: black; + font-family: monospace; +} + +.alert-info { + color: lime; + background-color: black; + border-color: lime; +} + +p { + color: lime; + font-family: monospace; +} + +.text-muted { + color:forestgreen; +} + +.h3 h3 { + color:lime; +} +.h2, h2 { + font-size: 30px; + color:lime; +} +.h1, h1 { + font-size: 30px; + color:lime; +} + +.btn-default { + color:lime; + border-color: lime; +} + +.btn-default:hover { + color: lime; + background-color: lime; + border-color: lime; +} + +.sidebar .active { + background-color: #13033a; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #000000; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: #000; + opacity: 1; + color: lime; +} + +.panel-footer { + padding: 10px 15px; + background-color: #000000; + border-top: 1px solid #0F0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: #000; + opacity: 1; + color: lime; + font-family: monospace; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #000; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #000 !important; + word-wrap: break-word !important; + border: 1px solid #000 !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:lime; +} + +.alert-danger { + color: lime; + background-color: black; + border-color: lime; +} + +.panel-title { + background-color:black; + color: lime; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: lime; +} + +.panel-body { + background-color:black; + font-family:monospace; +} + +.panel-heading { + background-color:black; +} + +.panel-default>.panel-heading { + color: lime; + background-color: black; + border-color: lime; + border-bottom-color: lime; + border-bottom: lime; +} + +td { + background-color:black; +} +.nav { + background-color:black; +} +.sidebar-nav.navbar-collapse { + background-color:black; +} +.navbar-default{ + background-color:black; +} +.navbar-static-top { + background-color:black; + border-color: lime; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: monospace; + background-color: lime; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: black; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid lime; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: middle; + border-top: 1px solid lime; +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: darkgray; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: black; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: lime; +} +input:focus + .slider { + box-shadow: 0 0 1px lime; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} diff --git a/Themes/css/default.css b/Themes/css/default.css new file mode 100644 index 0000000..23ddbdf --- /dev/null +++ b/Themes/css/default.css @@ -0,0 +1,250 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #000; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #f8f8f8; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #eee; +} + +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #e7e7e7; +} + +.sidebar .active { + background-color: #eee; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #e7e7e7; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #fff; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #fff !important; + word-wrap: break-word !important; + border: 1px solid #ccc !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "WiFi Pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: #2196F3; +} +input:focus + .slider { + box-shadow: 0 0 1px #2196F3; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/evilrose.css b/Themes/css/evilrose.css new file mode 100644 index 0000000..2c30dc7 --- /dev/null +++ b/Themes/css/evilrose.css @@ -0,0 +1,526 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:#ff0066; + font-family: monospace; +} + +i { + color: #ff0066; + font: monospace; +} + +b, strong { + font-weight: 700; + font-family: monospace; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: monospace; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #ff0066; + text-align: center; + background-color: black; + border: 1px solid #ff0066; + border-radius: 4px; +} + +.panel-default { + border-color: #ff0066; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid #ff0066; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #ff0066; + white-space:nowrap; + background-color: black; + border: #ff0066; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #ff0066; + background-color: black; + background-image: none; + border: 1px solid #ff0066; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid #ff0066; + border-top: 1px solid #ff0066; +} + +table { + background-color: black; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: black; +} + +* { + color: #ff0066; + border-color: #ff0066; + border-top: #ff0066; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid black; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #ff0066; + word-break: break-all; + word-wrap: break-word; + background-color: black; + border: 1px solid #ff0066; + border-radius: 4px; + font-family: monospace; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: black; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: black; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: #ff66a3; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #ff0000; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1); +} + +.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active { + background-color: black; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #ff66a3; + color:#ff0066; +} + +.btn { + background-color: black; + font-family: monospace; +} + +.alert-info { + color: #ff0066; + background-color: black; + border-color: #ff0066; +} + +p { + color: #ff0066; + font-family: monospace; +} + +.text-muted { + color:#ff66a3; +} + +.h3 h3 { + color:#ff0066; +} +.h2, h2 { + font-size: 30px; + color:#ff0066; +} +.h1, h1 { + font-size: 30px; + color:#ff0066; +} + +.btn-default { + color:#ff0066; + border-color: #ff0066; +} + +.btn-default:hover { + color: #ff0066; + background-color: #ff0066; + border-color: #ff0066; +} + +.sidebar .active { + background-color: #13033a; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid black; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: black; + opacity: 1; + color: #ff0066; +} + +.panel-footer { + padding: 10px 15px; + background-color: black; + border-top: 1px solid #ff66a3; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: black; + opacity: 1; + color: #ff0066; + font-family: monospace; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: black; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #000 !important; + word-wrap: break-word !important; + border: 1px solid #000 !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:#ff0066; +} + +.alert-danger { + color: #ff0066; + background-color: black; + border-color: #ff0066; +} + +.panel-title { + background-color:black; + color: #ff0066; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #ff0066; +} + +.panel-body { + background-color:black; + font-family:monospace; +} + +.panel-heading { + background-color:black; +} + +.panel-default>.panel-heading { + color: #ff0066; + background-color: black; + border-color: #ff0066; + border-bottom-color: #ff0066; + border-bottom: #ff0066; +} + +td { + background-color:black; +} +.nav { + background-color:black; +} +.sidebar-nav.navbar-collapse { + background-color:black; +} +.navbar-default{ + background-color:black; +} +.navbar-static-top { + background-color:black; + border-color: #ff0066; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: monospace; + background-color: #ff0066; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: black; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid #ff0066; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ff0066; +} + +.modal-content { + position: relative; + background-color: black; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5); + box-shadow: 0 3px 9px rgba(0,0,0,.5); +} + +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: #ff0066; +} +input:focus + .slider { + box-shadow: 0 0 1px #ff0066; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/hackerblues.css b/Themes/css/hackerblues.css new file mode 100644 index 0000000..722392c --- /dev/null +++ b/Themes/css/hackerblues.css @@ -0,0 +1,522 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:#0066ff; + font-family: monospace; +} + +i { + color: #0066ff; + font: monospace; +} + +b, strong { + font-weight: 700; + font-family: monospace; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: monospace; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #0066ff; + text-align: center; + background-color: black; + border: 1px solid #0066ff; + border-radius: 4px; +} + +.panel-default { + border-color: #0066ff; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid #0066ff; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #0066ff; + white-space:nowrap; + background-color: black; + border: #0066ff; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #0066ff; + background-color: black; + background-image: none; + border: 1px solid #0066ff; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid #0066ff; + border-top: 1px solid #0066ff; +} + +table { + background-color: black; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: black; +} + +* { + color: #0066ff; + border-color: #0066ff; + border-top: #0066ff; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid black; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #0066ff; + word-break: break-all; + word-wrap: break-word; + background-color: black; + border: 1px solid #0066ff; + border-radius: 4px; + font-family: monospace; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: black; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: black; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: #00004d; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #ff0000; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1); +} + +.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active { + background-color: black; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #00004d; + color:#0066ff; +} + +.btn { + background-color: black; + font-family: monospace; +} + +.alert-info { + color: #0066ff; + background-color: black; + border-color: #0066ff; +} + +p { + color: #0066ff; + font-family: monospace; +} + +.text-muted { + color:blue; +} + +.h3 h3 { + color:#0066ff; +} +.h2, h2 { + font-size: 30px; + color:#0066ff; +} +.h1, h1 { + font-size: 30px; + color:#0066ff; +} + +.btn-default { + color:#0066ff; + border-color: #0066ff; +} + +.btn-default:hover { + color: #0066ff; + background-color: #0066ff; + border-color: #0066ff; +} + +.sidebar .active { + background-color: #13033a; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid black; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: black; + opacity: 1; + color: #0066ff; +} + +.panel-footer { + padding: 10px 15px; + background-color: black; + border-top: 1px solid #00004d; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: black; + opacity: 1; + color: #0066ff; + font-family: monospace; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: black; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #000 !important; + word-wrap: break-word !important; + border: 1px solid #000 !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:#0066ff; +} + +.alert-danger { + color: #0066ff; + background-color: black; + border-color: #0066ff; +} + +.panel-title { + background-color:black; + color: #0066ff; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #0066ff; +} + +.panel-body { + background-color:black; + font-family:monospace; +} + +.panel-heading { + background-color:black; +} + +.panel-default>.panel-heading { + color: #0066ff; + background-color: black; + border-color: #0066ff; + border-bottom-color: #0066ff; + border-bottom: #0066ff; +} + +td { + background-color:black; +} +.nav { + background-color:black; +} +.sidebar-nav.navbar-collapse { + background-color:black; +} +.navbar-default{ + background-color:black; +} +.navbar-static-top { + background-color:black; + border-color: #0066ff; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: monospace; + background-color: #0066ff; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: black; +} +.table>thead>tr>th { + vertical-align: middle; + border-bottom: 2px solid #0066ff; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: middle; + border-top: 1px solid #0066ff; +} + +.modal-content { + background-color: black; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: #0066ff; +} +input:focus + .slider { + box-shadow: 0 0 1px #0066ff; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/hak5.css b/Themes/css/hak5.css new file mode 100644 index 0000000..a6610f0 --- /dev/null +++ b/Themes/css/hak5.css @@ -0,0 +1,499 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:blue; + font-family:webkit-pictograph; +} + +i { + color: blue; + font: webkit-pictograph; +} + +b, strong { + font-weight: 700; + font-family: webkit-pictograph; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: webkit-pictograph; + font-weight: 500; + line-height: 1.1; + color: blue; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: red; + text-align: center; + background-color: white; + border: 1px solid red; + border-radius: 4px; +} + +.panel-default { + border-color: red; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid red; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: blue; + white-space:nowrap; + background-color: white; + border: red; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: red; + background-color: white; + background-image: none; + border: 1px solid red; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid red; + border-top: 1px solid red; +} + +table { + background-color: white; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: white; +} + +* { + color: red; + border-color: red; + border-top: red; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid white; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: red; + word-break: break-all; + word-wrap: break-word; + background-color: white; + border: 1px solid red; + border-radius: 4px; + font-family: webkit-pictograph; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: white; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: white; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: red; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid red; + color:blue; +} + +.btn { + background-color: white; + font-family: webkit-pictograph; +} + +.alert-info { + color: red; + background-color: white; + border-color: red; +} + +p { + color: red; + font-family: webkit-pictograph; +} + +.text-muted { + color:blue; +} + +.h3 h3 { + color:blue; +} +.h2, h2 { + font-size: 30px; + color:blue; +} +.h1, h1 { + font-size: 30px; + color:blue; +} + +.btn-default { + color:red; + border-color: red; +} + +.btn-default:hover { + color: red; + background-color: red; + border-color: red; +} + +.sidebar .active { + background-color: white; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid white; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: white; + opacity: 1; + color: red; +} + +.panel-footer { + padding: 10px 15px; + background-color: white; + border-top: 1px solid red; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: white; + opacity: 1; + color: red; + font-family: webkit-pictograph; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: white; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: white !important; + word-wrap: break-word !important; + border: 1px solid white !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:red; +} + +.alert-danger { + color: red; + background-color: white; + border-color: red; +} + +.panel-title { + background-color:white; + color: red; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: red; +} + +.panel-body { + background-color:white; + font-family: webkit-pictograph; +} + +.panel-heading { + background-color:white; +} + +.panel-default>.panel-heading { + color: blue; + background-color: white; + border-color: red; + border-bottom-color: red; + border-bottom: red; +} + +td { + background-color:white; +} +.nav { + background-color:white; +} +.sidebar-nav.navbar-collapse { + background-color:white; +} +.navbar-default{ + background-color:white; +} +.navbar-static-top { + background-color:white; + border-color: red; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: webkit-pictograph; + background-color: red; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: white; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid red; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid red; +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: red; +} +input:focus + .slider { + box-shadow: 0 0 1px red; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/halflife-inverted.css b/Themes/css/halflife-inverted.css new file mode 100644 index 0000000..92212f7 --- /dev/null +++ b/Themes/css/halflife-inverted.css @@ -0,0 +1,525 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:#991f00 ; + font-family: monospace; +} + +i { + color: #991f00 ; + font: monospace; +} + +b, strong { + font-weight: 700; + font-family: monospace; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: monospace; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #991f00 ; + text-align: center; + background-color: black; + border: 1px solid #991f00 ; + border-radius: 4px; +} + +.panel-default { + border-color: #991f00 ; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid #991f00 ; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #991f00 ; + white-space:nowrap; + background-color: black; + border: #991f00 ; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #991f00 ; + background-color: black; + background-image: none; + border: 1px solid #991f00 ; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid #991f00 ; + border-top: 1px solid #991f00 ; +} + +table { + background-color: black; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: black; +} + +* { + color: #991f00 ; + border-color: #991f00 ; + border-top: #991f00 ; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid black; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #991f00 ; + word-break: break-all; + word-wrap: break-word; + background-color: black; + border: 1px solid #991f00 ; + border-radius: 4px; + font-family: monospace; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: black; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: black; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: #e62e00; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: black; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1); +} + +.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active { + background-color: black; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #e62e00; + color:#991f00 ; +} + +.btn { + background-color: black; + font-family: monospace; +} + +.alert-info { + color: #991f00 ; + background-color: black; + border-color: #991f00 ; +} + +p { + color: #991f00 ; + font-family: monospace; +} + +.text-muted { + color:#e62e00; +} + +.h3 h3 { + color:#991f00 ; +} +.h2, h2 { + font-size: 30px; + color:#991f00 ; +} +.h1, h1 { + font-size: 30px; + color:#991f00 ; +} + +.btn-default { + color:#991f00 ; + border-color: #991f00 ; +} + +.btn-default:hover { + color: #991f00 ; + background-color: #991f00 ; + border-color: #991f00 ; +} + +.sidebar .active { + background-color: #13033a; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid black; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: black; + opacity: 1; + color: #991f00 ; +} + +.panel-footer { + padding: 10px 15px; + background-color: black; + border-top: 1px solid #e62e00; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: black; + opacity: 1; + color: #991f00 ; + font-family: monospace; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: black; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: black !important; + word-wrap: break-word !important; + border: 1px solid black !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:#991f00 ; +} + +.alert-danger { + color: #991f00 ; + background-color: black; + border-color: #991f00 ; +} + +.panel-title { + background-color:black; + color: #991f00 ; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #991f00 ; +} + +.panel-body { + background-color:black; + font-family:monospace; +} + +.panel-heading { + background-color:black; +} + +.panel-default>.panel-heading { + color: #991f00 ; + background-color: black; + border-color: #991f00 ; + border-bottom-color: #991f00 ; + border-bottom: #991f00 ; +} + +td { + background-color:black; +} +.nav { + background-color:black; +} +.sidebar-nav.navbar-collapse { + background-color:black; +} +.navbar-default{ + background-color:black; +} +.navbar-static-top { + background-color:black; + border-color: #991f00 ; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: monospace; + background-color: #991f00 ; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: black; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid #991f00 ; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #991f00 ; +} + +.modal-content { + position: relative; + background-color: black; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5); + box-shadow: 0 3px 9px rgba(0,0,0,.5); +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: #991f00; +} +input:focus + .slider { + box-shadow: 0 0 1px #991f00; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/halflife.css b/Themes/css/halflife.css new file mode 100644 index 0000000..ace0272 --- /dev/null +++ b/Themes/css/halflife.css @@ -0,0 +1,525 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:black; + font-family: monospace; +} + +i { + color: black; + font: monospace; +} + +b, strong { + font-weight: 700; + font-family: monospace; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: monospace; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: black; + text-align: center; + background-color: #991f00; + border: 1px solid black; + border-radius: 4px; +} + +.panel-default { + border-color: black; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid black; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: black; + white-space:nowrap; + background-color: #991f00; + border: black; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: black; + background-color: #991f00; + background-image: none; + border: 1px solid black; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid black; + border-top: 1px solid black; +} + +table { + background-color: #991f00; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: #991f00; +} + +* { + color: black; + border-color: black; + border-top: black; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #991f00; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: black; + word-break: break-all; + word-wrap: break-word; + background-color: #991f00; + border: 1px solid black; + border-radius: 4px; + font-family: monospace; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #991f00; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #991f00; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: #e62e00; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #991f00; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1); +} + +.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active { + background-color: #991f00; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #e62e00; + color:black; +} + +.btn { + background-color: #991f00; + font-family: monospace; +} + +.alert-info { + color: black; + background-color: #991f00; + border-color: black; +} + +p { + color: black; + font-family: monospace; +} + +.text-muted { + color:#e62e00; +} + +.h3 h3 { + color:black; +} +.h2, h2 { + font-size: 30px; + color:black; +} +.h1, h1 { + font-size: 30px; + color:black; +} + +.btn-default { + color:black; + border-color: black; +} + +.btn-default:hover { + color: black; + background-color: black; + border-color: black; +} + +.sidebar .active { + background-color: #13033a; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #991f00; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: #991f00; + opacity: 1; + color: black; +} + +.panel-footer { + padding: 10px 15px; + background-color: #991f00; + border-top: 1px solid #e62e00; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: #991f00; + opacity: 1; + color: black; + font-family: monospace; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #991f00; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #991f00 !important; + word-wrap: break-word !important; + border: 1px solid #991f00 !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:black; +} + +.alert-danger { + color: black; + background-color: #991f00; + border-color: black; +} + +.panel-title { + background-color:#991f00; + color: black; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: black; +} + +.panel-body { + background-color:#991f00; + font-family:monospace; +} + +.panel-heading { + background-color:#991f00; +} + +.panel-default>.panel-heading { + color: black; + background-color: #991f00; + border-color: black; + border-bottom-color: black; + border-bottom: black; +} + +td { + background-color:#991f00; +} +.nav { + background-color:#991f00; +} +.sidebar-nav.navbar-collapse { + background-color:#991f00; +} +.navbar-default{ + background-color:#991f00; +} +.navbar-static-top { + background-color:#991f00; + border-color: black; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: monospace; + background-color: black; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: #991f00; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid black; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid black; +} + +.modal-content { + position: relative; + background-color: #991f00; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5); + box-shadow: 0 3px 9px rgba(0,0,0,.5); +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: black; +} +input:focus + .slider { + box-shadow: 0 0 1px black; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/kbeflo-dark.css b/Themes/css/kbeflo-dark.css new file mode 100644 index 0000000..4cb38d4 --- /dev/null +++ b/Themes/css/kbeflo-dark.css @@ -0,0 +1,576 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #000; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #0c0c0c; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #131313; +} + +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #181818; +} + +.sidebar .active { + background-color: #131313; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #202020; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #000; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #fff !important; + word-wrap: break-word !important; + border: 1px solid #ccc !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "WiFi Pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; +} + +.navbar-default { + background-color: #0c0c0c; + border-color: #181818; +} + +.panel-footer { + background-color: #0e0e0e; + border-top: 1px solid #202020; +} + +.panel-default { + border-color: #202020; +} + +.panel-default>.panel-heading { + color: #c6c6c6; + background-color: #0e0e0e; + border-color: #202020; +} + +.panel-body { + color: #c6c6c6; + background-color: #000; +} + +.h2, h2 { + font-size: 30px; + color: #c6c6c6; +} + +.panel>.panel-body+.table, +.panel>.panel-body+.table-responsive, +.panel>.table+.panel-body, +.panel>.table-responsive+.panel-body { + border-top: 1px solid #202020; +} + +a { + color: #c6c6c6; + text-decoration: none; +} + +a:focus, a:hover { + color: #c6c6c6; + text-decoration: none; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: #131313; +} + +.btn-default { + color: #c6c6c6; + background-color: #010101; + border-color: #454545; +} + +.btn-default.active, .btn-default:active { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-default:hover { + color: #c6c6c6; + background-color: #131313; + border-color: #767676; +} + +.btn-default.focus, .btn-default:focus { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-default.active.focus, .btn-default.active:focus, .btn-default.active:hover, .btn-default:active.focus, .btn-default:active:focus, .btn-default:active:hover, .open>.dropdown-toggle.btn-default.focus, .open>.dropdown-toggle.btn-default:focus, .open>.dropdown-toggle.btn-default:hover { + color: #212121; + background-color: #010101; + border-color: #171717; +} + +.navbar-default .navbar-nav>li>a { + color: #404041; +} + +.navbar-default .navbar-nav>.open>a, .navbar-default .navbar-nav>.open>a:focus, .navbar-default .navbar-nav>.open>a:hover { + color: #404041; + background-color: #0c0c0c; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #a2a2a2; + text-align: center; + background-color: #131313; + border: 1px solid #2e2e2e; + border-radius: 4px; +} + +.modal-body { + background-color: #000; + border: 1px solid #202020; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +.modal-header { + color: #c6c6c6; + border: 1px solid #202020; + border-bottom: none; + background-color: #000; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.form-control { + background-color: #111111; + border: 1px solid #333333; + color: #c6c6c6; +} + +.btn-success { + color: #c6c6c6; + background-color: #010101; + border-color: #454545; +} + +.btn-success.active, .btn-success:active { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-success.focus, .btn-success:focus { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-success:hover { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-success.active.focus, .btn-success.active:focus, .btn-success.active:hover, .btn-success:active.focus, .btn-success:active:focus, .btn-success:active:hover, .open>.dropdown-toggle.btn-success.focus, .open>.dropdown-toggle.btn-success:focus, .open>.dropdown-toggle.success:hover { + color: #212121; + background-color: #010101; + border-color: #171717; +} + +.btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled], .btn-default[disabled].active, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, fieldset[disabled] .btn-default.focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover { + + background-color: #111; + border-color: #333; + color: #333; + +} + +.panel-group .panel-heading+.panel-collapse>.list-group, .panel-group .panel-heading+.panel-collapse>.panel-body { + border-top: 1px solid #212121; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: #111111; + opacity: 1; +} + +pre { + color: #c6c6c6; + background-color: #111111; + border: 1px solid #333333; +} + +.alert-info { + color: #a94442; + background-color: #000; + border-color: #000; +} + +.alert-success { + color: #a94442; + background-color: #000; + border-color: #000; +} + +.table { + color: #c6c6c6; + background-color: #000; +} + +.table > thead > tr > th { + border-bottom: 2px solid #333; +} + +.table > tbody > tr.active > td, .table > tbody > tr.active > th, .table > tbody > tr > td.active, .table > tbody > tr > th.active, .table > tfoot > tr.active > td, .table > tfoot > tr.active > th, .table > tfoot > tr > td.active, .table > tfoot > tr > th.active, .table > thead > tr.active > td, .table > thead > tr.active > th, .table > thead > tr > td.active, .table > thead > tr > th.active { + color: #c6c6c6; + background-color: #000; + border-color: #333; +} + +.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th { + border-top: 1px solid #333; +} + +.progress-bar { + background-color: #202020; + +} + +.progress { + background-color: #111; +} + +.alert-danger { + color: #a94442; + background-color: #000; + border-color: #000; +} + +.table-striped > tbody > tr:nth-of-type(2n+1) { + background-color: #000; +} + +tr:hover td { + background: #000; +} + +.text-info { + color: #a94442; +} + +.open > .dropdown-menu { + background-color: #0c0c0c; + border-color: #181818; + color: #c6c6c6; +} + +.dropdown-menu > li > a { + color: #777; +} + +.dropdown-menu > li > a:focus, .dropdown-menu > li > a:hover { + color: #777; + background-color: #131313; +} + +.btn-info { + color: #c6c6c6; + background-color: #010101; + border-color: #454545; +} + +.btn-info:hover { + color: #c6c6c6; + background-color: #131313; + border-color: #767676; +} + +.btn-info.active, .btn-info:active { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-info.focus, .btn-info:focus { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-info.active.focus, .btn-info.active:focus, .btn-info.active:hover, .btn-info:active.focus, .btn-info:active:focus, .btn-info:active:hover, .open>.dropdown-toggle.btn-info.focus, .open>.dropdown-toggle.btn-info:focus, .open>.dropdown-toggle.btn-info:hover { + color: #212121; + background-color: #010101; + border-color: #171717; +} + +.btn-danger { + color: #c6c6c6; + background-color: #010101; + border-color: #454545; +} + +.btn-danger:hover { + color: #c6c6c6; + background-color: #131313; + border-color: #767676; +} + +.btn-danger.active, .btn-danger:active { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-danger.focus, .btn-danger:focus { + color: #c6c6c6; + background-color: #010101; + border-color: #212121; +} + +.btn-danger.active.focus, .btn-danger.active:focus, .btn-danger.active:hover, .btn-danger:active.focus, .btn-danger:active:focus, .btn-danger:active:hover, .open>.dropdown-toggle.btn-danger.focus, .open>.dropdown-toggle.btn-danger:focus, .open>.dropdown-toggle.btn-danger:hover { + color: #212121; + background-color: #010101; + border-color: #171717; +} +.btn-switch { + position: relative; + display: block; + width: 50px; + height: 25px; + cursor: pointer; + background-color: darkgray; + border: 2px solid darkgray; + border-radius: 40px; + +} +.btn-switch--on { + background-color: #ccffff; + border: 2px solid #ccffff; +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: gray; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: black; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: whitesmoke; +} +input:focus + .slider { + box-shadow: 0 0 1px whitesmoke; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/main.css b/Themes/css/main.css new file mode 100644 index 0000000..23ddbdf --- /dev/null +++ b/Themes/css/main.css @@ -0,0 +1,250 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #000; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #f8f8f8; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #eee; +} + +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #e7e7e7; +} + +.sidebar .active { + background-color: #eee; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #e7e7e7; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #fff; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #fff !important; + word-wrap: break-word !important; + border: 1px solid #ccc !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "WiFi Pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: #2196F3; +} +input:focus + .slider { + box-shadow: 0 0 1px #2196F3; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/malware.css b/Themes/css/malware.css new file mode 100644 index 0000000..ab7cad8 --- /dev/null +++ b/Themes/css/malware.css @@ -0,0 +1,525 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:red; + font-family: monospace; +} + +i { + color: red; + font: monospace; +} + +b, strong { + font-weight: 700; + font-family: monospace; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: monospace; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: red; + text-align: center; + background-color: black; + border: 1px solid red; + border-radius: 4px; +} + +.panel-default { + border-color: red; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid red; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: red; + white-space:nowrap; + background-color: black; + border: red; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: red; + background-color: black; + background-image: none; + border: 1px solid red; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid red; + border-top: 1px solid red; +} + +table { + background-color: black; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: black; +} + +* { + color: red; + border-color: red; + border-top: red; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #000; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: red; + word-break: break-all; + word-wrap: break-word; + background-color: #000000; + border: 1px solid red; + border-radius: 4px; + font-family: monospace; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #000000; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #000; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: darkred; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #ff0000; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1); +} + +.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active { + background-color: #000000; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid darkred; + color:red; +} + +.btn { + background-color: black; + font-family: monospace; +} + +.alert-info { + color: red; + background-color: black; + border-color: red; +} + +p { + color: red; + font-family: monospace; +} + +.text-muted { + color:darkred; +} + +.h3 h3 { + color:red; +} +.h2, h2 { + font-size: 30px; + color:red; +} +.h1, h1 { + font-size: 30px; + color:red; +} + +.btn-default { + color:red; + border-color: red; +} + +.btn-default:hover { + color: red; + background-color: red; + border-color: red; +} + +.sidebar .active { + background-color: #13033a; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #000000; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: #000; + opacity: 1; + color: red; +} + +.panel-footer { + padding: 10px 15px; + background-color: #000000; + border-top: 1px solid darkred; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: #000; + opacity: 1; + color: red; + font-family: monospace; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #000; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #000 !important; + word-wrap: break-word !important; + border: 1px solid #000 !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:red; +} + +.alert-danger { + color: red; + background-color: black; + border-color: red; +} + +.panel-title { + background-color:black; + color: red; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: red; +} + +.panel-body { + background-color:black; + font-family:monospace; +} + +.panel-heading { + background-color:black; +} + +.panel-default>.panel-heading { + color: red; + background-color: black; + border-color: red; + border-bottom-color: red; + border-bottom: red; +} + +td { + background-color:black; +} +.nav { + background-color:black; +} +.sidebar-nav.navbar-collapse { + background-color:black; +} +.navbar-default{ + background-color:black; +} +.navbar-static-top { + background-color:black; + border-color: red; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: monospace; + background-color: red; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: black; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid red; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid red; +} + +.modal-content { + position: relative; + background-color: black; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5); + box-shadow: 0 3px 9px rgba(0,0,0,.5); +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: darkgray; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: black; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: red; +} +input:focus + .slider { + box-shadow: 0 0 1px red; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/morning.css b/Themes/css/morning.css new file mode 100644 index 0000000..315c348 --- /dev/null +++ b/Themes/css/morning.css @@ -0,0 +1,511 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:cornflowerblue; + font-family:cursive; +} + +i { + color: cornflowerblue; + font: cursive; +} + +b, strong { + font-weight: 700; + font-family: cursive; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: cursive; + font-weight: 500; + line-height: 1.1; + color: cornflowerblue; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: rosybrown; + text-align: center; + background-color: wheat; + border: 1px solid rosybrown; + border-radius: 4px; +} + +.panel-default { + border-color: rosybrown; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid rosybrown; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: cornflowerblue; + white-space:nowrap; + background-color: wheat; + border: rosybrown; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: rosybrown; + background-color: wheat; + background-image: none; + border: 1px solid rosybrown; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid rosybrown; + border-top: 1px solid rosybrown; +} + +table { + background-color: wheat; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: wheat; +} + +* { + color: rosybrown; + border-color: rosybrown; + border-top: rosybrown; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid wheat; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: rosybrown; + word-break: break-all; + word-wrap: break-word; + background-color: wheat; + border: 1px solid rosybrown; + border-radius: 4px; + font-family: cursive; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: wheat; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: wheat; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: rosybrown; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid rosybrown; + color:cornflowerblue; +} + +.btn { + background-color: wheat; + font-family: cursive; +} + +.alert-info { + color: rosybrown; + background-color: wheat; + border-color: rosybrown; +} + +p { + color: rosybrown; + font-family: cursive; +} + +.text-muted { + color:darkmagenta; +} + +.h3 h3 { + color:cornflowerblue; +} +.h2, h2 { + font-size: 30px; + color:cornflowerblue; +} +.h1, h1 { + font-size: 30px; + color:cornflowerblue; +} + +.btn-default { + color:rosybrown; + border-color: rosybrown; +} + +.btn-default:hover { + color: rosybrown; + background-color: rosybrown; + border-color: rosybrown; +} + +.sidebar .active { + background-color: wheat; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid wheat; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: wheat; + opacity: 1; + color: rosybrown; +} + +.panel-footer { + padding: 10px 15px; + background-color: wheat; + border-top: 1px solid rosybrown; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: wheat; + opacity: 1; + color: rosybrown; + font-family: cursive; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: wheat; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: wheat !important; + word-wrap: break-word !important; + border: 1px solid wheat !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:rosybrown; +} + +.alert-danger { + color: rosybrown; + background-color: wheat; + border-color: rosybrown; +} + +.panel-title { + background-color:wheat; + color: rosybrown; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: rosybrown; +} + +.panel-body { + background-color:wheat; + font-family: cursive; +} + +.panel-heading { + background-color:wheat; +} + +.panel-default>.panel-heading { + color: cornflowerblue; + background-color: wheat; + border-color: rosybrown; + border-bottom-color: rosybrown; + border-bottom: rosybrown; +} + +td { + background-color:wheat; +} +.nav { + background-color:wheat; +} +.sidebar-nav.navbar-collapse { + background-color:wheat; +} +.navbar-default{ + background-color:wheat; +} +.navbar-static-top { + background-color:wheat; + border-color: rosybrown; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: cursive; + background-color: rosybrown; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: wheat; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid rosybrown; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid rosybrown; +} +.modal-content { + position: relative; + background-color: wheat; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5); + box-shadow: 0 3px 9px rgba(0,0,0,.5); +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: rosybrown; +} +input:focus + .slider { + box-shadow: 0 0 1px rosybrown; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/neon.css b/Themes/css/neon.css new file mode 100644 index 0000000..3ffa0d4 --- /dev/null +++ b/Themes/css/neon.css @@ -0,0 +1,504 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:magenta; + font-family: monospace; +} + +i { + color: lime; + font: monospace; +} + +b, strong { + font-weight: 700; + font-family: monospace; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: monospace; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: lime; + text-align: center; + background-color: purple; + border: 1px solid lime; + border-radius: 4px; +} + +.panel-default { + border-color: lime; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid lime; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: lime; + white-space:nowrap; + background-color: purple; + border: lime; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: lime; + background-color: purple; + background-image: none; + border: 1px solid lime; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid lime; + border-top: 1px solid lime; +} + +table { + background-color: purple; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: purple; +} + +* { + color: lime; + border-color: lime; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #000; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: lime; + word-break: break-all; + word-wrap: break-word; + background-color: #000000; + border: 1px solid lime; + border-radius: 4px; + font-family: monospace; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #000000; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #000; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: limegreen; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid #18ff00; + color:lime; +} + +.btn { + background-color: purple; + font-family: monospace; +} + +.alert-info { + color: lime; + background-color: purple; + border-color: lime; +} + +p { + color: lime; + font-family: monospace; +} + +.text-muted { + color:violet; +} + +.h3 h3 { + color:lime; +} +.h2, h2 { + font-size: 30px; + color:lime; +} +.h1, h1 { + font-size: 30px; + color:lime; +} + +.btn-default { + color:lime; + border-color: lime; +} + +.btn-default:hover { + color: magenta; + background-color: lime; + border-color: #adadad; +} + +.sidebar .active { + background-color: #13033a; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #000000; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: #000; + opacity: 1; + color: lime; +} + +.panel-footer { + padding: 10px 15px; + background-color: #000000; + border-top: 1px solid #0F0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: #000; + opacity: 1; + color: lime; + font-family: monospace; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #000; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #000 !important; + word-wrap: break-word !important; + border: 1px solid #000 !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "Neon Pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:lime; +} + +.alert-danger { + color: lime; + background-color: purple; + border-color: lime; +} + +.panel-title { + background-color:purple; + color: lime; +} + +.panel-body { + background-color:black; + font-family:monospace; +} + +.panel-heading { + background-color:purple; +} + +.panel-default>.panel-heading { + color: lime; + background-color: purple; + border-color: lime; +} + +td { + background-color:black; +} +.nav { + background-color:black; +} +.sidebar-nav.navbar-collapse { + background-color:black; +} +.navbar-default{ + background-color:black; +} +.navbar-static-top { + background-color:black; + border-color: lime; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: monospace; + background-color: lime; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: magenta; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid lime; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid lime; +} +.modal-content { + position: relative; + background-color: black; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5); + box-shadow: 0 3px 9px rgba(0,0,0,.5); +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: lime; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: purple; +} +input:focus + .slider { + box-shadow: 0 0 1px purple; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/spring.css b/Themes/css/spring.css new file mode 100644 index 0000000..55fe691 --- /dev/null +++ b/Themes/css/spring.css @@ -0,0 +1,526 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:#00e673; + font-family: sans-serif; +} + +i { + color: #00e673; + font: sans-serif; +} + +b, strong { + font-weight: 700; + font-family: sans-serif; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: sans-serif; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #00e673; + text-align: center; + background-color: #00e673; + border: 1px solid #00e673; + border-radius: 4px; +} + +.panel-default { + border-color: #00e673; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid #00e673; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #00e673; + white-space:nowrap; + background-color: #6666ff; + border: #00e673; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #00e673; + background-color: #6666ff; + background-image: none; + border: 1px solid #00e673; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid #00e673; + border-top: 1px solid #00e673; +} + +table { + background-color: #6666ff; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: #6666ff; +} + +* { + color: #00e673; + border-color: #00e673; + border-top: #00e673; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #6666ff; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #00e673; + word-break: break-all; + word-wrap: break-word; + background-color: #6666ff; + border: 1px solid #00e673; + border-radius: 4px; + font-family: sans-serif; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #6666ff; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #6666ff; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: lightblue; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #ff0000; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1); +} + +.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active { + background-color: #6666ff; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid dark#00e673; + color:#00e673; +} + +.btn { + background-color: #6666ff; + font-family: sans-serif; +} + +.alert-info { + color: #00e673; + background-color: springgreen; + border-color: #00e673; +} + +p { + color: #00e673; + font-family: sans-serif; +} + +.text-muted { + color:#00e673; +} + +.h3 h3 { + color:#00e673; +} +.h2, h2 { + font-size: 30px; + color:#00e673; +} +.h1, h1 { + font-size: 30px; + color:#00e673; +} + +.btn-default { + color:#00e673; + border-color: #00e673; +} + +.btn-default:hover { + color: #00e673; + background-color: #00e673; + border-color: #00e673; +} + +.sidebar .active { + background-color: #00e673; + color:black +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #6666ff; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: #6666ff; + opacity: 1; + color: #00e673; +} + +.panel-footer { + padding: 10px 15px; + background-color: #6666ff; + border-top: 1px solid dark#00e673; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: #6666ff; + opacity: 1; + color: #00e673; + font-family: sans-serif; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #6666ff; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #000038 !important; + word-wrap: break-word !important; + border: 1px solid #000038 !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:#00e673; +} + +.alert-danger { + color: #00e673; + background-color: #6666ff; + border-color: #00e673; +} + +.panel-title { + background-color:#6666ff; + color: #00e673; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #00e673; +} + +.panel-body { + background-color:#6666ff; + font-family:sans-serif; +} + +.panel-heading { + background-color:#6666ff; +} + +.panel-default>.panel-heading { + color: #00e673; + background-color: #6666ff; + border-color: #00e673; + border-bottom-color: #00e673; + border-bottom: #00e673; +} + +td { + background-color:#6666ff; +} +.nav { + background-color:#6666ff; +} +.sidebar-nav.navbar-collapse { + background-color:#6666ff; +} +.navbar-default{ + background-color:#6666ff; +} +.navbar-static-top { + background-color:#6666ff; + border-color: #00e673; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: sans-serif; + background-color: #00e673; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: #6666ff; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid #00e673; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #00e673; +} + +.modal-content { + position: relative; + background-color: #6666ff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5); + box-shadow: 0 3px 9px rgba(0,0,0,.5); +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: darkslategray; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: #6666ff; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: #00e673; +} +input:focus + .slider { + box-shadow: 0 0 1px #00e673; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/css/starstuff.css b/Themes/css/starstuff.css new file mode 100644 index 0000000..1441cbd --- /dev/null +++ b/Themes/css/starstuff.css @@ -0,0 +1,525 @@ +.truncated { + text-overflow: ellipsis; + overflow: hidden +} + +a { + color:gold; + font-family: sans-serif; +} + +i { + color: gold; + font: sans-serif; +} + +b, strong { + font-weight: 700; + font-family: sans-serif; +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: sans-serif; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: gold; + text-align: center; + background-color: #000038; + border: 1px solid gold; + border-radius: 4px; +} + +.panel-default { + border-color: gold; +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body { + border-top: 1px solid gold; +} + +.dropdown-menu>li>a { + display:block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: gold; + white-space:nowrap; + background-color: #000038; + border: gold; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: gold; + background-color: #000038; + background-image: none; + border: 1px solid gold; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-bottom: 1px solid gold; + border-top: 1px solid gold; +} + +table { + background-color: #000038; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; + background-color: #000038; +} + +* { + color: gold; + border-color: gold; + border-top: gold; +} +.uppercase { + text-transform: uppercase; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.module-icon { + display: inline; + height: 24px; + width: 24px; +} + +.fixed-addon-width { + min-width: 70px; + text-align: left; +} + +.fixed-addon-width-2 { + min-width: 90px; + text-align: left; +} + + +.fixed-addon-width-3 { + min-width: 110px; + text-align: left; +} + +.fixed-width-200 { + min-width: 200px; +} + +.caret-reversed { + border-top-width: 0; + border-bottom: 4px solid #000038; +} + +.image-small-18 { + height: 18px; +} + +.center-text { + text-align: center; +} + +.scrollable-pre { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: gold; + word-break: break-all; + word-wrap: break-word; + background-color: #000038; + border: 1px solid gold; + border-radius: 4px; + font-family: sans-serif; +} + +.log-pre { + max-height: 300px; +} + +.btn-fixed-length { + width: 70px; +} + +.title-message { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + height: 9px; + border-radius: 3px; +} + +.padding-left { + margin-left: 10px; +} + +.select-inline { + font-weight: normal; +} + +body { + background-color: #000038; +} + +.logout { + cursor: pointer; +} + +.module-nav li a { + margin-left: 30px; +} + +.module-nav li:hover { + background-color: #000038; +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: lightblue; +} +.sidebar .sidebar-nav.navbar-collapse { + padding-right: 0; + padding-left: 0; +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #ff0000; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1); +} + +.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active { + background-color: #000038; +} + +.sidebar ul li { + cursor: pointer; + border-bottom: 1px solid darkgold; + color:gold; +} + +.btn { + background-color: #000038; + font-family: sans-serif; +} + +.alert-info { + color: gold; + background-color: blue; + border-color: gold; +} + +p { + color: gold; + font-family: sans-serif; +} + +.text-muted { + color:darkgold; +} + +.h3 h3 { + color:gold; +} +.h2, h2 { + font-size: 30px; + color:gold; +} +.h1, h1 { + font-size: 30px; + color:gold; +} + +.btn-default { + color:gold; + border-color: gold; +} + +.btn-default:hover { + color: gold; + background-color: gold; + border-color: gold; +} + +.sidebar .active { + background-color: #13033a; +} + +@media(min-width:768px) { + .sidebar { + z-index: 1; + position: absolute; + width: 250px; + margin-top: 51px; + } + + .module-content { + position: inherit; + margin: 0 0 0 250px; + padding: 15px 30px; + border-left: 1px solid #000038; + } + + .navbar-top-links { + margin-left: 10px; + } +} + +.navbar-top-links { + margin-right: 5px; + margin-left: 10px; +} + +.navbar-top-links li { + display: inline-block; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + background-color: #000038; + opacity: 1; + color: gold; +} + +.panel-footer { + padding: 10px 15px; + background-color: #000038; + border-top: 1px solid darkgold; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +textarea.form-control { + height: auto; + background-color: #000038; + opacity: 1; + color: gold; + font-family: sans-serif; +} +.navbar { + margin-bottom: 0; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.module-content { + padding: 15px 15px; + background-color: #000038; +} + +.pointer { + cursor: pointer; +} + +.dropdown-menu { + cursor: pointer; +} + +.dropdown-menu-top { + max-height: 300px !important; + overflow-y: auto !important; +} + +@media(max-width:768px) { + .dropdown-menu-top { + margin: auto !important; + position: absolute !important; + background-color: #000038 !important; + word-wrap: break-word !important; + border: 1px solid #000038 !important; + width: 300px !important; + max-width: 300px !important; + } + .dropdown-menu-top li a { + white-space: normal !important; + } + + .dropdown-menu-logout { + max-width: 50px !important; + } +} + +.login-logo { + margin: 0 auto; + padding-bottom: 10px; + max-width: 150px; +} + +.brand-logo { + content: url('/img/logo.png'); + max-height: 30px; + padding-bottom: 5px; +} + +.brand-text::after { + content: "pineapple"; + padding-top: 3px; + padding-left: 5px; + float: right; + color:gold; +} + +.alert-danger { + color: gold; + background-color: #000038; + border-color: gold; +} + +.panel-title { + background-color:#000038; + color: gold; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: gold; +} + +.panel-body { + background-color:#000038; + font-family:sans-serif; +} + +.panel-heading { + background-color:#000038; +} + +.panel-default>.panel-heading { + color: gold; + background-color: #000038; + border-color: gold; + border-bottom-color: gold; + border-bottom: gold; +} + +td { + background-color:#000038; +} +.nav { + background-color:#000038; +} +.sidebar-nav.navbar-collapse { + background-color:#000038; +} +.navbar-default{ + background-color:#000038; +} +.navbar-static-top { + background-color:#000038; + border-color: gold; +} +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { + font-family: sans-serif; + background-color: gold; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + color: #000038; +} +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid gold; +} +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid gold; +} + +.modal-content { + position: relative; + background-color: #000038; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5); + box-shadow: 0 3px 9px rgba(0,0,0,.5); +} +.switch { + position: relative; + display: inline-block; + width: 46px; + height: 20px; +} +.switch input {display:none;} +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: darkgray; + -webkit-transition: .4s; + transition: .4s; +} +.slider:before { + position: absolute; + content: ""; + height: 12px; + width: 12px; + left: 4px; + bottom: 4px; + background-color: #000038; + -webkit-transition: .4s; + transition: .4s; + } +input:checked + .slider { + background-color: gold; +} +input:focus + .slider { + box-shadow: 0 0 1px gold; +} +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/Themes/img/favicon-dark.ico b/Themes/img/favicon-dark.ico new file mode 100644 index 0000000..afb37ed Binary files /dev/null and b/Themes/img/favicon-dark.ico differ diff --git a/Themes/img/logo-dark.png b/Themes/img/logo-dark.png new file mode 100644 index 0000000..8e5f771 Binary files /dev/null and b/Themes/img/logo-dark.png differ diff --git a/Themes/img/throbber-dark.gif b/Themes/img/throbber-dark.gif new file mode 100644 index 0000000..7877db2 Binary files /dev/null and b/Themes/img/throbber-dark.gif differ diff --git a/Themes/js/module.js b/Themes/js/module.js new file mode 100644 index 0000000..38bbaa3 --- /dev/null +++ b/Themes/js/module.js @@ -0,0 +1,604 @@ +registerController("ThemesController", ['$api', '$scope','$window','$route', '$http', function ($api, $scope, $window, $route, $http) { + + getThemes(); + getCurrentTheme(); + backupFiles(); + + $scope.debug = false; + $scope.themes = []; + $scope.themeToDelete = null; + $scope.themeDeleteValidation = ''; + $scope.messages = []; + $scope.newThemeName = ''; + $scope.throbber = true; + $scope.running = false; + $scope.current = ''; + $scope.library = true; + $scope.editor = true; + $scope.workshopTheme = {themeName: "", file: "", code: "", title: ""}; + $scope.editThemeFile = {themeName: "", file: "", code: ""}; + $scope.colors = ['dark', 'light', 'red', 'blue', 'green', 'purple', 'orange', 'yellow', 'pink']; + $scope.brightness = ['light', 'normal', 'dark']; + $scope.working = false; + $scope.autoRefresh = true; + // Dark and White + $scope.throbbercontrast = true; // true == light -> false == dark + $scope.logocontrast = true; + $scope.faviconcontrast = true; + $scope.reconcontrast = true; + $scope.logocontrastText = 'light'; + $scope.faviconcontrastText = 'light'; + $scope.throbbercontrastText = 'light'; + // Color and brightness + $scope.allcontrastText = 'light'; + $scope.allcontrastBrightness = 'normal'; + $scope.dashboardcontrastText = 'light'; + $scope.dashboardcontrastBrightness = 'normal'; + $scope.reconcontrastText = 'light'; + $scope.reconcontrastBrightness = 'normal'; + $scope.profilingcontrastText = 'light'; + $scope.profilingcontrastBrightness = 'normal'; + $scope.clientscontrastText = 'light'; + $scope.clientscontrastBrightness = 'normal'; + $scope.modulescontrastText = 'light'; + $scope.modulescontrastBrightness = 'normal'; + $scope.filterscontrastText = 'light'; + $scope.filterscontrastBrightness = 'normal'; + $scope.pineapcontrastText = 'light'; + $scope.pineapcontrastBrightness = 'normal'; + $scope.trackingcontrastText = 'light'; + $scope.trackingcontrastBrightness = 'normal'; + $scope.loggingcontrastText = 'light'; + $scope.loggingcontrastBrightness = 'normal'; + $scope.reportingcontrastText = 'light'; + $scope.reportingcontrastBrightness = 'normal'; + $scope.networkingcontrastText = 'light'; + $scope.networkingcontrastBrightness = 'normal'; + $scope.configurationcontrastText = 'light'; + $scope.configurationcontrastBrightness = 'normal'; + $scope.advancedcontrastText = 'light'; + $scope.advancedcontrastBrightness = 'normal'; + $scope.helpcontrastText = 'light'; + $scope.helpcontrastBrightness = 'normal'; + $scope.switchOn = { + "position" : "relative", + "display" : "block", + "width" : "50px", + "height" : "25px", + "cursor" : "pointer", + "border" : "2px solid darkgray", + "background-color" : "darkgray", + "border-radius" : "40px" + } + $scope.switchOff = { + "position" : "relative", + "display" : "block", + "width" : "50px", + "height" : "25px", + "cursor" : "pointer", + "border" : "2px solid darkgray", + "background-color" : "white", + "border-radius" : "40px" + } + $scope.selectOptions = { + "position" : "relative", + "display" : "block", + "width" : "100px", + "height" : "25px", + "cursor" : "pointer", + "border" : "2px solid darkgray", + "background-color" : "white", + "color" : "black", + "border-radius" : "40px" + } + $scope.changeThrobber = function(){ + $scope.throbbercontrast = !$scope.throbbercontrast; + $scope.throbbercontrastText = 'light'; + if (!$scope.throbbercontrast) { + $scope.throbbercontrastText = 'dark'; + } + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Throbber', + light: $scope.throbbercontrast + }, function(response) { + $scope.sendMessage("Throbber", "set to " + $scope.throbbercontrastText); + log("changeThrobber", response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeLogo = function(){ + $scope.logocontrast = !$scope.logocontrast; + $scope.logocontrastText = 'light'; + if (!$scope.logocontrast) { + $scope.logocontrastText = 'dark'; + } + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Logo', + light: $scope.logocontrast + }, function(response) { + $scope.sendMessage("Logo", "set to " + $scope.logocontrastText); + log("changeLogo", response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + + $scope.changeFavicon = function(){ + $scope.faviconcontrast = !$scope.faviconcontrast; + $scope.faviconcontrastText = 'light'; + if (!$scope.faviconcontrast) { + $scope.faviconcontrastText = 'dark'; + } + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Icon', + light: $scope.faviconcontrast + }, function(response) { + $scope.sendMessage("Icon", "set to " + $scope.faviconcontrastText); + log("changeFavicon", response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeAllIcons = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'All', + color: $scope.allcontrastText, + brightness: $scope.allcontrastBrightness + }, function(response) { + for (msg in response) { + $scope.sendMessage("All Icons", "set to " + $scope.allcontrastText + "(" + $scope.allcontrastBrightness + ")"); + log("changeAllIcons", "Success? " + response.success + " " + response.message); + } + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeDashboard = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Dashboard', + color: $scope.dashboardcontrastText, + brightness: $scope.dashboardcontrastBrightness + }, function(response) { + $scope.sendMessage("Dashboard Icon", "set to " + $scope.dashboardcontrastText + " (" + $scope.dashboardcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeRecon = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Recon', + color: $scope.reconcontrastText, + brightness: $scope.reconcontrastBrightness + }, function(response) { + $scope.sendMessage("Recon Icon", "set to " + $scope.reconcontrastText + " (" + $scope.reconcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeProfiling = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Profiling', + color: $scope.profilingcontrastText, + brightness: $scope.profilingcontrastBrightness + }, function(response) { + $scope.sendMessage("Profiling Icon", "set to " + $scope.profilingcontrastText + " (" + $scope.profilingcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeClients = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Clients', + color: $scope.clientscontrastText, + brightness: $scope.clientscontrastBrightness + }, function(response) { + $scope.sendMessage("Clients Icon", "set to " + $scope.clientscontrastText + " (" + $scope.clientscontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeModules = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'ModuleManager', + color: $scope.modulescontrastText, + brightness: $scope.modulescontrastBrightness + }, function(response) { + $scope.sendMessage("ModuleManager Icon", "set to " + $scope.modulescontrastText + " (" + $scope.modulescontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeFilters = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Filters', + color: $scope.filterscontrastText, + brightness: $scope.filterscontrastBrightness + }, function(response) { + $scope.sendMessage("Filters Icon", "set to " + $scope.filterscontrastText + " (" + $scope.filterscontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changePineap = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'PineAP', + color: $scope.pineapcontrastText, + brightness: $scope.pineapcontrastBrightness + }, function(response) { + $scope.sendMessage("Filters Icon", "set to " + $scope.pineapcontrastText + " (" + $scope.pineapcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeTracking = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Tracking', + color: $scope.trackingcontrastText, + brightness: $scope.trackingcontrastBrightness + }, function(response) { + $scope.sendMessage("Tracking Icon", "set to " + $scope.trackingcontrastText + " (" + $scope.trackingcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeLogging = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Logging', + color: $scope.loggingcontrastText, + brightness: $scope.loggingcontrastBrightness + }, function(response) { + $scope.sendMessage("Logging Icon", "set to " + $scope.loggingcontrastText + " (" + $scope.loggingcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeReporting = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Reporting', + color: $scope.reportingcontrastText, + brightness: $scope.reportingcontrastBrightness + }, function(response) { + $scope.sendMessage("Reporting Icon", "set to " + $scope.reportingcontrastText + " (" + $scope.reportingcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeNetworking = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Networking', + color: $scope.networkingcontrastText, + brightness: $scope.networkingcontrastBrightness + }, function(response) { + $scope.sendMessage("Networking Icon", "set to " + $scope.networkingcontrastText + " (" + $scope.networkingcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeConfiguration = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Configuration', + color: $scope.configurationcontrastText, + brightness: $scope.configurationcontrastBrightness + }, function(response) { + $scope.sendMessage("Configuration Icon", "set to " + $scope.configurationcontrastText + " (" + $scope.configurationcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeAdvanced = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Advanced', + color: $scope.advancedcontrastText, + brightness: $scope.advancedcontrastBrightness + }, function(response) { + $scope.sendMessage("Advanced Icon", "set to " + $scope.advancedcontrastText + " (" + $scope.advancedcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + $scope.changeHelp = function(){ + $api.request({ + module: "Themes", + action: "replaceImage", + img: 'Help', + color: $scope.helpcontrastText, + brightness: $scope.helpcontrastBrightness + }, function(response) { + $scope.sendMessage("Help Icon", "set to " + $scope.helpcontrastText + " (" + $scope.helpcontrastBrightness + ")"); + log("changeDashboard", "Success? " + response.success + " " + response.message); + if ($scope.autoRefresh) { + $window.location.reload(); + } + }); + }; + function log(fn, message) { + if ($scope.debug === true) { + console.log("fn[" + fn + "]-> " + message); + } + }; + function backupFiles() { + $api.request({ + module: "Themes", + action: "backupFiles" + }, function(response) { + log('backupFiles', response.message); + for (i=0; i + +
+
+ +
+
+ + + + + + + + + + +
+ Auto Refresh + + + + +
+
+
+
+
+ +
+
+

No Messages...

+ Clear + All + + + + +
+
+
{{ message.title }} Dismiss
+

{{ message.msg }}

+
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
IconColorBrightness
Throbber {{ throbbercontrastText }} N/A
Logo {{ logocontrastText }} N/A
Favicon {{ faviconcontrastText }} N/A
Dashboard {{ dashboardcontrastText }} {{ dashboardcontrastBrightness }}
Recon {{ reconcontrastText }} {{ reconcontrastBrightness }}
Profiling {{ profilingcontrastText }} {{ profilingcontrastBrightness }}
Clients {{ clientscontrastText }} {{ clientscontrastBrightness }}
Modules {{ modulescontrastText }} {{ modulescontrastBrightness }}
Filters {{ filterscontrastText }} {{ filterscontrastBrightness }}
PineAP {{ pineapcontrastText }} {{ pineapcontrastBrightness }}
Tracking {{ trackingcontrastText }} {{ trackingcontrastBrightness }}
Logging {{ loggingcontrastText }} {{ loggingcontrastBrightness }}
Reporting {{ reportingcontrastText }} {{ reportingcontrastBrightness }}
Networking {{ networkingcontrastText }} {{ networkingcontrastBrightness }}
Configuration {{ configurationcontrastText }} {{ configurationcontrastBrightness }}
Advanced {{ advancedcontrastText }} {{ advancedcontrastBrightness }}
Help {{ helpcontrastText }} {{ helpcontrastBrightness }}
+
+
+
+
+ +
+
+ +
+
+
Themes
+
+
+
+
+ + + + +
+
+
+
+ + + + + + + + + + + + + + + +
Theme NameLocationActivateDelete
+ {{ theme.title.substring(0, theme.title.length - 4); }}{{ theme.storage }}Activate + Delete +
+
+
+ +
+

+ No Themes in Library to Display. +

+
+ +
+ +
+

Theme Editor | {{ workshopTheme.themeName }}

+ +
+ + + + + + + + + +
CSS Editor
+
+ +
+
+
+
+ +
+
+
Icons
+
+
+
+
+

Generic

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeImageLight ThemeDark Theme
+ Throbber + + + +
+
+
+
+
+
+ Logo + + + +
+
+
+
+
+
+ Icon + + + +
+
+
+
+
+
+
+

Modules

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeImageColorBrightness
+ ALL + + + + + + + +
+ Dashboard + + + + + + + + +
Recon + + +
Profiling + + +
Clients + + +
Modules + + +
Filters + + +
PineAP + + +
Tracking + + +
Logging + + +
Reporting + + +
Networking + + +
Configuration + + +
Advanced + + +
Help + + +
+ +
+
+
+ + +
+
+
How To
+
+
+
+
    +
  • Share your new theme
  • +
      +
    • Navigate to the wifi pineapple modules repository
    • +
    • Add your theme .css file in the css directory of this module
    • +
    • Create a new pull request
    • +
    • Update the version number
    • +
    • Update the module version in module.info
    • +
    +
+
    +
  • Fix Images appearing broken/unable to be loaded
  • +
      +
    • Refresh the page
    • +
    • If the problem persists, see "Submit a Bug"
    • +
    +
+
    +
  • Fix a messy looking page after a save/refresh
  • +
      +
    • Reselect 'Activate' beside your theme
    • +
    • Refresh the page
    • +
    +
+
    +
  • Select the proper Image type
  • +
      +
    • Beside each Image type are two options "Light" and "Dark"
    • +
    • "Dark" images are intended for dark backgrounds
    • +
    • "Light" images are intended for light backgrounds
    • +
    +
+
    +
  • Use a theme once without a module
  • +
      +
    • Navigate to https://github.com/kbeflo/pineapple-themes
    • +
    • Select a theme and run the install.sh script
    • +
    +
+
    +
  • Submit a Bug
  • +
      +
    • Navigate to https://github.com/hak5/wifipineapple-modules/issues
    • +
    • Select the "New Issue" button
    • +
    • Tag @trashbo4t in your issue description
    • +
    +
+
+
+
+
+ +
+
+
    +
  • Creating a New Theme
  • +
      +
    • + The set of .css files bundled with the Themes module are already configured to handle + undefined colors from the standard bootstrap .css file in the default settings. +
    • +
    • + A reccommended method to ensure larger coverage is to create a new .css file with the theme creator + then copy another .css files code. +
    • +
    • + Once you copied the code do a search and replace for the colors of your choosing! +
    • +
    +
+
    +
  • Working with .css files in a browser
  • +
      +
    • Modyfing a .css file with active updating is possible in modern browsers.
    • +
    • Select 'ctrl'+'shift'+'I', then select the sourses tab.
    • +
    • Select the 'css' folder, then the main.css file
    • +
    • Modify the main.css file until you like the appearance of the page.
    • +
    • From there select all of the code ('ctrl'+'a') and paste it into your theme files CSS Editor box
    • +
    • Then select "Save" and "Activate"
    • +
    +
+
    +
  • Dark Theme vs Light Theme Icons
  • +
      +
    • If your background is dark, its best to choose a "Dark Theme" icon.
    • +
    • Overlooked transparency pixels will be harder to see this way!
    • +
    +
+ +
+
+
+ +
+ +
+
+
    +
  • 1.0
  • +
      +
    • Pending release of 1.0
    • +
    +
+
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/Themes/module.info b/Themes/module.info new file mode 100644 index 0000000..391beff --- /dev/null +++ b/Themes/module.info @@ -0,0 +1,6 @@ +{ + "title": "Themes", + "description": "Create, download, and share custom themes", + "version": "1.0", + "author": "trashbo4t" +} diff --git a/Themes/module_icon.svg b/Themes/module_icon.svg new file mode 100644 index 0000000..bdef138 --- /dev/null +++ b/Themes/module_icon.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +