diff --git a/app/assets/stylesheets/common.css.erb b/app/assets/stylesheets/common.css.erb new file mode 100644 index 0000000000..9703a778bb --- /dev/null +++ b/app/assets/stylesheets/common.css.erb @@ -0,0 +1,17 @@ +// Manifest +// + +//= require ./vendor/normalize +//= require ./common/foundation/base +//= require ./vendor/font_awesome/font-awesome +//= require ./vendor/chosen +//= require_tree ./common/components +//= require ./common/foundation/helpers +//= require_tree ./common +<% + # TODO this is very tricky, we want to add a dependency here on files that may not yet exist + # otherwise in dev we are often stuck nuking the tmp/cache directory + DiscoursePluginRegistry.stylesheets.each do |css| + require_asset(css) + end +%> \ No newline at end of file diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss deleted file mode 100644 index 521f0aa0a8..0000000000 --- a/app/assets/stylesheets/common.scss +++ /dev/null @@ -1,10 +0,0 @@ -@import "vendor/normalize"; -@import "common/foundation/base"; -@import "vendor/font_awesome/font-awesome"; -@import "vendor/chosen"; -@import "common/foundation/helpers"; -@import "common/foundation/mixins"; -@import "common/foundation/variables"; -@import "common/components/*"; -@import "common/admin/*"; -@import "common/input_tip"; diff --git a/app/assets/stylesheets/common/components/badges.css.scss b/app/assets/stylesheets/common/components/badges.css.scss index 130ed63851..da1d44390b 100644 --- a/app/assets/stylesheets/common/components/badges.css.scss +++ b/app/assets/stylesheets/common/components/badges.css.scss @@ -1,3 +1,6 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + // -------------------------------------------------- // Badges // -------------------------------------------------- diff --git a/app/assets/stylesheets/common/components/buttons.css.scss b/app/assets/stylesheets/common/components/buttons.css.scss index 3fbb0a2b5f..11f9df6f7f 100644 --- a/app/assets/stylesheets/common/components/buttons.css.scss +++ b/app/assets/stylesheets/common/components/buttons.css.scss @@ -1,3 +1,6 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + // -------------------------------------------------- // Buttons // -------------------------------------------------- diff --git a/app/assets/stylesheets/common/components/keyboard_shortcuts.css.scss b/app/assets/stylesheets/common/components/keyboard_shortcuts.css.scss index 44a58c25e2..bc04e66946 100644 --- a/app/assets/stylesheets/common/components/keyboard_shortcuts.css.scss +++ b/app/assets/stylesheets/common/components/keyboard_shortcuts.css.scss @@ -1,3 +1,5 @@ +@import "../foundation/variables"; + .topic-list-item td:first-child, .topic-post { background-color: inherit; border-left: 1px solid transparent; diff --git a/app/assets/stylesheets/common/components/navs.css.scss b/app/assets/stylesheets/common/components/navs.css.scss index 5022cf10e9..0a351392dc 100644 --- a/app/assets/stylesheets/common/components/navs.css.scss +++ b/app/assets/stylesheets/common/components/navs.css.scss @@ -1,3 +1,7 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; +@import "common/foundation/helpers"; + // -------------------------------------------------- // Navigation menus // -------------------------------------------------- diff --git a/app/assets/stylesheets/common/input_tip.scss b/app/assets/stylesheets/common/input_tip.scss index e5b354376c..92b9cac8dc 100644 --- a/app/assets/stylesheets/common/input_tip.scss +++ b/app/assets/stylesheets/common/input_tip.scss @@ -27,4 +27,4 @@ .close:hover { opacity: 1.0; } -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/desktop.css.erb b/app/assets/stylesheets/desktop.css.erb new file mode 100644 index 0000000000..797c590f84 --- /dev/null +++ b/app/assets/stylesheets/desktop.css.erb @@ -0,0 +1,5 @@ +// Manifest +// +//= require common + +//= require_tree ./desktop diff --git a/app/assets/stylesheets/desktop.scss b/app/assets/stylesheets/desktop.scss deleted file mode 100644 index 07c3c6c0b8..0000000000 --- a/app/assets/stylesheets/desktop.scss +++ /dev/null @@ -1,2 +0,0 @@ -@import "common"; -@import "desktop/*"; diff --git a/app/assets/stylesheets/desktop/activation.scss b/app/assets/stylesheets/desktop/activation.scss index fe2291b7a8..9974f5bc03 100644 --- a/app/assets/stylesheets/desktop/activation.scss +++ b/app/assets/stylesheets/desktop/activation.scss @@ -1,6 +1,9 @@ // Styles used before the user is logged into discourse. For example, activating their // account or changing their email. +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + #simple-container { @include border-radius-all(10px); background-color: $primary_background_color; diff --git a/app/assets/stylesheets/desktop/colorpicker.scss b/app/assets/stylesheets/desktop/colorpicker.scss index 17b10a0fdc..4efad99d13 100644 --- a/app/assets/stylesheets/desktop/colorpicker.scss +++ b/app/assets/stylesheets/desktop/colorpicker.scss @@ -1,5 +1,8 @@ // styles for the category badge color picker +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + .category-color-editor { input { width: 70px; diff --git a/app/assets/stylesheets/desktop/combobox.scss b/app/assets/stylesheets/desktop/combobox.scss index 695404cb99..d8913defb6 100644 --- a/app/assets/stylesheets/desktop/combobox.scss +++ b/app/assets/stylesheets/desktop/combobox.scss @@ -1,3 +1,6 @@ +@import "../common/foundation/variables"; + + .category-combobox { .badge-category { display: inline-block; @@ -14,4 +17,4 @@ margin: 6px 0 0 3px; font-size: 12px; } -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/desktop/compose.scss b/app/assets/stylesheets/desktop/compose.scss index 1965574049..a560fbad6c 100644 --- a/app/assets/stylesheets/desktop/compose.scss +++ b/app/assets/stylesheets/desktop/compose.scss @@ -1,5 +1,8 @@ // styles that apply to the reply pane that slides up to compose replies +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + // hack, this needs to be done cleaner #private-message-users { width: 400px; diff --git a/app/assets/stylesheets/desktop/discourse.scss b/app/assets/stylesheets/desktop/discourse.scss index fab812b59b..8d7316ef92 100644 --- a/app/assets/stylesheets/desktop/discourse.scss +++ b/app/assets/stylesheets/desktop/discourse.scss @@ -2,6 +2,11 @@ // BEWARE: changing these styles implies they take effect anywhere they are seen // throughout the Discourse application +@import "common/foundation/variables"; +@import "common/foundation/mixins"; +@import "common/foundation/helpers"; + + html {font-size: 14px/19px;} body { diff --git a/app/assets/stylesheets/desktop/faqs.scss b/app/assets/stylesheets/desktop/faqs.scss index 52d4bc95c1..3309f2f60b 100644 --- a/app/assets/stylesheets/desktop/faqs.scss +++ b/app/assets/stylesheets/desktop/faqs.scss @@ -1,3 +1,7 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; +@import "common/foundation/helpers"; + // -------------------------------------------------- // FAQs // -------------------------------------------------- @@ -54,4 +58,4 @@ .nav-pills { margin-left:0px !important; font: 13px/18px "Helvetica Neue",Helvetica,Arial,sans-serif; -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/desktop/header.scss b/app/assets/stylesheets/desktop/header.scss index 273fc37156..f18aa01a79 100644 --- a/app/assets/stylesheets/desktop/header.scss +++ b/app/assets/stylesheets/desktop/header.scss @@ -1,3 +1,6 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + // -------------------------------------------------- // Discourse header // -------------------------------------------------- diff --git a/app/assets/stylesheets/desktop/history.scss b/app/assets/stylesheets/desktop/history.scss index 91f3b0947c..aa620b1f10 100644 --- a/app/assets/stylesheets/desktop/history.scss +++ b/app/assets/stylesheets/desktop/history.scss @@ -1,5 +1,8 @@ // styles that apply to the popup that appears when you show the edit history of a post +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + .modal.history-modal { .modal-inner-container { min-width: 960px; diff --git a/app/assets/stylesheets/desktop/lightbox.scss b/app/assets/stylesheets/desktop/lightbox.scss index 652cd78a67..ca852d9dac 100644 --- a/app/assets/stylesheets/desktop/lightbox.scss +++ b/app/assets/stylesheets/desktop/lightbox.scss @@ -1,3 +1,6 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + .lightbox { position: relative; display: inline-block; diff --git a/app/assets/stylesheets/desktop/login.scss b/app/assets/stylesheets/desktop/login.scss index 1c8fc34b23..62189b7e33 100644 --- a/app/assets/stylesheets/desktop/login.scss +++ b/app/assets/stylesheets/desktop/login.scss @@ -1,5 +1,8 @@ // style that apply to the login popup +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + #login-buttons { button { margin: 0 5px 5px 0; @@ -60,4 +63,4 @@ .tos-agree { margin-bottom: 12px; } -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/desktop/modal.scss b/app/assets/stylesheets/desktop/modal.scss index 474443ed8f..c860d9198c 100644 --- a/app/assets/stylesheets/desktop/modal.scss +++ b/app/assets/stylesheets/desktop/modal.scss @@ -1,5 +1,8 @@ // base styles for every modal popup used in Discourse +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + .modal-open { .dropdown-menu { z-index: 2050; diff --git a/app/assets/stylesheets/desktop/onebox.scss b/app/assets/stylesheets/desktop/onebox.scss index 8acee0e186..2be321fdb7 100644 --- a/app/assets/stylesheets/desktop/onebox.scss +++ b/app/assets/stylesheets/desktop/onebox.scss @@ -1,3 +1,6 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + a.loading-onebox { background: { image: image-url("spinner_96.gif"); diff --git a/app/assets/stylesheets/desktop/pagedown.scss b/app/assets/stylesheets/desktop/pagedown.scss index 1aaac8bb0b..2fcc26e913 100644 --- a/app/assets/stylesheets/desktop/pagedown.scss +++ b/app/assets/stylesheets/desktop/pagedown.scss @@ -1,5 +1,8 @@ // styles that apply to the PageDown editor // http://code.google.com/p/pagedown/ +@import "common/foundation/variables"; + +@import "common/foundation/mixins"; .wmd-panel { margin-left: 25%; diff --git a/app/assets/stylesheets/desktop/poster_expansion.scss b/app/assets/stylesheets/desktop/poster_expansion.scss index 066bc3d9e0..516a43f986 100644 --- a/app/assets/stylesheets/desktop/poster_expansion.scss +++ b/app/assets/stylesheets/desktop/poster_expansion.scss @@ -1,5 +1,8 @@ // styles that apply to the "share" popup when sharing a link to a post or topic +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + #poster-expansion { position: absolute; width: 460px; diff --git a/app/assets/stylesheets/desktop/share_link.scss b/app/assets/stylesheets/desktop/share_link.scss index 1e1fc38ff2..208002a532 100644 --- a/app/assets/stylesheets/desktop/share_link.scss +++ b/app/assets/stylesheets/desktop/share_link.scss @@ -1,5 +1,8 @@ // styles that apply to the "share" popup when sharing a link to a post or topic +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + #share-link { position: absolute; left: 20px; diff --git a/app/assets/stylesheets/desktop/topic-admin-menu.scss b/app/assets/stylesheets/desktop/topic-admin-menu.scss index e876aafe59..cf90b4a3fb 100644 --- a/app/assets/stylesheets/desktop/topic-admin-menu.scss +++ b/app/assets/stylesheets/desktop/topic-admin-menu.scss @@ -1,5 +1,8 @@ // Styles for the topic admin menu +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + #show-topic-admin { position: fixed; top: 70px; @@ -26,4 +29,4 @@ width: 200px; margin-bottom: 5px; } -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/desktop/topic-list.scss b/app/assets/stylesheets/desktop/topic-list.scss index f4eb89f4cb..77c8eee18b 100644 --- a/app/assets/stylesheets/desktop/topic-list.scss +++ b/app/assets/stylesheets/desktop/topic-list.scss @@ -1,3 +1,6 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + // -------------------------------------------------- // Topic lists // -------------------------------------------------- diff --git a/app/assets/stylesheets/desktop/topic-post.scss b/app/assets/stylesheets/desktop/topic-post.scss index 9ddd9172b3..4efd688ca7 100644 --- a/app/assets/stylesheets/desktop/topic-post.scss +++ b/app/assets/stylesheets/desktop/topic-post.scss @@ -1,3 +1,7 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; +@import "common/foundation/helpers"; + .gap { background-color: lighten($secondary_background_color, 76%); padding: 5px 0; diff --git a/app/assets/stylesheets/desktop/topic.scss b/app/assets/stylesheets/desktop/topic.scss index 92dbc4d258..1625ee9966 100644 --- a/app/assets/stylesheets/desktop/topic.scss +++ b/app/assets/stylesheets/desktop/topic.scss @@ -1,3 +1,6 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + .post-info a { color: lighten($primary_text_color, 50%); padding-right: 5px; diff --git a/app/assets/stylesheets/desktop/upload.scss b/app/assets/stylesheets/desktop/upload.scss index 1653d2d100..ab6391c3ea 100644 --- a/app/assets/stylesheets/desktop/upload.scss +++ b/app/assets/stylesheets/desktop/upload.scss @@ -1,3 +1,6 @@ +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + .add-upload .fa-plus { font-size: 10px; position: relative; diff --git a/app/assets/stylesheets/desktop/user.scss b/app/assets/stylesheets/desktop/user.scss index 4e61d2c07c..4e3c1a059b 100644 --- a/app/assets/stylesheets/desktop/user.scss +++ b/app/assets/stylesheets/desktop/user.scss @@ -1,4 +1,6 @@ // styles that apply to the user page +@import "common/foundation/variables"; +@import "common/foundation/mixins"; .groups { .group-link { diff --git a/app/assets/stylesheets/desktop/username_tagsinput.scss b/app/assets/stylesheets/desktop/username_tagsinput.css similarity index 100% rename from app/assets/stylesheets/desktop/username_tagsinput.scss rename to app/assets/stylesheets/desktop/username_tagsinput.css diff --git a/app/assets/stylesheets/mobile.css.erb b/app/assets/stylesheets/mobile.css.erb new file mode 100644 index 0000000000..1e8d52e20f --- /dev/null +++ b/app/assets/stylesheets/mobile.css.erb @@ -0,0 +1,4 @@ +// Manifest +// +//= require common +//= require_tree ./mobile diff --git a/app/assets/stylesheets/mobile.scss b/app/assets/stylesheets/mobile.scss deleted file mode 100644 index df2a08dc5a..0000000000 --- a/app/assets/stylesheets/mobile.scss +++ /dev/null @@ -1,2 +0,0 @@ -@import "common"; -@import "mobile/*"; diff --git a/app/assets/stylesheets/mobile/activation.scss b/app/assets/stylesheets/mobile/activation.scss index fe2291b7a8..a247dc5b39 100644 --- a/app/assets/stylesheets/mobile/activation.scss +++ b/app/assets/stylesheets/mobile/activation.scss @@ -1,6 +1,9 @@ // Styles used before the user is logged into discourse. For example, activating their // account or changing their email. +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + #simple-container { @include border-radius-all(10px); background-color: $primary_background_color; diff --git a/app/assets/stylesheets/mobile/colorpicker.scss b/app/assets/stylesheets/mobile/colorpicker.scss index 17b10a0fdc..4efad99d13 100644 --- a/app/assets/stylesheets/mobile/colorpicker.scss +++ b/app/assets/stylesheets/mobile/colorpicker.scss @@ -1,5 +1,8 @@ // styles for the category badge color picker +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + .category-color-editor { input { width: 70px; diff --git a/app/assets/stylesheets/mobile/compose.scss b/app/assets/stylesheets/mobile/compose.scss index 935d5730f9..96f6d81256 100644 --- a/app/assets/stylesheets/mobile/compose.scss +++ b/app/assets/stylesheets/mobile/compose.scss @@ -1,5 +1,8 @@ // styles that apply to the reply pane that slides up to compose replies +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + // hack, this needs to be done cleaner .private-message input.span8 { width: 47%; diff --git a/app/assets/stylesheets/mobile/discourse.scss b/app/assets/stylesheets/mobile/discourse.scss index 4bcc4936be..86994df766 100644 --- a/app/assets/stylesheets/mobile/discourse.scss +++ b/app/assets/stylesheets/mobile/discourse.scss @@ -2,6 +2,10 @@ // BEWARE: changing these styles implies they take effect anywhere they are seen // throughout the Discourse application +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; +@import "../common/foundation/helpers"; + body { background-color: $primary_background_color; } diff --git a/app/assets/stylesheets/mobile/faqs.scss b/app/assets/stylesheets/mobile/faqs.scss index f5e3207250..87b508a68d 100644 --- a/app/assets/stylesheets/mobile/faqs.scss +++ b/app/assets/stylesheets/mobile/faqs.scss @@ -1,3 +1,7 @@ +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; +@import "../common/foundation/helpers"; + // -------------------------------------------------- // FAQs // -------------------------------------------------- @@ -55,4 +59,4 @@ .nav-pills { // margin-left:0px !important; this style affects everything, and it has !important! yuck. font: 13px/18px "Helvetica Neue",Helvetica,Arial,sans-serif; -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/mobile/header.scss b/app/assets/stylesheets/mobile/header.scss index 3c67d3353f..1eaac45ae9 100644 --- a/app/assets/stylesheets/mobile/header.scss +++ b/app/assets/stylesheets/mobile/header.scss @@ -1,3 +1,6 @@ +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + // -------------------------------------------------- // Discourse header // -------------------------------------------------- diff --git a/app/assets/stylesheets/mobile/history.scss b/app/assets/stylesheets/mobile/history.scss index 15c04bbc88..537c3aab3b 100644 --- a/app/assets/stylesheets/mobile/history.scss +++ b/app/assets/stylesheets/mobile/history.scss @@ -1,5 +1,8 @@ // styles that apply to the popup that appears when you show the edit history of a post +@import "common/foundation/variables"; +@import "common/foundation/mixins"; + .modal.history-modal { .modal-inner-container { min-width: 960px; diff --git a/app/assets/stylesheets/mobile/lightbox.scss b/app/assets/stylesheets/mobile/lightbox.scss index e5ba8140f5..800dab6d2d 100644 --- a/app/assets/stylesheets/mobile/lightbox.scss +++ b/app/assets/stylesheets/mobile/lightbox.scss @@ -1,3 +1,6 @@ +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + .lightbox { position: relative; display: inline-block; diff --git a/app/assets/stylesheets/mobile/login.scss b/app/assets/stylesheets/mobile/login.scss index b8e2e7879b..ce96d149ac 100644 --- a/app/assets/stylesheets/mobile/login.scss +++ b/app/assets/stylesheets/mobile/login.scss @@ -1,5 +1,8 @@ // style that apply to the login popup +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + .btn-social { width: 250px; font-size: 16px; diff --git a/app/assets/stylesheets/mobile/modal.scss b/app/assets/stylesheets/mobile/modal.scss index 348a085040..05a5fd27e0 100644 --- a/app/assets/stylesheets/mobile/modal.scss +++ b/app/assets/stylesheets/mobile/modal.scss @@ -1,5 +1,8 @@ // base styles for every modal popup used in Discourse +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + .modal-open { .dropdown-menu { z-index: 2050; diff --git a/app/assets/stylesheets/mobile/onebox.scss b/app/assets/stylesheets/mobile/onebox.scss index 347b5f223b..db20c05b7d 100644 --- a/app/assets/stylesheets/mobile/onebox.scss +++ b/app/assets/stylesheets/mobile/onebox.scss @@ -1,3 +1,6 @@ +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + a.loading-onebox { background: { image: image-url("spinner_96.gif"); diff --git a/app/assets/stylesheets/mobile/pagedown.scss b/app/assets/stylesheets/mobile/pagedown.scss index bfc3651630..f11dedb622 100644 --- a/app/assets/stylesheets/mobile/pagedown.scss +++ b/app/assets/stylesheets/mobile/pagedown.scss @@ -1,6 +1,8 @@ // styles that apply to the PageDown editor // http://code.google.com/p/pagedown/ +@import "../common/foundation/mixins"; + .wmd-panel { margin-left: 25%; margin-right: 25%; diff --git a/app/assets/stylesheets/mobile/share_link.scss b/app/assets/stylesheets/mobile/share_link.scss index 1e45303f92..9b5b9d9774 100644 --- a/app/assets/stylesheets/mobile/share_link.scss +++ b/app/assets/stylesheets/mobile/share_link.scss @@ -1,5 +1,8 @@ // styles that apply to the "share" popup when sharing a link to a post or topic +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + #share-link { position: absolute; left: 20px; diff --git a/app/assets/stylesheets/mobile/topic-admin-menu.scss b/app/assets/stylesheets/mobile/topic-admin-menu.scss index e876aafe59..a5b1b833ee 100644 --- a/app/assets/stylesheets/mobile/topic-admin-menu.scss +++ b/app/assets/stylesheets/mobile/topic-admin-menu.scss @@ -1,5 +1,8 @@ // Styles for the topic admin menu +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + #show-topic-admin { position: fixed; top: 70px; @@ -26,4 +29,4 @@ width: 200px; margin-bottom: 5px; } -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/mobile/topic-list.scss b/app/assets/stylesheets/mobile/topic-list.scss index 1e99085acd..0cc735724e 100644 --- a/app/assets/stylesheets/mobile/topic-list.scss +++ b/app/assets/stylesheets/mobile/topic-list.scss @@ -1,3 +1,6 @@ +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + // -------------------------------------------------- // Topic lists // -------------------------------------------------- diff --git a/app/assets/stylesheets/mobile/topic-post.scss b/app/assets/stylesheets/mobile/topic-post.scss index da821337ee..d52955a647 100644 --- a/app/assets/stylesheets/mobile/topic-post.scss +++ b/app/assets/stylesheets/mobile/topic-post.scss @@ -1,3 +1,5 @@ +@import "common/foundation/variables"; + .gap { background-color: lighten($secondary_background_color, 76%); padding: 5px 15px; diff --git a/app/assets/stylesheets/mobile/topic.scss b/app/assets/stylesheets/mobile/topic.scss index 30278edb45..87c53c9e39 100644 --- a/app/assets/stylesheets/mobile/topic.scss +++ b/app/assets/stylesheets/mobile/topic.scss @@ -1,3 +1,5 @@ +@import "common/foundation/variables"; + .topic-meta-data { width: 100%; h3 a {margin-left: 10px;} diff --git a/app/assets/stylesheets/mobile/upload.scss b/app/assets/stylesheets/mobile/upload.scss index a0b2715a02..3d87939f92 100644 --- a/app/assets/stylesheets/mobile/upload.scss +++ b/app/assets/stylesheets/mobile/upload.scss @@ -1,3 +1,6 @@ +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; + .add-upload .fa-plus { font-size: 10px; position: relative; diff --git a/app/assets/stylesheets/mobile/user.scss b/app/assets/stylesheets/mobile/user.scss index 3a4c2fef44..b2268b1a07 100644 --- a/app/assets/stylesheets/mobile/user.scss +++ b/app/assets/stylesheets/mobile/user.scss @@ -1,4 +1,6 @@ // styles that apply to the user page +@import "../common/foundation/variables"; +@import "../common/foundation/mixins"; .user-preferences { .control-group { @@ -309,4 +311,4 @@ .avatar { margin: 5px 10px 5px 0; } -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/mobile/username_tagsinput.scss b/app/assets/stylesheets/mobile/username_tagsinput.css similarity index 100% rename from app/assets/stylesheets/mobile/username_tagsinput.scss rename to app/assets/stylesheets/mobile/username_tagsinput.css diff --git a/app/assets/stylesheets/plugins.css.erb b/app/assets/stylesheets/plugins.css.erb deleted file mode 100644 index 4068ef5a09..0000000000 --- a/app/assets/stylesheets/plugins.css.erb +++ /dev/null @@ -1,7 +0,0 @@ -<% - # TODO this is very tricky, we want to add a dependency here on files that may not yet exist - # otherwise in dev we are often stuck nuking the tmp/cache directory - DiscoursePluginRegistry.stylesheets.each do |css| - require_asset(css) - end -%> diff --git a/app/assets/stylesheets/vendor/chosen.scss b/app/assets/stylesheets/vendor/chosen.css.erb similarity index 95% rename from app/assets/stylesheets/vendor/chosen.scss rename to app/assets/stylesheets/vendor/chosen.css.erb index ffa191978a..f1102416a1 100644 --- a/app/assets/stylesheets/vendor/chosen.scss +++ b/app/assets/stylesheets/vendor/chosen.css.erb @@ -60,7 +60,7 @@ width: 12px; height: 13px; font-size: 1px; - background: asset-url("chosen-sprite.png") right top no-repeat; + background: url(<%=asset_path "chosen-sprite.png"%>) right top no-repeat; } .chzn-container-single .chzn-single abbr:hover { background-position: right -11px; @@ -74,7 +74,7 @@ width: 18px; } .chzn-container-single .chzn-single div b { - background: asset-url("chosen-sprite.png") no-repeat 0 0; + background: url(<%=asset_path "chosen-sprite.png"%>) no-repeat 0 0; display: block; width: 100%; height: 100%; @@ -184,7 +184,7 @@ width: 12px; height: 13px; font-size: 1px; - background: asset-url("chosen-sprite.png") right top no-repeat; + background: url(<%=asset_path "chosen-sprite.png"%>) right top no-repeat; } .chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover { background-position: right -11px; @@ -264,10 +264,10 @@ bottom: 0; } .chzn-container .chzn-results-scroll-down span { - background: asset-url("chosen-sprite.png") no-repeat -4px -3px; + background: url(<%=asset_path "chosen-sprite.png"%>) no-repeat -4px -3px; } .chzn-container .chzn-results-scroll-up span { - background: asset-url("chosen-sprite.png") no-repeat -22px -3px; + background: url(<%=asset_path "chosen-sprite.png"%>) no-repeat -22px -3px; } /* @end */ diff --git a/app/models/site_customization.rb b/app/models/site_customization.rb index e345d75875..f46ea5e592 100644 --- a/app/models/site_customization.rb +++ b/app/models/site_customization.rb @@ -1,5 +1,3 @@ -require_dependency 'discourse_sass_importer' - class SiteCustomization < ActiveRecord::Base ENABLED_KEY = '7e202ef2-56d7-47d5-98d8-a9c8d15e57dd' # placing this in uploads to ease deployment rules @@ -13,21 +11,11 @@ class SiteCustomization < ActiveRecord::Base true end - def compile_stylesheet(scss) - ::Sass::Engine.new(scss, { - syntax: :scss, - cache: false, - read_cache: false, - style: :compressed, - filesystem_importer: DiscourseSassImporter - }).render - end - before_save do ['stylesheet', 'mobile_stylesheet'].each do |stylesheet_attr| if self.send("#{stylesheet_attr}_changed?") begin - self.send("#{stylesheet_attr}_baked=", compile_stylesheet(self.send(stylesheet_attr))) + self.send("#{stylesheet_attr}_baked=", Sass.compile(self.send(stylesheet_attr))) rescue Sass::SyntaxError => e error = e.sass_backtrace_str("custom stylesheet") error.gsub!("\n", '\A ') diff --git a/app/views/common/_discourse_stylesheet.html.erb b/app/views/common/_discourse_stylesheet.html.erb index 417018b8ea..41bff2413d 100644 --- a/app/views/common/_discourse_stylesheet.html.erb +++ b/app/views/common/_discourse_stylesheet.html.erb @@ -6,11 +6,9 @@ <% end %> <%- end %> -<%= stylesheet_link_tag "plugins" %> - <%- if staff? %> <%= stylesheet_link_tag "admin"%> -<%- end %> +<%-end%> <%- unless customization_disabled? %> <%= SiteCustomization.custom_stylesheet(session[:preview_style], mobile_view? ? :mobile : :desktop) %> diff --git a/lib/discourse_sass_importer.rb b/lib/discourse_sass_importer.rb deleted file mode 100644 index 0ee01fef5d..0000000000 --- a/lib/discourse_sass_importer.rb +++ /dev/null @@ -1,71 +0,0 @@ -# This custom importer is used for site customizations. This is similar to the -# Sprockets::SassImporter implementation provided in sass-rails since that is used -# during asset precompilation. -class DiscourseSassImporter < Sass::Importers::Filesystem - GLOB = /\*|\[.+\]/ - - def initialize(root) - @root = Rails.root.join('app', 'assets', 'stylesheets').to_s - @same_name_warnings = Set.new - end - - def extensions - { - 'css' => :scss, - 'css.scss' => :scss, - 'css.sass' => :sass, - 'css.erb' => :scss, - 'scss.erb' => :scss, - 'sass.erb' => :sass, - 'css.scss.erb' => :scss, - 'css.sass.erb' => :sass - }.merge!(super) - end - - def find_relative(name, base, options) - if name =~ GLOB - glob_imports(name, Pathname.new(base), options) - else - engine_from_path(name, File.dirname(base), options) - end - end - - def find(name, options) - if name =~ GLOB - nil # globs must be relative - else - engine_from_path(name, root, options) - end - end - - def each_globbed_file(glob, base_pathname, options) - Dir["#{base_pathname}/#{glob}"].sort.each do |filename| - next if filename == options[:filename] - yield filename # assume all matching files are requirable - end - end - - def glob_imports(glob, base_pathname, options) - contents = "" - each_globbed_file(glob, base_pathname.dirname, options) do |filename| - unless File.directory?(filename) - contents << "@import #{Pathname.new(filename).relative_path_from(base_pathname.dirname).to_s.inspect};\n" - end - end - return nil if contents.empty? - Sass::Engine.new(contents, options.merge( - filename: base_pathname.to_s, - importer: self, - syntax: :scss - )) - end - - private - - def engine_from_path(name, dir, options) - full_filename, syntax = Sass::Util.destructure(find_real_file(dir, name, options)) - return unless full_filename && File.readable?(full_filename) - - Sass::Engine.for_file(full_filename, options) - end -end diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index bbc853561d..4b2662dfc6 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -35,10 +35,10 @@ task 'assets:precompile:before' do def evaluate(context, locals, &block) ::Sprockets.cache_compiled("sass", data) do # HACK, SASS compiler will degrade to aweful perf with huge files - # Bypass if larger than 500kb, ensure assets are minified prior + # Bypass if larger than 200kb, ensure assets are minified prior if context.pathname && context.pathname.to_s =~ /.css$/ && - data.length > 500.kilobytes + data.length > 200.kilobytes puts "Skipped minifying #{context.pathname} cause it is larger than 200KB, minify in source control or avoid large CSS files" data else diff --git a/spec/models/site_customization_spec.rb b/spec/models/site_customization_spec.rb index 3bfb89d370..8b6126260c 100644 --- a/spec/models/site_customization_spec.rb +++ b/spec/models/site_customization_spec.rb @@ -155,20 +155,12 @@ describe SiteCustomization do it 'should compile scss' do c = SiteCustomization.create!(user_id: user.id, name: "test", stylesheet: '$black: #000; #a { color: $black; }', header: '') - c.stylesheet_baked.should == "#a{color:#000}\n" + c.stylesheet_baked.should == "#a {\n color: black; }\n" end it 'should compile mobile scss' do c = SiteCustomization.create!(user_id: user.id, name: "test", stylesheet: '', header: '', mobile_stylesheet: '$black: #000; #a { color: $black; }', mobile_header: '') - c.mobile_stylesheet_baked.should == "#a{color:#000}\n" - end - - it 'should allow including discourse styles' do - c = SiteCustomization.create!(user_id: user.id, name: "test", stylesheet: '@import "desktop";', mobile_stylesheet: '@import "mobile";') - c.stylesheet_baked.should_not =~ /Syntax error/ - c.stylesheet_baked.length.should > 1000 - c.mobile_stylesheet_baked.should_not =~ /Syntax error/ - c.mobile_stylesheet_baked.length.should > 1000 + c.mobile_stylesheet_baked.should == "#a {\n color: black; }\n" end it 'should provide an awesome error on failure' do