Commit 9826db17e756c71eed5abdf75e3b5d2d105dff1a
Exists in
master
and in
4 other branches
Merge pull request #2311 from gitlabhq/refactor_scss
Better organization of styles
Showing
11 changed files
with
154 additions
and
244 deletions
Show diff stats
app/assets/stylesheets/application.css
| @@ -1,10 +0,0 @@ | @@ -1,10 +0,0 @@ | ||
| 1 | -/* | ||
| 2 | - * This is a manifest file that'll automatically include all the stylesheets available in this directory | ||
| 3 | - * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at | ||
| 4 | - * the top of the compiled file, but it's generally better to create a new file per style scope. | ||
| 5 | - *= require jquery.ui.gitlab | ||
| 6 | - *= require jquery.atwho | ||
| 7 | - *= require chosen | ||
| 8 | - *= require_self | ||
| 9 | - *= require main | ||
| 10 | -*/ |
| @@ -0,0 +1,47 @@ | @@ -0,0 +1,47 @@ | ||
| 1 | +/* | ||
| 2 | + * This is a manifest file that'll automatically include all the stylesheets available in this directory | ||
| 3 | + * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at | ||
| 4 | + * the top of the compiled file, but it's generally better to create a new file per style scope. | ||
| 5 | + *= require jquery.ui.gitlab | ||
| 6 | + *= require jquery.atwho | ||
| 7 | + *= require chosen | ||
| 8 | + *= require_self | ||
| 9 | +*/ | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * GitLab bootstrap: | ||
| 13 | + */ | ||
| 14 | +@import "gitlab_bootstrap.scss"; | ||
| 15 | + | ||
| 16 | +@import "common.scss"; | ||
| 17 | +@import "ref_select.scss"; | ||
| 18 | + | ||
| 19 | +@import "sections/header.scss"; | ||
| 20 | +@import "sections/nav.scss"; | ||
| 21 | +@import "sections/commits.scss"; | ||
| 22 | +@import "sections/issues.scss"; | ||
| 23 | +@import "sections/projects.scss"; | ||
| 24 | +@import "sections/snippets.scss"; | ||
| 25 | +@import "sections/votes.scss"; | ||
| 26 | +@import "sections/merge_requests.scss"; | ||
| 27 | +@import "sections/graph.scss"; | ||
| 28 | +@import "sections/events.scss"; | ||
| 29 | +@import "sections/themes.scss"; | ||
| 30 | +@import "sections/tree.scss"; | ||
| 31 | +@import "sections/notes.scss"; | ||
| 32 | +@import "sections/profile.scss"; | ||
| 33 | +@import "sections/login.scss"; | ||
| 34 | +@import "sections/editor.scss"; | ||
| 35 | + | ||
| 36 | +@import "highlight/white.scss"; | ||
| 37 | +@import "highlight/dark.scss"; | ||
| 38 | + | ||
| 39 | +/** | ||
| 40 | + * UI themes: | ||
| 41 | + */ | ||
| 42 | +@import "themes/ui_basic.scss"; | ||
| 43 | +@import "themes/ui_mars.scss"; | ||
| 44 | +@import "themes/ui_modern.scss"; | ||
| 45 | +@import "themes/ui_gray.scss"; | ||
| 46 | +@import "themes/ui_color.scss"; | ||
| 47 | + |
app/assets/stylesheets/fonts.scss
| @@ -1,7 +0,0 @@ | @@ -1,7 +0,0 @@ | ||
| 1 | -@font-face{ | ||
| 2 | - font-family: Korolev; | ||
| 3 | - src: font-url('korolev-medium-compressed.otf'); | ||
| 4 | -} | ||
| 5 | - | ||
| 6 | -/** Typo **/ | ||
| 7 | -$monospace: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono', 'lucida console', monospace; | ||
| 8 | \ No newline at end of file | 0 | \ No newline at end of file |
| @@ -0,0 +1,26 @@ | @@ -0,0 +1,26 @@ | ||
| 1 | +/** Override bootstrap variables **/ | ||
| 2 | +$baseFontSize: 13px !default; | ||
| 3 | +$baseLineHeight: 18px !default; | ||
| 4 | + | ||
| 5 | +// BOOTSTRAP | ||
| 6 | +@import "bootstrap"; | ||
| 7 | +@import "bootstrap/responsive-utilities"; | ||
| 8 | +@import "bootstrap/responsive-1200px-min"; | ||
| 9 | + | ||
| 10 | +@import "font-awesome"; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * GitLab bootstrap. | ||
| 14 | + * Overrides some styles of twitter bootstrap. | ||
| 15 | + * Also give some common classes for GitLab app | ||
| 16 | + */ | ||
| 17 | +@import "gitlab_bootstrap/variables.scss"; | ||
| 18 | +@import "gitlab_bootstrap/fonts.scss"; | ||
| 19 | +@import "gitlab_bootstrap/mixins.scss"; | ||
| 20 | +@import "gitlab_bootstrap/common.scss"; | ||
| 21 | +@import "gitlab_bootstrap/typography.scss"; | ||
| 22 | +@import "gitlab_bootstrap/buttons.scss"; | ||
| 23 | +@import "gitlab_bootstrap/blocks.scss"; | ||
| 24 | +@import "gitlab_bootstrap/files.scss"; | ||
| 25 | +@import "gitlab_bootstrap/tables.scss"; | ||
| 26 | +@import "gitlab_bootstrap/lists.scss"; |
| @@ -0,0 +1,7 @@ | @@ -0,0 +1,7 @@ | ||
| 1 | +@font-face{ | ||
| 2 | + font-family: Korolev; | ||
| 3 | + src: font-url('korolev-medium-compressed.otf'); | ||
| 4 | +} | ||
| 5 | + | ||
| 6 | +/** Typo **/ | ||
| 7 | +$monospace: 'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono', 'lucida console', monospace; | ||
| 0 | \ No newline at end of file | 8 | \ No newline at end of file |
| @@ -0,0 +1,69 @@ | @@ -0,0 +1,69 @@ | ||
| 1 | +/** | ||
| 2 | + * Generic mixins | ||
| 3 | + */ | ||
| 4 | + @mixin box-shadow($shadow) { | ||
| 5 | + -webkit-box-shadow: $shadow; | ||
| 6 | + -moz-box-shadow: $shadow; | ||
| 7 | + -ms-box-shadow: $shadow; | ||
| 8 | + -o-box-shadow: $shadow; | ||
| 9 | + box-shadow: $shadow; | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +@mixin border-radius($radius) { | ||
| 13 | + -webkit-border-radius: $radius; | ||
| 14 | + -moz-border-radius: $radius; | ||
| 15 | + -ms-border-radius: $radius; | ||
| 16 | + -o-border-radius: $radius; | ||
| 17 | + border-radius: $radius; | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +@mixin linear-gradient($from, $to) { | ||
| 21 | + background-image: -webkit-gradient(linear, 0 0, 0 100%, from($from), to($to)); | ||
| 22 | + background-image: -webkit-linear-gradient($from, $to); | ||
| 23 | + background-image: -moz-linear-gradient($from, $to); | ||
| 24 | + background-image: -o-linear-gradient($from, $to); | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +/** | ||
| 28 | + * Prefilled mixins | ||
| 29 | + * Mixins with fixed values | ||
| 30 | + */ | ||
| 31 | +@mixin bg-light-gray-gradient { | ||
| 32 | + background: #f1f1f1; | ||
| 33 | + background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #f5f5f5), to(#e1e1e1)); | ||
| 34 | + background-image: -webkit-linear-gradient(#f5f5f5 6.6%, #e1e1e1); | ||
| 35 | + background-image: -moz-linear-gradient(#f5f5f5 6.6%, #e1e1e1); | ||
| 36 | + background-image: -o-linear-gradient(#f5f5f5 6.6%, #e1e1e1); | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +@mixin bg-gray-gradient { | ||
| 40 | + background: #eee; | ||
| 41 | + background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #eee), to(#dfdfdf)); | ||
| 42 | + background-image: -webkit-linear-gradient(#eee 6.6%, #dfdfdf); | ||
| 43 | + background-image: -moz-linear-gradient(#eee 6.6%, #dfdfdf); | ||
| 44 | + background-image: -o-linear-gradient(#eee 6.6%, #dfdfdf); | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +@mixin bg-dark-gray-gradient { | ||
| 48 | + background: #eee; | ||
| 49 | + background-image: -webkit-linear-gradient(#e9e9e9, #d7d7d7); | ||
| 50 | + background-image: -moz-linear-gradient(#e9e9e9, #d7d7d7); | ||
| 51 | + background-image: -o-linear-gradient(#e9e9e9, #d7d7d7); | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +@mixin shade { | ||
| 55 | + @include box-shadow(0 0 3px #ddd); | ||
| 56 | +} | ||
| 57 | + | ||
| 58 | +@mixin solid-shade { | ||
| 59 | + @include box-shadow(0 0 0 3px #f1f1f1); | ||
| 60 | +} | ||
| 61 | + | ||
| 62 | +@mixin header-font { | ||
| 63 | + color: $style_color; | ||
| 64 | + text-shadow: 0 1px 1px #FFF; | ||
| 65 | + font-family: 'Korolev', sans-serif; | ||
| 66 | + font-size: 28px; | ||
| 67 | + line-height: 48px; | ||
| 68 | + font-weight: normal; | ||
| 69 | +} |
app/assets/stylesheets/main.scss
| @@ -1,141 +0,0 @@ | @@ -1,141 +0,0 @@ | ||
| 1 | -/** Override bootstrap variables **/ | ||
| 2 | -$baseFontSize: 13px !default; | ||
| 3 | -$baseLineHeight: 18px !default; | ||
| 4 | - | ||
| 5 | -// BOOTSTRAP | ||
| 6 | -@import "bootstrap"; | ||
| 7 | -@import "bootstrap/responsive-utilities"; | ||
| 8 | -@import "bootstrap/responsive-1200px-min"; | ||
| 9 | - | ||
| 10 | -// FONT AWESOME | ||
| 11 | -@import "font-awesome"; | ||
| 12 | - | ||
| 13 | -/** | ||
| 14 | - * Variables | ||
| 15 | - * Contains colors | ||
| 16 | - */ | ||
| 17 | -@import "variables.scss"; | ||
| 18 | - | ||
| 19 | -/** | ||
| 20 | - * Custom fonts | ||
| 21 | - * Contains @font-face font Korolev and default $monotype | ||
| 22 | - */ | ||
| 23 | -@import "fonts.scss"; | ||
| 24 | - | ||
| 25 | -/** | ||
| 26 | - * General mixins. | ||
| 27 | - * Contains rounded borders, gradients and shades | ||
| 28 | - */ | ||
| 29 | -@import "mixins.scss"; | ||
| 30 | - | ||
| 31 | -/** | ||
| 32 | - * Header of application. | ||
| 33 | - * Contain application logo, search panel, profile icon | ||
| 34 | - */ | ||
| 35 | -@import "sections/header.scss"; | ||
| 36 | - | ||
| 37 | -/** | ||
| 38 | - * Navigation menu of application. | ||
| 39 | - * Panel with links to pages depends on project, profile or admin area | ||
| 40 | - */ | ||
| 41 | -@import "sections/nav.scss"; | ||
| 42 | - | ||
| 43 | -/** | ||
| 44 | - * This file represent some UI that can be changed | ||
| 45 | - * during web app restyle or theme select. | ||
| 46 | - * | ||
| 47 | - * Next items should be placed there | ||
| 48 | - * - link, button colors | ||
| 49 | - * - header restyles | ||
| 50 | - * - main menu restyles | ||
| 51 | - * | ||
| 52 | - */ | ||
| 53 | -@import "themes/ui_basic.scss"; | ||
| 54 | - | ||
| 55 | -/** | ||
| 56 | - * UI themes: | ||
| 57 | - */ | ||
| 58 | -@import "themes/ui_mars.scss"; | ||
| 59 | -@import "themes/ui_modern.scss"; | ||
| 60 | -@import "themes/ui_gray.scss"; | ||
| 61 | -@import "themes/ui_color.scss"; | ||
| 62 | - | ||
| 63 | -/** | ||
| 64 | - * GitLab bootstrap. | ||
| 65 | - * Overrides some styles of twitter bootstrap. | ||
| 66 | - * Also give some common classes for GitLab app | ||
| 67 | - */ | ||
| 68 | -@import "gitlab_bootstrap/common.scss"; | ||
| 69 | -@import "gitlab_bootstrap/typography.scss"; | ||
| 70 | -@import "gitlab_bootstrap/buttons.scss"; | ||
| 71 | -@import "gitlab_bootstrap/blocks.scss"; | ||
| 72 | -@import "gitlab_bootstrap/files.scss"; | ||
| 73 | -@import "gitlab_bootstrap/tables.scss"; | ||
| 74 | -@import "gitlab_bootstrap/lists.scss"; | ||
| 75 | - | ||
| 76 | - | ||
| 77 | -/** | ||
| 78 | - * Most of application styles placed here. | ||
| 79 | - * This file represent common UI that should not be changed between themes | ||
| 80 | - * or project restyling like form width or user avatar class or commit title | ||
| 81 | - * | ||
| 82 | - * TODO: clean it | ||
| 83 | - */ | ||
| 84 | -@import "common.scss"; | ||
| 85 | - | ||
| 86 | -/** | ||
| 87 | - * Styles related to specific part of app | ||
| 88 | - */ | ||
| 89 | -@import "sections/commits.scss"; | ||
| 90 | -@import "sections/issues.scss"; | ||
| 91 | -@import "sections/projects.scss"; | ||
| 92 | -@import "sections/snippets.scss"; | ||
| 93 | -@import "sections/votes.scss"; | ||
| 94 | -@import "sections/merge_requests.scss"; | ||
| 95 | -@import "sections/graph.scss"; | ||
| 96 | -@import "sections/events.scss"; | ||
| 97 | -@import "sections/themes.scss"; | ||
| 98 | - | ||
| 99 | -/** | ||
| 100 | - * This scss file redefine chozen selectbox styles for | ||
| 101 | - * project Branch/Tag select element | ||
| 102 | - */ | ||
| 103 | -@import "ref_select.scss"; | ||
| 104 | - | ||
| 105 | -/** | ||
| 106 | - * Code (files list) styles. Browsing project files there | ||
| 107 | - */ | ||
| 108 | -@import "sections/tree.scss"; | ||
| 109 | - | ||
| 110 | -/** | ||
| 111 | - * This file represent notes(comments) styles | ||
| 112 | - */ | ||
| 113 | -@import "sections/notes.scss"; | ||
| 114 | - | ||
| 115 | -/** | ||
| 116 | - * This file represent profile styles | ||
| 117 | - */ | ||
| 118 | -@import "sections/profile.scss"; | ||
| 119 | - | ||
| 120 | -/** | ||
| 121 | - * Devise styles | ||
| 122 | - */ | ||
| 123 | -@import "sections/login.scss"; | ||
| 124 | - | ||
| 125 | -/** | ||
| 126 | - * CODE HIGHTLIGHT BASE | ||
| 127 | - * | ||
| 128 | - */ | ||
| 129 | -@import "highlight/white.scss"; | ||
| 130 | - | ||
| 131 | -/** | ||
| 132 | - * CODE HIGHTLIGHT DARK schema | ||
| 133 | - * | ||
| 134 | - */ | ||
| 135 | -@import "highlight/dark.scss"; | ||
| 136 | - | ||
| 137 | -/** | ||
| 138 | - * File Editor styles | ||
| 139 | - * | ||
| 140 | - */ | ||
| 141 | -@import "sections/editor.scss"; |
app/assets/stylesheets/mixins.scss
| @@ -1,69 +0,0 @@ | @@ -1,69 +0,0 @@ | ||
| 1 | -/** | ||
| 2 | - * Generic mixins | ||
| 3 | - */ | ||
| 4 | - @mixin box-shadow($shadow) { | ||
| 5 | - -webkit-box-shadow: $shadow; | ||
| 6 | - -moz-box-shadow: $shadow; | ||
| 7 | - -ms-box-shadow: $shadow; | ||
| 8 | - -o-box-shadow: $shadow; | ||
| 9 | - box-shadow: $shadow; | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -@mixin border-radius($radius) { | ||
| 13 | - -webkit-border-radius: $radius; | ||
| 14 | - -moz-border-radius: $radius; | ||
| 15 | - -ms-border-radius: $radius; | ||
| 16 | - -o-border-radius: $radius; | ||
| 17 | - border-radius: $radius; | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | -@mixin linear-gradient($from, $to) { | ||
| 21 | - background-image: -webkit-gradient(linear, 0 0, 0 100%, from($from), to($to)); | ||
| 22 | - background-image: -webkit-linear-gradient($from, $to); | ||
| 23 | - background-image: -moz-linear-gradient($from, $to); | ||
| 24 | - background-image: -o-linear-gradient($from, $to); | ||
| 25 | -} | ||
| 26 | - | ||
| 27 | -/** | ||
| 28 | - * Prefilled mixins | ||
| 29 | - * Mixins with fixed values | ||
| 30 | - */ | ||
| 31 | -@mixin bg-light-gray-gradient { | ||
| 32 | - background: #f1f1f1; | ||
| 33 | - background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #f5f5f5), to(#e1e1e1)); | ||
| 34 | - background-image: -webkit-linear-gradient(#f5f5f5 6.6%, #e1e1e1); | ||
| 35 | - background-image: -moz-linear-gradient(#f5f5f5 6.6%, #e1e1e1); | ||
| 36 | - background-image: -o-linear-gradient(#f5f5f5 6.6%, #e1e1e1); | ||
| 37 | -} | ||
| 38 | - | ||
| 39 | -@mixin bg-gray-gradient { | ||
| 40 | - background: #eee; | ||
| 41 | - background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #eee), to(#dfdfdf)); | ||
| 42 | - background-image: -webkit-linear-gradient(#eee 6.6%, #dfdfdf); | ||
| 43 | - background-image: -moz-linear-gradient(#eee 6.6%, #dfdfdf); | ||
| 44 | - background-image: -o-linear-gradient(#eee 6.6%, #dfdfdf); | ||
| 45 | -} | ||
| 46 | - | ||
| 47 | -@mixin bg-dark-gray-gradient { | ||
| 48 | - background: #eee; | ||
| 49 | - background-image: -webkit-linear-gradient(#e9e9e9, #d7d7d7); | ||
| 50 | - background-image: -moz-linear-gradient(#e9e9e9, #d7d7d7); | ||
| 51 | - background-image: -o-linear-gradient(#e9e9e9, #d7d7d7); | ||
| 52 | -} | ||
| 53 | - | ||
| 54 | -@mixin shade { | ||
| 55 | - @include box-shadow(0 0 3px #ddd); | ||
| 56 | -} | ||
| 57 | - | ||
| 58 | -@mixin solid-shade { | ||
| 59 | - @include box-shadow(0 0 0 3px #f1f1f1); | ||
| 60 | -} | ||
| 61 | - | ||
| 62 | -@mixin header-font { | ||
| 63 | - color: $style_color; | ||
| 64 | - text-shadow: 0 1px 1px #FFF; | ||
| 65 | - font-family: 'Korolev', sans-serif; | ||
| 66 | - font-size: 28px; | ||
| 67 | - line-height: 48px; | ||
| 68 | - font-weight: normal; | ||
| 69 | -} |
app/assets/stylesheets/themes/ui_basic.scss
| @@ -4,18 +4,6 @@ | @@ -4,18 +4,6 @@ | ||
| 4 | * | 4 | * |
| 5 | */ | 5 | */ |
| 6 | .ui_basic { | 6 | .ui_basic { |
| 7 | - /* | ||
| 8 | - * Common styles | ||
| 9 | - * | ||
| 10 | - */ | ||
| 11 | - a { | ||
| 12 | - color: $link_color; | ||
| 13 | - &:hover { | ||
| 14 | - text-decoration: none; | ||
| 15 | - color: $primary_color; | ||
| 16 | - } | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | .app_logo { | 7 | .app_logo { |
| 20 | .separator { | 8 | .separator { |
| 21 | margin-left: 0; | 9 | margin-left: 0; |