From c64df4e70db9739e6a89753c12c837c9942b0ac2 Mon Sep 17 00:00:00 2001 From: Luke Barratt Date: Sun, 11 May 2014 13:00:09 +0100 Subject: [PATCH] Merge in alternate CSS --- Gemfile | 2 +- Gemfile.lock | 4 +- .../themes/flat/layout/forum-bg-pattern.png | Bin 0 -> 7433 bytes .../flat/layout/forum-bg-pattern@2x.png | Bin 0 -> 8033 bytes .../flat/layout/forum-category-highlight.png | Bin 0 -> 5504 bytes .../themes/flat/layout/forum-category.png | Bin 0 -> 7325 bytes .../{ => themes/default}/errors.css.scss | 0 .../stylesheets/themes/flat/_variables.scss | 117 ++++++ .../themes/flat/components/_breadcrumbs.scss | 17 + .../themes/flat/components/_comments.scss | 115 ++++++ .../themes/flat/components/_flashes.scss | 65 ++++ .../themes/flat/components/_forms.scss | 321 +++++++++++++++++ .../themes/flat/components/_gather.scss | 191 ++++++++++ .../themes/flat/components/_lists.scss | 31 ++ .../themes/flat/components/_pagination.scss | 8 + .../themes/flat/components/_shoutbox.scss | 49 +++ .../themes/flat/components/_tables.scss | 53 +++ .../themes/flat/components/_tabs.scss | 76 ++++ .../stylesheets/themes/flat/errors.css.scss | 55 +++ .../stylesheets/themes/flat/layout/_body.scss | 129 +++++++ .../themes/flat/layout/_footer.scss | 65 ++++ .../themes/flat/layout/_hacks.scss | 9 + .../themes/flat/layout/_header.scss | 148 ++++++++ .../themes/flat/layout/_helpers.scss | 37 ++ .../themes/flat/layout/_navigation.scss | 194 ++++++++++ .../themes/flat/layout/_sidebar.scss | 95 +++++ .../themes/flat/layout/_typography.scss | 116 ++++++ .../themes/flat/mixins/_buttons.scss | 42 +++ .../themes/flat/mixins/_flashes.scss | 47 +++ .../stylesheets/themes/flat/pages/_bans.scss | 23 ++ .../themes/flat/pages/_categories.scss | 18 + .../themes/flat/pages/_contests.scss | 335 ++++++++++++++++++ .../stylesheets/themes/flat/pages/_files.scss | 90 +++++ .../themes/flat/pages/_forums.scss | 326 +++++++++++++++++ .../themes/flat/pages/_groups.scss | 57 +++ .../themes/flat/pages/_issues.scss | 32 ++ .../themes/flat/pages/_matches.scss | 326 +++++++++++++++++ .../stylesheets/themes/flat/pages/_news.scss | 197 ++++++++++ .../stylesheets/themes/flat/pages/_polls.scss | 52 +++ .../themes/flat/pages/_servers.scss | 51 +++ .../stylesheets/themes/flat/pages/_teams.scss | 108 ++++++ .../stylesheets/themes/flat/pages/_users.scss | 216 +++++++++++ .../stylesheets/themes/flat/theme.css.scss | 62 ++++ app/helpers/application_helper.rb | 2 +- app/views/application/_navigation.html.erb | 6 +- app/views/layouts/errors.html.erb | 4 +- app/views/matches/show.html.erb | 2 +- app/views/posts/_form.html.erb | 2 +- app/views/widgets/_logged.html.erb | 4 +- config/application.rb | 2 +- 50 files changed, 3888 insertions(+), 13 deletions(-) create mode 100644 app/assets/images/themes/flat/layout/forum-bg-pattern.png create mode 100644 app/assets/images/themes/flat/layout/forum-bg-pattern@2x.png create mode 100644 app/assets/images/themes/flat/layout/forum-category-highlight.png create mode 100644 app/assets/images/themes/flat/layout/forum-category.png rename app/assets/stylesheets/{ => themes/default}/errors.css.scss (100%) create mode 100644 app/assets/stylesheets/themes/flat/_variables.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_breadcrumbs.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_comments.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_flashes.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_forms.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_gather.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_lists.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_pagination.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_shoutbox.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_tables.scss create mode 100644 app/assets/stylesheets/themes/flat/components/_tabs.scss create mode 100644 app/assets/stylesheets/themes/flat/errors.css.scss create mode 100644 app/assets/stylesheets/themes/flat/layout/_body.scss create mode 100644 app/assets/stylesheets/themes/flat/layout/_footer.scss create mode 100644 app/assets/stylesheets/themes/flat/layout/_hacks.scss create mode 100644 app/assets/stylesheets/themes/flat/layout/_header.scss create mode 100644 app/assets/stylesheets/themes/flat/layout/_helpers.scss create mode 100644 app/assets/stylesheets/themes/flat/layout/_navigation.scss create mode 100644 app/assets/stylesheets/themes/flat/layout/_sidebar.scss create mode 100644 app/assets/stylesheets/themes/flat/layout/_typography.scss create mode 100644 app/assets/stylesheets/themes/flat/mixins/_buttons.scss create mode 100644 app/assets/stylesheets/themes/flat/mixins/_flashes.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_bans.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_categories.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_contests.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_files.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_forums.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_groups.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_issues.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_matches.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_news.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_polls.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_servers.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_teams.scss create mode 100644 app/assets/stylesheets/themes/flat/pages/_users.scss create mode 100644 app/assets/stylesheets/themes/flat/theme.css.scss diff --git a/Gemfile b/Gemfile index e5f811a..ce9f29f 100644 --- a/Gemfile +++ b/Gemfile @@ -32,7 +32,7 @@ gem 'tinymce-rails', '~> 3.5.9' gem 'sass', '~> 3.3.4' gem 'sass-rails', '~> 3.2.6' -gem 'font-awesome-sass', '~> 4.0.3.1' +gem 'font-awesome-sass', '~> 4.1.0.0' gem 'bourbon', '~> 3.1.8' gem 'neat', '~> 1.6.0' gem 'haml' diff --git a/Gemfile.lock b/Gemfile.lock index 91e8fde..39ff4d7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -111,7 +111,7 @@ GEM faraday (0.9.0) multipart-post (>= 1.2, < 3) ffi (1.9.3) - font-awesome-sass (4.0.3.1) + font-awesome-sass (4.1.0) sass (~> 3.2) gruff (0.3.7) haml (4.0.5) @@ -277,7 +277,7 @@ DEPENDENCIES exceptional (~> 2.0.33) factory_girl_rails (~> 4.4.1) faraday (~> 0.9.0) - font-awesome-sass (~> 4.0.3.1) + font-awesome-sass (~> 4.1.0.0) gruff (~> 0.3.6) haml jquery-rails (~> 2.0.2) diff --git a/app/assets/images/themes/flat/layout/forum-bg-pattern.png b/app/assets/images/themes/flat/layout/forum-bg-pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0f1718741ad73f21351561bf62f4586c24bc44 GIT binary patch literal 7433 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 Hu0mjfYt7nh literal 0 HcmV?d00001 diff --git a/app/assets/images/themes/flat/layout/forum-bg-pattern@2x.png b/app/assets/images/themes/flat/layout/forum-bg-pattern@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cad04a3d842d9bd78ae118acb8dbc40afb253561 GIT binary patch literal 8033 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/themes/flat/layout/forum-category-highlight.png b/app/assets/images/themes/flat/layout/forum-category-highlight.png new file mode 100644 index 0000000000000000000000000000000000000000..0d00675119a7860eee3a7c30a5f838c1149b6965 GIT binary patch literal 5504 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/themes/flat/layout/forum-category.png b/app/assets/images/themes/flat/layout/forum-category.png new file mode 100644 index 0000000000000000000000000000000000000000..61f4eaacd0b496270ba714683cfeab35da122d23 GIT binary patch literal 7325 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 img { + width: $comment-image-width; + height: auto; + border-radius: $base-border-radius; + padding: $comment-image-padding; + background: $comment-background; + display: block; + max-width: none; + } + + .comment-reverse-order & { + padding-right: 0; + padding-left: 10px; + } + } + + .comment-content { + width: 100%; + position: relative; + + h1 { + font-size: 1em; + margin-bottom: .5em; + } + + a.user, + a.team { + display: inline-block; + } + + a.user { + margin-right: 10px; + } + + a.team { + margin-left: 10px; + } + + p { + margin-bottom: .5em; + } + + p.comment-detail { + font-style: italic; + font-size: .9em; + color: $comment-detail-color; + margin-top: 10px; + } + + .controls { + position: absolute; + top: - 5px; + right: 0; + } + } +} + +/* + Comment Form +*/ + +.comment-form { + @include span-columns(12); + margin-bottom: 20px; + + h1, + h5 { + margin-top: 0; + margin-bottom: 1em; + } + + .fields { + margin-bottom: 20px; + } +} diff --git a/app/assets/stylesheets/themes/flat/components/_flashes.scss b/app/assets/stylesheets/themes/flat/components/_flashes.scss new file mode 100644 index 0000000..8729f09 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/components/_flashes.scss @@ -0,0 +1,65 @@ +/* + Flash Messages +*/ + +.flash { + @include span-columns(12); + margin-bottom: 20px; + font-weight: 600; + + &.notice { + @include flash; + } + + &.success { + @include flash($flash-success); + + &:before { + content: "\f00c"; + } + } + + &.error { + @include flash($flash-error); + + &:before { + content: "\f00d"; + } + } + + &.warning, + &.alert { + @include flash($flash-warning); + + &:before { + content: "\f071"; + } + } +} + +/* + Error Messages +*/ + +div#errors { + @extend .flash.error; + @include span-columns(12); + margin-bottom: 20px; + + strong { + @include span-columns(12); + margin-bottom: 10px; + } + + ul.errors { + @include span-columns(12); + + li { + margin-bottom: 0; + + &:last-child { + margin-bottom: 0; + } + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/components/_forms.scss b/app/assets/stylesheets/themes/flat/components/_forms.scss new file mode 100644 index 0000000..4c70a55 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/components/_forms.scss @@ -0,0 +1,321 @@ +/* + Forms +*/ + +$input-height: 35px; + +form { + + .inline { + float: left; + display: inline-block; + width: auto; + margin-bottom: 20px; + + input { + margin-bottom: 0; + } + } + + .fields { + > .field_with_errors:first-child, + > label { + padding: 9px 0; + line-height: $input-font-size; + } + + > .field_with_errors { + + input, + input[type=text], + textarea { + border: $input-border-width solid $flash-error; + + &:hover, + &:focus { + border-color: $flash-error; + } + + &:focus { + color: $input-text; + } + } + } + + .select-wrapper { + $select-padding: 6px; + $select-height: $input-height - 4px; + + border-radius: $input-border-radius; + background-color: $input-primary; + border: $input-border-colour solid $input-border-width; + position: relative; + display: inline-block; + margin-right: 10px; + float: left; + max-width: 100%; + + select { + @include appearance(none); + font-size: $input-font-size; + font-family: $open-sans; + float: left; + display: block; + width: auto; + position: relative; + line-height: $select-height/2 + 4px; + vertical-align: middle; + max-height: $select-height; + margin-left: 0; + border: 0; + margin: 0; + padding: $select-padding ($select-height + 10) $select-padding $input-padding; + font-size: $input-font-size; + max-width: 100%; + + option { + font-size: $input-font-size; + } + + &:focus { + outline: none; + } + } + + &:after { + font-family: $fontawesome; + pointer-events: none; + content: $fa-var-chevron-down; + font-weight: normal; + font-style: normal; + position: absolute; + top: 0; + right: 0; + text-align: center; + padding-top: 6px; + width: $select-height; + height: $select-height - 4px; + border-left: $input-border-width solid $input-border-colour; + color: $input-border-colour; + } + + &:hover { + border: $input-border-width solid lighten($input-secondary, 20%); + + &:after { + border-left: $input-border-width solid lighten($input-secondary, 20%); + color: $base-font-color; + } + } + + &:focus { + border: $input-border-width solid $input-secondary; + color: $input-secondary; + } + } + + input[type=text], + input[type=password], + input[type=email], + textarea { + border-radius: $input-border-radius; + background-color: $input-primary; + color: $input-text; + font-size: $input-font-size; + padding: 0 $input-padding; + height: $input-height; + border: $input-border-colour solid $input-border-width; + + &:hover { + border: $input-border-width solid lighten($input-secondary, 20%); + } + + &:focus { + border: $input-border-width solid $input-secondary; + outline: none; + } + + &[disabled] { + + &:hover { + border-color: $input-border-colour; + cursor: not-allowed; + } + } + } + + textarea { + padding: $input-padding; + font-family: $open-sans; + } + + .inputs label.checkbox, + > label.checkbox { + position: relative; + width: $input-height; + height: $input-height; + overflow: hidden; + + &:before { + @include box-sizing(border-box); + content: ""; + display: block; + border-radius: $input-border-radius; + width: $input-height; + height: $input-height; + padding: $input-padding; + background-color: $input-primary; + border: $input-border-colour solid $input-border-width; + margin: 0; + } + + &:hover { + + &:before { + border: $input-border-width solid lighten($input-secondary, 20%); + } + } + } + + input[type=checkbox] { + display: none; + + &:checked { + + & + label.checkbox:before { + content: $fa-var-check; + pointer-events: none; + font-family: $fontawesome; + font-weight: normal; + font-style: normal; + color: $light-blue; + } + } + } + + textarea { + height: auto; + width: 100%; + } + } + + .controls { + margin-bottom: 20px; + + button, + input[type=submit] { + @include button($button-primary); + border-radius: $input-border-radius; + border: $input-border-width solid $button-primary; + margin-bottom: 0; + line-height: 30px; + outline: none; + } + } +} + +form.square { + @include span-columns(12); + margin: 20px 0; + + .horizontal { + @include span-columns(12); + margin-bottom: 20px; + + &.small { + @include span-columns(6); + } + + &.medium { + @include span-columns(9); + } + + &.large { + @include span-columns(12); + } + + > .field_with_errors:first-child, + > label, + > .label { + @include span-columns(3); + padding: 9px 0; + line-height: $input-font-size; + + &.checkbox { + width: $input-height; + padding: 0; + } + } + + input[type=text], + input[type=password], + input[type=email], + textarea { + @include span-columns(9); + } + + .inputs { + @include span-columns(9); + + input[type=text], + input[type=password], + input[type=email] { + width: 100%; + } + } + + &.wide { + + > .field_with_errors { + width: 100%; + } + + label { + width: 100%; + } + + textarea, + .mceLayout { + width: 100%; + } + } + } + + .controls { + @include span-columns(9); + @include shift(3); + font-weight: 400; + + &.inline { + margin-left: 0; + width: auto; + } + + input[type=submit], + button { + font-weight: 400; + } + } +} + +form.search { + margin-bottom: 10px; + + .query { + @include span-columns(7 of 9); + + input { + width: 100%; + } + } + + .controls { + @include span-columns(2 of 9); + @include shift(0); + @include omega; + + input { + width: 100%; + } + } +} diff --git a/app/assets/stylesheets/themes/flat/components/_gather.scss b/app/assets/stylesheets/themes/flat/components/_gather.scss new file mode 100644 index 0000000..94684e0 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/components/_gather.scss @@ -0,0 +1,191 @@ +/* + Gather Page +*/ + +#gather { + @include span-columns(12); + + .previous a, + .next a { + display: inline-block; + float: none; + margin: 0; + + i { + vertical-align: middle; + } + } + + .previous { + @include span-columns(6); + margin-bottom: $container-padding; + + i { + margin-right: 10px; + } + } + + .next { + @include span-columns(6); + @include omega; + text-align: right; + + i { + margin-left: 10px; + } + } + + .shoutbox-messages { + @include span-columns(12); + + .timestamp { + margin: 0 5px 5px; + } + } + + .new-shout { + @include span-columns(12); + margin: 20px 0; + + .shout_input { + width: 400px; + margin-right: 20px; + } + + .fields, + .controls { + float: left; + display: block; + } + } +} + +#gather-info { + @include span-columns(12); + margin: 20px 0; + border-bottom: 2px solid $light-gray; + + .info { + @include span-columns(4); + + h6 { + margin-bottom: 10px; + } + + &:nth-child(3) { + @include omega; + } + } + + ul { + list-style-type: disc; + + li { + margin-left: 20px; + } + } + + .hide { + @include span-columns(12); + padding: 20px 0; + text-align: center; + + a { + display: inline-block; + float: none; + + i { + margin-right: 10px; + } + } + } +} + +#gather-area { + @include span-columns(12); + + $column-border-width: 10px; + $column-border-radius: 5px; + + .gather-columns { + @include span-columns(12); + @include row(table); + margin-left: - $column-border-width; + width: $max-width - ($column-border-width*2); + } + + .data { + @include span-columns(4); + @include pad; + border-radius: $column-border-width + $column-border-radius; + padding-bottom: 20px; + background: lighten($light-gray, 5%); + padding: 20px; + border: $column-border-width solid white; + + h4 { + padding-bottom: 20px; + text-align: center; + } + + &:nth-child(3) { + @include reset-display; + @include omega; + } + + ul { + margin-bottom: 10px; + } + } + + .players { + + .captain { + color: $gold; + margin: 0 10px; + } + + .delete { + display: inline-block; + padding: 0 10px; + } + } +} + +#gather-stats { + @include span-columns(12); + display: block; + clear: both; + padding: 20px 0; + margin: 20px 0; + border-top: 2px solid $light-gray; + border-bottom: 2px solid $light-gray; + position: relative; + + .admin { + top: 20px; + right: 0; + margin: 0; + position: absolute; + } + + p { + @include clearfix; + } +} + +/* + Gather Archive +*/ + +table.gathers { + + .date { + width: 30%; + } + + .team1, + .team2 { + width: 35%; + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/components/_lists.scss b/app/assets/stylesheets/themes/flat/components/_lists.scss new file mode 100644 index 0000000..370267a --- /dev/null +++ b/app/assets/stylesheets/themes/flat/components/_lists.scss @@ -0,0 +1,31 @@ +ul, ol { + margin: 0; + padding: 0; + list-style-type: none; + + &%default-ul { + list-style-type: disc; + margin-bottom: $base-line-height / 2; + padding-left: $base-line-height; + } + + &%default-ol { + list-style-type: decimal; + margin-bottom: $base-line-height / 2; + padding-left: $base-line-height; + } +} + +dl { + line-height: $base-line-height; + margin-bottom: $base-line-height / 2; + + dt { + font-weight: bold; + margin-top: $base-line-height / 2; + } + + dd { + margin: 0; + } +} diff --git a/app/assets/stylesheets/themes/flat/components/_pagination.scss b/app/assets/stylesheets/themes/flat/components/_pagination.scss new file mode 100644 index 0000000..da205a7 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/components/_pagination.scss @@ -0,0 +1,8 @@ +/* + Pagination +*/ + +.pagination { + @include span-columns(12); + margin: 10px 0; +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/components/_shoutbox.scss b/app/assets/stylesheets/themes/flat/components/_shoutbox.scss new file mode 100644 index 0000000..b749092 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/components/_shoutbox.scss @@ -0,0 +1,49 @@ +/* + Shoutbox Messages +*/ + +#shoutbox { + display: table; +} + +.shoutmsg { + display: table-row; + margin-bottom: 5px; + clear: both; + position: relative; + + .destroy { + position: absolute; + top: 0; + right: -10px; + } + + .user { + display: table-cell; + min-width: 30%; + + .username { + clear: right; + display: block; + } + + .time { + clear: left; + display: block; + color: #5a5a5a; + } + } + + .message { + max-width: 66%; + display: table-cell; + + .contents { + word-wrap: break-word; + word-break: break-all; + position: relative; + display: block; + padding: 0 10px; + } + } +} diff --git a/app/assets/stylesheets/themes/flat/components/_tables.scss b/app/assets/stylesheets/themes/flat/components/_tables.scss new file mode 100644 index 0000000..d7592ca --- /dev/null +++ b/app/assets/stylesheets/themes/flat/components/_tables.scss @@ -0,0 +1,53 @@ +/* + Generic Tables +*/ + +table { + border-collapse: collapse; + margin: ($base-line-height / 2) 0; + table-layout: fixed; + width: 100%; +} + +th { + border-bottom: 1px solid darken($base-border-color, 15%); + font-weight: bold; + padding: 0.5em 0; + text-align: left; +} + +td { + border-bottom: 1px solid $base-border-color; + padding: 0.5em 0; +} + +tr, td, th { + vertical-align: middle; +} + +/* + Striped Tables +*/ + +table.striped > tbody, +table.striped > thead { + > tr { + td:first-child, + th:first-child { + padding-left: ($base-line-height / 2); + } + + td:last-child, + th:last-child { + padding-right: ($base-line-height / 2); + } + } + + > tr:nth-child(2n) td { + background-color: transparentize($light-blue, 0.9); + } + + .actions { + text-align: right; + } +} diff --git a/app/assets/stylesheets/themes/flat/components/_tabs.scss b/app/assets/stylesheets/themes/flat/components/_tabs.scss new file mode 100644 index 0000000..51b6041 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/components/_tabs.scss @@ -0,0 +1,76 @@ +/* + Tabs +*/ + +.tabbed { + $tabs-border-width: 1px; + $tabs-border-colour: $light-blue; + $tabs-padding-horizontal: 16px; + $tabs-height: 35px; + + ul.tabs { + @include span-columns(12); + display: block; + font-family: $montserrat; + height: $tabs-height; + max-height: $tabs-height; + position: relative; + + li { + float: left; + display: block; + + a { + @include linear-gradient($blue, $dark-blue); + background-color: $blue; + border: $tabs-border-width solid $tabs-border-colour; + border-right: 0; + padding: 0 $tabs-padding-horizontal; + float: left; + display: block; + color: white; + font-weight: 400; + line-height: $tabs-height; + + &:hover { + cursor: pointer; + } + } + + &:first-child a { + border-radius: $base-border-radius 0 0 0; + } + + &:last-child a { + border-right: $tabs-border-width solid $tabs-border-colour; + border-radius: 0 $base-border-radius 0 0; + } + + &.activeli { + z-index: 100; + + a { + @include linear-gradient($light-blue, $blue); + background-color: $light-blue; + } + } + } + } + + .tabbed-contents { + @include span-columns(12); + border: $tabs-border-width solid $tabs-border-colour; + border-radius: 0 $base-border-radius $base-border-radius $base-border-radius; + background: lighten($light-gray, 10%); + box-shadow: $light-shadow; + padding: 20px; + } + + @for $i from 1 through $grid-columns { + ul.tabs-#{$i} { + li { + @include span-columns($i); + } + } + } +} diff --git a/app/assets/stylesheets/themes/flat/errors.css.scss b/app/assets/stylesheets/themes/flat/errors.css.scss new file mode 100644 index 0000000..07c3490 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/errors.css.scss @@ -0,0 +1,55 @@ +/* + Libraries & Configuration +*/ + +@import "bourbon"; +@import "variables"; +@import "neat"; +@import "neat-helpers"; + +/* + Layout +*/ + +@import "layout/body"; +@import "layout/typography"; + +/* + Error Page +*/ + +html, +body { + height: 100%; +} + +html { + @include linear-gradient($dark-blue, $deep-blue); +} + +body { + color: white; + background: transparent; +} + +#error { + display: table; + height: 100%; + margin: 0 auto; + max-width: 60%; + width: 90%; + text-align: center; + text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.75); + + #code h1 { + font-size: 48px; + margin: 1em 0; + } + + .message { + padding-top: 50px; + display: table-cell; + vertical-align: middle; + padding-bottom: 100px; + } +} diff --git a/app/assets/stylesheets/themes/flat/layout/_body.scss b/app/assets/stylesheets/themes/flat/layout/_body.scss new file mode 100644 index 0000000..1673c1b --- /dev/null +++ b/app/assets/stylesheets/themes/flat/layout/_body.scss @@ -0,0 +1,129 @@ +/* + Main Containers +*/ + +$container-padding: 1.7em; + +html, +body { + margin: 0; + padding: 0; + width: 100%; + min-height: 100%; +} + +body#tinymce { + padding: 10px; +} + +#container { + min-height: 100%; + @include background-image(linear-gradient($deep-blue 0px, $dark-blue 500px)); +} + +.wrapper { + @include outer-container; +} + +#content { + @include span-columns(12); + padding: $container-padding 0; + + &.full { + box-shadow: $content-shadow; + padding: $container-padding; + background: $content-color; + border-radius: $base-border-radius; + margin: $container-padding 0; + } + + &.no-body { + &.full { + background: transparent; + box-shadow: none; + padding: $container-padding 0; + } + + #main { + box-shadow: none; + border-radius: 0; + background: transparent; + padding: 0; + } + } +} + +#forums { + @include span-columns(12); +} + +#main { + @include span-columns(9 of 12); + border-radius: $base-border-radius; + box-shadow: $content-shadow; + background: $content-color; + padding: 20px; +} + +#sidebar { + @include span-columns(3 of 12); + @include omega(); +} + +/* + Heading styles +*/ + +h1, h2, h3, h4, h5, h6 { + + &.title { + margin-bottom: 1em; + } + + &.fancy { + clear: both; + text-align: center; + position: relative; + background-color: $content-color; + + &:before { + content: ""; + display: block; + border-top: 2px solid $medium-gray; + width: 100%; + height: 2px; + position: absolute; + top: 50%; + z-index: 1; + } + + span { + background: inherit; + padding: 0 .5em; + position: relative; + display: inline-block; + z-index: 1; + } + } +} + +/* + Text +*/ + +#main { + ul.disc, + ol { + list-style-type: disc; + margin: 20px 0; + + li { + margin-left: 40px; + display: list-item; + } + } + + ol { + list-style-type: decimal; + } +} diff --git a/app/assets/stylesheets/themes/flat/layout/_footer.scss b/app/assets/stylesheets/themes/flat/layout/_footer.scss new file mode 100644 index 0000000..45ca04b --- /dev/null +++ b/app/assets/stylesheets/themes/flat/layout/_footer.scss @@ -0,0 +1,65 @@ +.footer { + $footer-background: $dark-gray; + $footer-color: white; + $footer-link-color: transparentize($footer-color, .6); + $footer-disclaimer-color: transparentize($footer-color, .6); + + background: $footer-background; + + .content { + padding: $container-padding*2 0; + } + + .footer-links { + @include clearfix; + margin-bottom: $base-line-height; + } + + ul { + margin-bottom: $base-line-height*2; + + @include media($medium-screen) { + @include span-columns(3); + @include omega(4n); + @include clearfix; + } + } + + li { + text-align: center; + + @include media($medium-screen) { + text-align: center; + } + } + + li a { + color: $footer-link-color; + + &:hover { + color: transparentize($footer-color, 0); + } + } + + li h3 { + color: $footer-color; + font-size: 1em; + font-weight: 800; + margin-bottom: .4em; + } + + hr { + border: 1px solid transparentize($footer-disclaimer-color, .3); + margin: 0 auto $base-line-height; + width: 12em; + } + + p { + color: $footer-disclaimer-color; + font-size: .9em; + line-height: 1.5em; + margin: auto; + max-width: 35em; + text-align: center; + } +} diff --git a/app/assets/stylesheets/themes/flat/layout/_hacks.scss b/app/assets/stylesheets/themes/flat/layout/_hacks.scss new file mode 100644 index 0000000..ca49d1e --- /dev/null +++ b/app/assets/stylesheets/themes/flat/layout/_hacks.scss @@ -0,0 +1,9 @@ +/* + Firefox select hacks +*/ + +select { + -moz-appearance: none; + text-indent: 0.01px; + text-overflow: ''; +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/layout/_header.scss b/app/assets/stylesheets/themes/flat/layout/_header.scss new file mode 100644 index 0000000..1a3b49e --- /dev/null +++ b/app/assets/stylesheets/themes/flat/layout/_header.scss @@ -0,0 +1,148 @@ +/* + Banner +*/ + +header .banner { + height: 140px; + + #logo { + @include span-columns(9 of 12); + min-height: 200px; + position: relative; + + img { + height: 200px; + position: absolute; + top: 15px; + left: -40px; + z-index: 1; + } + } + + #authentication { + @include span-columns(5 of 12); + @include shift(7); + padding: 10px 0; + color: white; + position: relative; + + .logged { + padding-top: 10px; + } + + form.dark { + @include span-columns(12); + margin-top: 20px; + } + + .buttons { + @include span-columns(12); + + .login, + .register { + @include span-columns(6); + } + + .login { + input { + @include button; + float: right; + margin-right: 0; + } + } + + .register { + @include omega; + } + } + + .register a { + display: block; + float: right; + clear: both; + } + + a { + color: white; + + &:hover { + color: $light-blue; + } + } + + form { + display: inline; + } + + &.admin { + + } + + .fields { + @include span-columns(12); + + input { + @include span-columns(6); + margin-bottom: 10px; + } + } + + .controls { + margin-top: 10px; + text-align: right; + + input { + @include span-columns(12); + margin-bottom: 10px; + } + + a { + @include span-columns(12); + text-align: left; + } + } + + .password-reset { + float: right; + } + + .links { + position: absolute; + right: 0; + padding-right: 105px; + + li { + text-align: right; + } + + li i { + display: inline-block; + width: 1em; + text-align: center; + margin: 0 10px; + } + } + + .avatar { + box-shadow: $content-shadow; + border-radius: $base-border-radius; + border: 2px solid $blue; + width: 100px; + height: 100px; + float: right; + background: { + size: cover; + position: center; + repeat: no-repeat; + } + } + } + + &.authenticated { + + #authentication { + @include span-columns(3 of 12); + @include shift(9); + } + } +} diff --git a/app/assets/stylesheets/themes/flat/layout/_helpers.scss b/app/assets/stylesheets/themes/flat/layout/_helpers.scss new file mode 100644 index 0000000..3a007d8 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/layout/_helpers.scss @@ -0,0 +1,37 @@ +/* + Global Helpers +*/ + +img.flag { + display: inline-block; + vertical-align: - 6px; + margin-right: 10px; +} + +.actions-bottom { + @include span-columns(12); + margin-top: 20px; +} + +fieldset { + border: 2px solid $light-gray; + + > br:first-child, + > br:last-child { + display: none; + } + + legend { + padding: 0 10px; + + &+br { + display: none; + } + } + + blockquote { + border: 0; + padding: 0; + margin: 0; + } +} diff --git a/app/assets/stylesheets/themes/flat/layout/_navigation.scss b/app/assets/stylesheets/themes/flat/layout/_navigation.scss new file mode 100644 index 0000000..5a1ee0f --- /dev/null +++ b/app/assets/stylesheets/themes/flat/layout/_navigation.scss @@ -0,0 +1,194 @@ +/* + Navigation +*/ + +$navigation-height: 50px; + +#menu { + @include span-columns(12); + font-family: $montserrat; + height: $navigation-height; + + #logo { + position: absolute; + top: 20px; + margin-left: -60px; + } +} + +ul.navigation { + border-radius: $base-border-radius; + z-index: 100; + position: relative; + margin: 0; + padding: 0; + list-style: none; + float: right; + background-color: $light-blue; + max-width: $max-width; + max-height: $navigation-height; + + > li { + float: left; + border-right: 1px solid $dark-blue; + + &:first-child a { + border-radius: $base-border-radius 0 0 $base-border-radius; + } + + &:last-child { + border-right: 0; + + a { + border-radius: 0 $base-border-radius $base-border-radius 0; + } + } + + .count { + position: absolute; + top: 16px; + right: 12px; + border-radius: $base-border-radius; + background-color: $light-blue; + display: inline-block; + color: white; + line-height: 18px; + padding: 0 4px; + font-size: 12px; + font-weight: bold; + } + + a { + font-weight: 400; + font-size: 15px; + height: $navigation-height; + line-height: $navigation-height; + padding: 0 50px 0 20px; + } + + > a { + width: 100%; + color: white; + float: left; + position: relative; + background-color: $navbar-primary; + + &:hover, + &.active { + background-color: $navbar-secondary; + + .count { + background-color: lighten($light-blue, 20); + } + } + + &.gathers { + padding-right: 65px; + } + } + + &.icon { + + a:after { + @extend .fa; + content: ''; + display: block; + position: absolute; + right: 20px; + top: 0; + line-height: 50px; + font-size: 14px; + } + + a { + &.news:after { + content: $fa-var-list-alt; + } + + &.contests:after { + content: $fa-var-trophy; + } + + &.articles:after { + content: $fa-var-file-text-o; + } + + &.forums:after { + content: $fa-var-comments-o; + } + + &.teams:after { + content: $fa-var-users; + } + + &.users:after { + content: $fa-var-user; + } + } + + i { + color: white; + max-height: $navigation-height; + position: absolute; + top: 0; + right: 0; + font-size: 18px; + line-height: 1em; + padding: $navigation-height/3; + } + } + + &.dropdown { + position: relative; + + ul { + position: absolute; + box-shadow: $content-shadow; + visibility: hidden; + pointer-events: none; + opacity: 0; + z-index: 10; + top: $navigation-height; + left: 0; + min-width: 100%; + background-color: $navbar-primary; + list-style: none; + padding: 0; + margin: 0; + } + + &:hover { + + ul { + visibility: visible; + opacity: 1; + pointer-events: auto; + + + li { + border-bottom: 1px solid $navbar-secondary; + + &:first-child { + border-top: 1px solid $navbar-secondary; + } + + &:last-child { + border-bottom: none; + } + + a { + white-space: nowrap; + display: block; + color: $navbar-text; + padding: 0 20px; + } + + &:hover a { + background: $light-blue; + } + } + } + } + } + } +} diff --git a/app/assets/stylesheets/themes/flat/layout/_sidebar.scss b/app/assets/stylesheets/themes/flat/layout/_sidebar.scss new file mode 100644 index 0000000..6123e5e --- /dev/null +++ b/app/assets/stylesheets/themes/flat/layout/_sidebar.scss @@ -0,0 +1,95 @@ +#sidebar { + + .widget { + @include span-columns(12); + @include omega; + background: #0d0f10; + margin-bottom: $container-padding; + padding: 20px; + border-radius: $base-border-radius; + box-shadow: $light-shadow; + margin-bottom: $container-padding; + color: white; + + h4 { + @include span-columns(12); + margin-bottom: 20px; + color: $light-blue; + } + + .widget-content-wrapper { + @include span-columns(12); + font-size: 12px; + } + + .separator { + color: white; + background: $dark-gray; + padding: 0 20px; + margin: 0 -20px; + margin-bottom: 12px; + font-weight: 600; + line-height: 35px; + + a { + color: white; + float: right; + } + } + + &:last-child { + margin-bottom: 0; + } + } + + .calendar { + .time { + color: lighten($medium-gray, 20%); + float: right; + margin-left: 10px; + } + } + + .shoutbox { + .transcript { + margin-bottom: 20px; + } + + input { + @include span-columns(12); + margin-bottom: 10px; + } + } + + .highlights, + .posts { + ol { + margin-bottom: 20px; + + &:last-child { + margin-bottom: 0; + } + } + } + + .poll { + .question { + @include span-columns(12); + margin-bottom: 20px; + + h5 { + margin-bottom: 1em; + } + } + + .bar { + display: block; + background: $blue; + height: 10px; + } + + .button { + margin-bottom: 0; + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/layout/_typography.scss b/app/assets/stylesheets/themes/flat/layout/_typography.scss new file mode 100644 index 0000000..a9490e8 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/layout/_typography.scss @@ -0,0 +1,116 @@ +/* + Typography +*/ + +@import url(http://fonts.googleapis.com/css?family=Montserrat:400,700); +@import url(http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,400,300,600,700); + +body { + color: $base-font-color; + font-family: $base-font-family; + font-size: $base-font-size; + -webkit-font-smoothing: antialiased; + line-height: $base-line-height; +} + +h1, h2, h3, h4, h5, h6 { + font-family: $header-font-family; + line-height: 1.25em; + margin: 0; + text-rendering: optimizeLegibility; // Fix the character spacing for headings + + a { + color: $dark-blue; + } +} + +h1 { + font-size: $base-font-size * 2.25; // 16 * 2.25 = 36px +} + +h2 { + font-size: $base-font-size * 2; // 16 * 2 = 32px +} + +h3 { + font-size: $base-font-size * 1.75; // 16 * 1.75 = 28px +} + +h4 { + font-size: $base-font-size * 1.5; // 16 * 1.5 = 24px +} + +h5 { + font-size: $base-font-size * 1.25; // 16 * 1.25 = 20px +} + +h6 { + font-size: $base-font-size; +} + +p { + margin: 0 0 ($base-line-height * .5); +} + +a { + color: $base-link-color; + text-decoration: none; + font-weight: 600; + @include transition(color 0.1s linear); + + &:hover { + color: $hover-link-color; + } + + &:active, &:focus { + color: $hover-link-color; + outline: none; + } +} + +hr { + border-bottom: 1px solid $base-border-color; + border-left: none; + border-right: none; + border-top: none; + margin: $base-line-height 0; +} + +img { + margin: 0; + max-width: 100%; +} + +abbr, acronym { + border-bottom: 1px dotted $base-border-color; + cursor: help; +} + +address { + display: block; + margin: 0 0 ($base-line-height / 2); +} + +hgroup { + margin-bottom: $base-line-height / 2; +} + +del { + color: lighten($base-font-color, 15); +} + +blockquote { + border-left: 2px solid $base-border-color; + color: lighten($base-font-color, 15); + margin: $base-line-height 0; + padding-left: $base-line-height / 2; +} + +cite { + color: lighten($base-font-color, 25); + font-style: italic; + + &:before { + content: '\2014 \00A0'; + } +} diff --git a/app/assets/stylesheets/themes/flat/mixins/_buttons.scss b/app/assets/stylesheets/themes/flat/mixins/_buttons.scss new file mode 100644 index 0000000..9436b1f --- /dev/null +++ b/app/assets/stylesheets/themes/flat/mixins/_buttons.scss @@ -0,0 +1,42 @@ +/* + Buttons +*/ + +@mixin button($background: $button-primary, $text: $button-text) { + $button-height: 35px; + + @include linear-gradient($blue, $dark-blue); + border-radius: $base-border-radius; + font-family: $montserrat; + font-size: 14px; + background-color: $background; + color: $text; + height: $button-height; + padding: 0 $button-height/2; + line-height: $button-height; + float: left; + margin: 0 $button-height/2 $button-height/2 0; + border: 0; + cursor: pointer; + font-weight: 400; + + &:hover { + color: lighten($light-blue, 30); + } +} + +button, +a.button, +.button { + @include button; + + &.tiny { + @include linear-gradient($light-blue, $blue); + background-color: transparent; + border-radius: 14px; + line-height: 25px; + height: 25px; + padding: 0 12px; + margin: 0 10px 0 0; + } +} diff --git a/app/assets/stylesheets/themes/flat/mixins/_flashes.scss b/app/assets/stylesheets/themes/flat/mixins/_flashes.scss new file mode 100644 index 0000000..820eb04 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/mixins/_flashes.scss @@ -0,0 +1,47 @@ +/* + Flash Messages +*/ + +@mixin flash($background: $flash-notice, $text: $flash-text) { + $flash-height: 35px; + + background-color: $background; + color: $text; + padding: 7px 7px 7px 44px; + position: relative; + border-radius: $base-border-radius; + + &:before { + @include box-sizing(border-box); + border-radius: $base-border-radius 0 0 $base-border-radius; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + content: "\f05a"; + background-color: darken($background, 10%); + display: block; + position: absolute; + top: 0; + left: 0; + float: left; + width: $flash-height; + height: 100%; + padding: 7px; + text-align: center; + } +} + +/* + Text Highlights +*/ + +.highlight { + font-size: 12px; + line-height: 18px; + border-radius: $base-border-radius; + background: $blue; + color: white; + display: inline-block; + font-style: italic; + padding: 0 3px; +} diff --git a/app/assets/stylesheets/themes/flat/pages/_bans.scss b/app/assets/stylesheets/themes/flat/pages/_bans.scss new file mode 100644 index 0000000..e91ba24 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_bans.scss @@ -0,0 +1,23 @@ +/* + Bans List +*/ + +#bans { + + h1 { + margin-bottom: 1em; + } + + table.bans { + + .type, + .expiry { + width: 20%; + } + + .actions { + width: 10%; + text-align: right; + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_categories.scss b/app/assets/stylesheets/themes/flat/pages/_categories.scss new file mode 100644 index 0000000..d9107dc --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_categories.scss @@ -0,0 +1,18 @@ +/* + Categories List +*/ + +.categories { + + table.categories { + + .actions { + width: 20%; + text-align: right; + + i { + margin-left: 5px; + } + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_contests.scss b/app/assets/stylesheets/themes/flat/pages/_contests.scss new file mode 100644 index 0000000..5be59fd --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_contests.scss @@ -0,0 +1,335 @@ +/* + Contester +*/ + +div#matches { + @include span-columns(12); + margin: 20px 0; +} + +/* + Contest List +*/ + +table.contest { + margin-bottom: 40px; + + .fa-chevron-up { + color: $light-green; + } + + .fa-chevron-down { + color: $light-red; + } + + .fa-trophy { + color: $gold; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75); + } + + tbody td { + &:first-child { + text-align: center; + } + + &:nth-child(2) { + text-align: center; + } + + &:nth-child(4) { + text-align: left; + } + + &.actions { + text-align: right; + + i { + padding-left: 5px; + } + } + } + + thead { + + .movement, + .flag, + .awards { + width: 5%; + } + + .team { + width: 35%; + } + + .score, + .win, + .loss, + .draw, + .actions { + width: 10%; + } + } +} + +div.widget.contest { + + a.button { + margin: 20px 0 0; + text-align: center; + width: 100%; + } +} + +/* + Standings +*/ + +div.standings { + @include span-columns(12); +} + +/* + Brackets +*/ + +table.brackets { + margin: 20px 0 40px 0; + width: auto; + + td { + padding: 0; + border-bottom: 0; + text-align: left; + + a { + display: block; + width: 100%; + } + } + + .empty { + padding: 0; + } + + .flag { + width: 44px; + + img { + width: 24px; + margin-left: 10px; + } + } + + .team { + padding: 5px 0; + background-color: $light-gray; + border-right: 1px solid $medium-gray; + clear: both; + + table { + margin: 0; + } + + > a { + padding-left: 10px; + } + } + + .bracket { + padding: 0 10px 0 0; + width: 158px; + } + + .connector { + border-right: 1px solid $medium-gray; + } + + > tbody > tr > td { + width: 150px; + } +} + +/* + Contest Page +*/ + +#contest { + + table.weeks { + + .week { + width: 50%; + } + + .date { + width: 30%; + } + + .score { + width: 10%; + text-align: right; + } + } + + table.matches { + + .team { + width: 50%; + } + + .date { + width: 50%; + text-align: right; + } + } + + table.predictions { + + .user { + width: 50%; + } + + .result { + width: 50%; + text-align: right; + } + } +} + +/* + Contest Form Page +*/ + +#contest.contest-manage { + + table.maps { + + .name { + width: 50%; + } + + .download { + width: 40%; + } + + .actions { + width: 10%; + text-align: right; + } + } + + table.brackets-list { + width: 100%; + + .bracket, + .slots { + width: 45%; + } + + .actions { + width: 10%; + text-align: right; + } + } + + table.weeks { + + .name { + width: 30%; + } + + .date, + .map1, + .map2 { + width: 20%; + } + + .actions { + width: 10%; + text-align: right; + } + } + + #matches { + margin: 0; + } + + table.matches { + + .team { + width: 50%; + } + + .date { + text-align: left; + width: 20%; + } + + .score { + width: 10%; + } + + .actions { + width: 15%; + text-align: right; + } + } +} + +/* + Contest List +*/ + +#contests { + @include span-columns(12); + + div.current { + @include span-columns(12); + margin-bottom: 20px; + + table { + + .name { + width: 40%; + } + + .date { + width: 20%; + } + + .status { + width: 30%; + } + + .actions { + width: 10%; + text-align: right; + } + } + } + + div.previous { + @include span-columns(12); + margin-bottom: 20px; + + table { + + .name { + width: 40%; + } + + .date { + width: 20%; + } + + .winner { + width: 30%; + } + + .actions { + width: 10%; + text-align: right; + } + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_files.scss b/app/assets/stylesheets/themes/flat/pages/_files.scss new file mode 100644 index 0000000..30d2479 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_files.scss @@ -0,0 +1,90 @@ +/* + File Page +*/ + +#file { + + .actions, + .files-list { + @include span-columns(12); + margin: 20px 0; + } +} + +/* + Files List +*/ + +#files { + + .file { + @include span-columns(12); + padding-top: 20px; + margin-bottom: 20px; + position: relative; + border-top: 3px solid $light-gray; + + .actions { + position: absolute; + top: 20px; + right: 0; + } + + .comments { + float: right; + + i { + margin-right: 10px; + } + } + } + + .controls { + @include span-columns(12); + margin-top: 20px; + } +} + +/* + Movies List +*/ + +#movies { + + .filters { + @include span-columns(12); + margin-bottom: 20px; + } +} + +table.movie { + + .controls { + @include span-columns(12); + margin: 20px 0; + } +} + +.movie-full { + + .title { + display: none; + } + + #player { + display: block; + position: relative; + width: 100%; + height: 0px; + padding-bottom: 56%; + padding-top: 50px; + margin-bottom: 20px; + + object { + position: absolute; + width: 100%; + height: 100%; + top: 0; + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_forums.scss b/app/assets/stylesheets/themes/flat/pages/_forums.scss new file mode 100644 index 0000000..a849afe --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_forums.scss @@ -0,0 +1,326 @@ +/* + Forums +*/ + +#forums { + position: relative; + + .topic-controls { + position: absolute; + top: 40px; + right: 0; + width: auto; + + a:last-child { + margin-right: 0; + } + } + + .pagination { + margin-bottom: 20px; + } +} + +.no-body #forums { + + h1, + h2 { + color: white; + + a { + color: white; + } + } + + .breadcrumbs, + .pagination { + color: white; + + a { + color: $light-blue; + } + } +} + +/* + Categories +*/ + +div#categories { + + div.category { + margin-bottom: 20px; + } + + /* + Tables + */ + + table.category { + table-layout: auto; + margin: 0; + background: $content-color; + padding: 20px; + box-shadow: $light-shadow; + border-radius: $base-border-radius; + border: 0; + + thead th { + @include linear-gradient($blue, $dark-blue); + padding-top: 0.75em; + padding-bottom: 0.75em; + font-family: $montserrat; + font-size: 16px; + color: white; + + &:first-child { + border-radius: $base-border-radius 0 0 0; + } + + &:last-child { + border-radius: 0 $base-border-radius 0 0; + } + } + } + + .bullet { + width: 10%; + + background: { + image: image-url("#{$theme-path}/layout/forum-category.png"); + position: center center; + repeat: no-repeat; + } + + &.updated { + background-image: image-url("#{$theme-path}/layout/forum-category-highlight.png"); + } + } + + .forum { + width: 45%; + padding-right: 10px; + } + + .actions { + width: 10%; + text-align: center; + } + + .topics, + .posts { + width: 10%; + } + + .last { + width: 15%; + } +} + +/* + Topics +*/ + +#topics { + table-layout: auto; + margin-bottom: 20px; + background: $content-color; + padding: 20px; + box-shadow: $light-shadow; + border-radius: $base-border-radius; + border: 0; + + .unread { + color: $red; + } + + thead th { + @include linear-gradient($blue, $dark-blue); + padding-top: 0.75em; + padding-bottom: 0.75em; + font-family: $montserrat; + font-size: 16px; + color: white; + + &:first-child { + border-radius: $base-border-radius 0 0 0; + } + + &:last-child { + border-radius: 0 $base-border-radius 0 0; + } + } + + .topic { + width: 55%; + } + + .author { + width: 10%; + } + + .replies, + .views { + width: 10%; + } + + .last { + width: 15%; + } +} + +.statistics { + padding: 20px; + background: $content-color; + margin: 20px 0; + box-shadow: $light-shadow; + border-radius: $base-border-radius; + + h4 { + margin-bottom: 1em; + } +} + +#topic { + position: relative; + + h2 { + margin-bottom: 20px; + } + + .pagination { + margin-top: 0; + } + + #reply { + @include span-columns(12); + padding: 20px; + margin-bottom: 20px; + display: none; + background: $content-color; + border-radius: $base-border-radius; + box-shadow: $light-shadow; + + form { + margin-bottom: 0; + + .controls { + margin-bottom: 0; + } + } + } +} + +/* + Posts +*/ + +#posts { + @include span-columns(12); + + .post { + @include span-columns(12); + margin-bottom: 20px; + border-radius: $base-border-radius; + background: $content-color; + padding: 20px; + box-shadow: $light-shadow; + + .avatar { + @include span-columns(3); + + h5 { + text-align: center; + margin-bottom: 1em; + } + + .image, + .team { + @include span-columns(12); + text-align: center; + margin-bottom: 10px; + } + + .admin { + color: $red; + } + } + + .content { + @include span-columns(9); + @include omega; + + .text, + .signature { + @include span-columns(12); + padding: 20px 0; + } + + .text { + margin-top: 20px; + + fieldset { + border-color: darken($light-gray, 10); + border-radius: $base-border-radius; + } + } + } + + .header { + @include span-columns(12); + + .time { + @include span-columns(6); + } + + .posts { + @include span-columns(6); + text-align: right; + } + } + + .base { + @include span-columns(12); + padding-top: 20px; + border-top: 1px solid $light-gray; + + .user { + @include span-columns(3); + } + + .signature { + @include span-columns(9); + @include omega; + position: relative; + + .controls { + position: absolute; + top: 0; + right: 0; + + a:last-child { + margin-right: 0; + } + } + } + } + } +} + +/* + Forms +*/ + +#forums .add-acl { + + h4 { + margin: 1em 0; + } + + .permissions, + .controls { + display: inline; + width: auto; + float: none; + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_groups.scss b/app/assets/stylesheets/themes/flat/pages/_groups.scss new file mode 100644 index 0000000..90333cd --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_groups.scss @@ -0,0 +1,57 @@ +/* + Groups List +*/ + +table.groups { + + .name { + width: 50%; + } + + .created { + width: 20%; + } + + .founder { + width: 20%; + } + + .actions { + width: 10%; + text-align: right; + } +} + +/* + Groups Page +*/ + +#group { + + table.roles { + + .name, + .username { + width: 20%; + } + + .role { + width: 60%; + } + + .fields { + margin: 0; + float: left; + } + + .controls { + margin: 0; + float: right; + + .remove { + margin-bottom: 0; + margin-right: 0; + } + } + } +} diff --git a/app/assets/stylesheets/themes/flat/pages/_issues.scss b/app/assets/stylesheets/themes/flat/pages/_issues.scss new file mode 100644 index 0000000..902a4c7 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_issues.scss @@ -0,0 +1,32 @@ +/* + Issues List +*/ + +table.issues { + + .date { + width: 25%; + } + + .title { + width: 35%; + } + + .assigned, + .author { + width: 15%; + } + + .actions { + width: 10%; + text-align: right; + } +} + +/* + Issues Page +*/ + +#issue { + +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_matches.scss b/app/assets/stylesheets/themes/flat/pages/_matches.scss new file mode 100644 index 0000000..8ce9e99 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_matches.scss @@ -0,0 +1,326 @@ +/* + Matches Listing +*/ + +table#matches { + width: 100%; + display: table; + table-layout: auto; + margin-bottom: 20px; + + .opponent { + width: 30%; + } + + .date, + .maps { + width: 20%; + } + + .score { + width: 10%; + text-align: right; + } +} + +/* + Match Page +*/ + +div#match { + $title-height: 100px; + + @include span-columns(12); + border-bottom: 3px solid $light-gray; + + .contesters, + .details, + .referee, + .predictions, + .report { + @include span-columns(12); + } + + .contesters { + margin-bottom: 20px; + + .vs { + margin: 0 auto; + display: block; + font: $title-height/2 $montserrat; + border-radius: 50px; + background: $blue; + width: $title-height; + height: $title-height; + text-align: center; + line-height: $title-height; + color: white; + font-style: italic; + text-transform: uppercase; + padding-right: 10px; + font-weight: bold; + } + + .team-1, + .team-2 { + max-height: $title-height; + overflow: hidden; + } + + .team-1 { + @include span-columns(5); + line-height: $title-height; + text-align: right; + } + + .team-2 { + @include span-columns(5); + line-height: $title-height; + text-align: left; + } + + .versus { + @include span-columns(2); + position: relative; + font-weight: bold; + + &.split:before { + content: ""; + display: block; + position: absolute; + background: white; + width: 1px; + height: $title-height; + margin: 0 auto; + left: 50%; + top: 0; + } + + .score-1, + .score-2 { + font: $title-height/2 $montserrat; + color: white; + width: 50%; + position: absolute; + top: 0; + text-align: center; + line-height: $title-height; + font-weight: bold; + } + + .score-1 { + padding-left: $title-height/6; + left: 0; + } + + .score-2 { + padding-right: $title-height/6; + right: 0; + } + } + } + + .details { + margin-bottom: 20px; + text-align: center; + + .contest, + .date { + text-align: center; + } + + .date { + font-style: italic; + font-weight: normal; + } + + .contest { + margin-bottom: 10px; + } + } + + .lineups { + @include span-columns(12); + margin: 20px 0 40px; + + h3 { + text-align: center; + margin-bottom: 1em; + } + + i { + color: $gold; + } + + .team-1, + .team-2 { + position: relative; + + .player { + @include span-columns(12); + line-height: 40px; + margin-bottom: 10px; + } + + .players { + position: relative; + } + + .controls { + top: 0; + position: absolute; + z-index: 100; + + input { + margin: 0; + } + } + + form { + + label.checkbox { + padding: 0; + } + } + } + + .team-1 { + @include span-columns(6); + text-align: right; + + .flag { + margin: 0 0 0 10px; + } + + .controls { + left: 0; + } + + form { + + label.checkbox { + float: right; + margin-left: 1em; + } + } + } + + .team-2 { + @include span-columns(6); + @include omega; + + .controls { + right: 0; + } + + form { + + label.checkbox { + float: left; + margin-right: 1em; + } + } + } + + &.shift .team-2 { + @include shift(6); + } + + .mercenaries { + @include span-columns(12); + + input { + margin: 0; + } + } + } + + .scoring { + @include span-columns(12); + border-top: 3px solid $light-gray; + + h3 { + margin-bottom: 1em; + } + + .scores input { + width: auto; + margin-left: 0; + text-align: center; + width: 40px; + } + } + + .predictions { + text-align: center; + + h4 { + margin-bottom: 1em; + } + + input { + text-align: center; + } + + .add { + @include span-columns(12); + text-align: center; + + input { + float: none; + margin: 20px 0 0 0; + } + } + + .team-1 { + @include span-columns(6); + text-align: right; + + .highlight { + margin-left: 10px; + } + } + + .team-2 { + @include span-columns(6); + @include omega; + text-align: left; + + .highlight { + margin-right: 10px; + } + } + } + + .report { + margin: 20px 0; + padding-top: 20px; + border-top: 3px solid $light-gray; + + textarea { + margin: 20px 0; + width: 100%; + height: 600px; + } + + .mceLayout { + margin: 20px 0; + } + } +} + +/* + Map Page +*/ + +div#map { + + .preview { + @include span-columns(12); + text-align: center; + + img { + margin: 20px 0; + } + } +} diff --git a/app/assets/stylesheets/themes/flat/pages/_news.scss b/app/assets/stylesheets/themes/flat/pages/_news.scss new file mode 100644 index 0000000..cd9b9ee --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_news.scss @@ -0,0 +1,197 @@ +/* + Articles +*/ + +div.article { + @include span-columns(12); + border-bottom: 3px solid $light-gray; + padding-bottom: 20px; + + h1 { + margin: 1em 0; + + a { + color: black; + } + } + + .content { + @include span-columns(12); + margin-bottom: 40px; + + ul { + @extend ul.disc; + } + } + + .author { + @include span-columns(6); + + a { + font-weight: bold; + } + } + + .comments { + @include span-columns(6); + @include omega; + text-align: right; + + .fa { + margin-right: 10px; + } + } + + .actions { + @include span-columns(12); + @include omega; + margin-top: 10px; + } + + &.preview { + @include span-columns(12); + border-radius: $base-border-radius; + background: $content-color; + padding: 20px; + margin-bottom: $container-padding; + box-shadow: $light-shadow; + border: 0; + + .content { + margin-bottom: 10px; + } + + h2 { + margin: 0 0 .5em 0; + } + } +} + +div.article-links { + @include span-columns(12); + + .previous { + @include span-columns(6); + + .fa { + padding-right: 10px; + } + } + + .next { + @include span-columns(6); + @include omega; + text-align: right; + + .fa { + padding-left: 10px; + } + } +} + +table.articles.archive { + + .title { + width: 50%; + } + + .date { + width: 20%; + } + + .author { + width: 20%; + } +} + +/* + Article Form +*/ + +form.article { + + h4 { + margin-bottom: 20px; + } +} + +.files { + + .files-list { + margin: 20px 0 40px; + } + + form { + @include span-columns(12); + margin: 20px 0; + + .fields { + margin-bottom: 20px; + } + } +} + +/* + Articles Page +*/ + +#articles { + @include span-columns(12); + + h3 { + @include span-columns(12); + margin-top: 1em; + } + + .article-list { + @include span-columns(12); + margin-bottom: 10px; + + .new { + @extend .highlight; + margin-right: 10px; + } + + .title { + @include span-columns(6); + } + + .meta { + @include span-columns(6); + @include omega; + text-align: right; + } + } + + .button.new { + margin-top: 20px; + } +} + +/* + Admin Articles Page +*/ + +div.admin.articles { + + .title { + width: 40%; + } + + .category { + width: 20%; + } + + .created { + width: 20%; + } + + .author { + width: 10%; + } + + .actions { + width: 10%; + text-align: right; + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_polls.scss b/app/assets/stylesheets/themes/flat/pages/_polls.scss new file mode 100644 index 0000000..68b91a3 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_polls.scss @@ -0,0 +1,52 @@ +/* + Polls List +*/ + +table.polls { + + .questions { + width: 30%; + } + + .date { + width: 30%; + } + + .votes, + .user { + width: 15%; + } + + .actions { + width: 10%; + text-align: right; + } +} + +/* + Poll Forms +*/ + +#poll { + .inputs { + + .question { + @include span-columns(9); + } + + .destroy { + @include span-columns(3); + @include omega; + + .checkbox { + float: left; + } + + .remove { + display: inline-block; + line-height: 40px; + margin-left: 10px; + } + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_servers.scss b/app/assets/stylesheets/themes/flat/pages/_servers.scss new file mode 100644 index 0000000..408d234 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_servers.scss @@ -0,0 +1,51 @@ +/* + Servers +*/ + +#servers { + @include span-columns(12); + margin-bottom: 20px; + + div.server { + @include span-columns(12); + margin-bottom: 20px; + padding-bottom: 20px; + border-bottom: 3px solid $light-gray; + position: relative; + + .connect { + position: absolute; + top: 0; + right: 0; + margin: 0; + } + + &:last-child { + margin-bottom: 0; + border-bottom: 0; + } + } +} + +/* + Server Form +*/ + +form.server { + + .inputs { + @include span-columns(12); + + input { + max-width: 100%; + } + + .ip { + @include span-columns(9); + } + + .port { + @include span-columns(3); + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_teams.scss b/app/assets/stylesheets/themes/flat/pages/_teams.scss new file mode 100644 index 0000000..6c12f38 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_teams.scss @@ -0,0 +1,108 @@ +/* + Teams Listing +*/ + +#teams { + @include span-columns(12); + + table { + table-layout: auto; + } + + .country { + width: 5%; + } + + .name { + width: 45%; + } + + .irc { + width: 25%; + } + + .members { + width: 10%; + } + + .actions { + width: 15%; + text-align: right; + } + + &.edit { + @include span-columns(12); + + h1 { + margin-bottom: 1em; + } + + .tabbed-contents { + margin-bottom: 20px; + } + } +} + +/* + Team Profiles +*/ + +#team-profile { + + .logo { + @include span-columns(12); + margin: 20px 0; + text-align: center; + + img { + display: inline-block; + float: none; + width: auto; + } + } + + .controls { + @include span-columns(12); + margin: 20px 0; + } +} + + +#members { + table-layout: auto; + + .country, + .age { + width: 5%; + } + + .member { + width: 20%; + } + + .steamid { + width: 15%; + } + + .rank { + width: 10%; + } + + .note { + width: 30%; + } + + .joined { + width: 10%; + } + + .joined { + text-align: right; + } + + &.short { + .rank { + width: 40%; + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/pages/_users.scss b/app/assets/stylesheets/themes/flat/pages/_users.scss new file mode 100644 index 0000000..f951af4 --- /dev/null +++ b/app/assets/stylesheets/themes/flat/pages/_users.scss @@ -0,0 +1,216 @@ +/* + Users Listing +*/ + +#users { + table-layout: auto; + + .country, + .age { + width: 5%; + } + + .username, + .name { + width: 30%; + } + + .steamid { + width: 20%; + } + + .actions { + text-align: right; + } +} + +/* + Profile +*/ + +#user { + @include span-columns(12); + + .tabbed-contents { + margin-bottom: 20px; + } +} + +#profile { + + .controls { + @include shift(0); + } + + .tab { + + h4 { + margin-bottom: 1em; + } + + .fields:last-child { + margin-bottom: 0; + } + } +} + +#user-profile { + + .photo { + @include span-columns(12); + margin: 20px 0; + text-align: center; + + img { + display: inline-block; + float: none; + width: auto; + } + } + + #user-data { + @include span-columns(12); + margin-bottom: 20px; + + h2, + h3, + h4 { + margin-bottom: 1em; + } + + .group { + @include span-columns(6); + + dd a { + float: none; + display: block; + } + } + + .achievements { + margin-bottom: 20px; + } + + tbody td { + &:first-child, + &:nth-child(2) { + text-align: left; + } + } + } + + table.predictions { + + .prediction { + text-align: right; + } + } +} + +#profile-edit { + + h1 { + margin-bottom: 1em; + } + + form { + margin-top: 0; + } +} + +/* + Agenda +*/ + +#agenda { + + h4 { + margin-bottom: 1em; + } + + table { + margin-bottom: 20px; + } + + form { + @include span-columns(12); + margin-bottom: 20px; + } + + .tab { + :last-child { + margin-bottom: 0; + } + } + + #teams { + + table { + margin-bottom: 40px; + } + } +} + +/* + Messages +*/ + +#messages { + h1 { + margin-bottom: 1em; + } + + .tab { + + :last-child { + margin-bottom: 0; + } + } + + .message { + @include span-columns(12); + margin-bottom: 20px; + + .subject { + margin-bottom: 1em; + } + + .content { + margin-bottom: 20px; + } + + a.message { + display: inline; + margin: 0; + float: none; + } + + &.highlight { + font-weight: bold; + } + } + + .back { + margin-top: 20px; + } +} + +/* + Staff List +*/ + +table.staff { + table-layout: auto; + + .country { + width: 6%; + } + + .username { + width: 20%; + } + + .age { + width: 5%; + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/themes/flat/theme.css.scss b/app/assets/stylesheets/themes/flat/theme.css.scss new file mode 100644 index 0000000..9e54cac --- /dev/null +++ b/app/assets/stylesheets/themes/flat/theme.css.scss @@ -0,0 +1,62 @@ +/* + Libraries & Configuration +*/ + +@import "bourbon"; +@import "variables"; +@import "neat"; +@import "neat-helpers"; +@import "font-awesome"; + +/* + Mixins +*/ + +@import "mixins/buttons"; +@import "mixins/flashes"; + +/* + Layout +*/ + +@import "layout/hacks"; +@import "layout/body"; +@import "layout/typography"; +@import "layout/header"; +@import "layout/navigation"; +@import "layout/sidebar"; +@import "layout/footer"; +@import "layout/helpers"; + +/* + Components +*/ + +@import "components/lists"; +@import "components/tables"; +@import "components/forms"; +@import "components/flashes"; +@import "components/comments"; +@import "components/gather"; +@import "components/breadcrumbs"; +@import "components/pagination"; +@import "components/tabs"; +@import "components/shoutbox"; + +/* + Pages +*/ + +@import "pages/news"; +@import "pages/categories"; +@import "pages/contests"; +@import "pages/forums"; +@import "pages/teams"; +@import "pages/users"; +@import "pages/matches"; +@import "pages/files"; +@import "pages/bans"; +@import "pages/polls"; +@import "pages/issues"; +@import "pages/servers"; +@import "pages/groups"; diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 69152be..b74a394 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -10,7 +10,7 @@ module ApplicationHelper end def active_theme - 'default' + 'flat' end def theme_stylesheet_link_tag diff --git a/app/views/application/_navigation.html.erb b/app/views/application/_navigation.html.erb index 61cc218..1eaa6e6 100644 --- a/app/views/application/_navigation.html.erb +++ b/app/views/application/_navigation.html.erb @@ -10,7 +10,7 @@ <% end %>
  • - <%= active_link_to controller: "teams", action: :index, class: 'teams' do %> + <%= active_link_to({ controller: "teams", action: :index }, class: 'teams') do %> Teams <% end %>